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?

Wykonaj 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?

Twórz programy mutacyjne

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:

  • Wymiana etykiety GOTO
  • Wymiana wyciągu zwrotnego
  • Usunięcie oświadczenia
  • Wstawianie operatora jednoargumentowego (jak – i ++)
  • Wymiana złącza logicznego
  • Porównywalna zamiana nazw tablic
  • Usunięcie części else z instrukcji if-else
  • Dodawanie lub zamiana operatorów
  • Zastąpienie wyciągu poprzez zmianę danych
  • Modyfikacja danych dla zmiennych
  • Modyfikacja typów danych w programie

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.

  1. Mutacja wypowiedzi – programista wycina i wkleja fragment kodu, co może skutkować usunięciem niektórych linii
  2. Mutacja wartości– modyfikowane są wartości parametrów podstawowych
  3. 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

Wynik mutacji

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.