所有提交的电磁系统将被重定向到在线手稿提交系统。作者请直接提交文章在线手稿提交系统各自的杂志。

变异测试:一个回顾

一生Kumar Chaurasia
信息技术部助理教授,Babasaheb Bhimrao安贝德卡大学(中央大学)勒克瑙(U.P),印度,226025
通讯作者:一生Kumar Chaurasia电子邮件:pkc.gkp@gmail.com
相关文章Pubmed,谷歌学者

访问更多的相关文章全球研究计算机科学杂志》上

文摘

突变测试是基于一个错误的测试技术中产生突变体的突变体上的程序和应用不同的测试用例。一些突变体被杀和突变体还活着。死亡,活着的突变体的基础上,突变分数计算。突变体被分类成软弱,坚强和刚毅的突变体在降低成本的方法。本文用于审查突变体的突变检测和分类,专注于降低成本的技术

关键字

突变体、EX-WEAK ST-WEAK BB-WEAK, FOM,力宏,SSHOM,超级变种人。

介绍

软件测试的目的是验证的过程和验证软件应用程序或程序,达到所期望的需求和开发设计项目或用户。第一个变异测试是在1970年提出,工具实现的蒂莫西·巴德[1]1980年在他的研究工作。根据巴德“变异测试是基于一个错误的测试技术,我们寻找程序中的错误,发现错误”。这些缺点播种在原程序和与变异的程序。介绍了突变体项目开始时的变异操作符。每一个突变产生突变计划,产生的变异算子。
本文中描述的六个阶段的突变。第一阶段是引入突变检测。第二阶段是计算突变分数后杀死突变体。第三阶段是如何有效的测试用例,通过突变分数计算。下一阶段是定义弱变异测试然后突变体是如何减少。最后阶段是计算成本的突变体执行。

基因突变检测

变异测试是软件测试的一个方法就是哈姆雷特[3]提出的。变异测试是基于一个错误的测试技术(4、7、8)。它是一种测试应用程序的测试修改后的代码解决一个特定的缺陷。在大多情况下测试一个程序,发现简单的错误也有效地揭示复杂得多的错误。耦合效应可以用来保存在测试过程中。突变是基于操作符被称为突变操作符[5 - 6]。如图1所示突变体是由寻求一些改变原程序,生成不同的测试用例和执行变异程序。如果测试不同于原始程序,据说杀死突变体。如果测试用例不是原始程序不同的突变和变异仍然是生活。突变体存活,因为它相当于原来的程序。 If the mutant produce the same output, it can’t be killed.
图像
它是用来测试的测试用例来杀死所有的突变体。测试用例生成杀死所有的突变体。测试集可以杀死所有的等效突变体被认为是足够的和突变分数衡量的死亡总数突变体的等效突变体,突变是等价的。突变分数需要真实值在0.0和1.0之间这是最好的分数。
图像

测试用例的有效性

测试用例是通过生成有效测试用例的有效性之间的关系和突变分数方程[9]。它可以通过乘以计算突变分数(M)和平均数量的测试用例的比率杀死突变体(K)除以总没有测试用例(T)。
图像
计算,平均死亡突变体的测试用例数量除以死亡人数突变体。
图像

弱变异测试

减少执行成本,豪顿[10]提出弱变异测试,只需要两个(可达性、感染)杀死一个突变体条件。在弱突变,美国的比较两个项目在预定的点突变的执行指令。如果美国在这一点上,不同突变体被杀。弱变异测试不同于其他突变测试关注组件在一个程序中。假设项目A和B, B是简单的组件的A和B产生的变异版本。所以“包含的变异版本B。
豪顿并没有描述的精确定义程序组件在原始论文,但他进一步细化功能测试[11]。我基本上有五种类型的组件。e变量引用,变量赋值,算术表达式、关系表达式、布尔表达式。
伍德沃德和工厂的[12]定义的组件状态的原始和突变计划进行了比较。弱变异测试是分为四种类型,如下所示。
EX-WAEK / 1 (Expression-Weak / 1)突变:比较原始程序之间的状态和突变后生成表达式的执行组件。
ST-WAEK / 1 (Statement-Weak / 1)突变:比较突变体的状态在第一次执行语句和原来的计划。
BB-WAEK / 1 (Basic-Block-Weak / 1执行)突变:它需要检查美国年底比较第一个突变语句的执行。有许多突变体的循环不能死在第一次执行,可以允许多个执行,直到所有的突变体都死了。
BB-WAEK / N(执行基本块弱/ N)突变:BB-Weak / 1的扩展版本,执行每个突变检查语句块。当突变体检查不能死于单一的执行语句和声明终止。
从研究工作[13]和[14日10]的报告,弱变异测试是产生突变体框架如图2所示,应用于变异算子和弱突变技术。真正的变异测试的组件和框架是:
前置测试阶段:在这个阶段测试人员上传程序测试和验证它。突变体的生成是基于变异算子和存储突变搬到数据库。测试用例从数据库加载测试用例和突变体,为测试突变控制器。
测试阶段:在这个阶段计时器开始执行时间和突变和测试用例的测试控制器部署在服务器上。后测试程序服务器发送结果和比较原始程序和结果存储。如果突变体死亡,生活,存储到数据库中。
c。帖子测试阶段:它是最后阶段的测试框架。在这个阶段的结果存储到数据库中测试用例。数据库突变分数的基础上计算和检查的有效性后测试结果变异的计划。
图像

减少突变体

变异测试是一种昂贵的测试技术。计算成本的主要来源的变异测试是固有的运行成本在执行大量的突变体对测试集。基本上有四种类型的技术降低了突变体。
突变抽样:这是一个简单的方法,从整个随机选择的一个小子集突变体的突变体。在突变抽样生成所有可能的突变和选择随机突变分析和剩余的被丢弃。
提出的b。突变体集群:侯赛因硕士论文[15]。突变体聚类生成所有一阶基于killable突变体为不同的测试用例。每个突变体在同一集群被一组类似的测试用例。只有少数的突变体选择每个集群中使用突变检测和剩余的被丢弃。减少域引入的技术[16]。
c。选择性突变:它试图找到小的变异算子生成所有可能的突变体的一个子集,没有重大损失测试的有效性。它第一次被提出的Mathur [17]。奥福特[18]扩展通过省略四个和六个选择性变异算子。基于摩斯拉也变异算子把他们分为三个类别:声明中,操作数和表达式。最近的研究工作在选择性突变Namin[19]通过制定选择性突变问题到统计问题。他们应用线性统计方法和减少92%的所有生成的突变体。
d。高阶变异:突变体可分为一阶突变体(FOM)和高阶突变体(轨)。FOM只生成一次运用变异算子在力宏是由应用不止一次变异算子。贾和哈曼的概念引入运用霍姆斯[22]。不容易杀死所有的fom构造。最好替换fom比单一霍姆斯减少突变体的数量。他们还介绍了强烈的概念运用HOM (SSHOM)只是被交叉的测试用例的一个子集,杀死每个FOM的构造。这是部分证明了马球等[23]。

降低成本的技术

突变体的数量,降低计算成本也可以降低减少变异的执行过程。有三种技术来降低执行成本,被认为是文学。
。强,弱而坚定的突变:强突变是称为传统的变异测试提出的DeMillo等[4]。突变体的死亡只有不同于原始程序的输出。优化的执行强突变豪顿[24]提出了弱变异,而不是检查突变体在整个程序的执行,突变只需要检查后立即执行的变异或突变的组件。弱突变体的优点是每个突变并不需要一个完整的执行过程;一旦突变组件执行我们可以检查生存突变体。
公司首先提出突变,伍德沃德和工厂在1988年[12]。强和弱的缺点在公司突变,突变。它隔后执行(弱突变)和最终的输出(强突变)的突变。2001年杰克逊和伍德沃德[25]提出了java程序并行公司突变的方法。
b。优化技术对运行时突变:第一代[26]测试工具,基于翻译技术是用于优化突变,我。e解释变异的结果直接从它的源代码。小变异突变体优化是充分和有效的程序。降低成本的解释,提出了基于编译器技术[27],因为编译的二进制代码的执行要快得多的解释。在整理技术、突变的程序编译成可执行程序,那么每个编译突变的执行测试用例。高速度限制由于高编译成本对于大型项目[28]。compiler-integrated DeMillo等人提出了新技术来优化性能的传统编译器[29]。突变模式生成的新方法减少传统翻译基础的间接成本(30 - 31)。不容易编译所有的突变体,而不是单独编译每个突变,突变模式生成元“超级变异”等项目。这个元程序需要编译一次时间测试每一个突变。所以成本是时间编译和整体运行成本计算一次。 After compilation technique the new approach is introduced as a byte code translation technique which is proposed by the Ma et. al. [32].

结束语

介绍关于突变的突变检测和过程测试找到活突变体和突变体死亡。杀了突变体的基础上突变分数计算。测试用例是有效的通过生成测试用例和突变分数之间的关系。测试用例突变体的基础上被定义为弱和强突变体。弱突变体分为四部分表现疲弱,弱强,基本块/ 1和基本块/ N。弱变异测试是产生突变体框架,应用变异算子及其技术。非常昂贵的测试,减少变异测试。各种程序中描述的五个阶段。降低了突变体后,计算成本也降低了优化的运行时突变体不同的技术。
在未来突变体用于安全策略找到安全特性的薄弱部位。程序的效率还可以增加了计算变异算子。突变体效果也可以分为高效、有效和低有效。

引用

  1. E。J Weyuker和T。J Ostrand”理论的程序测试和展示子域的应用,“IEEE软件工程事务。,se 6卷,1980年。
  2. j . Goodenough和s . l .台北“测试数据选择的理论,”IEEE软件工程事务。SE-3 1977卷。
  3. R。G哈姆雷特,(1977),“测试项目借助编译器”,IEEE软件工程,1977。
  4. r . DeMillo r·利普顿和F Sayward(1978),“提示测试数据选择:帮助练习的程序员,”电脑,11(4):41:1978年4月。
  5. 安东尼娅Estero-Botaro Palomo-Lozano Inmaculada麦地那Bulo设计,“ws - bpel成分定量评价的变异算子”计算机语言和系统、C大学吗?防空识别区域却,西班牙。
  6. M。伍德沃德,Algebaric规范中“错误和一个实验Mutaion测试工具”软件工程杂志》,页211 - 224,1993年7月。
  7. y贾和m·哈曼”发展的分析和调查突变测试”,波峰中心,伦敦国王学院的科技,众议员TR-09-06 2009。
  8. A.J.奥福特。,“Investigations of the Software Testing Coupling Effect”, ACM Transactions on Software engineering Methodology 1(1):3-18 January 1992.
  9. 一个。Derzinska,“质量评估变异操作专用的c#程序”在QSIC 2006:第六国际会议质量的软件,北京,中国:IEEE计算机协会,2006年,页227 - 234。
  10. 豪顿w·e·(1982),“弱突变检测和Completenes测试集”,IEEE软件工程事务,8(4):371 - 379页。
  11. w·E豪顿,“函数式编程测试和分析”,麦格劳-希尔图书公司纽约纽约1987年版。
  12. M。R伍德沃德和k .工厂,(1988),“从弱到强,死的还是活的?分析一些突变测试问题”研讨会软件测试,验证和分析,页152 - 158,班夫阿尔伯塔省,1988年7月。国际工程师协会下属的计算机协会的新闻。
  13. Natthapol Thaisakonpun和Taratip Suwannasart”突变测试表达式修改运营商BPEL“软件工程实验室,卓越中心在软件工程中,工程学院,chulaongkorn大学,泰国曼谷。
  14. 杰斐逊奥福特和斯蒂芬·d·李,“实证评价弱突变”,非正式和软件系统信息工程系,费尔法克斯的乔治梅森大学弗吉尼亚州22030年,斯蒂芬·d·李,IBM公司A00/062, P。O 12195箱,27709年数控,三角研究园1996年2月24日。
  15. 侯赛因,硕士论文“突变集群”,伦敦国王学院,2008年伦敦链。
  16. 霁。徐和Z Z Chen赵”,突变集群基于域分析的新方法”在21学报》国际Conferenceon软件工程和知识工程(SEKE ' 09)。马萨诸塞州波士顿:知识体系研究所研究生院,2009年7月1 - 3。
  17. ”美联社Mathur性能软件测试的有效性和可靠性问题,“在第五届国际计算机软件和应用研讨会论文集(COMPASC ' 79),东京,日本,1991年9月11 - 13日,页604 - 605。
  18. a·J奥福特,g . Rothernel和C。Zapf,“选择性突变体的实验评估,”在第15届国际会议上软件工程学报》(ICSE ' 93)。在马里兰州的巴尔的摩IEEE计算机协会出版社1993年5月,pp100 - 107。
  19. 一个。年代Namin J.H.安德鲁斯,“通过减少变量找到足够的变异算子”在第二届研讨会突变分析(突变06年)。罗利,北Carollna: IEEE计算机协会,2006年11月,p。5。
  20. 一个。年代Namin J.H.安德鲁斯,充足的突变体在第29届国际会议上软件工程学报》(ICSE伴侣' 07)明尼阿波利斯,明尼苏达州,20-26 5月,2007年,页73 - 74。
  21. 一个。年代Namin J.H.安德鲁斯和d·j·默多克“足够的变异算子Masuring测试有效性”在30日的程序软件工程国际会议(ICSE ' 08)、莱比锡、德国,2008年5月10 - 18,351 - 360页。
  22. Y。贾·m·哈曼,“构建微妙的错误使用高阶变异测试”工作的第八届国际研讨会论文集源代码分析和操纵(骗局' 08),北京,中国,28 - 29日Sepetember 2008页249 - 258。
  23. m .马球,我和m . Plattini Garcala-Rodriguez“减少变异测试的成本与二阶变异”软件测试验证和可靠性,19卷,没有。2,页111 - 131,2008年6月。
  24. y贾·m·哈曼,“高阶变异测试”杂志的信息和软件技术,伦敦国王学院、波峰中心链,伦敦,2009年,页3月11日,1-41。
  25. d·杰克逊和核磁共振伍德沃德,“平行公司突变的Java程序”的程序1日研讨会(突变的突变分析00),以书的形式出版,作为新世纪的突变检测,圣何塞,加利福尼亚,2001年10月6日至7日,55 - 61页。
  26. A.J. Offutt和k . n .王”,一个Fortran 77翻译突变分析”ACM SIGPLAN通知,22卷,没有。7日,页。177 - 188年,1987年7月。
  27. 卷Delamaro“Proteum -一个基于突变分析的测试环境”硕士论文,大学ofbSao保罗,圣保罗,巴西,1993年。
  28. b .胆固醇和美联社Mathur高性能突变测试”期刊的系统和软件,20卷,没有。2,第152 - 135页,1993年2月。
  29. R.A. DeMillo E.W.克劳斯和美联社Mathur Compiler-Integrated计划突变,在第五届计算机软件和应用研讨会论文集(COMPASC ' 91),日本东京:IEEE计算机协会出版社,1991年9月,第351 - 356页。
  30. r.h Untch,“基于突变的软件测试使用程序Scemata”30年东南地区研讨会论文集(ACMSE”1992年,北卡罗莱那州首府罗利92),页285 - 291。
  31. 右Untch”,基于突变一个新的测试数据充分性评估方法”博士论文,克莱姆森大学克莱姆森,南卡罗来纳,1995年12月。
  32. 屈服强度。,一个。J. Offutt and Y.R. kwon, “MuJava: An automated Class Mutation System” Software Testing, Verification and Reliability, vol. 15, no. 2, pp. 97-133, June 2005.