Jak prawidłowo pisać scenariusze testowe?

W codziennej pracy testera często spotykamy się z pojęciem scenariusz testowy. Często można usłyszeć je naprzemiennie z przypadkiem testowym, skąd pojawia się pytanie, czy to jest to samo? W poniższym artykule postaram się pokazać różnice pomiędzy przypadkami testowymi, a scenariuszami. Dodatkowo na końcu artykułu zamieszczam dobre rady, które mogą okazać się pożyteczne zarówno dla juniorów, jak i bardziej doświadczonych testerów.

Co to są scenariusze testowe?

Scenariusz testowy zwany jest również Specyfikacją Procedury Testowej. Według słownika SJSI to: „dokument określający ciąg akcji umożliwiających wykonanie testu. Znany jest także jako skrypt testowy lub manualny skrypt testowy.”[1] Zazwyczaj mówi się, że scenariusze testowe swoja formą przypominają rozszerzone scenariusze przypadków użycia aplikacji.

Co odróżnia scenariusze testowe od przypadków użycia systemu? Scenariusze są bardziej szczegółowe, ponieważ głównym zadaniem i założeniem jest przygotowanie do weryfikacji wszystkich dostępnych funkcji w aplikacji.

Nie oznacza to, że przypadki użycia są nam kompletnie nieprzydatne. Jeśli zostały stworzone na etapie analizy to możemy je wykorzystać właśnie w procesie tworzenia scenariuszy testowych.

Wyróżniamy różne rodzaje scenariuszy testowych np. funkcjonalne scenariusze testowe lub systemowe scenariusze testowe.

Kiedy powinniśmy pisać scenariusze testowe?

Wiemy już co to są scenariusze testowe, ale pojawia się pytanie, w którym momencie powinniśmy je pisać? Dobrze jest, aby powstawały na etapie analitycznym (czyli przed etapem wdrażania), gdyż wtedy bardzo dobrze uzupełniają dokumentację. Nie jest to jednak regułą i czasem scenariusze powstają w innym momencie np. w końcowej fazie wdrożenia. W takim przypadku są one pisane w oparciu o już funkcjonującą wersję testową systemu.

Jak wygląda scenariusz testowy?

Scenariusz testowy może przybierać różne formy, poniżej przedstawiam przykład, który moim zdaniem jest najlepszy, ze względu na jasny i klarowny przekaz oraz łatwość jego interpretacji w późniejszych etapach pracy.

Ogólny szablon scenariusza testowego pokazany jest poniżej. [2] Składa się on z trzech części.

Logo firmy Formularz Aplikacji Testów Nr dokumentu
Nazwa Projektu Osoba wykonująca testy
Zadanie
Testowane elementy Nazwa Wersja Opis

 

Pierwsza część scenariusza jest częścią organizacyjną. Powinniśmy w niej przede wszystkim sprecyzować nazwę projektu, osobę, która testy wykonuje (w przypadku egzekucji testów). Ważne jest także podanie wersji, dzieki czemu przy próbie powtórzenia błędów lub w czasie retestów zaoszczędzimy czas na szukanie odpowiedniej wersji. W tym miejscu również należy wypisać i opisac elementy, które mają podlegać testom.

Lp Test Rezultat Status/ Ocena testu
1 Cel Testu:

Stan początkowy:

Akcja:

Oczekiwana Wartość
Wartość testowa
2 Cel Testu:

Stan początkowy:

Akcja:

Oczekiwana Wartość
Wartość testowa
3 Cel Testu:

Stan początkowy:

Akcja:

Oczekiwana Wartość
Wartość testowa
4 Cel Testu:

Stan początkowy:

Akcja:

Oczekiwana Wartość
Wartość testowa

 

Drugi element składa się z części opisującej test oraz części opisującej rezultaty.  W części dotyczącej testu powinniśmy sprecyzować następujące elementy:

  • Cel testu – bardzo ważny element, na jego podstawie, po egzekucji, możemy podjąć decyzję czy test zakończył się sukcesem czy porażką, dzięki niemu wiemy również dokładnie co chcemy osiągnąć tym testem.
  • Stan początkowy/ warunki wstępne – jakie warunki powinny być spełnione, aby móc zacząć przeprowadzać test.
  • Akcja – kroki, które musimy wykonać, aby wykonać test. Kroki powinny być opisane bardzo dokładnie, tak aby każda osoba mogła je wykonać. Dodatkowo warto w tym miejscu opisać jak system powinien reagować na poszczególne kroki.

Drugą częścią jest część opisująca rezultaty, składa się ona z trzech aspektów:

  • Oczekiwana wartość – jest to wartość, którą powinniśmy otrzymać,
  • Wartość testowa – wartość, którą realnie otrzymalismy,
  • Status/ Ocena testu – porównując wartość oczekiwaną z wartością testową oceniamy test, jeżeli obie wartości sa takie same (lub w szczególnych przypadkach spełniają kryterium tolerancji błędu) nasz test kończy się skucesem, jeżeli różnią się test kończy się porażką.
Data: Sporządził: Zatwierdził:

 

Trzeci element jest elementem organizacyjnym, składa się z trzech części:

  • Daty – kiedy scenariusz został sporządzony.
  • Sporządził – tu zamieszczamy dane osobowe testera, który scenariusz testowy przygotował.
  • Zatwierdził – osoba, która sprawdziła scenariusz testowy i go zatwierdziła.

Jaka jest różnica pomiędzy przypadkiem testowym a scenariuszem testowym?

Ogólna różnica polega na tym, że scenariusz testowy zawiera wiele przypadków testowych. Czyli możemy mieć scenariusz testowy testujący funkcję obsługi koszyka w sklepie internetowym, a scenariusz ten może się składać z poniższych przypadków testowych:

  1. Dodanie produktu do koszyka – przypadek pozytywny (dodajemy produkt do koszyka z sukcesem).
  2. Dodanie produktu do koszyka – przypadek negatywny (dodajemy produkt do koszyka, ale otrzymujemy komunikat o błędzie).
  3. Usunięcie produktu z koszyka – przypadek pozytywny (usuwamy produkt z koszyka z sukcesem).
  4. Usunięcie produktu z koszyka – przypadek negatywny (usuwamy produkt z koszyka, ale otrzymujemy komunikat o błędzie, a produkt nadal jest w koszyku).

Czyli w matematycznym sensie:

ScenariuszTestowy= {PrzypadekTestowy1, PrzypadekTestowy2, PrzypadekTestowy3,….}

Dobre rady

  1. Na samym początku określ dokładnie, jaki powinien być zakres testów. Pomocne może być wypisanie wszystkich funkcjonalności, oraz przygotowanie przypadków użycia. Dzięki temu nasze testowanie będzie dokładniejsze i bardziej rzetelne.
  2. Testuj elementy, które posiadają logikę oraz nie są statyczne.
  3. Pamiętaj aby wskazać wersję testową, na której były przeprowadzanie testy. Pomoże to w przypadku, kiedy będziemy chcieli odtworzyć błąd lub przeprowadzić retesty.

[1]http://sjsi.org/slowo/specyfikacja-procedury-testowej/

[2]Przykładowy szablon wzorowany był na szablonie: http://www.qatester.pl/testowanie/testowanie-w-teorii/64-scenariusz-testowy

4 Replies to “Jak prawidłowo pisać scenariusze testowe?

  1. W powyższym artykule znalazłam błąd z słowie sukces (skucesem – sukcesem).
    Jest to błąd mało zauważalny dla osoby posługującej się biegle/bardzo dobrze językiem polskim, jednakże dla osoby mówiącej innym językiem słowo może być niezrozumiałe.

    „Status/ Ocena testu – porównując wartość oczekiwaną z wartością testową oceniamy test, jeżeli obie wartości sa takie same (lub w szczególnych przypadkach spełniają kryterium tolerancji błędu) nasz test kończy się skucesem, jeżeli różnią się test kończy się porażką.”

    W artykule znalazłam również braki końcówek w słowach:
    1. dzieki – ” Ważne jest także podanie wersji, dzieki czemu przy próbie powtórzenia błędów lub w czasie retestów zaoszczędzimy czas na szukanie odpowiedniej wersji.”
    2. opisac – „W tym miejscu również należy wypisać i opisac elementy, które mają podlegać testom.”
    3. otrzymalismy – „Drugą częścią jest część opisująca rezultaty, składa się ona z trzech aspektów:
    Oczekiwana wartość – jest to wartość, którą powinniśmy otrzymać,
    Wartość testowa – wartość, którą realnie otrzymalismy,”
    4. sa – „Status/ Ocena testu – porównując wartość oczekiwaną z wartością testową oceniamy test, jeżeli obie wartości sa takie same…”

    Artykuł bardzo ciekawy i zrozumiały:)
    Pozdrawiam

    1. Bardzo dziękuję! POstaram się poprawić błędy, jak tylko uda mi się dorwać dobre łącze 😀 hmmm ten komentarz mnie natchnął, co byście powiedzieli na konkurs na znajdywanie błędów? Dajcie mi chwilę na zorganizowanie, bo muszę wymyśleć jakąś fajną i użyteczną nagrodę dla zwycięzcy 😀 Pozdrawiam!

      1. Pania Eweline za bardzo ponioslo uwazam 🙂 Przepraszam odrazu za brak spolglosek ale nie posiadam klawiatury polskojezycznej. Ciekawe czy podczas pisania sms badz innej wiadomosci na telefonie tez Pani sie skupia nad pisownia? Uwarzam artykol za interesojoncy 😉

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *