Skip to content

Metody testowania metamorficznego

Date:
pon., cze 23, 2025
By:
kama3 kama3

Metody testowania metamorficznego służą do sprawdzania zgodności modeli komputerowych z rzeczywistością.

Testowanie metamorficzne jest techniką testowania parametrycznego, która może być skutecznym podejściem do rozwiązania problemu wyroczni testowej i problemu generowania przypadków testowych. 

W testowaniu metamorficznym stosowane są wejściowe dane podstawowe. Oblicza się dane wyjściowe wygenerowane przez testowany proces. Na przykład: dane podstawowe - zdjęcia tekstu, dane wyjściowe - tekst, testowany proces - rozpoznawanie tekstu.

Dodatkowo stosowane są wejściowe dane uzupełniające, które są wygenerowane z danych podstawowych i dodatkowych danych. Na przykład: dane podstawowe - zdjęcia tekstu, dane dodatkowe - sztucznie stworzony “szum” z pixeli. Dane uzupełniające są wygenerowane nie przypadkowo, lecz według wybranej zasady. Możliwe jest stosowanie wielu wariantów dodatkowych danych. Dalej, na podstawie wejściowych danych uzupełniających oblicza się dane wyjściowe wygenerowane przez ten samy testowany proces (np. rozpoznawanie tekstu). 

Jeśli wszystkie testy zwrócą te same dane wyjściowe - to testy się powiodły, a proces działa prawidłowo. Jeśli co najmniej jeden test zwraca coś innego, wtedy oznacza to, iż testy się nie powiodły a proces działa nieprawidłowo. Na żadnym etapie nie jest konieczne sprawdzanie, co zawierają dane wyjściowe. Wystarczy jedynie stwierdzenie, że “wszystkie testy zwróciły te same dane wyjściowe”, na przykład na podstawie identyczności funkcji haszujących danych wyjściowych. Obecnie możliwe staje się automatyczne generowanie złożonych testów.

Relacja metamorficzna występuje wtedy, jeśli dwa zestawy danych wejściowych, a także ich dane wyjściowe, są ze sobą powiązane. Testy, w których ta właściwość jest stosowana, nazywane są testami metamorficznymi. Relacje metamorficzne są niezbędnymi właściwościami zamierzonej funkcjonalności procesu i muszą obejmować wielokrotne wykonywanie procesu. 

Chociaż testowanie metamorficzne początkowo zaproponowano jako technikę weryfikacji oprogramowania, to później rozwinięto je w paradygmat obejmujący weryfikację, walidację i inne rodzaje oceny błędów złożonych systemów.

Znane sposoby testowania metamorficznego wymagają 100% pewności przy porównaniu danych wyjściowych testów. Jednak podczas pracy z danymi do uwierzytelnienia konieczne jest porównanie wyników serii testów przy użyciu kryteriów rozmytych.