在过去的一年左右的时间里,我带动了我的团队朝着经常提前发布的开发模式发展(又名:快速应用程序开发,而不是敏捷)。有关关闭构建方式的更多信息,请在此处查看我的答案: 一种提高RAD环境中发布质量的简单方法
当我们采用RAD时,人们是非常独立的,他们首先进行单元测试。集成测试发生在过程的后期。对于他们来说,这是自然的过程,无需太多正式的强制措施。现在情况大不相同了:
整个平台与已建立的内部版本/发行版很好地集成在一起,可在客户端工作,没有任何热点。
新功能需求不断涌现,我们会逐步构建它们。
系统的整体动力非常重要,因为尽管独立的开发小组可能会正确地遵循流程,但由于复杂,非显而易见的情况而导致了重大故障。
系统的许多部分都涉及新算法和研究投入,因此并非总是可以正确地预见到挑战(以及测试机制),例如在定义明确的软件中进行功能测试。
最近,我试图获得更好的整体情况,以查看我们是否需要改进流程。当我和我的团队坐下时,他们中的许多人都拒绝了:“我们不再进行单元测试了!” 而其他人则认为我们不应该立即开始,因为它将永远无效。
单元测试在相对成熟的系统中有用吗?我们是否至少需要根据单元的成熟度来权衡测试范围?单元测试会减慢开发速度吗?是否需要以其他方式评估单元测试?
在经常提前发布的环境中测试成熟平台的最佳实践是什么?