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
- „Testowanie metamorficzne: wprowadzenie i zastosowania” . Webinar ACM SIGSOFT .
-
Segura, Sergio; Zhou, Zhi Quan (2018). „Instrukcja techniczna ICSE 2018 na temat testów metamorficznych” . doi : 10.5281/zenodo.1256230 .
{{ cite journal }}
: Cite journal wymaga|journal=
( pomoc ) -
Zhou, Zhi Quan (2019). „Zautomatyzowane testowanie rzeczywistych systemów samojezdnych i nie tylko: przemówienie programowe ZQ (George) Zhou na IEEE AITest, San Francisco East Bay, 2019” . doi : 10.5281/zenodo.2636979 .
{{ cite journal }}
: Cite journal wymaga|journal=
( pomoc )