Testowanie mutacji
Testowanie mutacji to rodzaj testowania oprogramowania, w którym 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 na niepowodzenie zmutowanego kodu źródłowego.
Zmiany dokonane w zmutowanym programie 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ż obejmuje tworzenie błędu w programie i jest rodzajem testowania białoskrzynkowego, który jest używany głównie do testowania jednostkowego.
Mutacja została pierwotnie zaproponowana w 1971 roku, ale straciła na popularności ze względu na wysokie koszty. Teraz znowu wybrał steam i jest szeroko stosowany w językach takich jak Java i XML.
W tym samouczku nauczysz się:
- Co to jest testowanie mutacji?
- Jak przeprowadzić testy mutacji?
- Jak tworzyć programy mutantów?
- Co zmienić w programie mutantów?
- Rodzaje testów mutacji
- Wynik mutacji:
- Zalety testowania mutacji:
- Wady testowania mutacji:
Jak przeprowadzić testy mutacji?
Poniżej przedstawiono kroki do wykonania testów mutacji (analizy mutacji):
Krok 1 : Błędy są wprowadzane 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 świadczy o skuteczności przypadków testowych.
Krok 2 : Przypadki testowe są stosowane do oryginalnego programu, a także do programu zmutowanego. Przypadek testowy powinien być odpowiedni i został zmodyfikowany w celu 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, mutant jest zabijany przez przypadek testowy. Dlatego przypadek testowy jest wystarczająco dobry, aby wykryć zmianę między oryginalnym a zmutowanym programem.
Krok 5 : Jeśli oryginalny program i zmutowany program generują te same dane wyjściowe, Mutant pozostaje przy życiu. W takich przypadkach należy stworzyć skuteczniejsze przypadki testowe, które zabijają wszystkie mutanty.
Jak tworzyć programy mutantów?
Mutacja to nic innego jak pojedyncza zmiana składniowa w instrukcji programu. Każdy zmutowany program powinien różnić się od programu oryginalnego jedną mutacją.
Oryginalny program | Program mutantów |
---|---|
If (x> y) Print "Hello" Else Print "Cześć" | If ( x Else Print „Hi” |
Co zmienić w programie mutantów?
Istnieje kilka technik, które można wykorzystać do generowania zmutowanych programów. Spójrzmy na nich
Operandowe operatory zastępcze | Operatory modyfikacji wyrażeń | Operatory modyfikacji instrukcji |
---|---|---|
Zastąp operand innym operandem (x z y lub y z x) lub wartością stałą. | Zastąp operator lub wstaw nowe operatory w instrukcji programu. | Instrukcje programistyczne są modyfikowane w celu tworzenia programów zmutowanych. |
Przykład - Jeśli (x> y) zamień wartości xiy Jeśli (5> y) zamień x na stałą 5 | Przykład - If (x == y) Możemy zamienić == na> = i mieć zmutowany program jako If (x> = y) i wstawić ++ do instrukcji If (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 testów mutacji:
Testowanie mutacji jest niezwykle czasochłonne i skomplikowane do ręcznego wykonania. Aby przyspieszyć ten proces, warto sięgnąć po narzędzia do automatyzacji. Narzędzia do automatyzacji również obniżają koszty testowania.
Lista dostępnych narzędzi -
- Stryker
- Testowanie PIT
Rodzaje testów mutacji
W inżynierii oprogramowania testowanie mutacji można zasadniczo podzielić na 3 typy - mutację, mutację decyzyjną i mutację wartości.
- Mutacja instrukcji - programista wycina i wkleja część kodu, czego wynikiem może być usunięcie niektórych wierszy
- Mutacja wartości - modyfikowane są wartości parametrów podstawowych
- Mutacja decyzyjna - instrukcje sterujące mają zostać zmienione
Wynik mutacji:
Wynik mutacji definiuje się jako procent zabitych mutantów z całkowitą liczbą mutantów.
- Wynik mutacji = (zabitych mutantów / całkowita liczba mutantów) * 100
Przypadki testowe są adekwatne pod względem mutacji, jeśli wynik wynosi 100%. Wyniki eksperymentalne wykazały, że testowanie mutacji jest skutecznym podejściem do pomiaru adekwatności przypadków testowych. Ale główną wadą jest wysoki koszt generowania mutantów i wykonywania każdego przypadku testowego przeciwko temu zmutowanemu programowi.
Zalety testowania mutacji:
Oto zalety testowania mutacji:
- Jest to potężne podejście do uzyskania dużego zasięgu programu źródłowego.
- To testowanie umożliwia wszechstronne testowanie zmutowanego programu.
- Testowanie mutacji zapewnia twórcom oprogramowania dobry poziom wykrywania błędów.
- Ta metoda ujawnia niejednoznaczności w kodzie źródłowym i może wykryć wszystkie błędy w programie.
- Klienci odnoszą korzyści z tych testów, uzyskując najbardziej niezawodny i stabilny system.
Wady testowania mutacji:
Z drugiej strony są następujące wady testowania mutantów:
- Testowanie mutacji jest niezwykle kosztowne i czasochłonne, ponieważ istnieje wiele zmutowanych programów, które należy wygenerować.
- Ponieważ jest to czasochłonne, można śmiało powiedzieć, że tego testu 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. Dlatego może być konieczne przetestowanie dużej liczby zmutowanych programów w stosunku do oryginalnego zestawu testów.
- Ponieważ ta metoda obejmuje zmiany kodu źródłowego, w ogóle nie ma zastosowania do testów czarnoskrzynkowych.
Wniosek:
Chcesz wyczerpująco przetestować swoją aplikację? Odpowiedź brzmi: testowanie mutacji. Jest to najbardziej wszechstronna technika testowania programu. Jest to metoda, która sprawdza skuteczność i dokładność programu testującego w celu wykrycia usterek lub błędów w systemie.