Testowanie i walidacja oprogramowania
Transkrypt
Testowanie i walidacja oprogramowania
2010-10-04 Testowanie i walidacja oprogramowania Inżynieria oprogramowania, sem.5 cz. 3 Rok akademicki 2010/2011 Dr inż. Wojciech Koziński Zarządzanie testami Cykl życia testów (proces) Planowanie Wykonanie Ocena Dokumentacja Raportowanie TIWO cz. 3 2010/2011 2 Standard IEEE 829 – dokumentowanie procesu testowania Plan testów: zakres, sposób przeprowadzenia, zasoby, harmonogram, Specyfikacja projektu testów: szczegóły sposobu przeprowadzenia, projektowanie przedmiotu testów, Specyfikacja procedur testowych (inaczej: kroki użyte do analizy oprogramowania dla oceny zbioru cech charakterystycznych, Opis dostarczonego oprogramowania, które będzie poddane testom, Chronologiczny zapis zdarzeń związanych z procesem testowania, Opis incydentów (czyli wykrytych błędów), które wymagają dalszej analizy, Podsumowanie procesu testowania, ocena skuteczności, wnioski na przyszłość. Podkreślone fazy procesu zostaną omówione szczegółowo. TIWO cz. 3 2010/2011 3 1 2010-10-04 Dokumentowanie testowania – plan testów (1) Jednoznaczny identyfikator danego planu testów, Wprowadzenie ogólne: opis ogólny, plan zapewnienia jakości, konfiguracja, zastosowane standardy, Oprogramowanie poddane testowaniu, wersja, dokumentacja tego oprogramowania. Wyjątki nie podlegające testowaniu. Cechy charakterystyczne podlegające testowaniu, ich kombinacje, specyfikacja projektu testów. Cechy charakterystyczne nie podlegające testowaniu (dlaczego), Metody testowania, zastosowane techniki, testowanie wymagań niefunkcjonalnych, kryteria opisujące test (np. pokrycie kodu, częstotliwość wykrywania błędów), istotne ograniczenia (dostępność sprzętu, czas). TIWO cz. 3 2010/2011 4 Dokumentowanie testowania – plan testów (2) Kryteria pozwalające uznać, że test zakończył się sukcesem/porażką. Kryteria przerwania lub/i podjęcia na nowo procesu testowania (koniec dnia pracy, awaria sprzętu, inna ważna przyczyna), specyfikacja testów, które muszą być przeprowadzone ponownie lub powtórzone. Rezultaty testów (ang. deliverables): specyfikacje projektów testów, specyfikacje testów, specyfikacje dostarczone oprogramowania, rezultaty, błędy, opis zastosowanych narzędzi. Zadania niezbędne do wykonania by rozpocząć proces testowania, proces testowania. Środowisko testowania (sprzęt, oprogramowanie systemowe, oprogramowanie narzędziowe, zabezpieczenia) , Osoby odpowiedzialne za zarządzanie, projektowanie, przygotowanie, przeprowadzenie testów. Ewentualni świadkowie procesu ze strony użytkownika (organów nadzorczych). TIWO cz. 3 2010/2011 5 Dokumentowanie testowania – plan testów (3) Potrzeby: liczba testerów i ich poziom umiejętności (ewentualne szkolenia), Harmonogram testów, kamienie milowe (powiązane z projektem), ocena czasu testowania, powiązania – następstwa czasowe testów. Ocena ryzyka w procesie testowania (braki wykwalifikowanego personelu, problemy techniczne) i sposoby przeciwdziałania. Zatwierdzenie – osoba odpowiedzialna. TIWO cz. 3 2010/2011 6 2 2010-10-04 Specyfikacja przypadków testowych Unikalny identyfikator przypadku testowego. Przedmiot testowania: opis przedmiotu testowania i cech wybranych do testowania z odniesieniami do odpowiednich dokumentacji. Specyfikacje zbiorów wejściowych. Wszystkie dane w projektowanym teście musza być podane, ich ewentualne zależności czasowe. Specyfikacja zbiorów wyjściowych, czasów odpowiedzi dla każdego elementu ze zbioru wejściowego. Specyfikacja niezbędnych zasobów (sprzęt, oprogramowanie, operatorzy, testerzy). Specyfikacja szczególnych wymagań niestandardowych (odpowiednie konfiguracje, interwencje operatora. Specyfikacja związków między poszczególnymi testami, kolejność wykonywania (logika) i uzasadnienie powiązań. TIWO cz. 3 2010/2011 7 Raport przypadku testowego (raport o awarii) Unikalny identyfikator raportu. Opis awarii przez podanie elementów poddanych testowaniu (wersja/poprawki), identyfikatora przypadku testowego, zapisu testów. Opis awarii (błędu), tak by było możliwe odtworzenie zaistniałej sytuacji. Wielkości wejściowe, Oczekiwane rezultaty (wyrocznia), Otrzymane rezultaty, Dokładny czas, Miejsce w procedurze testowania, Środowisko, Powtarzalność awarii (zawsze, przypadkowo), Testerzy, Dodatkowe obserwacje pomocne w wyizolowaniu błędu. Waga awarii i priorytet błędu (krytyczny, wysoki, niski). TIWO cz. 3 2010/2011 8 Raport przebiegu testowania Unikalny identyfikator raportu. Opis przeprowadzonych testów z podaniem wersji, poprawek, środowiska, dostarczonej dokumentacji, raportów z poszczególnych awarii. Zauważone odstępstwa od zaplanowanych testów, przyczyny tych odstępstw. Całkowita ocena testów, spełnienie założonych kryteriów. Podsumowanie zużytych zasobów (liczba godzin pracy testerów, operatorów, wykorzystanie sprzętu) Zatwierdzenie testów. TIWO cz. 3 2010/2011 9 3 2010-10-04 Automatyzacja testowania (automaty testujące) Automaty testujące to oprogramowanie, które umożliwia automatyczne przeprowadzenie niektórych czynności w procesie testowania: Możliwość generacji zbiorów wejściowych i zbiorów oczekiwanych wyników, wykonanie testów bez ingerencji człowieka, ocena zgodności testu (zaliczony/ nie zaliczony), Zwiększa efektywność i powtarzalność testowania. Dostarcza kompletne i spójne raporty o przebiegu testów, Testy bardziej obiektywne i mniej zależne od umiejętności testera, Specjalne użyteczne w przypadku testowania białoskrzynkowego, testowania regresyjnego (po poprawkach), testowaniu wydajności i natężenia systemu: Analiza pokrycia kodu, Ocena czasu odpowiedzi przy bardzo dużej liczbie transakcji, Testy przeciążeniowe. TIWO cz. 3 2010/2011 10 Ograniczenia w automatyzacji testowania Niezbędne znaczne nakłady Nieskuteczne w przypadku testów, w których główną rolę ma użytkownik (testowanie użyteczności – ang. usability testing), Ograniczone zastosowanie w: Wysoki koszt i złożoność narzędzi komercyjnych, Koszt wysoko- wykwalifikowanego personelu. Planowaniu projektów testów, Projektowaniu testów. Testowanie ręczne + wybrane narzędzia = najbardziej efektywne podejście. TIWO cz. 3 2010/2011 11 Narzędzia do testowania Narzędzia podstawowe: Narzędzia zaawansowane: Do testowania interfejsu użytkownika (GUI) (zapamiętaj i zapisz), Testowanie regresyjne, Porycie kodu dla testowania biało-skrzynkowego. Narzedzia typu debugger/ tracer. Generatory raportów. Do testowania natężenia, przeciążenia, wydajności, Specjalne (testowanie protokołów, systemów zanurzonych) Narzędzia przyszłości Półautomatyczne, algorytmiczne debuggery, Języki skryptowe do opisu procesu testowania, Oprogramowanie samo-testujące się i samo-naprawiające się. TIWO cz. 3 2010/2011 12 4 2010-10-04 Organizacja testowania Testowanie jest odpowiedzialnością każdego programisty. Programista musi testować własny kod. Wada: testowanie powinno być dokonywane niezależnie, gdyż każdy programista jest zbyt przywiązany do swojego kodu. Testowanie jest odpowiedzialnością każdego zespołu (grupy), członkowie grupy wzajemnie testują swoje kody – „wspólna własność i odpowiedzialność”. Wada: presja czasu powoduje, że tworzenie kodu dominuje nad jego testowaniem. Testowanie jest dokonywane przez wydzielonych pracowników, są osoby w grupie, które koncentrują się na testowaniu. Wada: do tej pracy przydzielane są osoby mniej biegłe w produkcji kodu (i pewnie tez w testowaniu). Testowanie jest przeprowadzone przez niezależna organizację, jako procedura dla zapewnienia jakości. Wada: dodatkowa organizacja, skomplikowanie procesu. 13 TIWO cz. 3 2010/2011 Model wodospadowy Analiza Inspek cja Projekt Inspek cja Za późno!!! Kodowanie Inspek cja Testowanie Utrzymanie 14 TIWO cz. 3 2010/2011 Model przyrostowy (iteracyjny) Analiza Analiza Analiza Projekt Projekt Projekt Kodowanie Testowanie Prototyp 1 Kodowanie Regre syjne Testowanie Prototyp 2 Kodowanie Testowanie Wersja końcowa Utrzymanie TIWO cz. 3 2010/2011 15 5 2010-10-04 Programowanie zwinne (ang. agile) od użytkownika Zadanie 1 Zadanie n Zadanie 2 Plan 1 Plan n Plan 2 Testy 1 Testy 2 Testy n końco Kodowanie w parach 1 Kodowanie w parach 2 Testowanie 1 Testowanie 2 Integracja 1 Integracja 2 TIWO cz. 3 2010/2011 Kodowanie w parach n we? Testowanie n Wersja końcowa 16 6