Selecting a software engineering tool: lessons learnt from mutation analysis
- 16 January 2015
- journal article
- research article
- Published by Wiley in Software: Practice and Experience
- Vol. 45 (7) , 875-891
Abstract
Summary: Software developers employ many tools in every step of the development. As automation progresses, tools take a more and more important place. A common and difficult problem is choosing a tool among every tool for a given task.As a particular instance of this problem, this paper considers mutation analysis tools. Mutation analysis is a way to evaluate the quality of a test suite. The quality is measured as the ability of the test suite to detect faults injected into the program under tests. A fault is detected if at least one test case gives different results on the original program and the fault‐injected one. Mutation tools aim at automating and speeding both the generation of fault‐injected variants, called mutants, and the execution of the test suite on those mutants.This paper proposes a methodology to compare tools and applies it for comparing mutation tools. This methodology proposes to dress a list of comparison criteria as well as a list of usage profiles. Mutation tools for Java are compared on paper and by experiments. The work is then extended to other languages to assert the pertinence of the comparison criteria and the usage profiles. Finally, lessons are drawn from our selection process. Copyright © 2015 John Wiley & Sons, Ltd.Keywords
Funding Information
- French-government Single Inter-Ministry Fund (FUI) (IO32-V6)
This publication has 32 references indexed in Scilit:
- Judy – a mutation testing tool for JavaIET Software, 2010
- On guiding the augmentation of an automated test suite via mutation analysisEmpirical Software Engineering, 2008
- Integrating techniques and tools for testing automationSoftware Testing, Verification and Reliability, 2006
- Comparison of Public End-to-End Bandwidth Estimation Tools on High-Speed Links2005
- MuJava: an automated class mutation systemSoftware Testing, Verification and Reliability, 2004
- A mutation analysis tool for Java programsInternational Journal on Software Tools for Technology Transfer, 2002
- Toward the determination of sufficient mutant operators for C†Software Testing, Verification and Reliability, 2001
- Using compiler optimization techniques to detect equivalent mutantsSoftware Testing, Verification and Reliability, 1994
- Mutation analysis using mutant schemata1993
- Mutation analysis using mutant schemataACM SIGSOFT Software Engineering Notes, 1993