Co to jest testowanie mutacji? (Przykład)
Co to jest testowanie mutacji?
Testy mutacji to rodzaj testowania oprogramowania, podczas którego pewne instrukcje kodu źródłowego są zmieniane/mutowane w celu sprawdzenia, czy przypadki testowe są w stanie znaleźć błędy w kodzie źródłowym. Celem testowania mutacji jest zapewnienie jakości przypadków testowych pod względem odporności, aby nie zdały one zmutowanego kodu źródłowego.
Zmiany wprowadzone w programie mutantów powinny być bardzo małe, aby nie wpływały na ogólny cel programu. Testowanie mutacji jest również nazywane strategią testowania opartą na błędach, ponieważ polega na stworzeniu błędu w programie i jest rodzajem Biały Box Testowanie do czego służy głównie Testów jednostkowych.
Mutację pierwotnie zaproponowano w 1971 r., ale straciła ona zapał ze względu na wysokie koszty z nią związane. Teraz ponownie zyskał na popularności i jest szeroko stosowany w językach takich jak Java i XML.
Jak przeprowadzić test mutacji?
Poniżej przedstawiono kroki wykonania testu mutacji (analizy mutacji):
Krok 1: Błędy wprowadzane są do kodu źródłowego programu poprzez tworzenie wielu wersji zwanych mutantami. Każdy mutant powinien zawierać pojedynczy błąd, a celem jest spowodowanie niepowodzenia wersji zmutowanej, co pokazuje skuteczność przypadków testowych.
Krok 2: Przypadki testowe są stosowane do programu oryginalnego, a także do programu zmutowanego. A Przypadek testowy powinien być odpowiedni i jest dostosowany do wykrywania błędów w programie.
Krok 3: Porównaj wyniki programu oryginalnego i zmutowanego.
Krok 4: Jeśli oryginalny program i zmutowane programy generują różne wyniki, oznacza to, że mutant zostaje zabity przez przypadek testowy. Dlatego przypadek testowy jest wystarczająco dobry, aby wykryć różnicę między programem oryginalnym a zmutowanym.
Krok 5: Jeśli program oryginalny i program zmutowany generują ten sam wynik, Mutant pozostaje przy życiu. W takich przypadkach należy stworzyć skuteczniejsze przypadki testowe, które zabiją wszystkie mutanty.
Jak tworzyć zmutowane programy?
Mutacja to nic innego jak pojedyncza zmiana składniowa dokonana w instrukcji programu. Każdy zmutowany program powinien różnić się od programu oryginalnego jedną mutacją.
Oryginalny program | Program mutantów |
---|---|
Jeśli (x>y)
Wydrukuj „Witam” Więcej Drukuj „Cześć” |
Jeśli(x <y)
Wydrukuj „Witam” Więcej Drukuj „Cześć” |
Co zmienić w programie Mutant?
Istnieje kilka technik, które można zastosować do generowania zmutowanych programów. Przyjrzyjmy się im
Operaoperatorzy zastępczy | Modyfikacja wyrażenia Operatorsy | Modyfikacja wypowiedzi Operatorsy |
---|---|---|
Zastąp operand innym operandem (x na y lub y na x) lub stałą wartością. | Zastąpienie operatora lub wstawienie nowych operatorów w instrukcji programu. | Instrukcje programowe są modyfikowane w celu utworzenia zmutowanych programów. |
Przykład-
Jeśli(x>y) zamień wartości x i y Jeśli(5>y) zamień x na stałą 5 |
Przykład-
Jeśli(x==y) Możemy zamienić == na >= i mieć zmutowany program jako If(x>=y) i wstawienie ++ w instrukcji Jeśli(x==++y) |
Przykład-
Usuń część else w instrukcji if-else Usuń całą instrukcję if-else, aby sprawdzić, jak zachowuje się program Niektóre przykładowe operatory mutacji:
|
Automatyzacja testowania mutacji
Testowanie mutacji jest niezwykle czasochłonne i trudne do wykonania ręcznie. Aby przyspieszyć proces, warto sięgnąć po narzędzia automatyzujące. Narzędzia do automatyzacji zmniejszają również koszty testowania.
Lista dostępnych narzędzi-
Rodzaje testów mutacji
In Inżynieria oprogramowaniaTestowanie mutacji można zasadniczo podzielić na 3 typy – mutację stwierdzeń, mutację decyzyjną i mutację wartości.
- Mutacja wypowiedzi – programista wycina i wkleja fragment kodu, co może skutkować usunięciem niektórych linii
- Mutacja wartości– modyfikowane są wartości parametrów podstawowych
- Mutacja decyzyjna– oświadczenia sterujące mają zostać zmienione
Wynik mutacji
Wynik mutacji definiuje się jako odsetek zabitych mutantów w stosunku do całkowitej liczby mutantów.
- Wynik mutacji = (zabite mutanty / całkowita liczba mutantów) * 100
Przypadki testowe są wystarczające pod względem mutacji, jeśli wynik wynosi 100%. Wyniki eksperymentów wykazały, że testowanie mutacji jest skuteczną metodą pomiaru adekwatności przypadków testowych. Jednak główną wadą jest wysoki koszt generowania mutantów i wykonywania każdego przypadku testowego przeciwko temu zmutowanemu programowi.
Zalety testowania mutacji
Oto zalety testów mutacji:
- Jest to skuteczne podejście umożliwiające osiągnięcie dużego zasięgu programu źródłowego.
- Testowanie to umożliwia kompleksowe testowanie zmutowanego programu.
- Testowanie mutacji zapewnia twórcy oprogramowania dobry poziom wykrywania błędów.
- Metoda ta odkrywa niejasności w kodzie źródłowym i pozwala wykryć wszystkie błędy w programie.
- Klienci odnoszą korzyści z tych testów, otrzymując najbardziej niezawodny i stabilny system.
Wady testowania mutacji
Z drugiej strony, testy mutantów mają również następujące wady:
- Testowanie mutacji jest niezwykle kosztowne i czasochłonne, ponieważ istnieje wiele programów zawierających mutacje, które należy wygenerować.
- Ponieważ jest to czasochłonne, można śmiało powiedzieć, że tego testowania nie można przeprowadzić bez narzędzia do automatyzacji.
- Każda mutacja będzie miała taką samą liczbę przypadków testowych, jak w oryginalnym programie. Zatem może zaistnieć potrzeba przetestowania dużej liczby zmutowanych programów w porównaniu z oryginalnym zestawem testów.
- Ponieważ metoda ta wymaga zmian w kodzie źródłowym, w ogóle nie ma zastosowania Czarny Box Testowanie.
Podsumowanie
Chcesz kompleksowo przetestować swoją aplikację? Odpowiedzią jest testowanie mutacji. Jest to najbardziej wszechstronna technika testowania programu. Jest to metoda sprawdzająca skuteczność i dokładność programu testowego w celu wykrycia usterek lub błędów w systemie.