Dobre praktyki w tworzeniu Test Case'ów Patryk Ostrowski, kwiecień 2014 1
Dlaczego taki temat... core aktywności testerskich w projekcie IT rozwijający się rynek nowi specjaliści przychodzą w różnych branż wnosząc cenną wiedzę dziedzinową i doświadczeniem użytkowników końcowych ale mogli nie spotkać się z pojęciem 'przypadku testowego' często jedyny artefakt jaki po sobie pozostawiamy input do automatyzacji (10 osób na 31 z ankiety) 2
Jacy inżynierowie takie Test Case'y ~ Stanisław Kożuchowicz 3
Wyniki ankiety 1/3 Test Case'y napisane przez inne osoby wykonuję: 4
Wyniki ankiety 2/3 Sam piszę Test Case'y: 5
Wyniki ankiety 3/3 Bywa, że muszę dopytać 'Co autor miał na myśli': 6
Błędy 7
Punkty dystrakcji na przykładzie klienta poczty 1/7 Step 1. Utwórz nowy E-mail. 2. 3. 4. Wyślij wiadomość. Expected result 1. Nowe okno 2. 3. 4. Upewnij się, że wiadomość wysłano do min. 10 odbiorców. 8
Punkty dystrakcji na przykładzie klienta poczty 2/7 Step Expected result 1. Utwórz nowy E-mail. 2. Wstaw odbiorcę. 3.... 4. Wyślij wiadomość. 5. Przed wysłaniem wiadomości zaznacz opcję 'Wyślij kopię również do mnie'. 1. Nowe okno 2. Status użytkownika wyświetlony w polu 'Do'. 3. 4. 9
Punkty dystrakcji na przykładzie klienta poczty 3/7 Step 1. Utwórz nowy E-mail. 2. Parametr 'znc90' jest włączony lub wyłączony. Expected result 1. Nowe okno 2. Jeśli włączony to... a jeśli wyłączony to... 10
Punkty dystrakcji na przykładzie klienta poczty 4/7 Precondition 1. 2. Opcja pozwalająca na edycję załączników tekstowych w trybie przekazywania do odbiorców spoza listy dystrybucyjnej jest włączona. 3.... 11
Punkty dystrakcji na przykładzie klienta poczty 5/7 Step 1. Utwórz nowy E-mail. 2. Dołącz wszystkie typy plików. Expected result 1. Nowe okno 2.... 12
Punkty dystrakcji na przykładzie klienta poczty 6/7 Step 1. Utwórz nowy profil użytkownika. 2. Załącz grafikę awatara. Expected result 1. Nowe okno 2. Sprawdź w bazie. 13
Punkty dystrakcji na przykładzie klienta poczty 7/7 Step Expected result 1. Utwórz nowe zaproszenie na spotkanie. 2. 3. Wyślij zaproszenie na spotkanie do wybranych uczestników z załączonymi plikami. 1. Nowe okno 2. 3. OK 14
Trochę teorii... Analiza i projektowanie: - ogólne cele przekształcane są w warunki i projekty testów Implementacja i wykonanie: - warunki testowe są przekształcane w przypadki testowe i testalia (Test Data), tworzone są scenariusze/procedury na podstawie Test Case'ów 15
Budowa Test Case'a Title / no. Description Precondition Users / roles Test Data Step Action Expected result 1.......... N. Postcondition 16
Kilka dobrych praktyk Każdy Test Case jest elementarny (atomowość TCs'ów) i opisuje jasno dokładnie jedno flow TC w nagłówku informuje jakie dodatkowe dane/role będą potrzebne TC nazywa rzeczy po imieniu: wciśnij 'Wyślij' zamiast wyślij formularz ('Wyślij' vs. 'Wyślij i zapisz') Jeden step = jeden rezultat 'Postcondition' nie jest powtórzeniem rezultatu ostatniego stepu jak i 'Precondition' pierwszego Lepiej więcej niż mniej 17
Co nam to da? ISTQB wyznacza jasny podział pomiędzy etapem projektowania i pisania czym pozwala uporządkować aktywności testowe łatwość tworzenia procedur/scenariuszy determinujących kolejność wykonania ułatwione traceability Use Case Test Case Test Data Test Case'y wyjdą z etapu Projektowanie 18
Projektowanie Test Case'ów Narzędzia do projektowania Techniki projektowania: - diagram przejść stanów, - wartości brzegowe, - klasy równoważności. 19
Tworzenie Test Case'ów na przykładzie... 20
Rezerwacja biletu na film Otwarcie URL'a!dostęp do netu,!aktywne konto mailowe Wybór filmu opis z opcjami godzinowymi Wybór dnia/godziny formatka z lokalizacjami do wyboru Wybór lokalizacji okno z podglądem sali i miejsc z przypisanymi statusami (+czy zapamiętana 'nasza' data i godzina? +sprawdzenie w bazie zgodności statusów) Wybór miejsc/a rozwijana LoV lista z opcjami 'N' / 'U' (+test negatywny) 'Dalej' formularz podsumowujący wybrane opcje (+sprawdzenie w bazie zmiany statusu dla wybranego miejsca +sprawdzenie nowego obiektu z przypisanymi wartościami) 'Akceptuję' formularz z polami 'Imię', 'Nazwisko', 'Telefon', 'E-mail'. 'Zakończ' walidator Wypełnianie pól z test daty (string, char, znaki specjalne) Wysłanie formularza system zwraca stronę 'Rezerwacja została dodana', sprawdzenie maila, sprawdzenie w bazie. +TC: -anulowanie na każdym kroku, -cofanie do poprzedniego stepu i zmiana wartości, 21