Probability-based semantic interpretation of mutants

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

Abstract

Mutation analysis is a stringent and powerful technique for evaluating the ability of a test suite to find faults. It generates a large number of mutants and applies the test suite to them one at a time. As mutation analysis is computationally expensive, it is usually performed on a subset of mutants. The competent programmer hypothesis suggests that experienced software developers are more likely to make small mistakes. It is prudent therefore to focus on semantically small mutants that represent mistakes developers are likely to make. We previously introduced a technique to assess mutant semantics using static analysis by comparing the numerical range of their symbolic output expressions. This paper extends our previous work by considering the probability the output of a mutant is the same as the original program. We show how probability-based semantic interpretation can be used to select mutants that are semantically more similar than those selected by our previous technique. In addition to numerical outputs, it also provides support for modelling the semantics of Boolean variables, strings and composite objects.

Original languageEnglish
Title of host publicationProceedings - IEEE Seventh International Conference on Software Testing, Verification and Validation Workshops
Subtitle of host publicationICSTW 2014
PublisherIEEE Computer Society
Pages186-195
Number of pages10
ISBN (Print)9780769551944
DOIs
Publication statusPublished - 2014
Event7th IEEE International Conference on Software Testing, Verification and Validation Workshops, ICSTW 2014 - Cleveland, OH, United Kingdom
Duration: 31 Mar 20144 Apr 2014

Conference

Conference7th IEEE International Conference on Software Testing, Verification and Validation Workshops, ICSTW 2014
Country/TerritoryUnited Kingdom
CityCleveland, OH
Period31/03/144/04/14

Keywords

  • mutant selection
  • mutation analysis
  • semantic interpretation
  • static analysis
  • symbolic execution

Cite this