Artykuł prof. Madeyskiego powinien Państwu dostatecznie dobrze wyjaśnić, do czego służą i jak wyglądają karta wymagań i szkice ekranów. Nie wyjaśnia on jednak, jak pisać instrukcje dla testerów sprawdzających poprawność działania aplikacji -- zamiast tego pokazane jest, jak można testowanie zautomatyzować. W robionym na ćwiczeniach projekcie zakładamy jednak, że testowanie aplikacji jest robione ręcznie. Będziecie Państwo musieli takie instrukcje przygotować, a niniejsza ściągawka ma Wam pokazać, jak mają one wyglądać. Weźmy znajdujący się w artykule przykładowy XML-owy plik definiujący testy wykonywane przez system automatycznego testowania XmlTestSuite i spróbujmy opisać je w formie zrozumiałej dla człowieka. 1. Wejdź na stronę logowania. 2. Sprawdź, czy widoczne są pola na wpisanie nazwy użytkownika i hasła oraz przyciski "Zaloguj się" i "Zresetuj". Sprawdź, czy pod nimi widoczny jest odnośnik "Zapomniałem hasła". 3. Pozostawiając oba pola puste naciśnij "Zaloguj się". Sprawdź, czy pojawił się komunikat nakazujący wypełnienie tych pól. 4. Jako nazwę użytkownika wpisz "invalid-login", jako hasło "password" i naciśnij "Zaloguj się". Sprawdź, czy pojawił się komunikat o błędzie autentykacji i prośba o ponowienie próby. 5. Jak pkt. 4, lecz wpisując "login" i "invalid-password". 6. Wpisz "login" i "password", naciśnij "Zaloguj się". Sprawdź, czy wyświetliła się główna strona aplikacji i czy w jej rogu jako nazwa zalogowanego użytkownika wyświetla się "Test User". Proszę zwrócić uwagę na różnice w definicjach testów. XmlTestSuite rozpoznaje pole na wpisanie hasła po tym, że w HTML-owym kodzie źródłowym strony ma ono atrybut "type=password" oraz nazwę "password". Człowiek rozpoznaje to pole po tym, że na ekranie obok niego jest napis "Hasło:" albo inna podobna etykieta. Proszę też zwrócić uwagę, że nie ma potrzeby, aby w instrukcji precyzyjnie określać treść etykiety, bo zawodowy tester doskonale wie, czym jest "pole na wpisanie hasła". Konieczne jest za to określenie, co dokładnie w to pole należy wpisać -- gdyby w instrukcji było "wpisz z klawiatury przypadkowy ciąg znaków", to test nie byłby powtarzalny. Jako drugi przykład weźmy aplikację-kalkulator. Pojedyncze testy wchodzące w skład zestawu mają identyczną strukturę: wpisz wyrażenie, sprawdź czy uzyskany wynik zgadza się z oczekiwanym. Aby skrócić instrukcję można te testowe wyrażenia i wyniki zapisać w tabelce, a następnie kazać testerowi wykonywać te same czynności dla danych z kolejnych wierszy. Można też do tych danych odwołać się więcej niż raz. 1. Uruchom kalkulator. 2. Używając klawiszy z bloku numerycznego wpisz znaki podane w pierwszym wierszu tabeli. Sprawdź, czy kalkulator wyświetla liczbę podaną w tabeli jako oczekiwany wynik. Naciśnij dwa razy klawisz Esc aby zresetować kalkulator. Sprawdź, czy historia obliczeń została wymazana i czy wyświetla się zero. 3. Powtórz pkt. 2 dla pozostałych wierszy tabeli. 4. Powtórz pkt. 2-3, ale używaj klawiszy z głównego bloku klawiatury. 5. Powtórz pkt. 2-3 używając myszki i wyświetlanych na ekranie przycisków. Odpowiednikiem klawisza Esc jest przycisk oznaczony literą "C", wystarczy nacisnąć go jeden raz aby zresetować kalkulator. Tabela może być w tym samym dokumencie co powyższa instrukcja albo w odrębnym arkuszu Excela, w zależności od tego jak jest wygodniej. I jeszcze trzeci przykład, w którym testowana jest aplikacja do tworzenia list zadań. Instrukcja będzie bardziej formalna, z tytułem przypadku testowego na początku i podziałem na części opatrzone nagłówkami. Test nr 18: usuwanie listy zadań Kontekst: * użytkownik ma stworzoną jedną lub więcej list zadań Opis testu: * wyświetl listę zadań, którą chcesz usunąć * kliknij w "Usuń" * potwierdź, że na pewno chcesz ją usunąć Oczekiwany rezultat: * aplikacja przechodzi do strony ze spisem wszystkich list * nie ma w tym spisie usuniętej listy Jak widać, przypadki testowe można opisywać mniej lub bardziej formalnie. To, co najważniejsze to czytelność opisu (a więc to samo, co było ważne w opisach przypadków użycia) i powtarzalność testów.