Mutations: How close are they to real faults?

被引:64
作者
Gopinath, Rahul [1 ]
Jensen, Carlos [1 ]
Groce, Alex [1 ]
机构
[1] Oregon State Univ, Corvallis, OR 97331 USA
来源
2014 IEEE 25TH INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING (ISSRE) | 2014年
关键词
COVERAGE;
D O I
10.1109/ISSRE.2014.40
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:189 / 200
页数:12
相关论文
共 35 条
  • [1] Agrawal H., 1989, Design of mutant operators for the C programming language
  • [2] Ammann P., 2016, INTRO SOFTWARE TESTI
  • [3] Using mutation analysis for assessing and comparing testing coverage criteria
    Andrews, James H.
    Briand, Lionel C.
    Labiche, Yvan
    Namin, Akbar Siami
    [J]. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2006, 32 (08) : 608 - 624
  • [4] Is mutation an appropriate tool for testing experiments?
    Andrews, JH
    Briand, LC
    Labiche, Y
    [J]. ICSE 05: 27TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS, 2005, : 402 - 411
  • [5] [Anonymous], HDB SOFTWARE RELIABI
  • [6] [Anonymous], 2003, FAULT INJECTION TECH
  • [7] Antoniol G, 2008, P 2008 C CTR ADV STU, DOI [10.1145/1463788.1463819, DOI 10.1145/1463788.1463819]
  • [8] Budd T.A., 1980, POPL '80: Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, (New York, NY, USA), P220
  • [9] Budd T.A., 1979, Mutation Analysis
  • [10] Generation of an error set that emulates software faults based on field data
    Christmansson, J
    Chillarege, R
    [J]. PROCEEDINGS OF THE TWENTY-SIXTH INTERNATIONAL SYMPOSIUM ON FAULT-TOLERANT COMPUTING, 1996, : 304 - 313