Co to jest testowanie układu ortogonalnego? (Przykład)

⚡ Inteligentne podsumowanie

Testowanie tablic ortogonalnych to technika czarnej skrzynki, która polega na użyciu tablic statystycznych w celu zbudowania kompaktowego zestawu testowego obejmującego każdą parę wartości wejściowych przy użyciu znacznie mniejszej liczby przypadków testowych niż jest to wymagane w przypadku wyczerpujących testów kombinowanych.

  • 🎯 Podstawowa obietnica: Każda para poziomów pomiędzy dwoma dowolnymi czynnikami pojawia się co najmniej raz w wygenerowanych przebiegach.
  • 🔢 Notacja: Tablicę zapisuje się literą LDziała(PoziomyCzynniki), więc L9(3⁴) oznacza dziewięć przebiegów dla czterech czynników trójpoziomowych.
  • 📉 Skala oszczędności: Cztery czynniki na trzech poziomach ulegają redukcji z 81 wyczerpujących kombinacji do dziewięciu przebiegów ortogonalnych.
  • 🧮 Zasada równowagi: Kolumny muszą być wypełnione w taki sposób, aby żadne dwa czynniki nie przemieszczały się razem, w przeciwnym razie tabela nie będzie ortogonalna.
  • 🛠️. Obróbka: GeneratorTakie narzędzia jak PICT i ACTS automatycznie tworzą tablicę, co eliminuje główne źródło błędów ręcznych.
  • ⚠️ Znany limit: Pokrycie parami nie jest w stanie wykryć defektu, który wymaga jednoczesnego wystąpienia trzech lub więcej określonych wartości.

Testowanie tablic ortogonalnych, redukujące kombinacje wejściowe do małego, zbalansowanego zestawu przypadków testowych

Testowanie układu ortogonalnego

Testowanie układu ortogonalnego (OAT) to technika testowania oprogramowania wykorzystująca tablice ortogonalne do tworzenia przypadków testowych. Jest to podejście do testowania statystycznego, szczególnie przydatne, gdy testowany system akceptuje dużą liczbę danych wejściowych. Testowanie tablic ortogonalnych maksymalizuje pokrycie testowe poprzez parowanie i łączenie danych wejściowych, dzięki czemu system jest testowany przy stosunkowo mniejszej liczbie przypadków testowych i krótszym czasie wykonania.

Na przykład, gdy trzeba zweryfikować bilet kolejowy, należy przetestować takie czynniki, jak liczba pasażerów, numer biletu, numery miejsc i numery pociągów. Testowanie każdego czynnika osobno jest uciążliwe. Bardziej efektywne jest połączenie kilku danych wejściowych przez inżyniera ds. zapewnienia jakości i przetestowanie ich w jednym przebiegu. W takich przypadkach możemy zastosować metodę testowania tablic ortogonalnych.

Ten rodzaj parowania lub łączenia danych wejściowych w celu zaoszczędzenia czasu nazywa się testowaniem parami, a technika OATS jest jednym ze sposobów tworzenia zestawu testów parami. Ponieważ technika ta działa wyłącznie na podstawie wartości wejściowych i oczekiwanych wyników, bez żadnego wglądu w kod wewnętrzny, należy do… testy czarnej skrzynki rodzina.

Dlaczego OAT (testowanie układu ortogonalnego)?

W obecnej sytuacji dostarczenie klientowi produktu programistycznego wysokiej jakości stało się trudne ze względu na złożoność kodu.

W metodzie konwencjonalnej zestawy testowe zawierają przypadki testowe wyprowadzone z każdej kombinacji wartości wejściowych i warunków wstępnych. W rezultacie konieczne jest pokrycie n przypadków testowych.

Jednak w rzeczywistym scenariuszu testerzy nie będą mieli czasu na wykonanie wszystkich przypadków testowych w celu odkrycia usterek, ponieważ w fazie testowania muszą wykonać inne czynności, takie jak przygotowanie dokumentacji, uzyskanie sugestii i informacji zwrotnych od klienta.

Dlatego menedżerowie testów chcieli zoptymalizować liczbę i jakość przypadków testowych, aby zapewnić maksimum Pokrycie testowe z minimalnym wysiłkiem. Ten wysiłek nazywa się optymalizacją przypadków testowych.

  • Systematyczny i statystyczny sposób testowania interakcji parami.
  • Interakcje i punkty integracji są głównym źródłem defektów.
  • Wykonaj jasno zdefiniowany, zwięzły zestaw przypadków testowych, które najprawdopodobniej wykryją większość (nie wszystkie) błędów.
  • Podejście ortogonalne gwarantuje parami pokrycie wszystkich zmiennych.

Technika ta jest zatem uzupełnieniem innych metod redukcji nakładów, z których zespół już korzysta. Podział równoważności i analiza wartości brzegowych decydują, które wartości warto testować dla pojedynczego pola; tablice ortogonalne decydują, które z tych wartości należy testować razem.

Jak przedstawia się testowanie tablic ortogonalnych

Tablicę ortogonalną opisuje się za pomocą krótkiego wzoru, a nie za pomocą jej zawartości. Poniższy diagram pokazuje, jak trzy wielkości w tym wzorze odnoszą się do kształtu tablicy.

Notacja tablicy ortogonalnej pokazująca przebiegi, czynniki i poziomy we wzorze L(przebiegi)

  • Biegi (N) – Liczba wierszy w tablicy, która przekłada się na liczbę przypadków testowych, które zostaną wygenerowane.
  • Czynniki (K) – Liczba kolumn w tablicy, która przekłada się na maksymalną liczbę zmiennych, jakie można obsłużyć.
  • Poziomy (V) – Maksymalna liczba wartości, jakie można przyjąć dla dowolnego pojedynczego czynnika.

Pojedynczy czynnik zazwyczaj wymaga przetestowania od 2 do 3 danych wejściowych. Ta maksymalna liczba danych wejściowych decyduje o poziomach.

Przeczytaj nazwę tablicy od lewej do prawej. L9(34) 9 to liczba przebiegów, 3 to liczba poziomów, jakie może przyjąć każdy czynnik, a indeks górny 4 to liczba czynników. W tym samym artykule użyto L4(23), czyli cztery przebiegi dla trzech czynników, z których każdy ma dwa poziomy.

Dwie właściwości sprawiają, że tablica jest ortogonalna, i obie muszą być spełnione, aby można było uznać liczbę przebiegów za wiarygodną:

  • Bilans: każdy poziom czynnika pojawia się tyle samo razy w swojej własnej kolumnie.
  • Kompletność parami: w przypadku dowolnych dwóch kolumn każda kombinacja jednego poziomu z każdej pojawia się tyle samo razy.

Jeśli druga właściwość nie jest spełniona, tabela staje się po prostu skróconym zestawem testowym, a nie tablicą ortogonalną, a gwarancja parowania uzasadniająca redukcję przestaje obowiązywać.

Jak przeprowadzić testowanie układu ortogonalnego: przykłady

  1. Zidentyfikuj zmienną niezależną dla scenariusza.
  2. Znajdź najmniejszą tablicę z liczbą przebiegów.
  3. Przypisz czynniki do tablicy.
  4. Wybierz wartości dla pozostałych poziomów.
  5. Transkrybuj biegi do przypadki testowe, dodając wszelkie szczególnie podejrzane kombinacje, które nie zostały wygenerowane.

Poniższe dwa przykłady praktyczne stosują te pięć kroków, najpierw do małego problemu dwupoziomowego, a następnie do większego problemu trzypoziomowego.

1 przykład

Strona internetowa składa się z trzech odrębnych sekcji (Góra, Środek, Dół), które mogą być osobno wyświetlane lub ukryte przed użytkownikiem.

  • Liczba współczynników = 3 (góra, środek, dół)
  • Liczba poziomów (widoczność) = 2 (ukryte lub pokazane)
  • Typ tablicy = L4(23)

(4 to liczba przebiegów uzyskana po utworzeniu tablicy OAT)

Jeśli zdecydujemy się na konwencjonalną technikę zmiany jednej sekcji na raz, będziemy potrzebować przypadków testowych, takich jak 2 X 3 = 6 przypadków testowych.

Przypadki testowe scenariusze Wartości do przetestowania
Test #1 UKRYTE Topy
Test #2 POKAZANE Topy
Test #3 UKRYTE Dolny
Test #4 POKAZANE Dolny
Test #5 UKRYTE Środkowy
Test #6 POKAZANE Środkowy

Te sześć przebiegów zmienia się sekcja po sekcji i nigdy nie umieszcza dwóch sekcji w wybranym stanie razem. Zamiast tego testowanie każdej kombinacji zajęłoby 23 = 8 przebiegów.

Jeśli zdecydujemy się na testowanie OAT, potrzebujemy 4 przypadków testowych, jak pokazano poniżej:

Przypadki testowe TOP Środkowy Dolny
Test #1 Ukryty Ukryty Ukryty
Test #2 Ukryty Statystyki Statystyki
Test #3 Statystyki Ukryty Statystyki
Test #4 Statystyki Statystyki Ukryty

Sprawdź dowolne dwie kolumny tej tabeli, a wszystkie cztery pary Ukryte/Widoczne pojawią się dokładnie raz, co jest własnością ortogonalności w jej najmniejszej formie.

2 przykład

Należy przetestować funkcjonalność mikroprocesora:

  • Temperatura: 100C, 150C i 200C.
  • Ciśnienie: 2 psi, 5 psi i 8 psi
  • Doping Kwota: 4%, 6% i 8%
  • Szybkość depozycji: 0.1 mg/s, 0.2 mg/s i 0.3 mg/s

Stosując metodę konwencjonalną potrzebujemy 34 = 81 przypadków testowych obejmujących wszystkie dane wejściowe. Zamiast tego zastosujmy metodę OATS:

Liczba czynników = 4 (temperatura, ciśnienie,ping kwota i stopa depozytu)

Poziomy = 3 poziomy na czynnik (temperatura ma 3 poziomy – 100°C, 150°C i 200°C – podobnie jak pozostałe czynniki, które również mają po 3 poziomy)

Utwórz tablicę jak poniżej:

1. Kolumny z liczbą czynników

Przypadek testowy nr Temperatura Nacisk Doping ilość Szybkość osadzania

2. Wprowadź liczbę wierszy równą poziomom dla każdego współczynnika, np. temperatura ma 3 poziomy. Wprowadź zatem 3 wiersze dla każdego poziomu temperatury.

Przypadek testowy nr Temperatura Nacisk Doping ilość Szybkość osadzania
1 100C
2 100C
3 100C
4 150C
5 150C
6 150C
7 200C
8 200C
9 200C

3. Teraz podziel ciśnienie, zróbping kwoty i stawki depozytów w kolumnach.

Np.: Wprowadź 2 psi dla temperatur 100°C, 150°C i 200°C, podobnie wprowadź doping ilość 4% dla 100C, 150C i 200C itd.

Przypadek testowy nr Temperatura Nacisk Doping ilość Szybkość osadzania
1 100C 2 psi 4% 0.1 mg/s
2 100C 5 psi 6% 0.2 mg/s
3 100C 8 psi 8% 0.3 mg/s
4 150C 2 psi 4% 0.1 mg/s
5 150C 5 psi 6% 0.2 mg/s
6 150C 8 psi 8% 0.3 mg/s
7 200C 2 psi 4% 0.1 mg/s
8 200C 5 psi 6% 0.2 mg/s
9 200C 8 psi 8% 0.3 mg/s

Dlatego w otwartych przestrzeniach potrzebujemy 9 przypadków testowych do omówienia.

Uwaga dotycząca dokładności: wypełniając pozostałe trzy kolumny prosto w dół, tak jak w kroku 3, powtarzamy to samo ciśnienie,ping i osadzanie potrójne wewnątrz każdego bloku temperaturowego. Ciśnienie iping Kwota zatem porusza się razem, a pary takie jak 2 psi z 6% nigdy się nie pojawiają, więc dziewięć wierszy powyżej to zredukowany zestaw testowy, a nie prawdziwa tablica ortogonalna. Zrównoważony L9(34) Poniższa tablica zachowuje te same dziewięć przebiegów, pokrywając jednocześnie wszystkie dziewięć par poziomów pomiędzy każdymi dwoma czynnikami.

Przypadek testowy nr Temperatura Nacisk Doping ilość Szybkość osadzania
1 100C 2 psi 4% 0.1 mg/s
2 100C 5 psi 6% 0.2 mg/s
3 100C 8 psi 8% 0.3 mg/s
4 150C 2 psi 6% 0.3 mg/s
5 150C 5 psi 8% 0.1 mg/s
6 150C 8 psi 4% 0.2 mg/s
7 200C 2 psi 8% 0.2 mg/s
8 200C 5 psi 4% 0.3 mg/s
9 200C 8 psi 6% 0.1 mg/s

Testowanie tablic ortogonalnych a testowanie parami (wszystkie pary)

Te dwa terminy są używane zamiennie w wielu zespołach, choć nie są tożsame. Oba mają na celu pokrycie par wartości, ale różnią się pod względem stopnia ograniczenia wynikowej tabeli.

WYGLĄD Testowanie tablic ortogonalnych Testowanie parami (wszystkie pary)
Podstawowa struktura Tablica ortogonalna, zapożyczona z projektowania eksperymentów Tablica pokrywająca wygenerowana przez algorytm wyszukiwania
Zasada pokrycia Każda para pojawia się taką samą liczbę razy Każda para pojawia się co najmniej raz
Czynniki o nierównych poziomach Wymaga tablicy o mieszanym poziomie, która może nie istnieć dla wymaganego kształtu Obsługiwane bezpośrednio przez generator
Typowa liczba przebiegów Równe lub nieznacznie wyższe ze względu na wymóg równowagi Równe lub niższe dla tych samych danych wejściowych
Ograniczenia między wartościami Trudno wyrazić wewnątrz tablicy Obsługiwane przez większość nowoczesnych generatorów

W praktyce zrównoważona tablica ortogonalna to bardziej przejrzysty model nauczania i bezpieczniejszy wybór, gdy czynniki mają ten sam poziom, podczas gdy tablica pokrywająca to rozwiązanie, które większość narzędzi generuje w rzeczywistych projektach z niewygodnymi, nierównymi danymi wejściowymi. Oba te rozwiązania są komplementarne. testowanie tabeli decyzyjnej oraz testowanie przejścia stanu, które skupiają się na regułach biznesowych i sekwencji, a nie na kombinacjach wartości.

Narzędzia do testowania tablic ortogonalnych

Ręczne budowanie tablicy jest praktyczne tylko w przypadku powyższych, drobnych przykładów. Powyżej czterech lub pięciu czynników, zespoły korzystają z generatora, a narzędzie decyduje za nie o liczbie przebiegów.

  • PICT: generator wiersza poleceń o otwartym kodzie źródłowym MicrosoftParametry i ich wartości są zapisywane w pliku modelu w postaci zwykłego tekstu, a narzędzie drukuje zestaw kombinacji. Obsługiwane są ograniczenia i podmodele, co ma znaczenie, gdy pewne pary wartości są nieprawidłowe. Zobacz Repozytorium PICT.
  • DZIEJE: Narzędzie badawcze NIST, które generuje macierze pokrywające dla pokrycia dwukierunkowego do sześciokierunkowego, a także publikuje bibliotekę wstępnie obliczonych macierzy. Jest ono dostępne na stronie Projekt testów kombinatorycznych NIST.
  • Komercyjne platformy kombinatoryczne: hostowane narzędzia dodają wymaganie tracmożliwości, oczekiwane wyniki i eksport do systemu zarządzania testami, który jest odpowiedni dla większych zespołów potrzebujących śladu audytu.
  • Opublikowane biblioteki tablicowe: standardowe tablice, takie jak L4, L8, L9, L16 i L18, są zestawiane w tabele i można je kopiować bezpośrednio, gdy liczba czynników i poziomów jest zgodna.

Niezależnie od tego, które narzędzie wygeneruje tabelę, wygenerowane wiersze nadal muszą zostać przekształcone w możliwe do uruchomienia przypadki z rzeczywistymi danymi i oczekiwanymi wynikami, a następnie zaplanowane jak każdy inny pakiet w ramach techniki testowania oprogramowania już używane w projekcie.

Zalety testowania tablic ortogonalnych

  • Gwarantuje przetestowanie kombinacji par wszystkich wybranych zmiennych.
  • Zmniejsza liczbę przypadków testowych.
  • Tworzy mniej przypadków testowych, które nadal obejmują interakcję każdej pary zmiennych.
  • Można obsługiwać złożoną kombinację zmiennych.
  • Jest prostszy do wygenerowania i mniej podatny na błędy niż zestawy testowe tworzone ręcznie.
  • Przydaje się do Testy integracyjnei równie przydatne dla testowanie konfiguracji, gdzie liczba kombinacji przeglądarek, systemów operacyjnych i urządzeń szybko rośnie.
  • Poprawia produktywność dzięki skróceniu cykli testowych i skróceniu czasu testowania.

Związki oszczędnościowe podczas testy regresji, ponieważ mniejszy, zrównoważony zestaw jest na tyle tani, że można go powtarzać w każdym cyklu, natomiast wyczerpujący zestaw kombinacji jest zwykle uruchamiany raz, a następnie po cichu porzucany.

Wady testowania tablic ortogonalnych

  • Wraz ze wzrostem ilości danych wejściowych rośnie złożoność projektu przypadków testowych. W rezultacie wzrasta nakład pracy i czas poświęcany na ręczną pracę, a testerzy muszą… Testowanie automatyzacji.
  • Pokrycie parami nie jest pokryciem pełnym. Defekt, który pojawia się tylko wtedy, gdy trzy określone wartości występują jednocześnie, może przejść przez tablicę bez zmian.
  • Czynniki o różnej liczbie poziomów nie są w stanie odwzorować się czysto na standardową tablicę, dlatego potrzebny jest generator tablicy o różnych poziomach lub tablicy pokrywającej.
  • Wybór poziomów to kwestia osądu. Jeśli istotna wartość zostanie pominięta w modelu wejściowym, żadna tablica nie będzie w stanie jej odzyskać.
  • Ograniczenia pomiędzy wartościami, takie jak metoda płatności obowiązująca tylko w jednym kraju, są trudne do wyrażenia i zwykle powodują powstawanie nieprawidłowych wierszy, które należy usuwać ręcznie.

Żadne z tych ograniczeń nie wyklucza tej techniki; wyznaczają one jedynie jej granice. Tablice ortogonalne redukują problem kombinacji, podczas gdy analiza ryzyka i testowanie domeny zdecyduj, które czynniki zasługują na uwzględnienie w modelu.

Błędy lub błędy podczas wykonywania OAT

  • Skierowanie wysiłków testowych na niewłaściwy obszar aplikacji.
  • Wybranie niewłaściwych parametrów do połączenia.
  • Korzystanie z testów tablic ortogonalnych, w których zbiór wejściowy jest na tyle mały, że można przeprowadzić wyczerpujące testy.
  • Ręczne przeprowadzanie testów tablic ortogonalnych na modelu na tyle dużym, że wymaga generatora.
  • Poleganie wyłącznie na testowaniu tablic ortogonalnych w przypadku zastosowań wysokiego ryzyka, w których wymagany jest głębszy zasięg.

Ostatni element powoduje największe szkody w praktyce. W przypadku funkcji krytycznej dla bezpieczeństwa lub finansowej, zestaw par stanowi dolną, a nie górną granicę i jest zazwyczaj uzupełniany o przypadki celowane. testowanie systemu poziomie i z szerszym planem opisanym w rodzaje testowania oprogramowania.

FAQ

To technika czarnej skrzynki. Tablica jest budowana wyłącznie na podstawie parametrów wejściowych i ich dozwolonych wartości, bez odniesienia do kodu źródłowego, gałęzi ani stanu wewnętrznego, dzięki czemu można ją zaprojektować przed zakończeniem implementacji.

Tester buduje model wejściowy, zazwyczaj z analitykiem biznesowym potwierdzającym, które wartości są prawidłowe. Programiści dodają dane, jeśli parametr jest wewnętrzny, na przykład ustawienie pamięci podręcznej. Jakość modelu, a nie tablica, decyduje o wartości zestawu.

Nie, to zależy od nich. Partycjonowanie i analiza granic redukują każde pole do kilku reprezentatywnych wartości, a tablica decyduje, które z tych wartości zostaną połączone. Uruchomienie tablicy na niefiltrowanych surowych wartościach powoduje powstanie niepotrzebnie dużej tabeli.

Wymagana jest tablica o różnych poziomach, na przykład L18, która łączy kolumny dwu- i trzypoziomowe. W przypadku braku odpowiedniej tablicy standardowej, generator tablicy pokrywającej przetwarza kształt bezpośrednio i zwraca mniejszą tabelę niż w przypadku wymuszenia na każdym czynniku tej samej liczby poziomów.

Każda awaria wymagająca trzech lub więcej określonych wartości jednocześnie. Badania empiryczne danych o awariach wskazują, że większość awarii jest wyzwalana przez jeden lub dwa parametry, dlatego pokrycie parami jest skuteczne, ale pokrycie trójstronne jest zalecane w przypadku cech krytycznych.

Głównie na poziomie integracji i systemu, gdzie kilka komponentów lub ustawień oddziałuje na siebie. Pasuje również do macierzy środowiskowych, takich jak przeglądarka, system operacyjny i rozmiar ekranu, oraz do każdego konfigurowalnego produktu, gdzie liczba dostępnych kombinacji przekracza liczbę dostępnych okien testowych.

Uczenie maszynowe odczytuje wymagania i logi produkcyjne, aby zaproponować istotne czynniki i poziomy, a modele historii defektów klasyfikują kombinacje, które zasługują na trójstronne pokrycie. Matematyka tablic jest deterministyczna — inteligentna część wybiera, co trafia do modelu.

Tworzy plik modelu dla generatora, pętli sterowanej danymi, która odczytuje wiersze i asercje wokół nich. Zweryfikuj deklarację pokrycia za pomocą samego generatora, ponieważ model języka może wygenerować wiarygodną tabelę, która nie jest ortogonalna.

Podsumuj ten post następująco: