Przetestuj wyrocznię - Test oracle

W informatyki , inżynierii oprogramowania i testowania oprogramowania , o oracle testu (lub po prostu Oracle ) jest mechanizmem dla określenia czy test przeszedł, czy nie. Użycie wyroczni wiąże się z porównaniem danych wyjściowych testowanego systemu, dla danych wejściowych przypadku testowego , z 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 zostały zbadane przez Elaine Weyuker .

Wyrocznie często działają niezależnie od testowanego systemu. Jednak warunki końcowe metody są częścią testowanego systemu, jako automatyczne wyrocznie projektowane przez modele kontraktowe . Określenie prawidłowego wyjścia dla danego wejścia (i zestawu stanów programu lub systemu) jest znane jako problem wyroczni lub problem wyroczni testowej, który jest problemem znacznie trudniejszym niż się wydaje i obejmuje pracę z problemami związanymi ze sterowalnością i obserwowalnością.

Kategorie

Przegląd literatury badawczej obejmujący lata 1978-2012 wykazał kilka potencjalnych kategorii wyroczni testowych.

Określony

Te wyrocznie są zwykle związane ze sformalizowanym podejściem do modelowania oprogramowania i konstrukcji kodu oprogramowania. Są one podłączone do formalnej specyfikacji , wzorem w oparciu o model , który może być wykorzystywany do generowania wyrocznie testów, specyfikacja przejścia ze stanu, dla którego przepowiedni można przekształcić do pomocy testu opartego na modelu i testowania protokół zgodności i konstrukcji według zamówienia dla którego odpowiednikiem testu wyrocznią jest twierdzeniem .

Określone Wyrocznie Testowe mają wiele wyzwań. Specyfikacja formalna opiera się na abstrakcji, która z kolei może naturalnie zawierać element nieprecyzyjności, ponieważ wszystkie modele nie mogą uchwycić wszystkich zachowań.

Pochodny

Pochodna wyrocznia testowa rozróżnia prawidłowe i niepoprawne zachowanie przy użyciu informacji pochodzących z artefaktów systemu. Może to obejmować dokumentację, wyniki wykonania systemu i charakterystykę wersji testowanego systemu. Zestawy (lub raporty) testów regresyjnych są przykładem pochodnej wyroczni testowej - są zbudowane przy założeniu, że wynik z poprzedniej wersji systemu może być użyty jako pomoc (wyrocznia) dla przyszłej wersji systemu. Wcześniej zmierzone charakterystyki wydajności mogą służyć jako wyrocznia dla przyszłych wersji systemu, na przykład w celu wywołania pytania o zaobserwowane potencjalne pogorszenie 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, dzięki czemu ich wyniki można porównać w celu zrozumienia, czy istnieje problem do zbadania.

Częściowa wyrocznia jest hybrydą między określoną wyrocznią testową a pochodną wyrocznią testową. Określa ważne (ale nie pełne) 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 istnieć jakiś domniemany wniosek z awarii programu, tj. Niepożądane zachowanie - wyrocznia, która ma stwierdzić, że może wystąpić problem. Istnieje wiele sposobów wyszukiwania i testowania niepożądanego zachowania, niezależnie od tego, czy niektórzy nazywają to testowaniem negatywnym, w przypadku gdy istnieją wyspecjalizowane podzbiory, takie jak fuzzing .

Istnieją ograniczenia w niejawnych wyroczniach testowych - ponieważ opierają się na domniemanych wnioskach i założeniach. Na przykład awaria programu lub procesu może nie być kwestią priorytetową, jeśli system jest systemem odpornym na awarie, a więc działa w formie samonaprawy / samozarządzania . Niejawne wyrocznie testowe mogą być podatne na fałszywe alarmy ze względu na zależności środowiskowe.

Człowiek

Gdy określone, pochodne lub niejawne wyrocznie testowe nie mogą być użyte, do określenia wyroczni testowych wymagany jest wkład człowieka. Można je traktować jako podejścia 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ł podejmować decyzje dotyczące dopasowania do celu lub wydania oprogramowania. Podejście jakościowe ma na celu znalezienie reprezentatywności i przydatności wejściowych danych testowych oraz kontekstu danych wyjściowych z testowanego systemu. Przykładem jest wykorzystanie realistycznych i reprezentatywnych danych testowych oraz nadanie sensu wynikom (jeśli są realistyczne). Mogą się one kierować podejściami heurystycznymi , takimi jak instynkty jelitowe, praktyczne zasady, pomoce na listach kontrolnych i doświadczenie, które pomogą dostosować konkretną kombinację wybraną dla testowanego programu / systemu.

Przykłady

Testowe wyrocznie są najczęściej oparte na specyfikacjach i dokumentacji . Formalne określenie używane jako dane wejściowe do konstrukcji modelu opartego i testów w oparciu o model będzie przykład określony test wyroczni . Wyrocznią w oparciu o model wykorzystuje ten sam model do generowania i weryfikacji zachowania systemu. Dokumentacja, która nie jest pełną specyfikacją produktu, taka jak instrukcja użytkowania lub instalacji, zapis charakterystyki działania lub minimalne wymagania sprzętowe oprogramowania, byłaby zazwyczaj pochodną wyrocznią testową.

Wyrocznia spójności porównuje wyniki jednego wykonania testu z innym pod względem podobieństwa. To kolejny przykład pochodnej wyroczni testowej.

Wyrocznia dla programu może być drugim programem, 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 do sprawdzenia, czy liczba zwróconych wyników jest poprawna. Możemy zdefiniować relację metamorficzną 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ą.

Statystyczna wyrocznia wykorzystuje cechy probabilistyczne, na przykład w przypadku analizy obrazu, w której określa się zakres pewności i niepewności, aby wyrocznia testowa wypowiedziała dopasowanie lub nie. Byłby to przykład ilościowego podejścia w wyroczni testowej na ludziach.

Wyrocznia heurystyczna zapewnia reprezentatywne lub przybliżone wyniki dla klasy wejść testowych. Byłby to przykład jakościowego podejścia w wyroczni testowej na ludziach.

Bibliografia

Bibliografia

  • Binder, Robert V. (1999). „Chapter 18 - Oracles” in Testing Object-Oriented Systems: Models, Patterns and Tools , Addison-Wesley Professional, 7 listopada 1999, ISBN   978-0-201-80938-1