2 research outputs found

    Higher Order Mutation Testing

    Get PDF
    Mutation testing is a fault-based software testing technique that has been studied widely for over three decades. To date, work in this field has focused largely on first order mutants because it is believed that higher order mutation testing is too computationally expensive to be practical. This thesis argues that some higher order mutants are potentially better able to simulate real world faults and to reveal insights into programming bugs than the restricted class of first order mutants. This thesis proposes a higher order mutation testing paradigm which combines valuable higher order mutants and non-trivial first order mutants together for mutation testing. To overcome the exponential increase in the number of higher order mutants a search process that seeks fit mutants (both first and higher order) from the space of all possible mutants is proposed. A fault-based higher order mutant classification scheme is introduced. Based on different types of fault interactions, this approach classifies higher order mutants into four categories: expected, worsening, fault masking and fault shifting. A search-based approach is then proposed for locating subsuming and strongly subsuming higher order mutants. These mutants are a subset of fault mask and fault shift classes of higher order mutants that are more difficult to kill than their constituent first order mutants. Finally, a hybrid test data generation approach is introduced, which combines the dynamic symbolic execution and search based software testing approaches to generate strongly adequate test data to kill first and higher order mutants

    System level mutation analysis applied to a state-based language

    No full text
    One of the great challenges within software testing is to know ira test suite covers a program sufficiently. Mutation analysis is presented as an approach to address that challenge. Faulty versions, or mutants, are created and it is investigated if the test suite is able to discover the defects. The technique is mostly applied to the unit level testing of software programs. In this paper, mutation analysis is applied to integration and system level testing in addition to unit level testing. A state based specification and description language, SDL, is used. The specific structural information is used to employ mutation analysis at different abstraction levels
    corecore