Samouczek testowania opartego na modelu: co to jest, narzędzia i przykład

Co to jest testowanie oparte na modelu?

Testowanie oparte na modelu to technika testowania oprogramowania, w której zachowanie testowanego oprogramowania w czasie wykonywania jest porównywane z przewidywaniami modelu. Model to opis zachowania systemu. Zachowanie można opisać za pomocą sekwencji wejściowych, działań, warunków, danych wyjściowych i przepływu danych od wejścia do wyjścia. Powinna być praktycznie zrozumiała i może być wielokrotnego użytku; udostępniony musi mieć dokładny opis testowanego systemu.

Dostępnych jest wiele modeli, które opisują różne aspekty zachowania systemu. Przykładami modelu są:

  • Przepływ danych
  • Kontrola przepływu
  • Wykresy zależności
  • Tabele decyzyjne
  • Maszyny do zmiany stanu

Testowanie oparte na modelu opisuje zachowanie systemu w odpowiedzi na działanie (określone przez model). Dostarcz akcję i zobacz, czy system reaguje zgodnie z oczekiwaniami.

Jest to lekka formalna metoda sprawdzania poprawności systemu. Testy te można zastosować zarówno do testowania sprzętu, jak i oprogramowania.

W tym samouczku dowiesz się

Przykład testowania opartego na modelu

Powyższy model wyjaśnia uproszczone podejście do pisania poezji w notatniku i możliwe działania związane z każdym krokiem. Za każdą akcję (np. rozpoczęcie, wpisanie wiersza, zapisanie), Przypadek testowy mogą być generowane, a wyniki mogą być weryfikowane.

Rodzaje czołgów podstawowych:

Istnieją dwa rodzaje ram testowych opartych na modelu.

  1. Offline / a priori: Generowanie zestawów testów przed 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ć MBT, konieczne jest zrozumienie niektórych modeli wyjaśnionych poniżej. Przejdźmy jeden po drugim:

Maszyny skończone

Model ten pomaga testerom ocenić wynik w zależności od wybranego wejścia. Mogą występować różne kombinacje wejść, które skutkują odpowiednim stanem systemu.

System będzie miał określony stan i aktualny stan, który jest regulowany przez zestaw danych wejściowych podanych przez testery.

Rozważ przykład-

Istnieje system, który umożliwia pracownikom logowanie się do aplikacji. Teraz obecny stan pracownika to „Wyłączony”, a po zalogowaniu się do systemu stał się „W”. W stanie „w” pracownik może przeglądać, drukować, skanować dokumenty w systemie.

Wykresy stanowe

Jest rozszerzeniem automatu skończonego i może być używany do systemów złożonych i czasu rzeczywistego. Do opisu różnych zachowań systemu służą wykresy stanów. Ma określoną liczbę stanów. Zachowanie systemu jest analizowane i przedstawiane w postaci zdarzeń dla każdego stanu.

Na przykład -

Defekty są zgłaszane w narzędziu do zarządzania defektami ze statusem Nowy. Gdy zostanie naprawiony przez programistów, musi zostać zmieniony na naprawiony. Jeśli wada nie została usunięta, zmień status na Otwórz ponownie. Wykres stanów powinien być zaprojektowany w taki sposób, aby zawierał zdarzenie 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 zapisu graficznego do tworzenia wizualnych modeli, które mogą opisywać bardzo skomplikowane zachowanie systemu.

UML posiada notacje takie jak:

  • Zajęcia
  • Aktorzy
  • Proces biznesowy
  • składniki
  • Język programowania

Wyzwania testowania opartego na modelu:

Wdrożenie MBT w każdej organizacji oczywiście wymaga dużych nakładów inwestycyjnych i wysiłku. Poniżej przedstawiono wady MBT w inżynierii oprogramowania.

  • Niezbędne Umiejętności wymagane od testerów
  • Czas na krzywą uczenia się będzie dłuższy
  • Trudno zrozumieć sam model

Zalety testowania modeli:

Oto zalety MBT:

  • Łatwa konserwacja zestawu testowego/pakietu
  • Redukcja kosztów
  • Ulepszony zasięg testu
  • Może przeprowadzać różne testy na n liczbie maszyn
  • Wczesne wykrywanie defektów
  • Wzrost liczby defektów
  • Oszczędność czasu
  • Większa satysfakcja z pracy testera

Wniosek

Testerzy i tak konstruują modele mentalne podczas testów. Te mentalne modele można przekształcić w modele na papierze. Pomaga to testerom osiągnąć czytelność i możliwość ponownego wykorzystania.

Testowanie oparte na modelu to nowe podejście do testowania oprogramowania. Poniżej przedstawiono ewolucję testowania oprogramowania —