计算机工程与应用 ›› 2019, Vol. 55 ›› Issue (20): 1-12.DOI: 10.3778/j.issn.1002-8331.1908-0256

• 热点与综述 • 上一篇    下一篇

基于变异测试的错误定位研究进展

姚毅文,姜淑娟,薄莉莉   

  1. 中国矿业大学 计算机科学与技术学院,江苏 徐州 221116
  • 出版日期:2019-10-15 发布日期:2019-10-14

Survey of Mutation-Based Fault Location

YAO Yiwen, JIANG Shujuan, BO Lili   

  1. School of Computer Science and Technology, China University of Mining and Technology, Xuzhou, Jiangsu 221116, China
  • Online:2019-10-15 Published:2019-10-14

摘要: 随着软件规模和复杂度的不断提高,软件的质量问题成为了关注的焦点,如何高效地找出软件中的错误成为一个亟需解决的问题。错误定位是软件质量保证的重要途径之一,近年来已经成为软件工程中一个非常重要的研究课题。基于变异测试的错误定位通过比较原程序和对应变异体的差异来计算每条语句的怀疑度,再由怀疑度大小进行排序,程序员根据排序逐个检查找出错误语句。汇总近7年(2012—2018)国内外的基于变异测试的错误定位技术的研究成果,介绍了错误定位的基本方法,介绍基于变异测试的错误定位思想,从变异算子、变异体及等价变异体3个方面对已有的研究工作进行分类归纳和总结,探讨了基于变异测试的错误定位未来可能的研究方向、机遇和挑战。

关键词: 变异测试, 变异算子, 等价变异体, 错误定位

Abstract: With the continuous improvement of software scale and complexity, large amounts of researchers have focused their attention on the quality of software. Fault location is one of the important ways of software quality assurance. In recent years, it has become a very important research topic in software engineering. Moreover, how to efficiently find faults in software has become an urgent problem to be solved. Mutation-based fault location calculates the suspicion of each statement by comparing the difference between the original program and the corresponding mutant. Then statements are sorted according to the degree of suspicion. Finally, the programmer checks the statement one by one according to the sorting. The research results of fault location based on mutation test in the past 7 years (2012—2018) are summarized. Firstly, the basic methods of fault location are introduced. Secondly, the ideas of fault location based on mutation test are discussed. Then, the existing research work is classified and summarized from three aspects:mutation operator, mutant and equivalent mutant. Finally, the possible research directions, opportunities and challenges are discussed.

Key words: mutation testing, mutation operator, equivalent mutant, fault location