Przetestuj wyrocznię
W informatyce , inżynierii oprogramowania i testowaniu oprogramowania wyrocznia testowa ( lub po prostu wyrocznia ) to mechanizm służący do określania, czy test przeszedł pomyślnie, czy nie. Korzystanie z wyroczni polega na porównywaniu wyjścia (wyjść) testowanego systemu dla danych danych wejściowych przypadku testowego z wyjściem (wyjściami), które wyrocznia określa, że produkt powinien mieć. Termin „wyrocznia testowa” został po raz pierwszy wprowadzony w artykule Williama E. Howdena. Dodatkowe prace nad różnymi rodzajami wyroczni zbadała Elaine Weyuker .
Wyrocznie często działają niezależnie od testowanego systemu. Jednak metody są częścią testowanego systemu, jako zautomatyzowane wyrocznie w projektowaniu według modeli kontraktowych . Określenie prawidłowego wyjścia dla danego wejścia (oraz zestawu stanów programu lub systemu) jest znane jako problem wyroczni lub problem wyroczni testowej, który jest znacznie trudniejszym problemem niż się wydaje i obejmuje pracę z problemami związanymi ze sterowalnością i obserwowalnością.
Kategorie
Przegląd literatury naukowej obejmujący lata 1978-2012 wykazał kilka potencjalnych kategorii wyroczni testowych.
Określony
Te wyrocznie są zwykle kojarzone ze sformalizowanymi podejściami do modelowania oprogramowania i konstruowania kodu oprogramowania. Są one powiązane ze specyfikacją formalną , projektowaniem opartym na modelach , które może być użyte do generowania wyroczni testowych, specyfikacją przejścia między stanami, dla której wyrocznie można wyprowadzić w celu pomocy w testowaniu opartym na modelach i testowaniu zgodności protokołów , oraz projektowaniem na podstawie umowy , dla którego równoważna wyrocznia testowa jest stwierdzeniem .
Z określonymi wyroczniami testowymi wiąże się szereg wyzwań. Specyfikacja formalna opiera się na abstrakcji, która z kolei może naturalnie zawierać element nieprecyzyjny, ponieważ wszystkie modele nie mogą uchwycić wszystkich zachowań.
Pochodny
Pochodna wyrocznia testowa rozróżnia prawidłowe i nieprawidłowe zachowanie, wykorzystując informacje pochodzące z artefaktów systemu. Mogą one obejmować dokumentację, wyniki działania systemu oraz charakterystykę wersji testowanego systemu. Przykładem pochodnej wyroczni testowej są zestawy (lub raporty) testów regresyjnych - zbudowane są na założeniu, że wynik z poprzedniej wersji systemu może posłużyć jako pomoc (wyrocznia) dla przyszłej wersji systemu. Wcześniej zmierzone charakterystyki wydajnościowe mogą posłużyć jako wyrocznia dla przyszłych wersji systemu, na przykład do wywołania pytania o zaobserwowany potencjalny spadek wydajności. Dokumentacja tekstowa z poprzednich wersji systemu może służyć jako podstawa do kierowania oczekiwaniami w przyszłych wersjach systemu.
Pseudo-wyrocznia należy do kategorii pochodnej wyroczni testowej. Pseudo-wyrocznia, zgodnie z definicją Weyukera, to oddzielnie napisany program, który może pobierać te same dane wejściowe, co testowany program lub system, aby można było porównać ich wyniki w celu zrozumienia, czy może istnieć problem do zbadania.
Częściowa wyrocznia jest hybrydą między określoną wyrocznią testową a pochodną wyrocznią testową. Określa ważne (ale nie kompletne) właściwości testowanego systemu. Na przykład testowanie metamorficzne wykorzystuje takie właściwości, zwane relacjami metamorficznymi, w wielu wykonaniach systemu.
Domniemany
Niejawna wyrocznia testowa opiera się na domniemanych informacjach i założeniach. Na przykład może dojść do domniemanego wniosku z awarii programu, tj. niepożądanego zachowania - wyroczni, która ma stwierdzić, że może być problem. Istnieje wiele sposobów wyszukiwania i testowania niepożądanych zachowań, czy to przez niektórych nazywanych testami negatywnymi, gdzie istnieją wyspecjalizowane podzbiory, takie jak fuzzing .
Istnieją ograniczenia w niejawnych wyroczniach testowych - ponieważ opierają się one na dorozumianych wnioskach i założeniach. Na przykład awaria programu lub procesu może nie być problemem priorytetowym, jeśli system jest systemem odpornym na awarie, a zatem działa w formie samonaprawy/ samozarządzania . Niejawne wyrocznie testowe mogą być podatne na fałszywe alarmy ze względu na zależności środowiska. Testowanie oparte na właściwościach opiera się na niejawnych wyroczniach.
Człowiek
Gdy nie można użyć określonych, pochodnych lub niejawnych wyroczni testowych, wymagany jest wkład człowieka w celu określenia wyroczni testowych. Można je traktować jako podejście ilościowe i jakościowe. Podejście ilościowe ma na celu znalezienie odpowiedniej ilości informacji do zebrania na temat testowanego systemu (np. wyników testów), aby interesariusz mógł podjąć decyzję o przydatności do celu lub wydaniu oprogramowania. Podejście jakościowe ma na celu znalezienie reprezentatywności i przydatności wejściowych danych testowych oraz kontekstu wyjściowego z testowanego systemu. Przykładem jest wykorzystanie realistycznych i reprezentatywnych danych testowych oraz nadanie sensu wynikom (jeśli są one realistyczne). Można nimi kierować heurystyczne , takie jak intuicja, praktyczne zasady, listy kontrolne i doświadczenie, aby pomóc dostosować konkretną kombinację wybraną dla testowanego programu/systemu.
Przykłady
Wyrocznie testowe są najczęściej oparte na specyfikacjach i dokumentacji . Formalna specyfikacja używana jako dane wejściowe do projektowania opartego na modelu i testowania opartego na modelu byłaby przykładem określonej wyroczni testowej . Oparta na modelu wyrocznia używa tego samego modelu do generowania i weryfikowania zachowania systemu. Dokumentacja, która nie jest pełną specyfikacją produktu, taka jak przewodnik użytkowania lub instalacji, albo zapis charakterystyki wydajności lub minimalnych wymagań sprzętowych dla oprogramowania, byłaby zazwyczaj pochodną wyrocznią testową.
Wyrocznia spójności porównuje wyniki jednego wykonania testu z innym pod kątem podobieństwa. To kolejny przykład pochodnej wyroczni testowej.
Wyrocznią dla oprogramowania może być drugi program, który używa innego algorytmu do oceny tego samego wyrażenia matematycznego, co testowany produkt. To jest przykład pseudo-wyroczni, która jest pochodną wyrocznią testową.
Podczas wyszukiwania w Google nie mamy pełnej wyroczni, aby zweryfikować, czy liczba zwracanych wyników jest poprawna. Możemy zdefiniować metamorficzną relację w taki sposób, że dalsze zawężone wyszukiwanie da mniej wyników. To jest przykład częściowej wyroczni, która jest hybrydą między określoną wyrocznią testową a pochodną wyrocznią testową.
Wyrocznia statystyczna wykorzystuje cechy probabilistyczne, na przykład z analizą obrazu, w której określa się zakres pewności i niepewności, aby wyrocznia testowa mogła stwierdzić dopasowanie lub nie. Byłby to przykład podejścia ilościowego w ludzkiej wyroczni testowej.
Heurystyczna wyrocznia dostarcza reprezentatywnych lub przybliżonych wyników dla klasy danych wejściowych testu. Byłby to przykład podejścia jakościowego w ludzkiej wyroczni testowej.
Bibliografia
- Binder, Robert V. (1999). „Rozdział 18 - Wyrocznie” w testowaniu systemów obiektowych: modele, wzorce i narzędzia , Addison-Wesley Professional, 7 listopada 1999 r., ISBN 978-0-201-80938-1