Generation of Efficient Test Cases for Mutation Testing

Faculty Mentor Information

Dr. Elena Sherman

Abstract

Testing is one of the mainstream program verification techniques where a program is executed on a set of program inputs. A single such input is referred to as a test case and a set of test cases are called a test suite. Forming such a test suite from infinitely many test cases is an important research approach in testing. One of the selection techniques is mutation testing. In this approach several copies of the original program are created with each copy slightly modified, or mutated. This modification simulates a defected version of this program. The goal is to create test cases that expose the bugs in the mutated copies, which are referred to as mutants. The goal of this project is to develop a framework that (1) generates mutants, (2) records possible program paths that could expose the mutation and (3) using dynamic symbolic execution generates a test suite that executes those paths. This framework will allow us to automatically and efficiently test the quality of programs, and in turn make sure the programs execute the way they are intended to.

Comments

Poster #Th34

This document is currently not available here.

Share

COinS
 

Generation of Efficient Test Cases for Mutation Testing

Testing is one of the mainstream program verification techniques where a program is executed on a set of program inputs. A single such input is referred to as a test case and a set of test cases are called a test suite. Forming such a test suite from infinitely many test cases is an important research approach in testing. One of the selection techniques is mutation testing. In this approach several copies of the original program are created with each copy slightly modified, or mutated. This modification simulates a defected version of this program. The goal is to create test cases that expose the bugs in the mutated copies, which are referred to as mutants. The goal of this project is to develop a framework that (1) generates mutants, (2) records possible program paths that could expose the mutation and (3) using dynamic symbolic execution generates a test suite that executes those paths. This framework will allow us to automatically and efficiently test the quality of programs, and in turn make sure the programs execute the way they are intended to.