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

Testowanie oparte 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:

  1. Offline / apriori: Generowanie zestawów testów przed ich wykonaniem. Zestaw testów to nic innego jak zbiór przypadków testowych.
  2. 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.

Maszyny skończone

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.

Wykresy 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

Ujednolicony język modelowania

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 –

Ewolucja testowania oprogramowania