Mutation Testing - Aim

Aim

Tests can be created to verify the correctness of the implementation of a given software system, but the creation of tests still poses the question whether the tests are correct and sufficiently cover the requirements that have originated the implementation. (This technological problem is itself an instance of a deeper philosophical problem named "Quis custodiet ipsos custodes?" .) In this context, mutation testing was pioneered in the 1970s to locate and expose weaknesses in test suites. The theory was that if a mutation was introduced without the behavior (generally output) of the program being affected, this indicated either that the code that had been mutated was never executed (redundant code) or that the testing suite was unable to locate the injected fault. In order for this to function at any scale, a large number of mutations had to be introduced into a large program, leading to the compilation and execution of an extremely large number of copies of the program. This problem of the expense of mutation testing had reduced its practical use as a method of software testing, but the increased use of object oriented programming languages and unit testing frameworks has led to the creation of mutation testing tools for many programming languages as a means to test individual portions of an application.

Read more about this topic:  Mutation Testing

Famous quotes containing the word aim:

    The aim of art is almost divine: to bring to life again if it is writing history, to create if it is writing poetry.
    Victor Hugo (1802–1885)

    Usefulness! It is not a fascinating word, and the quality is not one of which the aspiring spirit can dream o’ nights, yet on the stage it is the first thing to aim at.
    Ellen Terry (1847–1928)

    Applause is the spur of noble minds, the end and aim of weak ones.
    —C.C. (Charles Caleb)