Mutation Testing : A comparison of mutation selection methods

Software is all around us in our lives in the industrialized world, and we as a society and individuals need it to function correctly. Software testing fills the role of performing behavior audits, to guide the correction of the software to its intended behavior. The consequences of faulty software...

Full description

Bibliographic Details
Main Author: Hagman, Hans
Format: Others
Language:English
Published: Högskolan i Skövde, Institutionen för kommunikation och information 2012
Subjects:
Online Access:http://urn.kb.se/resolve?urn=urn:nbn:se:his:diva-6569
Description
Summary:Software is all around us in our lives in the industrialized world, and we as a society and individuals need it to function correctly. Software testing fills the role of performing behavior audits, to guide the correction of the software to its intended behavior. The consequences of faulty software can range to the late arrival of trains, to nuclear meltdowns. This places quality requirements on the software of various levels. Program based mutation testing provides a high level of faultfinding capability. It does this by injecting many synthetic faults into the code under test, as described by mutation operators. These faults are used to search for testcases that would identify such faults, and consequently find real faults that the synthetic faults mimic. However, mutation testing is costly on three accounts; each mutant of the original code is compiled, each mutant should ideally have an associated testcase to reveal that fault the mutant contains, finally the testcases are analyzed thoroughly by looking the output of the original and mutants to reveal the error in behavior. In order to reduce cost while maintaining a high level of faultfinding, selective mutation testing is investigated, it uses a subset of all the available mutation operators. The investigation found that using Absolute value-, and Relational operator-, mutation reduces cost of mutation testing by 80%, while uncovering 83% of the injected faults.