Przykłady notacji testów

Przykłady notacji testów
Na początek zdefiniujmy wymaganie, do którego napiszemy później testy w różnych formach.

Wymaganie: „Użytkownik podając dzień, miesiąc oraz rok urodzenia i naciskając klawisz oblicz wiek otrzymuje wyliczenie - ile lat ma osoba urodzona w podanej dacie”.

Załóżmy również jego implementację, którą przedstawia poniższa wizualizacja: 

implementacja-wizualizacja.jpgA teraz zobaczmy, jak będą wyglądały testy w różnych notacjach.

INSTRUKCJA

Jest to forma notacji, która nie wymaga od operatora testów myślenia, ponieważ podaje mu wszystkie szczegóły oraz nie nakazuje raportowania defektów. Na końcu operator musi określić czy otrzymał zachowanie, jakie było oczekiwane i raportuje przez wybór TAK lub NIE. Analizę wyników uruchomienia bierze na siebie osoba o wyższych kompetencjach. Takie testowanie możemy nazwać „manualizacją”.

Koncentrujemy się na wybranym, pojedynczym zachowaniu oprogramowania. 

pojedyncze-zachowanie-oprogramowania.jpg

SZCZEGÓŁOWY PRZYPADEK TESTOWY

Taka notacja opisuje dokładnie co i w jaki sposób trzeba zrobić, podając również dane testowe do użycia. Ewentualne niezaliczenie testów wymaga już napisanie zgłoszenia defektu po uruchomieniu. 

Koncentrujemy się na wybranym, pojedynczym zachowaniu oprogramowania.

pojedyncze-zachowanie-oprogramowania-2.jpg*) test poprawnie opisany dla roku 2023.

WYSOKOPOZIOMOWY PRZYPADEK TESTOWY / PRZYPADEK TESTOWY

Ta notacja pokazuje, co trzeba testować i w jakich ramach, ale dane testowe wybiera już tester. Często oczekiwany rezultat uruchomienia testów będzie zależny od wybranych danych, więc również nie podaje się tu konkretu. Uruchomienie takiego testu wymaga już pewnych umiejętności testerskich, więc przeznaczony jest dla osób z doświadczeniem.

Koncentrujemy się na wybranym zachowaniu oprogramowania testowanym przy różnych danych testowych.

przypadek-testowy-rozne-dane.jpg

TEST CHARTER / KARTA OPISU TESTÓW

Notacja znana z testów eksploracyjnych nie niesie praktycznie żadnych wytycznych JAK testować, ale pokazuje CO trzeba przetestować. Dobór danych i technik spoczywa na doświadczonym testerze.

Koncentrujemy się na funkcji w obszarze zarówno pozytywnych, jak i negatywnych testów.

Definiowanie czasu jest kompensacją braku metryki liczby uruchomionych przypadków testowych. Zamiast liczby testów raportujemy czas prowadzenia testów.

definiowanie-czasu.jpg

TEST / ZADANIE

Notacja, która nie jest żadną formalną notacją, a jedynie poleceniem. Taka forma nie niesie za sobą metryk i bazuje na zaufaniu, że bardzo doświadczony tester ma umiejętności, aby zweryfikować nie tylko funkcję, ale i całą aplikację oraz kontekst jej działania. 

Brak metryk, a raport niesie za sobą statusy typu: działa / nie działa / działa, ale [lista defektów].

raport-test-zadanie.jpg

SKRYPT

Notacja przy testach automatycznych, która często ma cechy wysokopoziomowego testu z zewnętrznie dołączonymi danymi testowymi. 

Celem jest sprawdzenie, czy coś, co wiemy, że działało wcześniej, ciągle działa. Koncentrujemy się więc na potencjalnym regresie. Ponieważ notacja testu jest kodowa, to poniżej jego abstrakcyjne przedstawienie bez odwoływania się do konkretnego języka. 

przedstawienie-notacji.jpgZbiory danych do testu.

zbiory-danych-do-testu.jpgCiekawostką może być to, że w generowaniu testów oraz danych może nam pomóc AI, która potrafi być w tym całkiem skuteczna. Nie jest ona (aktualnie) w stanie samodzielnie uruchomić testu, ale może nam go wygenerować (do dopracowania).

Przykład:

prompt-generowanie-testu-ai.jpg

DODATEK

Jakie notacje stosuje się przy jakim doświadczeniu, pokazuje poniższy wykres:

notacje-stosowane-przy-doswiadczeniu-wykres.jpg

Powyższe opracowanie nie wyczerpuje notacji. W formalnych testach możemy znaleźć jeszcze taki zapis jak „warunek testowy” czy „lista kontrolna”. Zapewne w innych kontekstach można znaleźć jeszcze inne formy definiowania testów.

Opracowane z prezentacją „TEST to nie PRZYPADEK” Radka Smilgina z WarszawQA 19.12.2023