Mutations: How close are they to real faults?

Rahul Gopinath, Carlos Jensen, Alex Groce

Research output: Chapter in Book/Report/Conference proceedingConference contribution

79 Scopus citations

Abstract

Mutation analysis is often used to compare the effectiveness of different test suites or testing techniques. One of the main assumptions underlying this technique is the Competent Programmer Hypothesis, which proposes that programs are very close to a correct version, or that the difference between current and correct code for each fault is very small. Researchers have assumed on the basis of the Competent Programmer Hypothesis that the faults produced by mutation analysis are similar to real faults. While there exists some evidence that supports this assumption, these studies are based on analysis of a limited and potentially non-representative set of programs and are hence not conclusive. In this paper, we separately investigate the characteristics of bug-fixes and other changes in a very large set of randomly selected projects using four different programming languages. Our analysis suggests that a typical fault involves about three to four tokens, and is seldom equivalent to any traditional mutation operator. We also find the most frequently occurring syntactical patterns, and identify the factors that affect the real bug-fix change distribution. Our analysis suggests that different languages have different distributions, which in turn suggests that operators optimal in one language may not be optimal for others. Moreover, our results suggest that mutation analysis stands in need of better empirical support of the connection between mutant detection and detection of actual program faults in a larger body of real programs.

Original languageEnglish (US)
Title of host publicationProceedings - IEEE 25th International Symposium on Software Reliability Engineering, ISSRE 2014
PublisherIEEE Computer Society
Pages189-200
Number of pages12
ISBN (Electronic)9781479960323
DOIs
StatePublished - Dec 11 2014
Externally publishedYes
Event25th IEEE International Symposium on Software Reliability Engineering, ISSRE 2014 - Naples, Italy
Duration: Nov 3 2014Nov 6 2014

Publication series

NameProceedings - International Symposium on Software Reliability Engineering, ISSRE
ISSN (Print)1071-9458

Conference

Conference25th IEEE International Symposium on Software Reliability Engineering, ISSRE 2014
Country/TerritoryItaly
CityNaples
Period11/3/1411/6/14

Keywords

  • mutation analysis
  • software testing

ASJC Scopus subject areas

  • Software
  • Safety, Risk, Reliability and Quality

Fingerprint

Dive into the research topics of 'Mutations: How close are they to real faults?'. Together they form a unique fingerprint.

Cite this