Rozwiązanie problemu testowania oprogramowania z wykorzystaniem automatów stanów
W zeszłym miesiącu, w naszym artykule na blogu poświęconym testowaniu oprogramowania dla automatów stanów z wykorzystaniem Altova UModel, odkryliśmy nieoczekiwane zachowanie w naszym modelu systemu klimatyzacji i zachęciliśmy czytelników do ulepszenia projektu. Ten artykuł opisuje jedno z możliwych rozwiązań. Podczas uruchomienia aplikacji Tester dla naszego modelu, zauważyliśmy, że przełącznik zasilania nie wyłączał systemu, gdy znajdował się w trybie czuwania. W diagramie automatu stanów naszego oryginalnego modelu, jedyną drogą do trybu czuwania z trybu pracy jest przycisk "czuwanie", a jedynym sposobem wyjścia z trybu czuwania jest ponowne naciśnięcie tego przycisku, jak widać na szczegółowym schemacie poniżej.

Możemy stworzyć alternatywne wyjście, które pozwoli wyłączyć system ze stanu czuwania, po prostu dodając nową linię przejścia ze stanu czuwania do stanu wyłączenia i przypisując funkcję powerButton() jako zdarzenie, które wywołuje to przejście. UModel ułatwia przypisywanie zdarzenia, wyświetlając okno dialogowe z listą zdarzeń, które są już zdefiniowane w modelu.

Nasza zaktualizowana wersja modelu, zawierająca nowe przejście z trybu czuwania do wyłączenia, wygląda następująco:
![]()
Po zregenerowaniu kodu Java i skompilowaniu nowej wersji, możemy ponownie uruchomić aplikację Tester. Okno wyświetlające komunikaty debugowania pokazuje, że system przeszedł w tryb czuwania podczas zdarzenia 3. Zdarzenie 4, czyli naciśnięcie przycisku zasilania, teraz ustawia stan na "wyłączony".
![]()
Sprawdź samodzielnie, w jaki sposób możesz ulepszyć logikę diagramów automatów stanów za pomocą programu Altova UModel – pobierz bezpłatną 30-dniową wersję próbną już dziś!