Testowanie przejść między stanami z przykładem

⚡ Inteligentne podsumowanie

Testowanie przejść między stanami to technika „czarnej skrzynki”, która weryfikuje, jak aplikacja przechodzi między stanami w miarę zmiany warunków wejściowych. W tym samouczku wyjaśniono cztery części diagramu, różnice między diagramami stanów a tabelami oraz praktyczne przykłady ATM i logowania dla testerów.

  • 🔄 Podstawowa idea: Technika ta pozwala sprawdzić zachowanie systemu, gdy te same dane wejściowe generują różne dane wyjściowe na podstawie wcześniejszych zdarzeń (system o skończonej liczbie stanów).
  • 🧩 Cztery podstawowe elementy: Każdy model składa się ze stanów, przejść, zdarzeń i akcji.
  • 🗺️. Diagram kontra tabela: Diagramy pokazują prawidłowe przejścia; tabele ujawniają nieprawidłowe przejścia.
  • 🏧 Praktyczne przykłady: Blokada PIN-u w bankomacie i logowanie do systemu rezerwacji lotów stanowią dowód rzeczywistego zasięgu.
  • 🤖 Włączanie sztucznej inteligencji: Narzędzia AI automatycznie generują modele stanów na podstawie wymagań i sygnalizują brakujące lub nieprawidłowe przejścia.

Testowanie przejścia między stanami — Stany

Co to jest testowanie przejścia stanu?

Testowanie przejścia stanu to technika testowania typu „czarna skrzynka”, w której zmiany warunków wejściowych powodują zmiany stanu lub danych wyjściowych w testowanej aplikacji (AUT). Pomaga ona analizować zachowanie aplikacji w różnych warunkach wejściowych, a testerzy mogą podawać dodatnie i ujemne wartości wejściowe, rejestrując jednocześnie zachowanie systemu.

Opiera się na modelu, na którym zbudowany jest system i testy. Każdy system, w którym uzyskuje się różne wyniki dla tego samego wejścia — w zależności od tego, co wydarzyło się wcześniej — jest systemem o skończonej liczbie stanów. Technika testowania przejść między stanami jest pomocna, gdy trzeba… testować różne przejścia systemowe.

Kiedy stosować testowanie przejść między stanami

  • Gdy tester testuje aplikację przy użyciu skończonego zbioru wartości wejściowych.
  • Gdy tester testuje sekwencję zdarzeń, które mają miejsce w AUT, umożliwia to sprawdzenie zachowania aplikacji pod kątem sekwencji wartości wejściowych.
  • Gdy testowany system zależy od zdarzeń lub wartości z przeszłości.

Kiedy nie należy polegać na testach przejścia między stanami

  • Gdy testowanie nie jest wykonywane dla sekwencyjnych kombinacji wejść.
  • Gdy testowanie ma na celu sprawdzenie różnych funkcjonalności, na przykład w przypadku testowania eksploracyjnego.

Cztery części diagramu przejścia stanu

Model transformacji państwa składa się z czterech głównych komponentów, opisanych poniżej.

1) Państwa do którego oprogramowanie może dotrzeć.

Testowanie przejścia między stanami — Stany

2) Przejście z jednego stanu do drugiego.

Testowanie przejścia stanowego — przejście

3) Wydarzenia które powodują przejście, takie jak zamknięcie pliku lub wypłata pieniędzy.

Testowanie przejścia do innego stanu — wydarzenia

4) Działania wynikające z sytuacji kryzysowej, np. wyświetlenia komunikatu o błędzie lub otrzymania gotówki.

Testowanie przejścia między stanami — działania

Diagram przejść stanów a tabela przejść stanów

Istnieją dwa główne sposoby przedstawiania lub projektowania przejść stanów: diagram przejść stanów i tabela przejść stanów.

WYGLĄD Schemat przejścia między stanami Tabela przejść między stanami
Nazywane również Wykres stanu / wykres Tabela stanów
Reprezentacja Boxes dla stanów, strzałki dla przejść Siatka stanów (wiersze) i zdarzeń (kolumny)
Najlepiej do identyfikacji Prawidłowe przejścia Nieprawidłowe przejścia
Każda komórka pokazuje Do Stan osiągnięty po wystąpieniu zdarzenia

Jak wykonać przejście między stanami (przykłady)

Przykład 1: Blokada kodu PIN bankomatu

Rozważmy funkcję systemu ATM, w której jeśli użytkownik trzy razy wprowadzi nieprawidłowe hasło, konto zostanie zablokowane.

W tym systemie, jeśli użytkownik wprowadzi prawidłowe hasło w którejkolwiek z pierwszych trzech prób, logowanie zostanie pomyślnie zakończone. Jeśli użytkownik wprowadzi nieprawidłowe hasło za pierwszym lub drugim razem, zostanie poproszony o jego ponowne wprowadzenie. Jeśli użytkownik wprowadzi nieprawidłowe hasło po raz trzeci, konto zostanie zablokowane.

Diagram przejścia między stanami (przykład 1)

Diagram zmiany stanu kodu PIN w bankomacie

Na diagramie, za każdym razem, gdy użytkownik wprowadzi poprawny kod PIN, przechodzi do stanu „Access Granted” (Udzielono dostępu). Jeśli wprowadzi nieprawidłowe hasło, przechodzi do kolejnej próby, a jeśli zrobi to po raz trzeci, osiąga stan „Account Blocked” (Zablokowano konto).

Tabela przejść stanów (przykład 1)

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

W tabeli, po wprowadzeniu przez użytkownika prawidłowego kodu PIN, stan przechodzi do S5 (dostęp udzielony). Jeśli użytkownik wprowadzi nieprawidłowe hasło, przechodzi do następnego stanu, a po trzeciej błędnej próbie osiąga stan zablokowania konta.

Przykład 2: Logowanie do rezerwacji lotów

Na ekranie logowania rezerwacji lotów należy wprowadzić prawidłową nazwę agenta i hasło, aby uzyskać dostęp wniosek o rezerwację lotu.

Rezerwacja lotu – wykres przejścia stanu

Wykres przejścia stanu

Aplikacja pozwala na trzy próby; jeżeli użytkownik wprowadzi nieprawidłowe hasło przy czwartej próbie, system automatycznie zamknie aplikację.

Wykres stanu pomaga określić prawidłowe przejścia do przetestowania. Testowanie zarówno z poprawnym, jak i niepoprawnym hasłem jest obowiązkowe, a dla scenariusze testoweMożna przetestować logowanie za drugą, trzecią lub czwartą próbą. Można użyć tabeli stanów, aby zidentyfikować nieprawidłowe przejścia systemowe.

Tabela przejściowa stanu rezerwacji lotu

W tabeli stanów wszystkie prawidłowe stany są wymienione po lewej stronie, a zdarzenia, które je powodują, u góry. Każda komórka pokazuje stan, do którego system przechodzi po wystąpieniu zdarzenia. Na przykład, w stanie S1, poprawne hasło prowadzi do S6 (Dostęp udzielony); błędne hasło przy pierwszej próbie prowadzi do S3 (Druga próba). W ten sam sposób można określić wszystkie pozostałe stany.

Za pomocą tej metody wyróżniane są dwa nieprawidłowe stany. Załóżmy, że jesteś w stanie S6 (jesteś już zalogowany) i otwierasz kolejną instancję rezerwacji lotu i wpisujesz hasła dla tego samego agenta. Należy przetestować reakcję systemu w takim scenariuszu.

Zalety i wady techniki przejścia stanu

Zalety Wady
Zapewnia graficzną lub tabelaryczną reprezentację zachowania systemu,ping testerzy muszą znać i skutecznie obsługiwać system. Nie można na nim polegać w każdej sytuacji — na przykład nie nadaje się do systemów, które nie są skończone lub sekwencyjne.
Umożliwia testerowi sprawdzenie, czy wszystkie warunki zostały spełnione, a wyniki przechwycone. Wymaga zdefiniowania wszystkich możliwych stanów. Działa to w przypadku małych systemów, ale nie sprawdza się w przypadku większych ze względu na wykładniczy wzrost liczby stanów.

FAQ

Testowanie przejść między stanami to technika „czarnej skrzynki”, która weryfikuje, jak system przechodzi między stanami w miarę zmiany warunków wejściowych. Jest ona odpowiednia dla systemów o skończonej liczbie stanów, w których te same dane wejściowe mogą generować różne dane wyjściowe w zależności od wcześniejszych zdarzeń.

Cztery części to: Stany (warunki, w jakich może znajdować się oprogramowanie), Przejścia (ruch między stanami), Zdarzenia (wyzwalacze powodujące przejście) i Akcje (wyniki przejścia, takie jak komunikat lub dane wyjściowe).

Diagram przejść stanów wykorzystuje pola i strzałki i najlepiej sprawdza się w identyfikacji prawidłowych przejść. Tabela stanów zestawia stany ze zdarzeniami w siatce i najlepiej sprawdza się w wykrywaniu nieprawidłowych przejść.

Unikaj tego, gdy dane wejściowe nie są sekwencyjne lub gdy przeprowadzasz testy eksploracyjne zróżnicowanych funkcjonalności. Nie sprawdza się również w przypadku bardzo dużych systemów, ponieważ liczba stanów rośnie wykładniczo.

Pokrycie 0-przełączeń testuje każde prawidłowe przejście raz. Pokrycie 1-przełączeń testuje każdą parę kolejnych przejść. Wyższe pokrycie przełączeń wykrywa więcej defektów związanych z sekwencją, ale wymaga większej liczby przypadków testowych.

To technika typu „czarna skrzynka”. Przypadki testowe są generowane na podstawie oczekiwanego zachowania stanów i przejść w środowisku zewnętrznym, bez konieczności znajomości wewnętrznego kodu źródłowego aplikacji.

Narzędzia AI odczytują wymagania i automatycznie budują modele stanów, a następnie generują przypadki testowe obejmujące prawidłowe ścieżki i przejścia krawędziowe. Zmniejsza to nakład pracy związany z ręcznym modelowaniem i poprawia pokrycie złożonych sekwencji.

Tak. Sztuczna inteligencja może analizować model stanu i oznaczać brakujące, nieosiągalne lub nieprawidłowe przejścia, porównując je z oczekiwanymi wzorcami zachowań.ping Testerzy wychwytują luki, które często są pomijane podczas ręcznych przeglądów tabel.

Podsumuj ten post następująco: