Inżynieria oprogramowania II.pdf

(423 KB) Pobierz
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Wydział Informatyki PB
z
¤ Dwa najbardziej powszechne (a zarazem kosztowne) bþħdy zwiĢzane z
testowaniem:
Î traktowanie testowania jako koıcowego zadania procesu wytwrczego
Î wprowadzanie niezaleŇnego zespoþu testujĢcego, gdy implementacja jest Ðna
ukoıczeniuÑ, tuŇ przed dostarczeniem aplikacji do klienta
¤ Co wiħcej w wielu projektach w koıcowej fazie realizacji brakuje czasu
(lub zasobw), co wymusza ograniczenie nawet takich testw
¤ W procesie opartym o iteracje testowanie jest czħĻciĢ procesu i tak jak
inne czynnoĻci musi byę zaplanowane, zaprojektowane,
zaimplementowane a nastħpnie wykonane przez czþonkw zespoþu
¤ Testowanie przeprowadzane powinno byę podczas tworzenia
oprogramowania, jedynie testy akceptacyjne wykonywane sĢ podczas
fazy przekazania (ang. transition)
Wykþad 9:
ÐUPEDU: Testowanie
(ang. Testing discipline)Ñ
Marek Kr ħ towski
e-mail: mkret@wi.pb.edu.pl
http://aragorn.pb.bialystok.pl/~mkret
Na podstawie podr ħ cznika: „Software Engineering Process with
the UPEDU” P. Robillard, P. Kruchten, P. d'Astous, Addison-
Wesley, 2003
IO2 (wyk. 9)
Slajd 2 z 24
zzz
zz
¤
¤ Choę czħsto widziane jako sposb na poprawħ jakoĻci oprogramowania
w rzeczywistoĻci powinno byę raczej traktowane jako sposb pomiaru
jakoĻci osiĢgniħtej w procesie wytwrczym
¤ JakoĻę oprogramowania i testy sĢ powiĢzane w takim sensie, Ňe
testowanie pozwala na potwierdzenie jakoĻę, lecz samo jej nie tworzy
¤ Atrybuty jakoĻci, ktre mogĢ byę oceniane podczas testowania
Î funkcjonalnoĻę - typowe czynnoĻci testowania, w oparciu o utworzone testy dla
poszczeglnych scenariuszy
Î niezawodnoĻę, solidnoĻę (ang. reliability) - nie w oparciu o przypadki uŇycia, raczej
przy uŇyciu narzħdzi kompilacji i analizy
Î ÐosiĢgi aplikacjiÑ (ang. application performance) - zachowanie siħ aplikacji
uruchomionej samodzielnie
Î ÐosiĢgi systemuÑ (ang. system performance) - zachowanie siħ aplikacji w ramach
caþego systemu
Odpowiednio wczesne rozpoczħcie
testowania oraz jego poprawne
przeprowadzenie pozwala na znaczĢcĢ
redukcjħ kosztw ukoıczenia i
utrzymywania oprogramowania
z
¤
WþaĻciwie przemyĻlane testy redukujĢ
ryzyka oraz problemy zwiĢzane z
dostarczeniem oprogramowania niskiej
jakoĻci (niska produktywnoĻę uŇytkow-
nikw koıcowych, bþħdy wprowadzania
danych i obliczeı, nieakceptowalne
dysfuncjonalne zachowania, ...)
z
¤
Jednym z celw testowania jest sprawdze-
nie kompletnoĻci wykonania iteracji poprzez
zweryfikowanie czy dodatkowe lub
rozszerzone wymagania sĢ juŇ speþnione
¤
IteracyjnoĻę narzuca pewne wymagania
na opracowywanie testw, ktre muszĢ
rozwijaę siħ w odpowiedzi na zmiany
zachodzĢce w tworzonym
oprogramowaniu
¤
Planowanie i projektowanie testw moŇe
prowadzię do wykrycia bþħdw lub sþabych
punkw w wymaganiach
IO2 (wyk. 9)
IO2 (wyk. 9)
Slajd 3 z 24
Slajd 4 z 24
864919879.196.png
 
864919879.214.png
 
864919879.001.png 864919879.011.png 864919879.019.png 864919879.028.png 864919879.037.png 864919879.045.png 864919879.053.png 864919879.063.png 864919879.072.png 864919879.081.png 864919879.090.png
 
864919879.105.png
 
864919879.123.png
 
864919879.139.png 864919879.148.png 864919879.156.png 864919879.164.png 864919879.172.png 864919879.173.png 864919879.174.png 864919879.175.png
 
864919879.176.png
 
864919879.177.png
 
864919879.178.png 864919879.179.png 864919879.180.png 864919879.181.png 864919879.182.png 864919879.183.png 864919879.184.png 864919879.185.png 864919879.186.png
 
864919879.187.png
 
864919879.188.png
 
864919879.189.png 864919879.190.png 864919879.191.png 864919879.192.png 864919879.193.png 864919879.194.png 864919879.195.png 864919879.197.png 864919879.198.png 864919879.199.png 864919879.200.png 864919879.201.png 864919879.202.png 864919879.203.png 864919879.204.png
z
¤ Testy integracyjne (ang. integration testing) - wykonywane w celu
sprawdzenia czy komponenty wspþpracujĢ ze sobĢ poprawnie np.
podczas realizacji przypadku uŇycia; sþuŇy do wychwycenia
niekompletnoĻci lub bþħdw w specyfikacjach interfejsw pakietw
¤ Testy systemu (ang. system testing) - rozpoczynajĢ siħ gdy
oprogramowanie jako caþoĻę lub jego jasno okreĻlona czħĻę jest
funkcjonalna (sprawna)
¤ Testy akceptacyjne (ang. acceptance testing) -celem jest sprawdzenie
czy oprogramowanie jest gotowe i moŇe byę przekazane uŇytkownikowi,
aby realizowaę postawione wymagania
Î ALFA - wykonywane w Ļrodowisku wytwrczym przez wytwrcw oraz klientw,
aby sprawdzię czy stworzony system jest akceptowalnĢ implementacjĢ wymagaı
Î BETA - wymaga dostarczenia systemu do pewnej liczby potencjalnych klientw,
ktrzy zgodzili siħ wykorzystywaę s y stem i przekazywaę pojawiajĢce siħ problemy
IO2 (wyk. 9)
IO2 (wyk. 9)
Slajd 5 z 24
Slajd 6 z 24
z
z
IO2 (wyk. 9)
IO2 (wyk. 9)
Slajd 7 z 24
Slajd 8 z 24
864919879.205.png 864919879.206.png 864919879.207.png
 
864919879.208.png
 
864919879.209.png
 
864919879.210.png 864919879.211.png 864919879.212.png 864919879.213.png 864919879.215.png 864919879.216.png 864919879.217.png 864919879.218.png
 
864919879.219.png
 
864919879.220.png
 
864919879.221.png 864919879.222.png 864919879.223.png 864919879.224.png 864919879.225.png 864919879.226.png 864919879.227.png 864919879.228.png
 
864919879.229.png
 
864919879.002.png
 
864919879.003.png 864919879.004.png 864919879.005.png 864919879.006.png 864919879.007.png 864919879.008.png 864919879.009.png 864919879.010.png 864919879.012.png
 
864919879.013.png
 
864919879.014.png
 
864919879.015.png 864919879.016.png 864919879.017.png 864919879.018.png 864919879.020.png 864919879.021.png 864919879.022.png 864919879.023.png 864919879.024.png
 
¤ Celem jest rozpoznanie wymagaı, ktre bħdĢ testowane, wskazanie zakresu
testowania oraz ustalenie zasobw niezbħdnych do przeprowadzenia testw
¤ Dowolne aspekty zachowania oprogramowania mogĢ byę badane pod
warunkiem, Ňe uzyskiwane sĢ obserwowalne i mierzalne wyniki
¤ Wymagania do testw sĢ najczħĻciej wyprowadzane z istniejĢcych list wymagaı,
przypadkw uŇycia, ich modeli i realizacji, dodatkowych specyfikacji, wymagaı
projektowych, rozmw z uŇytkownikami oraz przeglĢdw istniejĢcych systemw
¤ Niezbħdne jest odpowiednie zrwnowaŇenie ryzyka z ograniczeniami zasobw w
celu maksymalizacji efektywnoĻci testw i minimalizacji wysiþku zwiĢzanego z
testowaniem; zwykle powiĢzane z przypisaniem priorytetw, ktre okreĻlajĢ
sekwencjħ testw
¤ Strategia testw (kolejne kroki, planowanie i wykonanie, czas i zasoby),
stosowane podejļcie (rŇne wykorzystywane techniki: biaþa i czarna skrzynka)
oraz kryteria (obiektywne wyraŇenia okreĻlajĢce zakoıczenie i sukces testu)
powinny byę zdefiniowane i przedstawione czþonkom zespoþu
IO2 (wyk. 9)
IO2 (wyk. 9)
Slajd 9 z 24
Slajd 10 z 24
¤ Celem projektowania testu jest rozpoznanie i opisanie akcji aktora, gdy
wchodzi on w interakcjħ z systemem => tworzone sĢ przypadki testowe
¤ Przypadek testowy jest opisem konkretnego przeprowadzanego testu;
skþadajĢ siħ z specyficznych danych niezbħdnych do przeprowadzenia
testu oraz spodziewanych rezultatw; ponadto macierz zawierajĢca warunki
testu, dane, stany systemu tworzĢce warunki, ktre sĢ testowane
¤ Procedury testowe mogĢ byę wykonywane rħcznie lub zaimplementowane
w celu zautomatyzowanego wykonania; tworzone sĢ skrypty testowe
zz
zzz
zzzz
z
IO2 (wyk. 9)
IO2 (wyk. 9)
Slajd 11 z 24
Slajd 12 z 24
864919879.025.png 864919879.026.png 864919879.027.png
 
864919879.029.png
 
864919879.030.png
 
864919879.031.png 864919879.032.png 864919879.033.png 864919879.034.png 864919879.035.png 864919879.036.png 864919879.038.png 864919879.039.png
 
864919879.040.png
 
864919879.041.png
 
864919879.042.png 864919879.043.png 864919879.044.png 864919879.046.png 864919879.047.png 864919879.048.png 864919879.049.png 864919879.050.png
 
864919879.051.png
 
864919879.052.png
 
864919879.054.png 864919879.055.png 864919879.056.png 864919879.057.png 864919879.058.png 864919879.059.png 864919879.060.png 864919879.061.png 864919879.062.png
 
864919879.064.png
 
864919879.065.png
 
864919879.066.png 864919879.067.png 864919879.068.png 864919879.069.png 864919879.070.png 864919879.071.png 864919879.073.png 864919879.074.png 864919879.075.png 864919879.076.png 864919879.077.png
 
¤ Rodzaje komponentw testowych:
Î jednorazowy (ang. throwaway)- wykorzystywane jeden raz, tylko w celu testowania
okreĻlonej funkcjonalnoĻci
Î skrypt (ang. script) - wykorzystywany wielokrotnie, zwykle zautomatyzowany w celu
zapewnienia þatwoĻci wykorzystania
Î ÐŇywy trupÑ (ang. zombie) - stworzony aby symulowaę rzeczywisty komponent;
jedynie minimalna funkcjonalnoĻę (driver lub stub)
¤ Dwa rodzaje peþnomocnikw (stub):
Î proste - zwracajĢ jedynie okreĻlonĢ wartoĻę, moŇe byę ich potrzebnych wiele
Î zþoŇone - wykonujĢ pewne przetwarzanie i zwykle symulujĢ bardziej zþoŇone
systemy lub zachowania
¤ Dwa rodzaje driver-w:
Î symulujĢce i kontrolujĢce wszystkie zewnħtrzne interakcje z aplikacjĢ
Î dostarczajĢce GUI, ktry nie zosta þ j eszcze zaimplementowany
IO2 (wyk. 9)
IO2 (wyk. 9)
Slajd 13 z 24
Slajd 14 z 24
¤ Aby wykonaę testy, wszystkie niezbħdne elementy (sprzħt, oprogramowanie,
narzħdzia, dane, ...) muszĢ byę przygotowane i dostħpne w Ļrodowisku testowym
¤ WaŇne jest aby dokonaę oceny testw, aby stwierdzię czy zostaþy one przepro-
wadzone kompletnie i tak jak zaplanowano; w przypadku anomalii podczas
czynnoĻci testowych, odpowiednie akcje poprawiajĢce powinny byę przedsiħwziħte
¤ Testy mogĢ zakoıczyę siħ przedwczeĻnie wskutek problemw z wykonaniem lub
ograniczeı czasowych
¤ Testowanie regresyjne (ang. regression testing) - po wprowadzeniu zmian do
oprogramowania wykonywane w celu zapewnienia, Ňe defekty nie zostaþy
wprowadzone jako rezultat zmian; ten typ testw porwnuje aktualnĢ z poprzedniĢ
wersjĢ i identyfikuje rŇnice jako potencjalne defekty (przy zaþoŇeniu, Ňe
zachowanie nie powinno ulec zmianie)
¤ Nacisk na tego typu testowanie jest kþadziony podczas kolejnych iteracji, gdy
wiħkszoĻę z testw z n-tej iteracji jest wykorzystywana w n+1 iteracji jako testy
regresyjne (ponadto kaŇdorazowo dodawane sĢ jednak nowe testy, ktre nie
muszĢ byę regresyjne)
¤ KaŇdy nowy przypadek testowy moŇe byę potencjalnie wþĢczony do testw
regresyjnych; pamiħtaę trzeba jednak o kosztach utrzymania i wykonywania
testw w odniesieniu do korzyĻci z ich przeprowadzenia
¤ Wykorzystanie narzħdzi automatyzacji testw znaczĢco poprawia stosunek
korzyĻci do kosztw w testowaniu regresyjnym
IO2 (wyk. 9)
IO2 (wyk. 9)
Slajd 15 z 24
Slajd 16 z 24
864919879.078.png 864919879.079.png 864919879.080.png
 
864919879.082.png
 
864919879.083.png
 
864919879.084.png 864919879.085.png 864919879.086.png 864919879.087.png 864919879.088.png 864919879.089.png 864919879.091.png
 
864919879.092.png
 
864919879.093.png
 
864919879.094.png 864919879.095.png 864919879.096.png 864919879.097.png 864919879.098.png 864919879.099.png 864919879.100.png 864919879.101.png 864919879.102.png
 
864919879.103.png
 
864919879.104.png
 
864919879.106.png 864919879.107.png 864919879.108.png 864919879.109.png 864919879.110.png 864919879.111.png 864919879.112.png 864919879.113.png
 
864919879.114.png
 
864919879.115.png
 
864919879.116.png 864919879.117.png 864919879.118.png 864919879.119.png 864919879.120.png 864919879.121.png 864919879.122.png 864919879.124.png
 
¤ Przypadek testowy (ang. test case) - podstawowy artefakt, zawiera opis
wszystkich informacji niezbħdnych do wykonania testu
¤ Skrypt testowy - pozwala na automatyzacjħ przypadkw testowych, wykorzystywane
przede wszystkim podczas testw regresyjnych
¤ Model testowy - zbir przypadkw testowych wraz z odpowiadajĢcymi im skryptami
¤ Plan test - identyfikuje strategiħ testw oraz okreĻla niezbħdne zasoby
¤ Rezultat testw - wyjĻcie wszystkich czynnoĻci testowych
¤ Defekty - listuje anomalie znalezione w wyniku testw
¤ Zapotrzebowanie na zmiany (ang. request for change) - zawiera anomalie
powstaþe podczas testw
¤ Ocena testw (ang. test evaluation) - prezentuje wykresy i inne dane dotyczĢce
niezawodnoĻci, solidnoĻci (ang. reliability) czynnoĻci testowych
¤ Klasy i komponenty testowe
IO2 (wyk. 9)
IO2 (wyk. 9)
Slajd 17 z 24
Slajd 18 z 24
z
¤
¤
Tworzone dla kaŇdego przypadku
uŇycia (scenariusza) zwiĢzanego z
iteracjĢ, w przypadku zbyt duŇej
liczby wprowadza siħ priorytety (co
najmniej standardowy i alternatywne
przepþywy podczas normalnego
uŇytkowania)
Akceptacyjne przypadki testowe -
podzbir wzajemnie uzgodnionych przez
klienta i dostawcħ przypadkw testowych
na bazie ktrych dokonywany jest test
akceptacyjny (wykonywany w okreĻlonych
warunkach, np. obecnoĻę eksperta -
Ļwiadka)
¤
Kolejne przypadki testowe mogĢ byę
tworzone jako warianty juŇ
istniejĢcych (taki sam przebieg testu,
ale inne dane wejĻciowe i wyniki)
¤
Drugim waŇnym Ņrdþem przypadkw
testowych sĢ wymagania
niefunkcjonalne nie manifestujĢce siħ
w przypadkach uŇycia (np. obciĢŇenie
- zdolnoĻę przetwarzanie duŇych
danych)
¤ Strategia testw - zarysowuje oglne podejĻcie, cele (w ramach danej
iteracji) oraz harmonogram czynnoĻci testowych
IO2 (wyk. 9)
IO2 (wyk. 9)
Slajd 19 z 24
Slajd 20 z 24
864919879.125.png 864919879.126.png 864919879.127.png
 
864919879.128.png
 
864919879.129.png
 
864919879.130.png 864919879.131.png 864919879.132.png 864919879.133.png 864919879.134.png 864919879.135.png 864919879.136.png 864919879.137.png
 
864919879.138.png
 
864919879.140.png
 
864919879.141.png 864919879.142.png 864919879.143.png 864919879.144.png 864919879.145.png 864919879.146.png 864919879.147.png 864919879.149.png
 
864919879.150.png
 
864919879.151.png
 
864919879.152.png 864919879.153.png 864919879.154.png 864919879.155.png 864919879.157.png 864919879.158.png 864919879.159.png 864919879.160.png 864919879.161.png
 
864919879.162.png
 
864919879.163.png
 
864919879.165.png 864919879.166.png 864919879.167.png 864919879.168.png 864919879.169.png 864919879.170.png 864919879.171.png
 
Zgłoś jeśli naruszono regulamin