An Exploratory Study of Higher Order Mutation Testing in Aspect-Oriented Programming

Elmahdi Omar, Sudipto Ghosh
{"title":"An Exploratory Study of Higher Order Mutation Testing in Aspect-Oriented Programming","authors":"Elmahdi Omar, Sudipto Ghosh","doi":"10.1109/ISSRE.2012.6","DOIUrl":null,"url":null,"abstract":"Higher order mutation testing is a relatively new area of research. Researchers have claimed that higher order mutants have the potential to increase test effectiveness and reduce test effort. However, these claims have not been evaluated in the context of the aspect-oriented programming paradigm, which introduces new and unique concepts and constructs, and consequently new testing challenges. We present an exploratory study of higher order mutation testing in the context of AspectJ, which is the most widely used aspect-oriented programming language. Based on published fault-models, we propose four approaches to constructing higher order mutants in AspectJ programs. We evaluate the approaches in terms of their ability to create higher order mutants that result in higher test effectiveness and lower test effort compared to first order mutants. The approaches (1) insert two faults in a single base class or two faults in a single aspect, (2) insert two faults in two different base classes, (3) insert two faults in two different aspects, and (4)~insert one fault in a base class and one in an aspect. We developed a prototype tool that automates the process of generating, compiling, and executing higher order mutants. The first approach produced a larger percentage of higher order mutants that were harder to kill than the constituent first order mutants as compared to the last three approaches. The first approach lowered the total number of mutants to be compiled and executed to a greater extent than the last three approaches. The last three approaches produced a lower density of equivalent mutants but the absolute number of equivalent mutants is greater for higher order mutants than for first order mutants.","PeriodicalId":172003,"journal":{"name":"2012 IEEE 23rd International Symposium on Software Reliability Engineering","volume":"8 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2012-11-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"24","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2012 IEEE 23rd International Symposium on Software Reliability Engineering","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/ISSRE.2012.6","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 24

Abstract

Higher order mutation testing is a relatively new area of research. Researchers have claimed that higher order mutants have the potential to increase test effectiveness and reduce test effort. However, these claims have not been evaluated in the context of the aspect-oriented programming paradigm, which introduces new and unique concepts and constructs, and consequently new testing challenges. We present an exploratory study of higher order mutation testing in the context of AspectJ, which is the most widely used aspect-oriented programming language. Based on published fault-models, we propose four approaches to constructing higher order mutants in AspectJ programs. We evaluate the approaches in terms of their ability to create higher order mutants that result in higher test effectiveness and lower test effort compared to first order mutants. The approaches (1) insert two faults in a single base class or two faults in a single aspect, (2) insert two faults in two different base classes, (3) insert two faults in two different aspects, and (4)~insert one fault in a base class and one in an aspect. We developed a prototype tool that automates the process of generating, compiling, and executing higher order mutants. The first approach produced a larger percentage of higher order mutants that were harder to kill than the constituent first order mutants as compared to the last three approaches. The first approach lowered the total number of mutants to be compiled and executed to a greater extent than the last three approaches. The last three approaches produced a lower density of equivalent mutants but the absolute number of equivalent mutants is greater for higher order mutants than for first order mutants.
面向方面编程中高阶突变测试的探索性研究
高阶突变检测是一个相对较新的研究领域。研究人员声称,高阶突变体具有提高测试效率和减少测试工作量的潜力。然而,这些声明并没有在面向方面的编程范例的背景下进行评估,它引入了新的和独特的概念和结构,并因此带来了新的测试挑战。我们提出了一个探索性的高阶突变测试在AspectJ的背景下,这是最广泛使用的面向方面的编程语言。基于已发表的故障模型,我们提出了在AspectJ程序中构建高阶突变体的四种方法。我们根据创建高阶突变的能力来评估这些方法,与一阶突变相比,高阶突变导致更高的测试效率和更低的测试工作量。(1)在单个基类中插入两个故障或在单个方面插入两个故障;(2)在两个不同的基类中插入两个故障;(3)在两个不同的方面中插入两个故障;(4)在一个基类中插入一个故障,在一个方面中插入一个故障。我们开发了一个原型工具,使生成、编译和执行高阶突变的过程自动化。与后三种方法相比,第一种方法产生的高阶突变体的比例更大,比构成的一阶突变体更难杀死。第一种方法比后三种方法在更大程度上降低了要编译和执行的突变体的总数。后三种方法产生的等效突变体密度较低,但高阶突变体的等效突变体绝对数量大于一阶突变体。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信