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

Podobne dokumenty