Analiza wartości brzegowych i podział równoważności

⚡ Inteligentne podsumowanie

Podział równoważności i analiza wartości brzegowych to techniki testowania typu „czarna skrzynka”, które kompresują duże zakresy wejściowe do klas równoważności i testują krawędzie podziału. Zapewniają one skuteczną detekcję defektów z efektywnym pokryciem prawidłowych i nieprawidłowych danych wejściowych.

  • Wejścia partycji: Grupuj wartości w klasy prawidłowe i nieprawidłowe, aby usunąć powtarzalność.
  • Target Granic: Testuj wartości minimalne, bliskie minimalnemu, nominalne, bliskie maksymalnemu i maksymalne.
  • Połącz oba: Najpierw zastosuj analizę równoważności, a następnie analizę wartości brzegowych w celu wykrycia defektów krawędzi.
  • Zmaksymalizuj zasięg: Jedna wartość na klasę weryfikuje zachowanie dla wszystkich równoważnych danych wejściowych.
  • Użyj sztucznej inteligencji Generators: Narzędzia AI automatyzują wyszukiwanie partycji i tworzenie przypadków granicznych.

Analiza wartości brzegowych – model pięciopunktowy

Testowanie wyczerpujące rzadko jest możliwe ze względu na ograniczenia czasowe i kombinatoryczne. Podział równoważności i analiza wartości brzegowych rozwiązują ten problem poprzez…ping podobne dane wejściowe i ukierunkowanie ich na granice w celu uzyskania lepszego zasięgu przy mniejszej liczbie przypadków.

Czym jest partycjonowanie równoważności?

Partycjonowanie równoważności (nazywane również partycjonowaniem klas równoważności lub ECP) ​​to technika czarnej skrzynki, która dzieli dane wejściowe na grupy o równoważnych wartościach. Tester wybiera jednego przedstawiciela dla każdej klasy, zakładając, że oprogramowanie zachowuje się tak samo dla każdego elementu.

  • Dzieli domenę wejściową na klasy równoważności prawidłowe i nieprawidłowe.
  • Dotyczy wszystkich poziomy testów—jednostka, integracja, system i akceptacja.

Czym jest analiza wartości brzegowych?

Analiza wartości brzegowych (BVA), zwane również sprawdzaniem zakresu, weryfikuje skrajne krańce każdej klasy równoważności. Ponieważ defekty gromadzą się na granicach zakresu, BVA koncentruje się na pięciu kluczowych punktach:

  1. Minimum
  2. Tuż powyżej minimum
  3. Wartość nominalna
  4. Tuż poniżej maksimum
  5. Maksymalny

Analiza wartości brzegowych – model pięciopunktowy

BVA uzupełnia partycjonowanie równoważności: po zdefiniowaniu klas ich wartości graniczne są rozbieżne o jeden i pojawiają się błędy brzegowe.

Dlaczego warto stosować analizę równoważności i analizę wartości brzegowych?

Inteligentny dobór testów jest niezbędny, gdy kombinacje są zbyt duże, aby przeprowadzić testy wyczerpujące. Te techniki oferują trzy korzyści:

  1. Kompresuj duże ilości przypadków testowych do łatwych do opanowania fragmentów.
  2. Zapewnij jasne zasady wyboru danych testowych bez poświęcania skuteczności.
  3. Nadaje się do aplikacji wymagających dużej ilości obliczeń i zawierających wiele zmiennych numerycznych.

Jak wykonać partycjonowanie równoważnościowe (przykład)

  • Rozważ pole tekstowe Zamów pizzę poniżej.
  • Ilości od 1 do 10 są prawidłowe; pojawi się komunikat o powodzeniu.
  • Ilości 11–99 są nieprawidłowe i powodują “Można zamówić tylko 10 pizzy”.
Zamów pizzę:

Test kondycji:

  1. Każda liczba powyżej 10 jest nieprawidłowa.
  2. Każda liczba mniejsza od 1 jest nieprawidłowa.
  3. Numbers Prawidłowe odpowiedzi to 1–10.
  4. Każda liczba trzycyfrowa, np. -100, jest nieprawidłowa.

Testowanie każdej wartości daje ponad 100 przypadków. Partycjonowanie równoważności grupuje domenę w klasy o identycznym zachowaniu.

Grupy partycjonowania równoważności dla danych wejściowych Pizza

Grupy te nazywane są Klasy równoważnościWybierz jedną wartość dla każdej klasy — jeśli ona przejdzie, wszystkie inne przejdą; jeśli ona nie przejdzie, cała klasa nie przejdzie.

Wartości reprezentatywne klasy równoważności

Jak przeprowadzić analizę wartości brzegowych (przykład)

Korzystając z tego samego pola Pizza, BVA sprawdza krawędzie partycji, a nie wartości nominalne. Testerzy oceniają wartości 0, 1, 10 i 11 — obejmujące granice prawidłowe i nieprawidłowe.

Analiza wartości brzegowych dla danych wejściowych pizzy

W przypadku danych wejściowych akceptujących wartości od 1 do 10, przypadki testów brzegowych są następujące:

Scenariusz testowy Descriptjon Oczekiwany Wynik
Wartość graniczna = 0 System NIE powinien akceptować
Wartość graniczna = 1 System powinien zaakceptować
Wartość graniczna = 2 System powinien zaakceptować
Wartość graniczna = 9 System powinien zaakceptować
Wartość graniczna = 10 System powinien zaakceptować
Wartość graniczna = 11 System NIE powinien akceptować

Podział równoważności a analiza wartości brzegowych

Oba rodzaje testów redukują objętość testu, ale różnią się pod względem skupienia i czasu trwania.

WYGLĄD Partycjonowanie równoważności Analiza wartości granicznej
Skupiać Grupy równoważnych danych wejściowych Krawędzie każdej grupy
Wybór danych Jedna wartość na klasę Min., prawie min., nominalny, prawie maks., maks.
Najlepszy dla Zmniejszanie liczby zbędnych przypadków Wyłapywanie defektów o jeden punkt
Zamówienie Zastosowano jako pierwsze Zastosowano dalej

Przykład: Walidacja pola hasła

Pole hasła akceptujące od 6 do 10 znaków tworzy trzy partycje — 0-5, 6-10 i 11-14 — z równoważnymi wynikami w każdej z nich.

Wprowadź hasło:
# Scenariusz testowy Oczekiwany Wynik
1 Wprowadź od 0 do 5 znaków System nie powinien zaakceptować
2 Wprowadź od 6 do 10 znaków System powinien zaakceptować
3 Wprowadź od 11 do 14 znaków System nie powinien zaakceptować

Najlepsze praktyki dotyczące partycjonowania równoważności i BVA

Aby utrzymać wysoki poziom pokrycia przy jednoczesnej kontroli liczby testów, postępuj zgodnie z poniższymi zasadami:

  • Zmapuj każdą domenę: Najpierw wypisz partycje prawidłowe, nieprawidłowe i specjalne.
  • Przetestuj obie strony każdego limitu: Uwzględnij wartości wewnątrz i na zewnątrz, aby wyłapać błędy typu „off-by-one”.
  • Łączenie technik: Połącz z tabelami decyzyjnymi lub testami przejść stanów w przypadku złożonej logiki.
  • Zautomatyzuj przypadki brzegowe: Sparametryzuj wartości graniczne, aby zestawy regresji działały spójnie.

Na wynos

  • Podział równoważności grupuje podobne dane wejściowe; wystarczy jedna wartość na klasę.
  • Analiza wartości brzegowych weryfikuje granice partycji oraz prawidłowe/nieprawidłowe krawędzie.
  • Obie są technikami typu „czarna skrzynka” dla pól numerycznych lub zakresowych.
  • Ich połączenie pozwala zmniejszyć objętość testów bez utraty jakości wykrywania defektów.

Analiza wartości brzegowych i testowanie podziału równoważności — wideo

Kliknij w tym miejscu jeśli film nie jest dostępny

FAQ

Podział równoważności wybiera jednego przedstawiciela dla każdej klasy; analiza wartości brzegowych celuje w skrajne wartości na każdej krawędzi. Podział zmniejsza objętość, a analiza granic wychwytuje defekty graniczne.

Partycjonowanie równoważności to technika typu „czarna skrzynka”, ponieważ koncentruje się na zachowaniu wejścia-wyjścia bez dostępu do kodu źródłowego. Testerzy wyprowadzają partycje ze specyfikacji, więc ma ona zastosowanie na poziomie jednostki, integracji, systemu i akceptacji.

Tak. Oba dotyczą Testowanie API, gdzie parametry i pola danych często mają zakresy numeryczne lub limity długości. Testerzy definiują partycje dla prawidłowych, nieprawidłowych i krawędziowych danych wejściowych.

Unikaj BVA, gdy dane wejściowe nie są zakresami liczbowymi – takimi jak zbiory nieuporządkowane, flagi boolowskie lub wartości kategoryczne. Tabele decyzyjne lub testy przejść między stanami działają lepiej, ponieważ granice nie mają tam znaczenia.

Solidna metoda BVA rozszerza standardowe podejście, dodając wartości znajdujące się tuż poza prawidłowym zakresem — jedną poniżej minimum i jedną powyżej maksimum — w celu sprawdzenia, w jaki sposób system odrzuca ewidentnie nieprawidłowe dane wejściowe.

Tak. Generatory AI analizują wymagania i schematy, aby sugerować klasy równoważności i wartości graniczne. Narzędzia takie jak Testim oraz Mabl szybko wyciągaj wnioski z historii usterek i ujawniaj skrajne przypadki.

Sztuczna inteligencja wykrywa nakładanie sięping partycje, redundantne przypadki i pominięte krawędzie, które przeoczają testerzy. Uczenie maszynowe klasyfikuje granice wysokiego ryzyka na podstawie historii defektów, umożliwiając inteligentniejszy dobór testów i szybsze wykrywanie subtelnych problemów.

Tak. JUnit, TestNGi pytest obsługują testowanie parametryczne, umożliwiając testerom definiowanie partycji i wartości granicznych jako zbiorów danych wejściowych. Umożliwia to systematyczne wykonywanie przypadków równoważności i przypadków granicznych w potokach CI.

Podsumuj ten post następująco: