我被教导说,回归测试很小(仅足以证明你没有通过引入变更或新模块来破坏任何东西)整体测试的样本.然而,Ron Morrison和Grady Booch的这篇文章让我有不同的想法:
理想的策略是将每个单元一次放入一个,执行广泛的回归测试,纠正任何缺陷,然后进入下一个单元.
同一份文件还说:
一旦添加少量单元,就会生成测试版本并进行"冒烟测试",其中运行少量测试以确保集成产品将按预期运行.目的既不是彻底测试新单元,也不是对整个系统进行完全回归测试.
在描述烟雾测试时,作者说:
烟雾测试对整个系统进行快速检查也很重要,而不仅仅是新组件.
我从未见过一起使用的"广泛"和"回归测试",也没有将回归测试描述为"完全回归测试整个系统".回归测试应该尽可能轻松快速.烟雾测试的定义就是我学到的回归测试.
我误解了我的教学内容吗?我教的不正确吗?或者对"回归测试"有多种解释?
有多种解释。如果您只修复影响系统一小部分的错误,则回归测试可能仅包含一小套测试,这些测试可以练习所涉及的类或程序包。如果要修复错误或添加范围更广的功能,则回归测试的范围也应更广。
经验法则是“如果可能破裂,请测试”。如果的更改Foo
可能影响Bar
,则对两者进行回归。
回归测试只是检查更改是否导致先前通过的测试失败。它们可以在任何级别(单元,集成,系统)上运行。 参考。
我总是采用回归测试来表示任何测试,其目的是确保现有功能不会被新的更改破坏.这并不意味着对测试套件的大小有任何限制.