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 New Deals is to exterminate the class of creditors and thrust all men into that of debtors. It is like trying to breed cattle with all cows and no bulls.
    —H.L. (Henry Lewis)

    When I write down my thoughts, they do not escape me. This action makes me remember my strength which I forget at all times. I educate myself proportionately to my captured thought. I aim only to distinguish the contradiction between my mind and nothingness.
    Isidore Ducasse, Comte de LautrĂ©amont (1846–1870)

    Do not let it be your aim to be something, but to be someone.
    Victor Hugo (1802–1885)