Techniki testowania oprogramowania na przykładach projektów przypadków testowych

⚡ Inteligentne podsumowanie

Techniki testowania oprogramowania pomagają projektować lepsze przypadki testowe poprzez redukcję zapotrzebowania na wykonanie testów przy jednoczesnym maksymalizowaniu pokrycia i identyfikowaniu trudnych do uchwycenia warunków za pomocą ustrukturyzowanych metod manualnych. Te podejścia oparte na zasadzie czarnej skrzynki, takie jak analiza wartości brzegowych i partycjonowanie równoważności, priorytetyzują granice i partycjonowanie, co zapewnia efektywną walidację. Uzupełniają one ograniczenia testów wyczerpujących, czerpiąc z podstawowych zasad w celu zwiększenia niezawodności.

  • Zasada główna: Techniki testowania oprogramowania polegają na wyborze przypadków testowych z domen wejściowych w celu osiągnięcia wysokiego pokrycia przy minimalnym wysiłku, a także na skupieniu się na obszarach podatnych na błędy.
  • Analiza wartości brzegowych: Granice testowe (min, maks, tuż wewnątrz/na zewnątrz) są sprawdzane, ponieważ tam gromadzą się błędy, np. dla danych wejściowych 1-10 sprawdź poprawność 0,1,2,9,10,11.
  • Partycjonowanie równoważne: Podziel dane wejściowe na klasy prawidłowe/nieprawidłowe (np. <1, 1-10, 11-19, 20-30, >30), testując jednego przedstawiciela w każdej klasie.
  • Testowanie tabeli decyzyjnej: Przypisz kombinacje danych wejściowych do danych wyjściowych w tabelach przyczynowo-skutkowych, włączając przycisk Prześlij tylko wtedy, gdy wszystkie pola są uzupełnione.
  • Przejście między stanami: Modeluj sekwencyjne zmiany stanu za pomocą danych wejściowych (np. próby logowania: poprawny kod PIN przyznaje dostęp; trzy nieprawidłowe blokuje konto).
  • Błąd zgadywania: Wykorzystaj doświadczenie, aby zidentyfikować prawdopodobne defekty, stosując dane historyczne i typowe pułapki w przypadku doraźnych przypadków testowych.

Techniki testowania oprogramowania

Czym jest technika testowania oprogramowania?

Techniki testowania oprogramowania pomagają projektować lepsze przypadki testowe. Ponieważ testowanie wyczerpujące nie jest możliwe, techniki testowania ręcznego pomagają zmniejszyć liczbę przypadków testowych do wykonania, jednocześnie zwiększając pokrycie testami. Pomagają one identyfikować warunki testowe, które w innym przypadku byłyby trudne do rozpoznania. Techniki testowania oprogramowania można podzielić na następujące typy:

  • Analiza wartości granicznej
  • Partycjonowanie klas równoważności
  • Testowanie oparte na tabeli decyzyjnej
  • Przejście stanu
  • Błąd zgadywania

👉 Zapisz się na bezpłatny projekt testowania oprogramowania na żywo

7 zasad technik testowania oprogramowania

Techniki testowania oprogramowania opierają się na zestawie zasad dotyczących przeprowadzania procesu testowania. Tych 7 zasad pomaga testerom w efektywnym planowaniu, projektowaniu i wykonywaniu testów. Zasady te zapewniają, że testowanie jest celowe, efektywne i zgodne z celami projektu.

7 zasad technik testowania oprogramowania to: Testowanie ujawnia obecność defektów, dokładne testowanie jest niemożliwe, wczesne testowanie oszczędza czas i pieniądze, defekt Clustering, Paradoks pestycydów, Zależność testów od kontekstu i Błąd braku błędów. Możesz kliknąć na następujące link uczyć się więcej.

W jaki sposób AI zmienia tradycyjne techniki testowania oprogramowania?

AI jest revolutjonizując testowanie oprogramowania poprzez wprowadzenie automatyzacja, przewidywanie i adaptacyjność. To umożliwia automatyczne generowanie przypadków testowych z języka naturalnego przy użyciu LLM-ów, skrypty samoleczenia które dostosowują się do zmian interfejsu użytkownika i predykcyjna analiza defektów na podstawie danych historycznych. Sztuczna inteligencja również wspiera priorytetyzacja oparta na ryzyku, testowanie wizualne, oraz autonomiczne wykonywanie testów w ramach procesów CI/CD. Poprzez interfejsy języka naturalnego, Testerzy mogą tworzyć przypadki w konwersacji, przyspieszając przepływy pracy. W istocie, AI sprawia, że ​​testowanie mądrzejszy, szybszy i bardziej odporny, ograniczenie ręcznej pracy przy jednoczesnym zwiększeniu dokładności i zasięgu w nowoczesnych, rozwijających się aplikacjach.

Techniki testowania oprogramowania

Analiza wartości brzegowych (BVA)

Analiza wartości brzegowych opiera się na testowaniu granic między partycjami. Obejmuje ona wartości maksymalne, minimalne, wewnętrzne i zewnętrzne, wartości typowe oraz wartości błędów.

Dowody empiryczne pokazują, że wiele defektów występuje w pobliżu warunków brzegowych, a nie w wartościach środkowych. Metoda ta jest również znana jako BVA i oferuje wybór przypadków testowych, które sprawdzają wartości graniczne.

Ta technika testowania typu „czarna skrzynka” uzupełnia partycjonowanie równoważności, koncentrując się na przypadkach brzegowych tych samych zakresów wejściowych. Ta technika testowania oprogramowania opiera się na zasadzie, że jeśli system działa poprawnie dla wartości granicznych, prawdopodobnie będzie działał dla wszystkich wartości w tym zakresie.

Wytyczne dotyczące analizy wartości brzegowych

  • Jeżeli warunek wejściowy jest ograniczony do wartości x i y, wówczas przypadki testowe powinny zostać zaprojektowane przy użyciu wartości x i y, a także wartości powyżej i poniżej x i y.
  • Jeśli warunkiem wejściowym jest duża liczba wartości, przypadek testowy należy opracować tak, aby sprawdzał wartości minimalne i maksymalne. W tym przypadku testowane są również wartości powyżej i poniżej wartości minimalnej i maksymalnej.
  • Zastosuj wytyczne 1 i 2 do warunków wyjściowych. Da to wynik odzwierciedlający oczekiwane wartości minimalne i maksymalne. Testuje również wartości poniżej lub powyżej wartości.

Przykład:

Input condition is valid between 1 to 10

Boundary values 0,1,2 and 9,10,11

Partycjonowanie klas równoważności

Podział na klasy równoważności dzieli zbiór warunków wejściowych na grupy, które mają dawać podobne zachowanie. Ta metoda testowania oprogramowania dzieli domenę wejściową programu na klasy danych, na podstawie których należy projektować przypadki testowe.

Koncepcja stojąca za tą techniką projektowania przypadków testowych polega na tym, że przypadek testowy reprezentatywnej wartości każdej klasy jest równoważny testowi dowolnej innej wartości tej samej klasy. Pozwala to na identyfikację zarówno prawidłowych, jak i nieprawidłowych klas równoważności.

Przykład:

Warunki wejściowe obowiązują pomiędzy

 1 to 10 and 20 to 30

Stąd istnieje pięć klas równoważności

--- to 0 (invalid)
1 to 10 (valid)
11 to 19 (invalid)
20 to 30 (valid)
31 to --- (invalid)

Wybierasz wartości z każdej klasy, tj.

-2, 3, 15, 25, 45

Przeczytaj także więcej na temat – Analiza wartości brzegowych i testowanie podziału równoważności

Testowanie oparte na tabeli decyzyjnej

Tabela decyzyjna jest również znana jako tabela przyczynowo-skutkowa. Ta technika testowania oprogramowania jest stosowana w przypadku funkcji reagujących na kombinację danych wejściowych lub zdarzeń. Na przykład, w scenariuszu walidacji formularza, przycisk „Prześlij” aktywuje się dopiero po wypełnieniu wszystkich obowiązkowych pól.

Pierwszym zadaniem jest identyfikacja funkcjonalności, w których wynik zależy od kombinacji danych wejściowych. Jeśli istnieje duży zbiór kombinacji danych wejściowych, należy podzielić go na mniejsze podzbiory, co jest pomocne w zarządzaniu tabelą decyzyjną.

Dla każdej funkcji należy utworzyć tabelę i wypisać wszystkie typy kombinacji danych wejściowych i odpowiadających im danych wyjściowych. Pomaga to zidentyfikować warunek, który tester pomija.

Poniżej przedstawiono kroki tworzenia tabeli decyzyjnej:

  • Zapisz dane wejściowe w wierszach
  • Wpisz wszystkie reguły w kolumnie
  • Wypełnij tabelę różnymi kombinacjami danych wejściowych
  • W ostatnim wierszu zanotuj wynik w porównaniu z kombinacją danych wejściowych.

PrzykładPrzycisk „Wyślij” w formularzu kontaktowym jest aktywny dopiero wtedy, gdy wszystkie dane zostaną wprowadzone przez użytkownika końcowego.

Testowanie oparte na tabeli decyzyjnej

Przejście stanu

W technice przejścia stanu (State Transition), zmiany warunków wejściowych zmieniają stan testowanej aplikacji (AUT). Ta technika testowania pozwala testerowi przetestować zachowanie AUT. Tester może wykonać tę czynność, wprowadzając sekwencję różnych warunków wejściowych. W technice przejścia stanu (State Transition), zespół testujący dostarcza zarówno dodatnie, jak i ujemne wartości testowe na wejściu, aby ocenić zachowanie systemu.

Wytyczne dotyczące zmiany stanu:

  • Przejścia stanu należy używać, gdy zespół testowy testuje aplikację pod kątem ograniczonego zestawu wartości wejściowych.
  • Technikę projektowania przypadków testowych należy stosować, gdy zespół testujący chce przetestować sekwencję zdarzeń, które mają miejsce w testowanej aplikacji.

Przykład:

W poniższym przykładzie użytkownik może zalogować się pomyślnie po podaniu prawidłowego hasła w ciągu trzech prób. Jeśli użytkownik wprowadzi nieprawidłowe hasło za pierwszym lub drugim razem, zostanie poproszony o ponowne wprowadzenie hasła. Jeśli użytkownik wprowadzi nieprawidłowe hasło, zostanie wyświetlony monit o ponowne wprowadzenie hasła.rd Po upływie tego czasu działanie zostanie podjęte, a konto zostanie zablokowane.

Schemat przejścia między stanami

Schemat przejścia między stanami

Na tym diagramie, po podaniu prawidłowego numeru PIN, użytkownik przechodzi do stanu „Udzielono dostępu”. Poniższa tabela została utworzona na podstawie powyższego diagramu:

Tabela przejść między stanami

Poprawny PIN Nieprawidłowy PIN
S1) Rozpocznij S5 S2
S2) 1st próba S5 S3
S3) 2nd próba S5 S4
S4) 3rd próba S5 S6
S5) Dostęp przyznany - -
S6) Konto zablokowane - -

W powyższej tabeli, po wprowadzeniu przez użytkownika prawidłowego kodu PIN, stan zmienia się na „Dostęp udzielony”. Jeśli użytkownik wprowadzi nieprawidłowe hasło, zostanie przeniesiony do następnego stanu. Jeśli zrobi to samo, 3rd czasie osiągnie stan zablokowania konta.

Błąd zgadywania

Błąd zgadywania To technika testowania oprogramowania, w której testerzy wykorzystują doświadczenie i intuicję, aby przewidywać prawdopodobne błędy w kodzie. Technika ta w dużej mierze opiera się na doświadczeniu, a analitycy testów wykorzystują je do odgadnięcia problematycznego elementu testowanej aplikacji. Dlatego analitycy testów muszą posiadać umiejętności i doświadczenie, aby skuteczniej odgadywać błędy.

Technika ta polega na zliczaniu listy możliwych błędów lub sytuacji podatnych na błędy. Następnie tester zapisuje walizka testowa Aby wykryć te błędy. Aby zaprojektować przypadki testowe w oparciu o tę technikę testowania oprogramowania, analityk może wykorzystać wcześniejsze doświadczenia do identyfikacji warunków.

Wytyczne dotyczące zgadywania błędów:

  • W teście należy wykorzystać wcześniejsze doświadczenia z testowania podobnych aplikacji
  • Zrozumienie testowanego systemu
  • Znajomość typowych błędów wdrożeniowych
  • Przypomnij sobie obszary, w których wystąpiły wcześniej problemy
  • Oceń dane historyczne i wyniki testów

Zalety i ograniczenia technik testowania

Zalety:

  • Poprawia zakres testów i gwarantuje szerszą walidację funkcjonalności oprogramowania.
  • Poprawia wykrywanie usterek poprzez koncentrowanie się na obszarach wysokiego ryzyka lub podatnych na błędy.
  • Promosystematyczne projektowanie testów, redukujące redundancję i nakładanie się.
  • Pomaga wcześnie identyfikować problemy w cyklu życia oprogramowania (SDLC), obniżając całkowity koszt projektu.
  • Upraszcza złożone testy dzięki metodom takim jak BVA i partycjonowanie równoważności.
  • Zwiększa niezawodność oprogramowania i zaufanie interesariuszy do jakości produktu.

Ograniczenia:

  • Żadna pojedyncza technika nie gwarantuje całkowitego wykrycia defektu.
  • Niektóre techniki zależą w dużej mierze od doświadczenia i osądu testującego.
  • Może nie uwzględniać kwestii integracji, użyteczności lub rzeczywistej wydajności.
  • Ograniczenia czasowe i zasobowe mogą utrudniać dokładne zastosowanie metody.
  • Niektóre metody oferują ograniczone wsparcie automatyzacji, co zmniejsza skalowalność.

Jak wybrać właściwe techniki testowania?

Wybór odpowiednich technik testowania oprogramowania wymaga dostosowania ich do specyfiki projektu, aby zapewnić wydajność i pokrycie. Czynniki takie jak model rozwoju, ryzyko i zasoby determinują proces wyboru. Jako ekspert w testowaniu oprogramowania, zawsze zalecam łączenie wielu technik w celu uzyskania optymalnych rezultatów. Zapobiega to ryzyku nadmiernego polegania na jednej metodzie.

  • Zgodność z celami: Dopasuj techniki do celów, takich jak funkcjonalność, wydajność i potrzeby bezpieczeństwa.​
  • Ocena ryzyka: Określ priorytet obszarów wysokiego ryzyka, stosując metody oparte na ryzyku w celu ukierunkowanej walidacji.​
  • Dopasuj architekturę i model: Wybierz podejście przyjazne dla zwinności w systemach iteracyjnych lub wielowarstwowych.​
  • Ograniczenia równowagi: Weź pod uwagę czas, budżet, umiejętności i narzędzia umożliwiające wykonalną realizację.​

FAQ

Techniki testowania oprogramowania to ustrukturyzowane metody weryfikacji, czy oprogramowanie spełnia wymagania i działa poprawnie. Do popularnych technik należą: analiza wartości brzegowych, partycjonowanie klas równoważności, testowanie oparte na tablicach decyzyjnych, przejścia między stanami oraz zgadywanie błędów – każda z nich koncentruje się na różnych aspektach zachowania systemu i logiki kodu.

Cztery główne typy testów to testy jednostkowe, testy integracyjne, testy systemowe i testy akceptacyjne. Każdy z nich weryfikuje funkcjonalność oprogramowania na rosnącym poziomie złożoności, zapewniając niezawodność przed wdrożeniem.

Generatywna AI sugeruje scenariusze eksploracyjne o dużym wpływie poprzez symulację zróżnicowanych interakcji użytkowników i wykorzystanie historycznych danych o błędach, dzięki czemu można wykryć błędy w użyteczności i integracji, które zostały przeoczone przez testy skryptowe.

Techniki zapewniania jakości obejmują przeglądy kodu, programowanie w parach, analizę statyczną, testy regresyjne i testy porównawcze wydajności. Metody te zapewniają spójność, wczesne wykrywanie odchyleń i przestrzeganie zdefiniowanych standardów jakości.

Testowanie automatyczne przyspiesza wykonywanie testów, zwiększa zasięg i minimalizuje błędy ludzkie. Umożliwia ciągłą integrację i dostarczanie procesów poprzez wydajne uruchamianie powtarzalnych, skalowalnych testów w różnych środowiskach i na różnych platformach.

Podsumuj ten post następująco: