AutoRunner自动测试工具,是黑盒测试工具,可以用来完成功能测试、回归测试、每日构建测试、自动回归测试等测试工作。
TestCenter是一款功能强大的测试管理工具,它实现了:测试需求管理、测试用例管理、测试业务组件管理、测试计划管理、测试执行、测试结果日志察看、测试结果分析、缺陷管理,并且支持测试需求和测试用例之间的关联关系,可以通过测试需求索引测试用例。
TAR适用于VT100、VT220等标准的应用系统,支持命令行模式和窗口模式(使用Cursors编写的应用程序)。 支持针对终端应用的自动录制。支持连续录制和单独的窗口录制。支持的窗口组件:栏位、表格、对话框、窗口等。 脚本语言采用java标准脚本:bean shell。
当前位置 :| 主页>软件测试百科>

变异测试

来源:网络转载 作者:佚名 时间:2009-08-31 Tag:变异测试   点击:

变异测试(有时也叫做“编译分析”)是一种在细节方面改进程序源代码的软件测试方法。这些所谓的变异,是基于良好定义的变异操作,这些操作或者是模拟典型应用错误(例如:使用错误的操作符或者变量名字),或者是强制产生有效地测试(例如使得每个表达式都等于0)。目的是帮助测试者发现有效地测试,或者定位测试数据的弱点,或者是在执行中很少(或从不)使用的代码的弱点。

首创于1970s,变异测试最初是为了定位揭示测试单元的弱点。这个理论是:如果一个边缘被引入,同时出现的行为(通常是输出)不受影响的情况下,那么这说明了:变异代码从没有被执行过(产生了过剩代码)或者测试单元无法定位错误。为了使之适用于所有情况,必须引入大量的变异,导致这个程序的极大量的副本被编译和执行。变异测试的花费问题,阻碍了它作为一种软件测试方法的实际应用。

变异测试最初被一个学生Dick Lipton提出,被DeMillo,Lipton和Sayward首次发现和公之于众。Lipton and Sayward.,是第一个变异测试工具,是由Timothy Budd于1980在耶鲁大学的博士工作(名为变异分析)中实现的。

近来,随着电脑能力的发展,变异测试也在电脑科学论坛中重新复兴起来。而且,已经有一些定义方法,可以把变异测试应用在OOP和非过程化语言中,如XML,SMV以及有限状态机。

变异测试的前景

变异测试,通过选择一些变异操作,并对于每一个可执行代码段依次把它们应用在源代码中。对程序使用变异操作的结果叫做一个突变异种。如果测试单元可以察觉到错误(即:一个测试失败了),那么就说该突变异种被杀害了。

例如,考虑项目的C++代码片段:

if (a && b)

c = 1;

else

c = 0;


条件编译操作可以用“||”来替换“&&”,产生下面的突变:

if (a || b)

c = 1;

else

c = 0;


现在,为了使测试杀死这个突变,需要满足一下条件:

(1) 测试输入数据必须对突变和原始创新引起不同的程序状态。例如:一个测试a=1,b=0可以达到这个目的。

(2)‘c’的值应该传播到程序输出并被测试检查。

弱的突变测试(弱的突变覆盖)只要求满足第一个条件。强的突变测试要求满足两个条件。强突变更有效,因此它保证测试单元可以真实的捕捉错误。弱突变近似于代码覆盖方法。它只需较少的计算能力来保证测试单元满足弱突变测试。

突变操作

一些突变操作已经被人发现了,例如:算术和逻辑的突变操作,并行工程,复杂对象如容器……


上一篇:UAT测试
下一篇:3G测试