Testy metamorficzne

Testy metamorficzne (MT) to technika testowania oprogramowania oparta na właściwościach , która może być skutecznym podejściem do rozwiązania problemu wyroczni testowej i problemu generowania przypadków testowych. Problem wyroczni testowej to trudność w określeniu oczekiwanych wyników wybranych przypadków testowych lub w ustaleniu, czy rzeczywiste wyniki zgadzają się z oczekiwanymi wynikami.

Relacje metamorficzne (MR) są niezbędnymi właściwościami zamierzonej funkcjonalności oprogramowania i muszą obejmować wiele wykonań oprogramowania. Rozważmy na przykład program, który implementuje sin x z dokładnością do 100 cyfr znaczących ; relacją metamorficzną dla funkcji sinusoidalnych jest „ sin ( π - x ) = sin x ”. Tak więc, mimo że oczekiwana wartość sin x 1 dla źródłowego przypadku testowego x 1 można skonstruować uzupełniający przypadek testowy x 2 = π − 1,234. Możemy sprawdzić, czy rzeczywiste wyniki generowane przez testowany program ze źródłowego przypadku testowego i uzupełniającego przypadku testowego są zgodne z danym MR. Jakakolwiek niezgodność (po uwzględnieniu błędów zaokrągleń) oznacza awarię programu spowodowaną błędem w implementacji.

MR nie ograniczają się do programów z numerycznymi danymi wejściowymi lub relacjami równości . Na przykład podczas testowania witryny rezerwacyjnej wyszukiwanie zakwaterowania w Sydney w Australii zwraca 1671 wyników; czy wyniki tego wyszukiwania są poprawne i kompletne? To jest testowy problem wyroczni. Na podstawie relacji metamorficznej możemy przefiltrować przedział cenowy lub liczbę gwiazdek i ponownie zastosować wyszukiwanie; powinien zwrócić podzbiór poprzednich wyników. Naruszenie tego oczekiwania w podobny sposób ujawniłoby awarię systemu.

Testy metamorficzne zostały wynalezione przez TY Chen w raporcie technicznym z 1998 roku. Od tego czasu ponad 150 międzynarodowych badaczy i praktyków zastosowało tę technikę w rzeczywistych zastosowaniach. Niektóre przykłady obejmują usługi sieciowe , grafikę komputerową , systemy wbudowane , symulacje i modelowanie , uczenie maszynowe , wspomaganie decyzji , bioinformatykę , komponenty , analizę numeryczną i kompilatory . Pierwsze duże badanie w dziedzinie MT przeprowadzono w 2016 r. W 2018 r. przeprowadzono kolejne duże badanie, w którym podkreślono wyzwania i możliwości oraz wyjaśniono powszechne nieporozumienia.

Chociaż MT została początkowo zaproponowana jako technika weryfikacji oprogramowania , została później rozwinięta w paradygmat obejmujący weryfikację, walidację i inne rodzaje oceny jakości oprogramowania . MT można stosować niezależnie, a także łączyć z innymi statycznymi i dynamicznymi technikami analizy oprogramowania, takimi jak sprawdzanie i debugowanie .

W sierpniu 2018 roku Google przejął GraphicsFuzz, startup z Imperial College London , w celu zastosowania testów metamorficznych do sterowników urządzeń graficznych dla smartfonów z systemem Android .

Linki zewnętrzne