Testowanie mutacji w testowaniu oprogramowania: Mutant Score & Przykład analizy

Spisie treści:

Anonim

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 )Print „Hello”
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:
  • Wymiana etykiety GOTO
  • Zastąpienie instrukcji zwrotu
  • Usunięcie wyciągu
  • Wstawianie operatora jednoargumentowego (Like - i ++)
  • Logiczna wymiana złącza
  • Zastąpienie porównywalnej nazwy tablicy
  • Usunięcie części else w instrukcji if-else
  • Dodanie lub zamiana operatorów
  • Zastąpienie wyciągu poprzez zmianę danych
  • Modyfikacja danych dla zmiennych
  • Modyfikacja typów danych w programie

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.

  1. Mutacja instrukcji - programista wycina i wkleja część kodu, czego wynikiem może być usunięcie niektórych wierszy
  2. Mutacja wartości - modyfikowane są wartości parametrów podstawowych
  3. 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.