在软件生命周期中,即使一个得到良好维护的测试用例库也可能变得相当大,使得每次回归测试都重新运行完整的测试包变得不切实际,构造一个缩减的测试用例组来完成回归测试。
回归测试的价值在于它是一个能够检测到回归错误的受控实验。当测试组选择缩减的回归测试时,有可能忽略了将发现揭示回归错误的测试用例,而措施了发现回归错误的机会。然而,如果采用了代码相依性等安全的缩减技术,就可以决定哪些测试用例可以被删除而不会影响回归测试的结果。
选择回归测试方法应该兼顾效率和有效性两个方面,下面有几种方法,在效率和有效性方面的侧重点是不同的。
● 再测试全部用例:选择测试用例库中的全部测试用例构成回归测试包,这是一种比较安全的方法,遗漏回归错误的风险最低,但测试成本最高。再测试全部用例几乎可以应用到任何情况下,基本上不需要进行用例分析和设计,但是随着开发工作的进展,测试用例不断增多而带来相当大的工作量,会受预算和进度的限制。
● 基于风险选择测试:基于一定的风险标准来从测试用例库中选择回归测试包。首先运行最重要的、关键的和可疑的测试,而跳过那些次要的、例外的测试用例或那些功能非常稳定的模块。运行那些次要用例即便发现缺陷,这些缺陷的严重性也较低。
● 基于操作剖面选择测试:如果测试用例是基于软件操作剖面开发的,测试用例的分布情况反映了系统的实际使用情况。回归测试所使用的测试用例个数可以由测试预算确定,回归测试可以优先选择那些针对最重要或最频繁使用功能的测试用例,释放和缓解最高级别的风险,有助于尽早发现那些对可靠性有最大影响的故障。
● 再测试修改的部分:当测试者对修改的局部有足够的信心时,可以通过相依性分析识别软件的修改情况并分析修改的影响,将回归测试局限于被改变的模块和它的接口上。通常,一个回归错误一定涉及被修改的或新加的代码。在允许的条件下,回归测试尽可能覆盖收到影响的部分。这种方法可以在一个给定的预算下最有效地提高系统可靠性,但需要丰富的经验和深入地代码分析。
综合运用多种测试技术是常见的,在回归测试中也不例外,测试者也可能希望采用多于一种回归测试策略来增强对测试结果的信心。不同的测试者可能会依据自己的经验和判断选择不同的回归测试技术和方法。
回归测试,英文是Regression testing。
回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性。理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。
根据修复好了的缺陷再重新进行测试。回归测试的目的在于验证以前出现过但已经修复好的缺陷不再重新出现。一般指对某已知修正的缺陷再次围绕它原来出现时的步骤重新测试。通常确定所需的再测试的范围时是比较困难的,特别当临近产品发布日期时。因为为了修正某缺陷时必需更改源代码,因而就有可能影响这部分源代码所控制的功能。所以在验证修好的缺陷时不仅要服从缺陷原来出现时的步骤重新测试,而且还要测试有可能受影响的所有功能。因此应当鼓励对所有回归测试用例进行自动化测试