Nie jestem w 100% pewien, czy poniższe wyjaśnienie jest historycznie dokładne. Jeśli tak nie jest, prosimy o edycję lub usunięcie.
Testy mutacyjne zostały wynalezione przez Lipton. Testowanie mutacji może być postrzegane jako sposób pomiaru jakości lub skuteczności zestawu testów. Kluczową ideą jest wstrzyknięcie błędów do testowanego programu (tj. Zmutowanie programu), najlepiej rodzajów błędów, które może popełnić ludzki programista, i sprawdzenie, czy zestaw testów znajdzie wprowadzone błędy. Typowym przykładem tego rodzaju testu mutacji uszkodzeń może być zastąpienie x> 0 x x 0 lub x przez x + 1 lub x-1. Część błędów wykrytych przez zestaw testowy to „wynik adekwatności mutacji” zestawu testowego. Mówiąc bardzo swobodnie, można myśleć o tym jako o metodzie Monte-Carlo do obliczania wyniku adekwatności mutacji.
Mówiąc bardziej abstrakcyjnie, można powiedzieć, że testowanie mutacji wysuwa na pierwszy plan symetrię lub dwoistość między programem a zestawami testów: nie tylko zestaw testów może być użyty do uzyskania większej pewności co do poprawności programu, ale odwrotnie, program może być używane, aby zyskać pewność co do jakości zestawu testów.
W świetle tej dualności testowanie mutacji jest również koncepcyjnie bliskie wstrzyknięciu winy . Oba są technicznie podobne, ale mają różne cele. Testowanie mutacji ma na celu pomiar jakości zestawu testów, podczas gdy wstrzykiwanie błędów ma na celu ustalenie jakości programu, zwykle jakości obsługi błędów.
Ostatnio pomysły z testów mutacji zostały wykorzystane do przetestowania (sformalizowania) teorii logicznych. Parafrazując streszczenie (4): Przy opracowywaniu nietrywialnych formalizacji w dowodzie twierdzącym, znaczną ilość czasu poświęca się na „debugowanie” specyfikacji i twierdzeń. Zazwyczaj nieprawidłowe próby lub twierdzenia są wykrywane podczas nieudanych prób dowodu. Jest to droga forma debugowania. Dlatego często przydaje się testowanie przypuszczeń przed rozpoczęciem dowodu. Możliwym sposobem na to jest przypisanie losowych wartości do wolnych zmiennych hipotezy, a następnie ich ocena. (4) wykorzystuje mutacje do testowania jakości używanych generatorów przypadków testowych.
Historia . Z (1): Historię testów mutacyjnych można prześledzić do 1971 r. W pracy studenckiej Richarda Liptona [...] Narodziny tej dziedziny można również zidentyfikować w innych artykułach opublikowanych pod koniec lat 70. XX w. Przez Liptona i in. (2) oraz Hamleta (3).
Repozytorium testów mutacji: teoria testów mutacji .
RA DeMillo, RJ Lipton, FG Sayward, Wskazówki dotyczące wyboru danych testowych: Pomoc dla ćwiczącego programisty .
RG Hamlet, Testowanie programów z pomocą kompilatora .
S. Berghofer, T. Nipkow, Losowe testy w Isabelle / HOL. .