我曾在许多尝试实践敏捷方法的团队中工作过,这些团队通常都是以测试为中心的。测试是实践敏捷方法的一个必要部分,还是仅仅是多年来一直锁定的XP实践?
发布于 2014-09-24 23:24:05
测试对于敏捷是绝对必要的,主要是因为敏捷是基于增量改进的:困难在于,有时很难看出当前的更改将如何影响您的旧代码。要确信你没有弄坏某件东西,最好的方法就是测试它,并知道如何测试它。这样,您就可以立即找到bug,而不是在您在编写破坏某些旧特性的代码时完全忘记了自己做了什么的时候。
这与传统的、自上而下的设计类型编程不同的原因是,在这种环境中,在得到成品b之前,很难进行测试),理论上,您同时考虑所有的设计标准,所以您不太可能做出违背以前的设计决策的设计决策。
发布于 2014-09-25 02:22:35
如果您没有测试,您如何知道您的代码工作?
编辑:测试不能证明代码工作的断言未能定义一个关键术语,即“工作”。一个程序的工作意味着什么?如果你保持这个术语含糊不清,那么就根本无法证明或确定任何程序都能工作。永远不会。
另一方面,您可以将作品定义为“按照规范行事”。现在,您不仅可以使用测试来显示代码工作,而且测试本身也可以作为代码行为的可执行规范。换句话说,一个写得很好的测试套件定义了工作的含义。
这种思维方式也迫使你重新审视错误的含义。如果您的代码通过了所有测试,那么代码中就没有bug。尽管如此,如果系统没有按应有的方式运行,那么它的行为就没有被正确地指定。也就是说,错误在规范中,由测试定义。
这种软件开发方法将系统的功能规范与其实现分离开来,根据世界上的每一本软件工程书籍,这是一件非常好的事情。同时,这种方法确保您的实现始终与功能规范相对应。
发布于 2014-09-25 05:47:11
您可能是在谈论自动化测试、单元测试、集成测试等等。这些对于敏捷来说比手工测试更重要(对于测试人员等等),因为它们太慢了,因此不可能测试您所做的每一个小的更改。由于敏捷是关于快速的小迭代,所以进行测试以秒或分钟来验证正确性,而不是几个小时或几天,是非常有用的。
https://softwareengineering.stackexchange.com/questions/257177
复制相似问题