Co to jest testowanie oparte na modelu?
Co to jest testowanie oparte na modelu?
Testowanie oparte na modelach to technika testowania oprogramowania, w której zachowanie testowanego oprogramowania w czasie wykonywania jest sprawdzane z przewidywaniami modelu. Model to opis zachowania systemu. Zachowanie można opisać w kategoriach sekwencji wejściowych, działań, warunków, wyników i przepływu danych od wejścia do wyjścia. Powinien być praktycznie zrozumiały i nadawać się do ponownego użycia; udostępniane muszą zawierać dokładny opis testowanego systemu.
Dostępnych jest wiele modeli opisujących różne aspekty zachowania systemu. Przykładowe modele to:
- Przepływ danych
- Kontrola przepływu
- Grafy zależności
- Tabele decyzyjne
- Maszyny przejścia stanów
Testowanie oparte na modelu opisuje, jak system zachowuje się w odpowiedzi na działanie (określone przez model). Dostarcz działanie i sprawdź, czy system reaguje zgodnie z oczekiwaniami.
Jest to lekka, formalna metoda walidacji systemu. Testowanie to można zastosować zarówno do testowania sprzętu, jak i oprogramowania.
Przykład testowania opartego na modelu
Powyższy model wyjaśnia uproszczone podejście do pisania wierszy w notatniku i możliwe działania związane z każdym krokiem. Za każdą akcję (jak rozpoczęcie, wpisanie wiersza, zapisanie), Przypadek testowy można wygenerować, a dane wyjściowe można zweryfikować.
Rodzaje MBT
Istnieją dwa typy frameworków do testowania opartego na modelu:
- Offline / apriori: Generowanie zestawów testów przed ich wykonaniem. Zestaw testów to nic innego jak zbiór przypadków testowych.
- Online / w locie: Generowanie zestawów testów podczas wykonywania testów
Różne modele w testowaniu
Aby zrozumieć czołg podstawowy, konieczne jest zrozumienie niektórych modeli wyjaśnionych poniżej. Przejrzyjmy je jeden po drugim:
Maszyny skończone
Model ten pomaga testerom ocenić wynik w zależności od wybranych danych wejściowych. Różne kombinacje wejść mogą skutkować odpowiadającym stanem systemu.
System będzie miał określony stan i stan bieżący, którym rządzi zestaw wejść podanych przez testerów.
Rozważmy przykład-
Istnieje system umożliwiający pracownikom logowanie się do aplikacji. Obecnie stan pracownika to „Out”, a po zalogowaniu się do systemu zmienił się na „In”. W stanie „w” pracownik może przeglądać, drukować i skanować dokumenty w systemie.
Wykresy stanu
Jest rozszerzeniem skończonej maszyny stanowej i może być stosowana w złożonych systemach czasu rzeczywistego. Diagramy stanów służą do opisywania różnych zachowań systemu. Ma on określoną liczbę stanów. Zachowanie systemu jest analizowane i przedstawiane w formie zdarzeń dla każdego stanu.
Na przykład -
Wady zgłaszane są w narzędziu do zarządzania defektami ze statusem Nowe. Po naprawieniu problemu przez programistów należy go zmienić na status Naprawiony. Jeśli usterka nie zostanie naprawiona, zmień status na Otwórz ponownie. Wykresy stanów powinny być zaprojektowane w taki sposób, aby uwzględniały wydarzenie dla każdego stanu.
Ujednolicony język modelowania (UML)
Ujednolicony język modelowania (UML) to ustandaryzowany język modelowania ogólnego przeznaczenia. UML zawiera zestaw technik notacji graficznej służących do tworzenia modeli wizualnych, które mogą opisać bardzo skomplikowane zachowanie systemu.
UML ma takie notacje jak:
- Aktywności
- Aktorzy
- Proces biznesowy
- Podzespoly Komputerowe
- Język programowania
Wyzwania związane z testowaniem opartym na modelu
Wdrożenie MBT w każdej organizacji wymaga oczywiście dużych nakładów inwestycyjnych i wysiłku. Poniżej przedstawiono wady MBT w Inżynieria oprogramowania.
- Niezbędne umiejętności wymagane od testerów
- Czas krzywej uczenia się będzie dłuższy
- Sam model trudno zrozumieć
Zalety testowania modeli
Oto korzyści płynące z MBT:
- Łatwa konserwacja przypadku testowego/pakietu
- Redukcja kosztów
- Ulepszony zasięg testu
- Można uruchomić różne testy na n liczbie maszyn
- Wczesne wykrywanie usterek
- Wzrost liczby defektów
- Oszczędność czasu
- Większa satysfakcja z pracy testera
Podsumowanie
Testerzy i tak konstruują modele mentalne podczas testów. Te modele mentalne można przekształcić w modele na papierze. Pomaga to testerom osiągnąć czytelność i możliwość ponownego użycia.
Testowanie oparte na modelach to nowe podejście do Testowanie oprogramowania. Poniżej przedstawiono ewolucję testowania oprogramowania –