Efficient multi-objective higher order mutation testing with genetic programming

Research output: Contribution to journalArticlepeer-review

125 Citations (Scopus)

Abstract

It is said 90% of faults that survive manufacturer's testing procedures are complex. That is, the corresponding bug fix contains multiple changes. Higher order mutation testing is used to study defect interactions and their impact on software testing for fault finding. We adopt a multi-objective Pareto optimal approach using Monte Carlo sampling, genetic algorithms and genetic programming to search for higher order mutants which are both hard-to-kill and realistic. The space of complex faults (higher order mutants) is much larger than that of traditional first order mutations which correspond to simple faults, nevertheless search based approaches make this scalable. The problems of non-determinism and efficiency are overcome. Easy to detect faults may become harder to detect when they interact and impossible to detect single faults may be brought to light when code contains two such faults. We use strong typing and BNF grammars in search based mutation testing to find examples of both in ancient heavily optimised every day C code. (C) 2010 Elsevier Inc. All rights reserved.
Original languageEnglish
Pages (from-to)2416 - 2430
Number of pages15
JournalJournal of Systems and Software
Volume83
Issue number12
DOIs
Publication statusPublished - Dec 2010

Fingerprint

Dive into the research topics of 'Efficient multi-objective higher order mutation testing with genetic programming'. Together they form a unique fingerprint.

Cite this