回归测试:
回归测试是软件测试的一种,旨在检验软件原有功能在修改后是否保持完整。

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。
回归测试是软件测试中的一个十分重要且成本昂贵的过程。针对如何减少回归测试成本,提高回归测试效率的研究将具有十分重要的意义。回归测试选择技术已经成为国际上研究的热点。

定义:
1.回归测试是指重复以前的全部或部分的相同测试。
2.新加入测试的模组,可能对其他模组产生副作用,故须进行某些程度的回归测试。
3.回归测试的重心,以关键性模组为核心。

回归测试过程:
1.识别出软件中被修改的部分
2.从原基线测试用例库“T”中,排除所有不再适用的测试用例,确定对新版本依然有效的测试用例,创建新的基线测试用例库“TN”
3.依据一定的策略从TN中选择测试用例测试被修改的软件
4.如果必要,生成新的测试用例集“T1”,用于测试TN无法充分测试的软件部分
5.用T1执行修改后的软件
第2和第3步测试验证修改是否破坏了现有的功能,第4和第5步测试验证修改工作本身。

    在软件生命周期中的任何一个阶段, 只要软件发生了改变,就可能给该软件带来问题。软件的改变可能是源于发现了错误并做了修改,也有可能是因为在集成或维护阶段加入了新的模块。当软件中所含错误被发现时, 如果错误跟踪与管理系统不够完善,就可能会遗漏对这些错误的修改;而开发者对错误理解的不够透彻, 也可能导致所做的修改只修正了错误的外在表现,而没有修复错误本身从而造成修改失败;修改还有可能产生副作用从而导致软件未被修改的部分产生新的问题,使本来工作正常的功能产生错误。同样, 在有新代码加入软件的时候, 除了新加入的代码中有可能含有错误外新代码还有可能对原有的代码带来影响。因此,每当软件发生变化时,我们就必须重新测试现有的功能,以便确定修改是否达到了预期的目的,检查修改是否损害了原有的正常功能。同时, 还需要补充新的测试用例来测试新的或被修改了的功能。为了验证修改的正确性及其影响就需要进行回归测试。
    回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行得更加频繁,而在极端编程方法中, 更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是非常有意义的。