Skip to main content

Undefined Behaviour in Mutation Testing

Resource type
Thesis type
(Thesis) M.Sc.
Date created
2016-09-13
Authors/Contributors
Abstract
Mutation testing is used to evaluate the quality of a test suite by measuring how well the test suite detects systematically seeded faults (mutants). However, in the C programming language, the created mutants may introduce undefined behaviour. Such a mutant has no meaning and thus cannot meaningfully be reported as either detected or undetected by mutation testing. This introduces two problems. First, it increases the number of mutants that must be considered for mutation testing. Second, it creates a potential for bias in the mutation score when mutants with undefined behavior count toward the number of detected or undetected mutants. This thesis makes contributions toward identifying the ways in which traditional mutation testing mechanisms may lead to undefined behavior. It furthermore introduces automated analyses for statically detecting mutants that cause undefined behavior so that they can be filtered out ahead of time. A proof of concept implementation using Clang and LLVM validates that these techniques work for real world programs in the C programming language.
Document
Identifier
etd9822
Copyright statement
Copyright is held by the author.
Permissions
This thesis may be printed or downloaded for non-commercial research and scholarly purposes.
Scholarly level
Supervisor or Senior Supervisor
Thesis advisor: Sumner, William
Member of collection
Download file Size
etd9822_MEbrahimipour.pdf 490.15 KB

Views & downloads - as of June 2023

Views: 7
Downloads: 0