Co to jest testowanie mutacji?
Ponieważ słowo „mutacja” ogólnie oznacza „zmianę”, oznacza to test mutacji. Testowanie mutacji jest rodzajem testowania oprogramowania, które jest przeprowadzane przez zmianę lub mutację fragmentu kodu w celu sprawdzenia / zweryfikowania, czy przypadki testowe są w stanie wykryć błędy / wady. Testowanie mutacji wchodzi w zakres testów białej skrzynki i jest zasadniczo wykonywane podczas wykonywania testów jednostkowych określonego modułu aplikacji. Zmiany dokonane w kodzie źródłowym / głównym wykonane są w niewielkiej ilości, aby nie wpłynęło to na ogólny cel tego. Jest to również znane jako technika wykrywania błędów, ponieważ jest wykonywana w celu zlokalizowania słabości przypadków testowych poprzez utworzenie błędu w oryginalnym kodzie.
Przed wykonaniem jakichkolwiek testów bardzo ważne jest zrozumienie stojącego za nim celu. Głównym celem testowania mutacji jest znalezienie skuteczności opracowanych przypadków testowych, które powinny być w stanie wykryć nawet niewielkie zmiany wprowadzone w kodzie. Robi się to, aby znaleźć problemy w pakiecie testowym i dane testowe, które są używane podczas testowania dowolnej aplikacji. Tworzonych jest wiele mutantów lub wersji oryginalnego kodu, a każdy z nich jest testowany pod kątem oryginalnych przypadków testowych. Jeśli wyniki przypadku testowego pozostają takie same jak w oryginalnym kodzie, to zarówno kod, jak i przypadki testowe są sprawdzane ponownie, ponieważ albo kod nie został wykonany, albo zestaw testów nie jest w stanie znaleźć zmutowanego kodu.
Rodzaje testów mutacji
Istnieją 3 rodzaje testów mutacji, które są przeprowadzane w celu utworzenia mutantów oryginalnego kodu:
1. Mutacja wartości
Jak sama nazwa wskazuje, w Mutacji wartości wartość stałych, parametry przekazywane w metodach, wartości używane w pętlach są zmieniane w celu utworzenia zmutowanego programu. Albo duża wartość jest zmieniana na mniejszą lub odwrotnie. Zasadniczo wartości, które są już zdefiniowane w programie, są zmieniane w celu wykonania mutacji wartości.
Kod oryginalny:
int a = 75636737;
int b = 3454;
int mult = a * b;
print(mult);
Mutant Code:
int a = 75;
int b = 345466465;
int mult = a * b;
print(mult);
2. Mutacja decyzji
W Mutacji decyzji zmieniane są operatory logiczne i arytmetyczne używane w programie, co zmienia ogólny proces decyzyjny w programie i jego odpowiednie wyniki. Na przykład niektóre instrukcje „if” działają tylko wtedy, gdy (a> b). W zmutowanym kodzie operator ten zmienia się na (a <b), co zmienia ogólny proces decyzyjny w kodzie.
Kod oryginalny:
if (a>b || b>c)
(
print(“yes”);
)
else
(
print (“No”);
)
Mutant Code:
if (a (
print(“yes”);
)
else
(
print (“No”);
)
3. Mutacja stwierdzenia
W Mutacji instrukcji zmiany są wprowadzane w pełnych instrukcjach kodu w celu utworzenia zmutowanego programu. Zmiany w instrukcji mogą polegać na usunięciu całej instrukcji, zmianie kolejności instrukcji w kodzie, skopiowaniu i wklejeniu instrukcji w innym miejscu w kodzie, powtórzeniu lub powieleniu kilku instrukcji w oryginalnym kodzie.
Kod oryginalny:
if (a > b)
(
print(“a is greater”);
)
else
(
print(“b is greater”);
)
Mutant Code:
if(a > b)
(
// removing the statement
)
else
(
print(“b is greater”);
)
Zalety i wady testowania mutacji
Zalety i wady testowania mutacji podano poniżej:
Zalety
Niektóre zalety testowania mutacji podano poniżej:
- Jedną z największych zalet testowania mutacji jest to, że pomaga znaleźć ukryte defekty i maksymalne pokrycie kodu w celu zidentyfikowania części kodu, która nie jest dokładnie testowana przez oryginalne przypadki testowe.
- Testowanie mutacji pomaga znaleźć jakość przypadków testowych używanych do testowania oprogramowania i zapewnia autentyczne opinie testerom na temat procesu testowania i jakości testu.
- Pomaga znaleźć błędy o wysokiej jakości, które nie są łatwe do znalezienia podczas normalnego testowania.
- Testowanie mutacji czasami ujawnia ukryte wady, takie jak niejednoznaczność kodu, niepoprawne wartości zmiennych itp. W kodzie we wczesnych etapach testowania oprogramowania, co jest bardzo korzystne.
- Czasami zarówno kod, jak i przypadek testowy są poprawne, ale problem jest spowodowany danymi testowymi. Testowanie mutacji pomaga znaleźć problemy w danych testowych.
Niedogodności
Poniżej podano niektóre z wad testowania mutacji:
- W testach mutacji tworzone są różne mutanty kodu i testowane w stosunku do oryginalnego zestawu testów, dlatego zajmuje to dużo czasu podczas wykonywania tylko testów jednostkowych pojedynczej funkcji / modułu aplikacji.
- Jak wspomniano powyżej, wszystkie mutanty są testowane w stosunku do oryginalnego zestawu, więc musiałaby zostać wykonana duża liczba przypadków testowych, a zatem nie można tego wykonać bez narzędzia automatyzacji, które jest kosztowne i może ograniczyć budżet projektu.
- Złożone mutanty utworzone z oryginalnego kodu mogą prowadzić do zamieszania i błędów w oryginalnym kodzie.
Wniosek
Powyższe wyjaśnienie jasno określa, co to jest testowanie mutacji i jego znaczenie w dziedzinie testowania aplikacji. Jeśli chcemy przeprowadzić kompleksowe testy aplikacji ze scenariuszami testowymi maksymalnego pokrycia kodu, testowanie mutacji odgrywa kluczową rolę.
Polecane artykuły
To jest przewodnik po testach mutacyjnych. Tutaj omawiamy, co to jest testowanie mutacji? oraz rodzaje testów mutacji wraz z zaletami i wadami. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej
- Co to jest React?
- Testy negatywne
- Testowanie aplikacji mobilnej
- Zaawansowany Standard Szyfrowania
- Zakres kodu a zakres testu | 4 najważniejsze różnice do nauczenia się
- Narzędzia pokrycia kodu | Top 6 narzędzi pokrycia kodu