软件回归测试及其实践
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可编辑ppt
1
一、 概述
在软件生命周期中的任何一个阶段, 只要软件发生了改变,就可能给该软件带 来问题。软件的改变可能是源于发现了错 误并做了修改,也有可能是因为在集成或 维护阶段加入了新的模块。
可编辑ppt
2
当软件中所含错误被发现时,如果错误
跟踪与管理系统不够完善,就可能会遗漏对 这些错误的修改;而开发者对错误理解得不 够透彻,也可能导致所做的修改只修正了错 误的外在表现,而没有修复错误本身,从而 造成修改失败;修改还有可能产生副作用从 而导致软件未被修改的部分产生新的问题, 使本来正常工作的功能产生错误。
可编辑ppt
8
回归测试需要时间、Hale Waihona Puke Baidu费和人力来计划、 实施和管理。为了在给定的预算和进度下, 尽可能有效率和有效力地进行回归测试,需 要对测试用例库进行维护并依据一定的策略 选择相应的回归测试包。
可编辑ppt
9
1、测试用例库的维护
为了最大限度地满足客户的需要和适应应用的 要求,软件在其生命周期中会频繁地被修改和不断 推出新的版本,修改后的或者新版本的软件会添加 一些新的功能或者在软件功能上产生某些变化。随 着软件的改变,软件的功能和应用接口以及软件的 实现发生了演变,测试用例库中的一些测试用例可 能会失去针对性和有效性,而另一些测试用例可能 会变得过时,还有一些测试用例将完全不能运行。
可编辑ppt
13
(4)增添新的测试用例
如果某个程序段、构件或关键的接口在现有 的测试中没有被测试,那么应该编写新测试用例 重新对其进行测试。并将新编写的测试用例合并 到基线测试包中。
通过对测试用例库的维护不仅改善了测试用 例的可用性,而且也提高了测试库的可信性,同 时还可以将一个基线测试用例库的效率和效用保 持在一个较高的级别上。
可编辑ppt
3
同样,在有新代码加入软件的时候,除
了新加入的代码中有可能含有错误外,新代 码还有可能对原有的代码也带来影响。
可编辑ppt
4
因此,每当软件发生变化时,我们就必
须重新测试现有的功能,以便确定修改是否 达到了预期的目的,检查修改是否损害了原 有的正常功能。同时,还需要补充新的测试 用例来测试新的或被修改了的功能。为了验 证修改的正确性及其影响就需要进行回归测 试。
可编辑ppt
11
(2)改进不受控制的测试用例
随着软件项目的进展,测试用例库中的用例 会不断增加,其中会出现一些对输入或运行状态 十分敏感的测试用例。这些测试不容易重复且结 果难以控制,会影响回归测试的效率,需要进行 改进,使其达到可重复和可控制的要求。
可编辑ppt
12
(3)删除冗余的测试用例
如果存在两个或者更多个测试用例针对一组 相同的输入和输出进行测试,那么这些测试用例 是冗余的。冗余测试用例的存在降低了回归测试 的效率。所以需要定期的整理测试用例库,并将 冗余的用例删除掉。
可编辑ppt
17
(2)基于风险选择测试
可以基于一定的风险标准来从基线测试用例 库中选择回归测试包。首先运行最重要的、关键 的和可疑的测试,而跳过那些非关键的、优先级 别低的或者高稳定的测试用例,这些用例即便可 能测试到缺陷,这些缺陷的严重性也仅是中等或 较低。一般而言,测试从主要特征到次要特征。
可编辑ppt
5
回归测试在软件生命周期中扮演着重要 的角色,因忽视回归测试而造成严重后果 的例子不计其数,导致挑战者号发射失败 的软件缺陷就是由于复用的代码没有经过 充分的回归测试造成的。
可编辑ppt
6
回归测试作为软件生命周期的一个组成 部分,在整个软件测试过程中占有很大的工 作量比重,软件开发的各个阶段都会进行多 次回归测试。在渐进和快速迭代开发中,新 版本的连续发布使回归测试进行的更加频繁, 而在极端编程方法中,更是要求每天都进行 若干次回归测试。
可编辑ppt
14
2、回归测试包的选择
在软件生命周期中,即使一个得到良
好维护的测试用例库也可能变得相当大, 这使每次回归测试都重新运行完整的测试 包变得不切实际。一个完全的回归测试包 括每个基线测试用例,时间和成本约束可 能阻碍运行这样一个测试,有时测试组不 得不选择一个缩减的回归测试包来完成回 归测试。
可编辑ppt
10
测试用例的维护是一个不间断的过程,通常
可以将软件开发的基线作为基准,维护的主要内 容包括下述几个方面。
(1)删除过时的测试用例
因为需求的改变等原因可能会使一个基线测
试用例不再适合被测试系统,这些测试用例就会 过时。例如,某个变量的界限发生了改变,原来 针对边界值的测试就无法完成对新边界的测试。 所以,在软件的每次修改后都应把相应的过时的 测试用例删除。
可编辑ppt
15
回归测试的价值在于它是一个能够检测
到回归错误的受控实验。当测试组选择缩减 的回归测试时,有可能删除了将揭示回归错 误的测试用例,消除了发现回归错误的机会。 然而,如果采用了代码相依性分析等安全的 缩减技术,就可以决定哪些测试用例可以被 删除而不会让回归测试的意图遭到破坏。
可编辑ppt
因此,通过选择正确的回归测试策略来 改进回归测试的效率和有效性是非常有意义 的。
可编辑ppt
7
二、 回归测试策略
对于一个软件开发项目来说,项目的测试组在
实施测试的过程中会将所开发的测试用例保存到 “测试用例库”中,并对其进行维护和管理。当得 到一个软件的基线版本时,用于基线版本测试的所 有测试用例就形成了基线测试用例库。在需要进行 回归测试的时候,就可以根据所选择的回归测试策 略,从基线测试用例库中提取合适的测试用例组成 回归测试包,通过运行回归测试包来实现回归测试。 保存在基线测试用例库中的测试用例可能是自动测 试脚本,也有可能是测试用例的手工实现过程。
16
选择回归测试策略应该兼顾效率和有效性两 个方面。常用的选择回归测试的方式包括:
(1)再测试全部用例
选择基线测试用例库中的全部测试用例组成 回归测试包,这是一种比较安全的方法,再测试 全部用例具有最低的遗漏回归错误的风险,但测 试成本最高。全部再测试几乎可以应用到任何情 况下,基本上不需要进行分析和重新开发,但是, 随着开发工作的进展,测试用例不断增多,重复 原先所有的测试将带来很大的工作量,往往超出 了我们的预算和进度。
1
一、 概述
在软件生命周期中的任何一个阶段, 只要软件发生了改变,就可能给该软件带 来问题。软件的改变可能是源于发现了错 误并做了修改,也有可能是因为在集成或 维护阶段加入了新的模块。
可编辑ppt
2
当软件中所含错误被发现时,如果错误
跟踪与管理系统不够完善,就可能会遗漏对 这些错误的修改;而开发者对错误理解得不 够透彻,也可能导致所做的修改只修正了错 误的外在表现,而没有修复错误本身,从而 造成修改失败;修改还有可能产生副作用从 而导致软件未被修改的部分产生新的问题, 使本来正常工作的功能产生错误。
可编辑ppt
8
回归测试需要时间、Hale Waihona Puke Baidu费和人力来计划、 实施和管理。为了在给定的预算和进度下, 尽可能有效率和有效力地进行回归测试,需 要对测试用例库进行维护并依据一定的策略 选择相应的回归测试包。
可编辑ppt
9
1、测试用例库的维护
为了最大限度地满足客户的需要和适应应用的 要求,软件在其生命周期中会频繁地被修改和不断 推出新的版本,修改后的或者新版本的软件会添加 一些新的功能或者在软件功能上产生某些变化。随 着软件的改变,软件的功能和应用接口以及软件的 实现发生了演变,测试用例库中的一些测试用例可 能会失去针对性和有效性,而另一些测试用例可能 会变得过时,还有一些测试用例将完全不能运行。
可编辑ppt
13
(4)增添新的测试用例
如果某个程序段、构件或关键的接口在现有 的测试中没有被测试,那么应该编写新测试用例 重新对其进行测试。并将新编写的测试用例合并 到基线测试包中。
通过对测试用例库的维护不仅改善了测试用 例的可用性,而且也提高了测试库的可信性,同 时还可以将一个基线测试用例库的效率和效用保 持在一个较高的级别上。
可编辑ppt
3
同样,在有新代码加入软件的时候,除
了新加入的代码中有可能含有错误外,新代 码还有可能对原有的代码也带来影响。
可编辑ppt
4
因此,每当软件发生变化时,我们就必
须重新测试现有的功能,以便确定修改是否 达到了预期的目的,检查修改是否损害了原 有的正常功能。同时,还需要补充新的测试 用例来测试新的或被修改了的功能。为了验 证修改的正确性及其影响就需要进行回归测 试。
可编辑ppt
11
(2)改进不受控制的测试用例
随着软件项目的进展,测试用例库中的用例 会不断增加,其中会出现一些对输入或运行状态 十分敏感的测试用例。这些测试不容易重复且结 果难以控制,会影响回归测试的效率,需要进行 改进,使其达到可重复和可控制的要求。
可编辑ppt
12
(3)删除冗余的测试用例
如果存在两个或者更多个测试用例针对一组 相同的输入和输出进行测试,那么这些测试用例 是冗余的。冗余测试用例的存在降低了回归测试 的效率。所以需要定期的整理测试用例库,并将 冗余的用例删除掉。
可编辑ppt
17
(2)基于风险选择测试
可以基于一定的风险标准来从基线测试用例 库中选择回归测试包。首先运行最重要的、关键 的和可疑的测试,而跳过那些非关键的、优先级 别低的或者高稳定的测试用例,这些用例即便可 能测试到缺陷,这些缺陷的严重性也仅是中等或 较低。一般而言,测试从主要特征到次要特征。
可编辑ppt
5
回归测试在软件生命周期中扮演着重要 的角色,因忽视回归测试而造成严重后果 的例子不计其数,导致挑战者号发射失败 的软件缺陷就是由于复用的代码没有经过 充分的回归测试造成的。
可编辑ppt
6
回归测试作为软件生命周期的一个组成 部分,在整个软件测试过程中占有很大的工 作量比重,软件开发的各个阶段都会进行多 次回归测试。在渐进和快速迭代开发中,新 版本的连续发布使回归测试进行的更加频繁, 而在极端编程方法中,更是要求每天都进行 若干次回归测试。
可编辑ppt
14
2、回归测试包的选择
在软件生命周期中,即使一个得到良
好维护的测试用例库也可能变得相当大, 这使每次回归测试都重新运行完整的测试 包变得不切实际。一个完全的回归测试包 括每个基线测试用例,时间和成本约束可 能阻碍运行这样一个测试,有时测试组不 得不选择一个缩减的回归测试包来完成回 归测试。
可编辑ppt
10
测试用例的维护是一个不间断的过程,通常
可以将软件开发的基线作为基准,维护的主要内 容包括下述几个方面。
(1)删除过时的测试用例
因为需求的改变等原因可能会使一个基线测
试用例不再适合被测试系统,这些测试用例就会 过时。例如,某个变量的界限发生了改变,原来 针对边界值的测试就无法完成对新边界的测试。 所以,在软件的每次修改后都应把相应的过时的 测试用例删除。
可编辑ppt
15
回归测试的价值在于它是一个能够检测
到回归错误的受控实验。当测试组选择缩减 的回归测试时,有可能删除了将揭示回归错 误的测试用例,消除了发现回归错误的机会。 然而,如果采用了代码相依性分析等安全的 缩减技术,就可以决定哪些测试用例可以被 删除而不会让回归测试的意图遭到破坏。
可编辑ppt
因此,通过选择正确的回归测试策略来 改进回归测试的效率和有效性是非常有意义 的。
可编辑ppt
7
二、 回归测试策略
对于一个软件开发项目来说,项目的测试组在
实施测试的过程中会将所开发的测试用例保存到 “测试用例库”中,并对其进行维护和管理。当得 到一个软件的基线版本时,用于基线版本测试的所 有测试用例就形成了基线测试用例库。在需要进行 回归测试的时候,就可以根据所选择的回归测试策 略,从基线测试用例库中提取合适的测试用例组成 回归测试包,通过运行回归测试包来实现回归测试。 保存在基线测试用例库中的测试用例可能是自动测 试脚本,也有可能是测试用例的手工实现过程。
16
选择回归测试策略应该兼顾效率和有效性两 个方面。常用的选择回归测试的方式包括:
(1)再测试全部用例
选择基线测试用例库中的全部测试用例组成 回归测试包,这是一种比较安全的方法,再测试 全部用例具有最低的遗漏回归错误的风险,但测 试成本最高。全部再测试几乎可以应用到任何情 况下,基本上不需要进行分析和重新开发,但是, 随着开发工作的进展,测试用例不断增多,重复 原先所有的测试将带来很大的工作量,往往超出 了我们的预算和进度。