An Equivalent Mutation Detection Method for Class-Level Mutation Analysis

클래스 수준 뮤테이션 분석을 위한 동등 뮤턴트 검출 기법

  • Received : 2009.12.21
  • Accepted : 2010.02.22
  • Published : 2010.05.15

Abstract

Mutation testing is known as a very useful technique for measuring the effectiveness of a test data set and finding weak points of the test set. An equivalent mutant degrades the effectiveness of mutation testing. Elimination of equivalent mutants is a very important problem in mutation testing.In this paper, we proposed kinds of methods for detecting class-level equivalent mutants. These methods judge the equivalency of mutants through structural informations and behavioral information of the original program and mutants using static analysis. We found that our approach can detect not a few of equivalent mutants and expected that the cost of mutation testing can be saved considerably.

클래스 수준 뮤테이션 분석(class-level mutation analysis)의 경우, 동등 뮤턴트(equivalent mutant)는 전체 뮤턴트들의 개수에서 많은 비중을 차지하기 때문에 동등 뮤턴트의 검출은 뮤테이션 수행 비용 절감에 매우 중요하다. 하지만 현재까지 클래스 수준 뮤테이션을 대상으로 동등 뮤턴트를 검출하는 연구는 미미한 실정이다. 본 논문에서는 클래스 수준 뮤테이션을 대상으로 의존성 그래프(dependency graph)를 이용하여 동등 뮤턴트를 검출하기 위한 기법을 제안한다. 제안한 기법은 인트라-클래스(intra-class) 수준에서 정적분석을 수행함으로써 인트라-메소드(intra-method) 수준의 분석 방법을 사용하는 기존의 연구들이 검출할 수 없었던 클래스 수준 동등 뮤턴트를 검출할 수 있었다.

Keywords

References

  1. J. H. Andrews, L. C. Briand and Y. Labiche. Is mutation an appropriate tool for testing experiments? Proceedings of the 27th international conference on Software engineering, pp.402-411, 2005.
  2. A. J. Offutt, J. Pan, K. Tewary and T. Zhang. An experimental evaluation of data flow and mutation testing. Software Practice and Experience, 26: 165-176, 1996. https://doi.org/10.1002/(SICI)1097-024X(199602)26:2<165::AID-SPE5>3.0.CO;2-K
  3. P. G. Frankl, S. N. Weiss and C. Hu. All-uses vs mutation testing: An experimental comparison of effectiveness. J. Systems software 1997, 38:235-253, 1997. https://doi.org/10.1016/S0164-1212(96)00154-9
  4. A. J. Offutt and W. M. Craft. Using compiler optimization techniques to detect equivalent mutants. Software Testing, Verification and Reliability, volume 4 issue 3, pp.131-154, 1994. https://doi.org/10.1002/stvr.4370040303
  5. A. J. Offutt and J. Pan. Automatically detecting equivalent mutants and infeasible paths. Software Testing, Verification and Reliability, volume 7, pp.165-192, 1997. https://doi.org/10.1002/(SICI)1099-1689(199709)7:3<165::AID-STVR143>3.0.CO;2-U
  6. R. Hierons, M. Harman and S. Danicic. Using program slicing to assist in the detection of equivalent mutants. Software Testing, Verification and Reliability, volume 9, pp.233-262, 1999. https://doi.org/10.1002/(SICI)1099-1689(199912)9:4<233::AID-STVR191>3.0.CO;2-3
  7. Y. S. Ma, M. J. Harrold and Y. R. Kwon. Evaluation of mutation testing for object-oriented programs. ICSE'06, May 20-28, 2006.
  8. Wikipedia the free encyclopedia, Dependency Graph, http://en.wikipedia.org/wiki/Dependency_graph
  9. P. Wegner and S. B. Zdonik. Inheritance as an incremental modification mechanism or what like is and isn't like. Proceedings of ECOOP'88, pages 55-77, 1988.
  10. Y. S. Ma, Y. R. Kwon and A. J. Offutt. Inter-class mutation operators for Java. Proceedings of the 13 th International Symposium on Software Reliability Engineering(ISSRE'02), 2002.
  11. Y. S. Ma, A. J. Offutt and Y. R. Kwon. MuJava: an automated class mutation system. Software Testing, Verification and Reliability, volume 15, pp.97-133, 2005. https://doi.org/10.1002/stvr.308
  12. A. J. Offutt, Y. S. Ma and Y. R. Kwon. The class-level mutants of MuJava. Proceedings of the 2006 international workshop on Automation of software test, pp.78-84, 2006.