Testy akceptacyjne Analiza systemów informatycznych Wykład 9 (c) Jerzy Nawrocki Requirements Eng., Lecture 11 Analiza systemów informatycznych Wykład 9 Testy akceptacyjne Jerzy.Nawrocki@put.poznan.pl www.cs.put.poznan.pl/jnawrocki/wsb-asi/ Copyright, 2005 Jerzy R. Nawrocki Acceptance Testing
Model V Specyfikacja wymagań Testy akceptacyjne Projekt Testy integracyjne Kodowanie Testy jednostkowe J.Nawrocki, Testy akceptacyjne
Model V Specyfikacja wymagań Testy akceptacyjne Projekt Klient Specyfikacja wymagań Testy akceptacyjne Projekt Testy integracyjne Kodowanie Testy jednostkowe J.Nawrocki, Testy akceptacyjne
Programowanie Ekstremalne Programowanie sterowane testami Testy akceptacyjne: klient Autom. testy akceptacyjne Testy autom.: klient+tester Pomiary postępu bazujące na testach akceptacyjnych J.Nawrocki, Testy akceptacyjne
Programowanie Ekstremalne Testy akceptacyjne jako miara postępów J.Nawrocki, Testy akceptacyjne
Testy akceptacyjne Rodzaje testów Sum=0; for (i=0; i<n; i++) Black box testing (testowanie czarnej skrzynki) Sum=0; for (i=0; i<n; i++) Sum+= a[i]; White box testing (testowanie szklanej skrzynki) J.Nawrocki, Testy akceptacyjne
Rational Robot – narzędzie automatyzacji testowania Nagrywanie Odtwarzanie Dysk Robot Dysk J.Nawrocki, Testy akceptacyjne
Na czym polega automatyzacja testowania? Kup „egzekutora” testów. Nagraj testy. Odtwarzaj je, kiedykolwiek będziesz miał ochotę. To proste! „Just as there is more to software design than knowing a programming language, there is more to automating testing than knowing a testing tool.” -- M. Fewster & D. Graham J.Nawrocki, Testy akceptacyjne
Testy ręczne czy automatyczne? Pracochłonność automatyzacji testów: 2 – 10 razy tyle co ręczne wykonanie testów (!) J.Nawrocki, Testy akceptacyjne
Rational Robot i testy przed kodowaniem Nagrywanie Odtwarzanie Uwagi: Przy nagrywaniu testów aplikacja powinna być już gotowa. Rational Robot zaprojektowano do testowania regresyjnego, nie do ‘testów przed kodowaniem’. Jedyną szansą na ‘testy przed kodowaniem’ jest SQABasic. J.Nawrocki, Testy akceptacyjne
Testowanie aplikacji HTML-owych StartBrowser [ URL$, ] [ WindowTag= Name$ ] Adres strony www Identyfikuje instancję przeglądarki Otwiera przeglądarkę, Umożliwia testowanie HTML-owe, Ściąga podaną stronę. StartBrowser "http://www.cs.put.poznan.pl/jnawrocki/models/", "WindowTag= Parent" J.Nawrocki, Testy akceptacyjne
Testowanie aplikacji HTML-owych Browser action$, recMethod$, parameters$ Back, Forward, NewPage, SetFrame, CloseWin, .. HTMLTitle=$, Name=$, "" .. Wait= % default time is 30s Wykonuje akcję za pomocą przeglądarki Browser NewPage, "" Wait for the topmost frame J.Nawrocki, Testy akceptacyjne
Testowanie aplikacji HTML-owych HTML action%, recMethod$, parameters$ Click, .. HTMLTitle=$, Name=$, "" .. Coords= x, y Wykonuje akcję myszką na znaczniku HTML-owym. HTML Click, "Name= Autor", "Coords= 10,12" J.Nawrocki, Testy akceptacyjne
Akcje użytkownika Weryfikacja SQABasic HTMLDocument Click, "Type=HTMLDocument;Index=1", "Coords=25,14 " Weryfikacja Result = HTMLTableVP (CompareData, "Type=HTMLTable;Index=1", "VP=Weryfikacja_daty") TestDatastore\DefaultTestScriptDatastore\TMS_Script\vp\test7.Weryfikacja_daty.base.grd J.Nawrocki, Testy akceptacyjne
Alternatywy dla Rational Robota httpUnit Opiera się na jUnit Dla programistów! J.Nawrocki, Testy akceptacyjne
Skrypty sterowane danymi Skrypty sterowane danymi = Dane wejściowe składowane w osobnym pliku (danych). countries, Sweden, USA, countries2 countries, France, Germany, test2 countries, Austria, Italy, test3 J.Nawrocki, Testy akceptacyjne
Skrypty sterowane danymi Control script OpenFile ‘ScribbleData’ For each record in ScribbleData Read INPUTFILE Read NAME1 Read NAME2 Read OUTPUTFILE Call ScribbleOpen (INPUTFILE) FocusOn ‘Scribble’ SelectOption ‘List/Add Item’ FocusOn ‘Add Item’ Type NAME1 LeftMouseClick ‘OK’ ... EndFor Dane wejściowe countries, Sweden, USA, countries2 countries, France, Germany, test2 countries, Austria, Italy, test3 J.Nawrocki, Testy akceptacyjne
Bardziej skomplikowany skrypt sterowany danymi Control script OpenFile ‘ScribbleData’ Read INPUTFILE Call ScribbleOpen (INPUTFILE) Go to next record (ie row) For each record in ScribbleData Read ADDNAME If ADDNAME <> Blank Then { FocusOn ‘Scribble’ SelectOption ‘List/Add Item’ FocusOn ‘Add Item’ Type ADDNAME LeftMouseClick ‘OK} Read MOVEFROM Read MOVETO ... EndFor Dane wejściowe countries Sweden USA 4 1 Norway 2 7 countries2 J.Nawrocki, Testy akceptacyjne
Skrypty sterowane danymi Additional automated regression test cases Software under test Key automated regression test cases J.Nawrocki, Testy akceptacyjne
Skrypty sterowane słowami kluczowymi Skrypty sterowane słowami kluczowymi = Skrypty sterowane danymi wzbogacone słowami kluczowymi reprezentującymi akcje użytkownika. Test file ScribbleOpen countries AddToList Sweden USA SaveAs countries2 For each TEST_ID OpenFile TEST_ID For each record in test file Read KEYWORD Call KEYWORD EndFor CloseFile TEST_ID Control script ScribbleOpen ... AddToList SaveAs Supporting scripts J.Nawrocki, Testy akceptacyjne
Skrypty współdzielone (c) Jerzy Nawrocki Skrypty współdzielone Requirements Eng., Lecture 11 Skrypt współdzielony = Skrypt wykorzystywany przez więcej niż jeden przypadek testowy. SQABasic Call ScribbleOpen (‘countries’) FocusOn ‘Scribble’ SelectOption ‘List/Add Item’ ... Call ScribbleSaveAs (‘countries2’) J.Nawrocki, Testy akceptacyjne Acceptance Testing
Automatyzacja wykonywania testów Skrypty automatyczne nie są podobne do skryptów ręcznych Nie automatyzuj testowania przez proste nagrywanie testów Automatyczne wykonywanie z ‘ręczną’ weryfikacją? Ile porównywać (wszystko czy tylko część)? Dynamiczne porównywanie i porównywanie po wykonaniu Wyniki porównania automatycznego muszą być ręcznie sprawdzane Dlaczego testy zawodzą drugi raz? J.Nawrocki, Testy akceptacyjne
Analiza wartości granicznych Czynności testowania Zidentyfikuj warunki testowania (‘co’ testować) i priorytety Zaprojektuj scenariusze testowe (‘jak’ testować) Zbuduj przypadki testowe (skrypty, dane etc.) Klasy równoważności Analiza wartości granicznych Przeprowadź testy Porównaj faktyczne wyniki z oczekiwanymi J.Nawrocki, Testy akceptacyjne
Proces testowania ręcznego Testowanie ręczne bez skryptów: Zidentyfikuj warunki testowania Wymyśl konkretne dane testowe Wprowadź dane Sprawdź, czy dobrze działa J.Nawrocki, Testy akceptacyjne
Proces testowania ręcznego Testowanie ręczne bez skryptów Nieprecyzyjne skrypty testów ręcznych: Przeczytaj co masz zrobić Wymyśl konkretne dane testowe Wprowadź dane Sprawdź, czy dobrze działa J.Nawrocki, Testy akceptacyjne
Przykład przypadku testowego Prerequisites: logged into the purchase order system as a data entry clerk; database system must contain the standard Data Set; no other new purchase order activity on the system. Step Input Exp.out Cond. 1 Create a new order for any one standard order, setting quantity to 100 Order confirmation message displayed VB10 VB23 2 Confirm the order Purchase order printed 3 Print a new orders report New orders report printed showing just this one new order 4 Cancel the order Purchase order cancellation notice printed V8 J.Nawrocki, Testy akceptacyjne
Proces testowania ręcznego Testowanie ręczne bez skryptów Nieprecyzyjne skrypty testów ręcznych Szczegółowe skrypty ręczne: Przeczytaj co masz zrobić Wprowadź dane Sprawdź, czy dobrze działa J.Nawrocki, Testy akceptacyjne
Szczegółowy skrypt ręczny 1 Click on Scribble icon Scribble opened, File menu enabled 2 Move mouse to File menu, click Options available: Open, New, Exit 3 Move mouse to Open option, Filenames displayed including click countries.dcm 4 Move mouse to countries.dcm Text plus List of 3 countries: Belgium, Netherlands, UK, File and List menus displayed . . . . . . J.Nawrocki, Testy akceptacyjne
Analiza wartości granicznych Czynności testowania Zidentyfikuj warunki testowania (‘co’ testować) i priorytety Zaprojektuj scenariusze testowe (‘jak’ testować) Zbuduj przypadki testowe (skrypty, dane etc.) Klasy równoważności Analiza wartości granicznych Przeprowadź testy Porównaj faktyczne wyniki z oczekiwanymi J.Nawrocki, Testy akceptacyjne
Księgarnia elektroniczna J.Nawrocki, Testy akceptacyjne
Warunki testowania (test conditions) Kupno pojedynczej książki Kupno książek, które będą wysłane w kilku paczkach Nieefektywny zakup książki Sprawdzenie co się dzieje z kupionymi książkami Dodanie swojej recenzji Zapłata kartą płatniczą Zapłata czekiem . . . J.Nawrocki, Testy akceptacyjne
Priorytety Kupno pojedynczej książki Kupno książek, które będą wysłane w kilku paczkach Nieefektywny zakup książki Sprawdzenie co się dzieje z kupionymi książkami Dodanie swojej recenzji Zapłata kartą płatniczą Zapłata czekiem . . . J.Nawrocki, Testy akceptacyjne
Projekt scenariusza testowego Nieefektywny zakup książki: 1 Klient wkłada do koszyka książki 2 Klient wyjmuje z koszyka wszystkie włożone książki Nieefektywny zakup książki: 1 Klient wkłada do koszyka książki 2 Klient wyjmuje z koszyka wszystkie włożone książki 3 Klient wkłada do koszyka książkę 4 Klient wyjmuje z koszyka J.Nawrocki, Testy akceptacyjne
Projekt scenariuszy w oparciu o przypadki użycia Zakup książki 1. Klient przegląda książki dostępne w księgarni. 2. Klient wkłada do koszyka wybraną książkę. 3. Klient przechodzi do sfinalizowania zakupu. 4. System prosi o podanie adresu i danych do faktury. 5. Klient podaje adres i dane do faktury. 6. System prosi o wybranie sposobu zapłaty. 7. Klient płaci za książkę w wybrany sposób. 8. System dziękuje za zakup i informuje o przesyłce. Wyjątki 3a. Klient chce rozważyć możliwość zakupu jeszcze jednej książki. 3a1. Następuje powrót do kroku 1. 3b. Klient chce zrezygnować z zakupu książki, którą ma w koszyku. 3b1. Klient wyjmuje książkę z koszyka J.Nawrocki, Testy akceptacyjne
Projekt scenariuszy w oparciu o przypadki użycia Zakup książki 1. Klient przegląda książki dostępne w księgarni. 2. Klient wkłada do koszyka wybraną książkę. 3. Klient przechodzi do sfinalizowania zakupu. 4. System prosi o podanie adresu i danych do faktury. 5. Klient podaje adres i dane do faktury. 6. System prosi o wybranie sposobu zapłaty. 7. Klient płaci za książkę w wybrany sposób. 8. System dziękuje za zakup i informuje o przesyłce. Wyjątki 3a. Klient chce rozważyć możliwość zakupu jeszcze jednej książki. 3a1. Następuje powrót do kroku 1. 3b. Klient chce zrezygnować z zakupu książki, którą ma w koszyku. 3b1. Klient wyjmuje książkę z koszyka ... J.Nawrocki, Testy akceptacyjne
Budowanie przypadków testowych int LiczbaCyfr(int n) [1-9] [10-99] [100-999] ... [.. –1] 1, 9 10, 99 100, 999, 255, 256 215 Analiza wartości granicznych -1 Klasy równoważności J.Nawrocki, Testy akceptacyjne
Atrybuty przypadków testowych Na ile skuteczny w wykrywaniu defektów? Na ile reprezentatywny? (im większa reprezentatywność tym mniej ich potrzeba) Na ile ekonomiczny? Na ile modyfikowalny? (pielęgnacja) J.Nawrocki, Testy akceptacyjne
Automatyczne wykonywanie testów Skuteczność Ekonomiczność Modyfikowalność Reprezentatywność J.Nawrocki, Testy akceptacyjne
Automatyczne wykonywanie testów Skuteczność Ekonomiczność Modyfikowalność Reprezentatywność J.Nawrocki, Testy akceptacyjne
Podsumowanie Testy akceptacyjne są tworzone pod dyktando klienta Testy akceptacyjne są b.dobrym miernikiem postępów Testy akceptacyjne pasują do przypadków użycia Testy akceptacyjne można automatyzować, ale trzeba uważać At last! J.Nawrocki, Testy akceptacyjne
? Pytania? J.Nawrocki, Testy akceptacyjne (c) Jerzy Nawrocki Requirements Eng., Lecture 11 ? J.Nawrocki, Testy akceptacyjne Acceptance Testing