Testowanie i walidacja oprogramowania

Transkrypt

Testowanie i walidacja oprogramowania
2010-10-04
Testowanie i walidacja
oprogramowania
Inżynieria oprogramowania, sem.5 cz. 4
Rok akademicki 2010/2011
Dr inż. Wojciech Koziński
Testowanie czarno-skrzynkowe
specyfikacja
y
tak
x
f(x)
f(x)=y?
Sukces
nie
Awaria
TIWO cz. 4 2010/2011
2
Testowanie czarno-skrzynkowe - zasady

Ten rodzaj testowania bazuje na specyfikacjach
i dokumentach:






Wymagania,
Plany techniczne, architektura,
Podręcznik użytkownika.
Kod jest niedostępny (chociaż pożądany)
Ogólna strategia testowania, stosowana głównie
w testowaniu integracyjnym, testowaniu
systemowym i testowaniu akceptacyjnym.
Może być uzupełniona o fazę testowania białoskrzynkowego dla otrzymania miary pokrycia,
jako wskaźnik jakości testowania.
TIWO cz. 4 2010/2011
3
1
2010-10-04
Testowanie czarno-skrzynkowe
Klasy równoważności (1)


Domena wejść systemu: zbiór wszystkich
wartości wejściowych systemu.
Klasa równoważności: pewien podzbiór
wartości wejściowych systemu
4
TIWO cz. 4 2010/2011
Testowanie czarno-skrzynkowe
Klasy równoważności (2)
domena
wejścia,
wartości
poprawne
klasy
równoważności
niepoprawne i
niedozwolone
wejścia
TIWO cz. 4 2010/2011
5
Testowanie czarno-skrzynkowe
Klasy równoważności (3)




Każda klasa równoważności odpowiada istotnej
własności systemu,
Każda wartość w klasie równoważności
powoduje, że system zachowuje się „w ten sam
sposób”, w procesie testowania prowadzi do
„awarii” lub „sukcesu”.
Każda wartość w klasie równoważności
powoduje, że obliczenia przebiegają wzdłuż
(prawie) tej samej ścieżki.
Klasy równoważności powstają na podstawie
specyfikacji systemu oraz doświadczenia /
intuicji testera.
TIWO cz. 4 2010/2011
6
2
2010-10-04
Testowanie czarno-skrzynkowe
Główna hipoteza dla klas równoważności

Każdy element z klasy równoważności, użyty jako wejście
do systemu, powoduje poprawne zadziałanie systemu
„sukces”
LUB
Każdy element z klasy równoważności, użyty jako wejście
do systemu, powoduje niepoprawne zadziałanie systemu
„awarię”.
Dla celów testowania jeden element z klasy równoważności
jest wystarczający.
W praktyce (brak dowodu poprawności hipotezy), system
powinien być przetestowany dla kilku elementów z każdej
klasy równoważności.
TIWO cz. 4 2010/2011
7
Testowanie czarno-skrzynkowe
Przykłady tworzenia klas równoważności (1)

Zakres wartości => 1 klasa poprawna (ang.
valid), 2 klasy niepoprawne (ang. invalid),
Liczba całkowita x powinna zawierać się między 100 a 200 =>
{integer x | 100<=x<=200},
{integer x | x<100},
{integer x | x>200}.

Określona wartość => 1 klasa poprawna, 2 klasy
niepoprawne,
Liczba całkowita x powinna być równa100 =>
{integer x | x=100},
{integer x | x<100},
{integer x | x>100}.
TIWO cz. 4 2010/2011
8
Testowanie czarno-skrzynkowe
Przykłady tworzenia klas równoważności (2)

Zbiór wartości => 1 klasa poprawna, 1 klasa
niepoprawna,
Dzień tygodnia x to dzień roboczy =>
x € {poniedziałek, wtorek, środa, czwartek, piątek},
x € {sobota, niedziela}.

Wartość logiczna => 1 klasa poprawna, 1
klasa niepoprawna,
Warunek x powinien być spełniony =>
x = true,
x = false.
TIWO cz. 4 2010/2011
9
3
2010-10-04
Testowanie czarno-skrzynkowe
Przykłady tworzenia klas równoważności (3)

Jedna lub więcej klas równoważności dla wartości
niedozwolonych (ang. illegal) dla zmiennych
wejściowych
Wartości x typu integer =>
{x należy do typu real}, {x należy do typu string}


Jeżeli istnieje podejrzenie, że testowany system
inaczej przetwarza wartości poprawne,
niepoprawne, niedozwolone, to każda z nich
powinna utworzyć nową klasę równoważności,
Jeżeli istnieje podejrzenie, że testowany system
inaczej przetwarza wartości z danej klasy
równoważności, klasa ta powinna zostać podzielona
na mniejsze klasy.
10
TIWO cz. 4 2010/2011
Testowanie czarno-skrzynkowe
Analiza wartości granicznych (1)

Z analizy oprogramowania wynika, że wiele błędów
powstaje ze złego przetwarzania wartości znajdujących
się na granicy klas (błędy w wyrażeniach relacyjnych
<,>,<=,…)
domena
wejścia,
wartości
poprawne
klasy
równoważności
niepoprawne i
niedozwolone
wejścia
TIWO cz. 4 2010/2011
11
Testowanie czarno-skrzynkowe
Analiza wartości granicznych (2)

Granice domen są generowane przez warunki
graniczne nad daną domeną:





Granice otwarte: generowane przez operatory (<,>),
Granice domknięte: generowane przez operatory
(=,<=,>=)
W punkcie: wartość leży na granicy,
Poza punktem: wartość nie leży na granicy,
Strategia testowania wartości granicznych (1X1):
jedna wartość w punkcie, jedna wartość poza
punktem.
TIWO cz. 4 2010/2011
12
4
2010-10-04
Testowanie czarno-skrzynkowe
Reguły wyboru wartości w punkcie i poza punktem

Granica otwarta: jedna wartość w punkcie, jedna wartość poza
punktem,



Granica domknięta: jedna wartość w punkcie, dwie wartości poza
punktem (po obu stronach granicy, tak blisko jak to możliwe),



W punkcie: wartość poza domeną => warunek niespełniony,
Poza punktem: wartość w domenie => warunek spełniony,
W punkcie: wartość w domenie => warunek spełniony,
Poza punktem: wartość poza domeną => warunek niespełniony,
Dla typów nie-skalarnych: jedna wartość w punkcie, jedna
wartość poza punktem




Wyliczenia (ang. enumerations), logiczne, łańcuchy, liczby zespolone,…
W punkcie: wartość w domenie => warunek spełniony,
Poza punktem: wartość poza domeną => warunek niespełniony,
Różnice między wartościami w punkcie i poza punktem powinny być jak
najmniejsze (dla łańcuchów różnica jednej litery).
TIWO cz. 4 2010/2011
13
Testowanie czarno-skrzynkowe
Metoda podziału na kategorie (1).
Metoda podziału na kategorie, to systematyczna
metoda projektowania testów bazująca na
wyborze klas równoważności:
(1) Specyfikacja kategorii wartości wejściowych


Kategorie występujące przy sortowaniu tablicy:






Rozmiar tablicy,
Typ elementów,
Element maksymalny,
Element minimalny,
Położenie elementu maksymalnego w tablicy,
Położenie elementu minimalnego w tablicy,
TIWO cz. 4 2010/2011
14
Testowanie czarno-skrzynkowe
Metoda podziału na kategorie (2).
(2) Podział kategorii na wybory (ang. choises)
odpowiadające klasom równoważności:

Sortowanie tablicy – wybór wymiarów (ang. size)
tablicy





size = 0,
size = 1,
2<= size <= 100,
size > 100,
niedozwolona postać (łańcuch, rzeczywista) wartości
size.
TIWO cz. 4 2010/2011
15
5
2010-10-04
Testowanie czarno-skrzynkowe
Metoda podziału na kategorie (3).
(3) Specyfikacje testów



Zbiór grup testów (ang. test frames), w których dana
kategoria występuje lub jest jej brak,
Zbiór przypadków testowych, wybrana wartość z
każdej występującej kategorii.
Sortowanie macierzy / przypadek testowy






Wymiar tablicy: size = 50 (z wyboru 2<= size <= 100),
Typ elementów tablicy = integer,
Element maksymalny = 91,
Element minimalny = -3,
Położenie elementu maksymalnego w tablicy = 15,
Położenie elementu maksymalnego w tablicy = 43.
16
TIWO cz. 4 2010/2011
Testowanie czarno-skrzynkowe
Metoda podziału na kategorie (4).
(4) Generacja przypadków testowych,
utworzenie pakietu testów (ang. test suits), z
wykorzystaniem narzędzia np. JUnit.
(5) Przechowywanie pakietów testów w
odpowiedniej bazie danych.
(6) Testowanie modułu za pomocą przypadków
testowych, analiza wyników (dołączenie
nowych testów), uaktualnienie bazy danych
zawierającej testy.
17
TIWO cz. 4 2010/2011
Testowanie czarno-skrzynkowe
Metoda podziału na kategorie (5).
0
1
101
2
wymiar
tablicy
Przypadek
testowy
50
100
#
Kategorie
typ el.
int
max
91
min
pos. max
pos. min
Grupy
testów
-3
15
43
TIWO cz. 4 2010/2011
18
6
2010-10-04
Testowanie czarno-skrzynkowe
Testowanie systemowe, testowanie interfejsu użytkownika






Cel: testowanie operacji udostępnionych przez
(graficzny) interfejs użytkownika,
Parametry operacji podzielone są na klasy
równoważności,
Testowanie przez podanie wszystkich różnych
kombinacji wartości z klas, równoważności (po
jednej z każdej klasy),
Testowanie sekwencji operacji (jeśli operacje są
zależne),
Testowanie bazuje na podręczniku użytkownika,
Testowanie korzysta z dostępnych narzędzi.
TIWO cz. 4 2010/2011
19
Testowanie czarno-skrzynkowe
Testowanie systemowe, testowanie interfejsu użytkownika
Przykład:
find (document, text, direction, match_case)





document: bieżący plik tekstowy, przeszukiwany,
text: poszukiwany łańcuch znaków,
direction (down, up): kierunek poszukiwania, punkt
odniesienia to aktualne położenie kursora,
match_case (yes, no): czy operacja poszukiwania
ma uwzględniać duże i/lub małe litery.
TIWO cz. 4 2010/2011
20
Testowanie czarno-skrzynkowe
Testowanie systemowe, testowanie interfejsu użytkownika
Przykład (c.d.)
Klasy równoważności:
 text







direction:


{up}, {down}
match_case:


{łańcuch złożony tylko z małych liter},
{łańcuch złożony tylko z dużych liter},
{łańcuch złożony z małych i dużych liter},
{łańcuch bez liter – inne znaki},
{łańcuch pusty (niedozwolony)}.
{yes}, {no}
document:

{found}, {not found}
TIWO cz. 4 2010/2011
21
7
2010-10-04
Testowanie czarno-skrzynkowe
Testowanie systemowe, testowanie interfejsu użytkownika




Przykład (c.d.)
Liczba (niezależnych) kombinacji klas
równoważności = całkowita liczba testów
E = E1*E2*…*Ek
gdzie Ei to liczba klas równoważności dla
parametru i,
Dla rozpatrywanego przykładu 5*2*2*2 = 40.
Niektóre kombinacje (z niepoprawnymi, z
niedozwolonymi parametrami) też muszą być
przetestowane!
TIWO cz. 4 2010/2011
22
Testowanie czarno-skrzynkowe
Testowanie systemowe, testowanie interfejsu użytkownika

Wzorce testów do przykładu (40)





text: lower-case, direction: down, match_case: yes,
document: found
(1)
text: lower-case, direction: down, match_case: yes,
document: not found
(2)
text: lower-case, direction: up, match_case: yes,
document: found
(3)
text: lower-case, direction: up, match_case: yes,
document: not found
(4)
text: empty, direction: up, match_case: yes,
document: not found
(40)
TIWO cz. 4 2010/2011
23
Testowanie czarno-skrzynkowe
Testowanie systemowe, testowanie interfejsu użytkownika

Wybór przypadków testowych (wartości) dla
przykładu:




Każdy wzorzec generuje jeden test,
Każda klasa równoważności we wzorcu jest
reprezentowana prze jedna wartość (wejściową),
W różnych przypadkach testowych, różne
wartości dla tej samej klasy równoważności są
stosowane (daje to lepsze pokrycie),
Wartości graniczne są używane (tam gdzie jest to
możliwe).
TIWO cz. 4 2010/2011
24
8
2010-10-04
Testowanie czarno-skrzynkowe
Testowanie systemowe, testowanie interfejsu użytkownika











Document
text
direction
This beautiful text
(1)
This beautiful text
(2)
This 1beautiful text (3)
This 1Beautiful text (4)
This %1bEAutiful text (5)
This %2bEAutiful text (6)
This BE utiful text
(7)
This BE utiful text
(8)
This BEAUTIFUL text (9)
This BEAUTIFUL text (10)
bea
down
beatles down
1bea up
1bea up
%1bea down
%1bea down
b
up
beauti up
BEA
up
BEAT up
match_case
yes
yes
yes
yes
no
no
no
no
no
no
TIWO cz. 4 2010/2011
25
Testowanie czarno-skrzynkowe
Typowe błędy interfejsu użytkownika (UI)
(1) Funkcjonalność – operacje, których można by się
logicznie spodziewać w systemie są trudne do
zrealizowania, mylące lub wręcz niemożliwe.





Nadmierna funkcjonalność: system próbuje wykonać zbyt
wiele, jest trudny w nauczeniu się i używaniu.
Nieadekwatna realizacja funkcji: funkcja działa, lecz jest
zbyt wolna, zbyt trudna w użyciu.
Brakująca funkcjonalność: nie jest możliwa do znalezienia,
choć jest opisana.
Niewłaściwa funkcjonalność: działa, lecz robi co innego niż
wskazuje nazwa.
Funkcjonalność zbyt elementarna: właściwa funkcjonalność
musi być stworzona przez użytkownika, z bardziej
prymitywnych operacji.
TIWO cz. 4 2010/2011
26
Testowanie czarno-skrzynkowe
Typowe błędy interfejsu użytkownika (UI)
(2) Komunikacja. Przepływ wiadomości z systemu
do użytkownika wykazuje usterki.



Brakujące wiadomości: istotne (niezbędne)
wiadomości nie są wyświetlane. Przykładowe
instrukcje pomocy, aktualny stan, potwierdzenie
wykonania.
Mylące wiadomości: odpowiednia wiadomość jest
widoczna, lecz nie budzi zaufania, ze względu na
usterki, które wystąpiły we wcześniejszych fazach.
Błędy w wyświetleniu wiadomości: wiadomość jest
wyświetlona lecz nie we właściwym miejscu,
częściowo niewidoczna.
TIWO cz. 4 2010/2011
27
9
2010-10-04
Testowanie czarno-skrzynkowe
Typowe błędy interfejsu użytkownika (UI)
(3) Struktura poleceń i danych. System
niepoprawnie organizuje/wykonuje polecenia
użytkownika.



Niekonsekwencje. W różnych sytuacjach ta sama
komenda jest wywoływana za pomocą innego ciągu
znaków (zestawu klawiszy), ma zmieniające się
zestawy parametrów.
Niepoprawne polecenie. Polecenie jest dostępne dla
użytkownika, choć w danej sytuacji powinno być
niedostępne.
Nieistniejące lub niekompletne dialogi. Parametry
polecenia powinny być wprowadzane za pomocą
dialogu. Ta komunikacja może być niekompletna.
TIWO cz. 4 2010/2011
28
Testowanie czarno-skrzynkowe
Typowe błędy interfejsu użytkownika (UI)
(4) Brakujące polecenia. Polecenie jest
niedostępne, choć powinno być udostępnione.




Niepoprawna nazwa: nazwa polecenia jest dostępna,
choć jej nazwa jest napisana błędnie (w menu).
Myląca nazwa: polecenie ma źle dobraną nazwę,
nieadekwatną do swojej funkcji.
Przejścia między stanami: użytkownik nie może
przejść do pożądanego stanu, choć jest to logicznie
uzasadnione (np. przerwanie wykonania).
Zapobieganie awariom: system nie dostarcza
zabezpieczeń przed utratą danych (np. back-up’s,
undo’s, zapamiętywanie przyrostowe).
TIWO cz. 4 2010/2011
29
Testowanie czarno-skrzynkowe
Typowe błędy interfejsu użytkownika (UI)
(5) Szybkość działania (ang. performance). System
jest zbyt wolny, wymaga zbyt dużo pamięci,
ogranicza objętość przetwarzanych danych.



Zbyt wolny system: operacja jest dostępna, lecz mało
przydatna ze względu na długi czas wykonywania (długie
czekanie na zachętę, brak informacji o czasie
wykonywania),
System wymaga zbyt dużo pamięci dla wykonania
polecenia.
Niedostateczna wydajność: specyfikacja (dokumentacja)
systemu nie nakłada ograniczeń na objętość
przetwarzanych danych. Zadanie użytkownika nie może
zostać wykonane.
TIWO cz. 4 2010/2011
30
10
2010-10-04
Testowanie czarno-skrzynkowe
Typowe błędy interfejsu użytkownika (UI)
(6) Dane wyjściowe. Dane wyjściowe
prezentowane przez system są błędne lub w nie
właściwym formacie.



Błędne dane wyjściowe. System działa błędnie.
Brak pewnych danych wyjściowych. Oczekiwane (i
omówione w dokumentacji) dane nie są
prezentowane.
Niezgodny format danych. Format danych jest
odmienny od oczekiwanego, nie można wprowadzić
ich do następnego kroku przetwarzania. Format jest
nieczytelny dla użytkownika i nie może on zmienić
tego.
TIWO cz. 4 2010/2011
31
11

Podobne dokumenty