Upload
xuxa
View
60
Download
2
Embed Size (px)
DESCRIPTION
Programinės įrangos testavimas. Programų ir komponentų vykdymas su parinktais pradiniais duomenimis , siekiant nustatyti sistemos klaidas . (Kas tai yra programinės įrangos testavimas?). Įžanga. Programinės įrangos testavimas Įžanga (Tikslai, temos, testavimo procesas, fazės). Tikslai. - PowerPoint PPT Presentation
Citation preview
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 1
Programinės įrangos testavimas
Programų ir komponentų vykdymas su parinktais pradiniais duomenimis, siekiant nustatyti sistemos klaidas.
(Kas tai yra programinės įrangos testavimas?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 2
Įžanga Programinės įrangos testavimas Įžanga (Tikslai,
temos, testavimo procesas, fazės)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 3
Tikslai Suprasti testavimo metodus, kurie yra
naudojami tam, kad rasti programos klaidas. Supažindinti su nuorodomis sąsajų
testavimui. Suprasti objektinio testavimo specifiškumą. Suprasti CASE priemonių principus
testavime.
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 4
Nagrinėjamos temos
Klaidų testavimas Juodos dėžės testavimas Struktūrinis testavimas Integravimo testavimas Objektinis testavimas Testavimo karkasai
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 5
Testavimo procesas Komponentų testavimas:
• individualių programos komponentų testavimas,• įprastai atsakomybė už komponentų testavimą tenka komponentų
kūrėjams, išskyrus kritines sistemas,
• testai yra gaunami pagal kūrėjų patirtį.(Kaip testavimo procese gaunami testai komponentų testavimui?)
Integravimo testavimas:• komponentų, sujungtų į atskiras grupes, testavimas, sukuriant sistemas
ar posistemes,• atsakomybė tenka nepriklausomoms testavimo komandoms,• testai remiasi sistemos specifikacija.(Kuo remiasi testavimo procese testų sudarymas integravimo testavimui?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 6
Testavimo fazės
Komponentų testavimas
Komponentų testavimas
Integravimo testavimas
Integravimo testavimas
Programinės įrangos kūrėjas Nepriklausoma testavimo komanda
Kam tenka atsakomybė ir kas vykdo komponentų ir integravimo testavimą?Kam tenka atsakomybė ir kas vykdo komponentų ir integravimo testavimą?
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 7
Nagrinėjamos temos
Klaidų testavimas (Testavimo prioritetai, testiniai duomenys ir testiniai atvejai, testavimo procesas)
Juodos dėžės testavimas Struktūrinis testavimas Integravimo testavimas Objektinis testavimas Testavimo karkasai
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 8
Tiktai išsamus testavimas gali parodyti, kad programa yra be klaidų, tačiau jis yra neįmanomas.
Testai turi daugiau bandyti sistemos galimybes nei jų komponentų.
Testavimas senų galimybių yra daug svarbesnis nei testavimas naujų galimybių.
Testavimas tipinių situacijų yra daug svarbesnis nei ribinių reikšmių atvejų.
(Kokie testavimo prioritetai?)
Testavimo prioritetai
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 9
Testiniai duomenys – įėjimų reikšmės, skirtos sistemos testavimui.
Testiniai atvejai - įėjimų reikšmės, skirtos sistemos testavimui ir numatomos išėjimų reikšmės prie šių išėjimų, kai sistema veikia pagal specifikacijas. Bendru atveju testai.
( Kas tai yra testiniai duomenys ir testiniai atvejai?)
Testiniai duomenys ir testiniai atvejai
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 10
Klaidų testavimo procesas
Testavimo atvejai
Testavimo atvejai
Testavimo duomenys
Testavimo duomenys
Testavimo rezultatai
Testavimo rezultatai
Testavimo ataskaitos
Testavimo ataskaitos
Suprojektuoti testavimo atvejus
Suprojektuoti testavimo atvejus
Paruošti testavimo duomenis
Paruošti testavimo duomenis
Paleisti programą su test. duom.
Paleisti programą su test. duom.
Palyginti rezultatus su testavimo atvejais
Palyginti rezultatus su testavimo atvejais
Kokie veiksmai vykdomi klaidų testavimo metu?Kokie veiksmai vykdomi klaidų testavimo metu?
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 11
Nagrinėjamos temos Klaidų testavimas Juodos dėžės testavimas (įėjimų ir išėjimų sritys,
ekvivalentinis sudalinimas, ribinės reikšmės, nuorodos masyvams, paieškos procedūra)
Struktūrinis testavimas Integravimo testavimas Objektinis testavimas Testavimo karkasai
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 12
“Juodos dėžės “ testavimas
Testavimo metodas, kai programa yra įsivaizduojama kaip “juoda dėžė” nevertinant jos struktūros.
Programos testavimo atvejai yra paremti sistemos specifikacija.
Testo planavimas gali prasidėti labai anksti programinės įrangos kūrimo procese.
(Kas būdinga juodos dėžės testavimui?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 13
“Juodos dėžės “ testavimas
e
e
I
O
SistemaSistema
Įvesti testavimo duomenys
Išvesti testavimo rezultatai
Duomenys, sukeliantis nenormalų
elgesį.
Rezultatai, kurie parodo
defektų buvimą.
Kaip grafiškai atvaizduojamas Kaip grafiškai atvaizduojamas juodos dėžės testavimas?juodos dėžės testavimas?
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 14
Ekvivalentinis sudalinimas Įvedami duomenys ir išvedami rezultatai
paskirstomi į atskiras klases, kur visi klasių nariai yra panašūs.
Kiekviena iš šių klasių yra lygiaverčio suskirstymo rezultatas, kur programos elgesys su kiekvienu klasės nariu yra toks pat (ekvivalentiškas).
Testiniai atvejai turi būti parinkti kiekvienai daliai.
(Kaip gaunami testiniai atvejai ekvivalentinio sudalinimo metodu?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 15
Ekvivalentinis sudalinimas
SistemaSistema
Duomenų klasės
Rezultatų klasės
Kaip grafiškai Kaip grafiškai atvaizduojamas atvaizduojamas
ekvivalentinis sudalinimas?ekvivalentinis sudalinimas?
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 16
Padalinti sistemos įėjimų ir išėjimų reikšmes į “ekvivalentiškas aibes” ir iš jų paimti ribines.
Jei įvedamas 5 skaitmenų sveikas skaičius tarp 10000 ir 99999, ekvivalentinio sudalinimo aibės yra <10000, 10000-99999 ir > 99999.
Išrinkti aibėms testinius atvejus 09999, 10000, 99999, 100000.
(Kokie testiniai atvejai parenkami testuojant įvedamą 5 skaitmenų sveiką skaičių tarp 10000 ir 99999?)
Ekvivalentinis sudalinimas ir ribinės reikšmės
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 17
Ekvivalentinis padalinimas ir ribinės bei vidurinės reikšmės
999910000 50000
10000099999
34 7
1110
Mažiau nei 4 Tarp 4 ir 10 Daugiau nei 10Mažiau nei 4 Tarp 4 ir 10 Daugiau nei 10
Įvedamas 5-10 skaitmenų skaičius
Mažiau nei 10000 Tarp 10000 ir 99999 Daugiau nei 99999Mažiau nei 10000 Tarp 10000 ir 99999 Daugiau nei 99999
Įvedamas 5 skaitmenų skaičius tarp 10000 ir 99999
Kaip testuojamas Kaip testuojamas 5-10 5-10 skaitmenų skaitmenų skaičiaus įvedimas?skaičiaus įvedimas?
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 18
Testavimo nuorodos masyvams Testuoti programinę įrangą kai masyvas turi tik
vieną elementą. Skirtingiems testams naudoti skirtingo dydžio
masyvus. Parinkti testus taip, kad būtų nagrinėjamas
pirmas, vidurinis ir paskutinis masyvo elementas. Testuoti nulinio ilgio masyvus.
(Kokios testavimo nuorodos masyvams?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 19
Paieškos procedūros specifikacija
procedure Search (Key : ELEM ; T: ELEM_ARRAY; Found : in out BOOLEAN; L: in out ELEM_INDEX) ;
Pre-condition-- the array has at least one elementT’FIRST <= T’LAST
Post-condition-- the element is found and is referenced by L( Found and T (L) = Key)
or -- the element is not in the array( not Found and
not (exists i, T’FIRST >= i <= T’LAST, T (i) = Key ))
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 20
Testai paieškos procedūraiArray ElementSingle value In sequenceSingle value Not in sequenceMore than 1 value First element in sequenceMore than 1 value Last element in sequenceMore than 1 value Middle element in sequenceMore than 1 value Not in sequence
Input sequence (T) Key (Key) Output (Found, L)17 17 true, 117 0 false, ??17, 29, 21, 23 17 true, 141, 18, 9, 31, 30, 16, 45 45 true, 717, 18, 21, 23, 29, 41, 38 23 true, 421, 23, 29, 33, 38 25 false, ??
(Kaip testuojama paieškos procedūra?)(Kaip testuojama paieškos procedūra?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 21
Nagrinėjamos temos Klaidų testavimas Juodos dėžės testavimas Struktūrinis testavimas (Programos skaičiavimų
grafas, nepriklausomi keliai, testavimo kriterijai, operatoriai, šakos, keliai)
Integravimo testavimas Objektinis testavimas Testavimo karkasai
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 22
Dar vadinamas “baltos dėžės“ testu. Testiniai atvejai gaunami iš programos
struktūros. Žinios apie programą naudojamos nustatyti papildomus testinius atvejus.
Tikslas yra išbandyti visus programos operatorius ir galimus skaičiavimo kelius
(Koks struktūrinio testavimo tikslas?)
Struktūrinis testavimas
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 23
Binary search (Java)
class BinSearch {
// This is an encapsulation of a binary search function that takes an array of// ordered objects and a key and returns an object with 2 attributes namely// index - the value of the array index// found - a boolean indicating whether or not the key is in the array// An object is returned because it is not possible in Java to pass basic types by// reference to a function and so return two values// the key is -1 if the element is not found
public static void search ( int key, int [] elemArray, Result r ){
int bottom = 0 ;int top = elemArray.length - 1 ;int mid ;r.found = false ; r.index = -1 ;while ( bottom <= top ){
mid = (top + bottom) / 2 ;if (elemArray [mid] == key){
r.index = mid ;r.found = true ;return ;
} // if partelse{
if (elemArray [mid] < key)bottom = mid + 1 ;
elsetop = mid - 1 ;
}} //while loop
} // search} //BinSearch
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 24
Binary search flow graph
1
2
3
4
65
7
while bottom <= top
if (elemArray [mid] == key
(if (elemArray [mid]< key8
9
bottom > top
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 25
Aprašo programos skaičiavimų valdymą. Kiekviena atšaka yra parodyta kaip atskiras kelias ir ciklai parodyti kaip rodyklės grįžimo į ciklo sąlygos mazgą.(Kas tai yra programos skaičiavimų grafas?)
Yra naudojamas kaip pagrindas ciklomatiniam (cyclomatic ) sudėtingumui skaičiuoti:ciklomatinis sudėtingumas = briaunų skaičius – mazgų skaičius + 2
(Kas tai yra ciklomatinis sudėtingumas?)
Programos skaičiavimų grafas
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 26
1,2,3,8,9; 1,2,3,4,6,7,2; 1,2,3,4,5,7,2; 1,2,3,4,6,7,2,8,9; testiniai atvejai turi būti gauti taip, kad visi iš šių
kelių būtų įvykdyti; dinaminis programos analizatorius gali būti
panaudotas patikrinti, ar tie keliai buvo įvykdyti.(Kas naudojamas kelių vykdymo tikrinimui?)
Nepriklausomi keliai1
2
3
4
65
7
while bottom <= top
if (elemArray [mid] == key
(if (elemArray [mid]< key8
9
bottom > top
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 27
Testavimo kriterijai Testai turi vykdyti bent vieną kartą kiekvieną
programos operatorių Testai turi vykdyti bent vieną kartą kiekvieną
skaičiavimų šaką Testai turi vykdyti bent vieną kartą kiekvieną
skaičiavimų kelią(Kokie naudojami struktūrinio testavimo kriterijai?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 28
Operatoriai, šakos, keliai Example: Proc(x); (1)
• If x > 17 then (2)x := x - 17 (3)
If x = 13 then (4)
x = 0 ; (5)End; (6)Testiniai duomenys x = 30- visi operatoriaiTestiniai duomenys x = 30, x = 17- visos šakosTestiniai duomenys x = 30, x = 17, x = 13, x = 21- visi keliai{1,2,3,4,5,6}{ 1,2,4,6}{1,2,4,5,6}{1,2,3,4,6}(Koks skirtumas tarp operatorių, šakų ir kelių testavimo?)
1
2
4
6
3
5
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 29
Testavimo pilnumas Testavimo pilnumo matavimas rodo kaip
išpildytas testavimo kriterijus. Testavimo pilnumas gali būti išreikštas procentais Testavimo kokybę demonstruoja pasirinktas
testavimo kriterijus ir jo išpildymo pilnumas Testavimas negali garantuoti visų klaidų
suradimo
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 30
Nagrinėjamos temos Defektų testavimas Juodos dėžės testavimas Struktūrinis testavimas Integravimo testavimas (Palaipsninis
testavimas, integravimo metodai, smulkinantis, stambinantis, sąsajų testavimas, sąsajų klaidos, testavimo rekomendacijos, stresinis testavimas)
Objektinis testavimas Testavimo karkasai
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 31
Integravimo testavimas Testavimui išbaigtos sistemos ar posistemės,
sudarytos iš integruotų komponentų. Integravimo testavimas turėtų būti “juodos dėžes”
su testais, gautais iš specifikacijų. Pagrindinis sunkumas yra klaidų lokalizavimas. Palaipsninis integravimo testavimas mažina šią
problemą.( Kas būdinga integravimo testavimui?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 32
Palaipsninis integravimo testavimas
T3
T2
T1
T4
T5
A
B
C
D
T2
T1
T3
T4
A
B
C
T1
T2
T3
A
B
Test sequence1
Test sequence2
Test sequence3
Testo Testo eileiliiškumasškumasTesto Testo eileiliiškumasškumas Testo Testo eileiliiškumasškumas
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 33
Integravimo testavimo metodai
smulkinantis (Top-down ) testavimas:pradėti nuo sistemos aukščiausio lygio ir integruoti nuo viršaus žemyn, kur reikia, pakeičiant individualius komponentus “kamščiais” (stubs) - tuščiomis procedūromis;
stambinantis (Bottom-up) testavimas:integruoti individualius komponentus į lygius iki tol, kol sukuriama visiškai sukomplektuota sistema.
Praktiškai integravimas įtraukia šių strategijų kombinacijas
( Kokie yra integravimo testavimo metodai?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 34
Smulkinantis testavimas
...
Lygis Lygis 22Lygis Lygis 22
Lygis 2Lygis 2
““kamščiaikamščiai””
Lygis Lygis 22Lygis Lygis 22 Lygis Lygis 22Lygis Lygis 22Lygis Lygis 22Lygis Lygis 22
Lygis 1Lygis 1Lygis 1Lygis 1Lygis 1Lygis 1Lygis 1Lygis 1
Lygis Lygis 33
““kamščiaikamščiai””
Testavimo Testavimo eiliškumaseiliškumas
( Kaip grafiškai atvaizduojamas smulkinantis testavimas?)( Kaip grafiškai atvaizduojamas smulkinantis testavimas?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 35
Stambinantis testavimas
Lygis NLygis NLygis NLygis N Lygis NLygis NLygis NLygis NLygis NLygis NLygis NLygis NLygis NLygis NLygis NLygis NLygis NLygis NLygis NLygis N
Lygis N-1Lygis N-1Lygis N-1Lygis N-1Lygis N-1Lygis N-1Lygis N-1Lygis N-1 Lygis N-1Lygis N-1Lygis N-1Lygis N-1TestTestųų
“drivers”“drivers”
TestTestųų “drivers”“drivers”
Testavimo Testavimo eiliškumaseiliškumas
( Kaip grafiškai atvaizduojamas stambinantis testavimas?)( Kaip grafiškai atvaizduojamas stambinantis testavimas?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 36
Testavimo metodų palyginimas Architektūros atestavimas: smulkinantis integravimo
testavimas yra geresnis atrandant klaidas sistemos architektūroje.
Sistemos demonstravimas: smulkinantis integravimo testavimas leidžia ribotą demonstravimą pradinėje kūrimo stadijoje.
Testo realizavimas: dažniausiai yra lengviau realizuoti testus stambinančiam integravimo testavimui.
Testo stebėjimas: problematiškas yra abiem metodais. Kad stebėti testus, gali būti reikalaujamas papildomas kodas ir spausdinimai.( Ką galima pasakyti lyginant smulkinantį ir stambinantį integravimo testavimą?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 37
Naudojamas, kai moduliai ar posistemės jungiami, kad sukurti dideles sistemas.
Tikslas yra aptikti defektus dėl sąsajos klaidų arba dėl neteisingų prielaidų apie sąsają.
Ypatingai svarbus objektiniam kūrimui, kai objektai yra apibrėžiami jų pačių sąsajų(Koks yra sąsajos testavimo tikslas ir kur sąsajos testavimas ypatingai svarbus?)
Sąsajos testavimas
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 38
Sąsajų tipai Parametrų sąsajos:
• duomenys perduodami iš vienos procedūros į kitą.
Bendrai naudojamos atminties sąsajos:• atminties bloku bendrai naudojamasi.
Procedūrinės sąsajos:• posistemė inkapsuliuoja procedūrų rinkinį, kuris kviečiamas
kitos posistemės.
Žinučių perdavimo sąsajos:• posistemės reikalauja paslaugų iš kitų posistemių.
( Kokie yra sąsajų tipai?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 39
Sąsajos klaidos Klaidingai naudojama sąsaja:
• pakviestas komponentas iškviečia kitą komponentą ir daro klaidas jo naudojamoje sąsajoje, pvz.: parametrai neteisinga tvarka.
Sąsajos neteisingas interpretavimas:• kviečiantis komponentas remiasi prielaida apie kiekvieno
komponento elgesį, kuris yra neteisingas.
Sinchronizacijos klaidos:• pakviestas ir kviečiantysis komponentai dirba skirtingais
greičiais ir nebegaliojanti informacija vis dar būna prieinama.( Kokios būdingos sąsajų naudojimo klaidos?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 40
Rekomendacijos sąsajos testavimui
Suprojektuokite testus taip, kad parametrai iškviestai procedūrai turėtų ribines reikšmes.
Visada testuokite nuorodos parametrus su nuline rodykle. Sukurkite testus, kurie priverstų komponentą suklysti. Naudokite stresinį testavimą (stress) žinučių perdavimo
sistemoje. Bendrai naudojamos atminties sistemose keiskite tvarką,
kuria komponentai yra aktyvuojami.(Kokios yra rekomendacijos sąsajų testavimui?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 41
Stresinis testavimas Testuoja sistemą virš jos maksimaliai suprojektuoto
krūvio. Sistemos spaudimas dažnai lemia defektų pasirodymą.
Sistema spaudžiama, kad klaidingai veiktų. Ji neturėtų katastrofiškai suklysti. Stresinis testavimas tikrina nepriimtiną duomenų ar paslaugų praradimą.
Ypatingai tinka paskirstytoms sistemoms, kurios gali eksponuoti žymų nuosmukį, kai tinklas perkrautas.
(Kas tai yra stresinis testavinas?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 42
Nagrinėjamos temos Defektų testavimas Juodos dėžės testavimas Struktūrinis testavimas Integravimo testavimas Objektinis testavimas (Objektų testavimo lygiai,
objektų grupių testavimas, testavimas pagal scenarijų, meterologinės stoties pavyzdys)
Testavimo karkasai
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 43
Komponentai, kurie turi būti patikrinti, yra objektų klasės, kurios realizuojamos kaip objektai.
Didesniems vienetams negu individuali funkcija “baltos dėžės” testavimas turi būti išplėstas.
Nėra akivaizdžios viršūnės smulkinančiam integravimui ir testavimui.
(Kas būdinga objektiniam testavimui?)
Objektinis testavimas
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 44
Objektų testavimo lygiai
Testuoti operacijas susietas su objektais. Testuoti objektų klases. Testuoti bendradarbiaujančių objektų
grupes. Testuoti užbaigtą objektinę sistemą.
(Kokie yra objektų testavimo lygiai?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 45
Objektų klasių testavimas Pilnas klasės testavimas apima :
• testavimas visų operacijų susietų su objektu,
• nustatymas ir apklausinėjimas visų objektų atributų,
• bandymas objektų visose galimose būsenose.
Paveldimumas sukelia daug sunkumų sukurti klasių testus, kadangi informacija, kuri turi būti testuojama, nėra lokalizuota.
(Ką apima pilnas klasės testavimas?)
(Kodėl paveldimumas sukelia sunkumų testuojant objektų klases?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 46
Objektų integravimo testavimas Integravimo lygiai yra mažiau aiškūs objektinėse
sistemose. Grupės (Cluster) testavimas liečia
bendradarbiaujančių objektų integravimą ir testavimą.
Grupių identifikavimui naudojamos žinios apie objektų operacijas ir sistemos savybes, kurios yra įdiegtos šiose grupėse.
( Kas būdinga objektų integravimo testavimui?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 47
Objektų grupių testavimo metodai
Naudojamų atvejų arba scenarijaus testavimas:• testavimas yra pagrįstas vartotojo ryšiu su sistema,• turi pranašumą, kad taip testuojamos sistemos savybės kaip
patyrusių vartotojų.
Gijų testavimas:• sistemos atsakymų į įvykius testavimas kaip veiksmų gijų
apdorojimas.
Objektų bendravimo testavimas:• testų sekos objektų bendravimui, kuris nutrūksta, kai objekto
operacijos neprašo paslaugų iš kitų objektų.(Kokie yra objektų grupių testavimo metodai?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 48
Testavimas pagal scenarijų
Atpažįsta scenarijų iš naudojamų atvejų
(use-cases) ir jų papildymų su bendravimo diagramomis, kurios parodo objektus, įtrauktus į scenarijų.
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 49
Nagrinėjamos temos
Defektų testavimas Juodos dėžės testavimas Struktūrinis testavimas Integravimo testavimas Objektinis testavimas Testavimo karkasai (priderinimas,
automatinis testavimas, veiksmų išsaugojimas
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 50
Testavimo karkasai (instrumentinių
priemonių rinkinys) Testavimas yra brangi proceso fazė. Testavimo
karkasai aprūpina įrankiais, sumažinant reikiamo laiko ir bendrus testavimo kaštus.
Dauguma testavimo karkasų yra atviros sistemos, nes testavimas yra specifiškas kiekvienoje organizacijoje
Sunku integruoti su artimais kūrimo ir analizės karkasais.
(Kas tai yra testavimo karkasai ir kuo jie naudingi?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 51
Testavimo karkasas
Dynamicanalyser
Programbeing tested
Testresults
Testpredictions
Filecomparator
Executionreport
Simulator
Sourcecode
Testmanager Test data Oracle
Test datagenerator
Specification
Reportgenerator
Test resultsreport
(Iš ko susideda testavimo karkasas?)(Iš ko susideda testavimo karkasas?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 52
Testavimo karkaso priderinimas
Skriptai gali būti naudojami vartotojų sąsajų imitatoriams ir testuojamų duomenų generatoriams.
Laukiami testo rezultatai gali būti paruošti palyginimui rankiniu būdu.
Specialūs failų sulygintojai gali būti naudojami.
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 53
Kodėl reikalingas automatinis testavimas?
Programos kūrimo, derinimo, priežiūros metu tenka tą pačią programą ir tuos pačius komponentus testuoti daug kartų po kiekvieno atlikto pakeitimo. Testavimo kartojimas jeigu jis neautomatinis yra labai imlus darbui. Papildomos pastangos automatiniam testavimui visuomet atsiperka. Todėl testavimas turi būti automatinis.
(Kodėl reikalingas automatinis testavimas?)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 54
Veiksmų išsaugojimas Klaviatūros bei pelės paspaudimai gali būti
užrašyti į failą ir po to automatiškai pakartoti Apie testavimo sekmę sprendžiama pagal tarpines
ir galutinę būsenas
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 55
Esminiai aspektai Testuoti sistemos dalis, kurios yra dažniau
naudojamos negu tos, kurios yra retai vykdomos. Ekvivalentus padalinimas yra aibės testinių
rinkinių-atvejų, kur programa turi elgtis ekvivalentiškai.
“Juodos dėžės” testavimas yra pagrįstas sistemų specifikacijomis.
Struktūrinis testavimas numato testinius atvejus, kurie sąlygoja programos kelių vykdymą.
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 56
Esminiai aspektai Testavimo pilnumo matavimas rodo kaip
išpildytas testavimo kriterijus.( Ką rodo testavimo pilnumas?)
Sąsajos defektai iškyla dėl klaidingai suprastų specifikacijų, nesusipratimų, klaidų ar neteisingų sinchronizacijos prielaidų.
Kad testuoti objektų klases reikia ištestuoti visas operacijas, atributus ir būsenas.
Objektinės sistemas integruoti pagal objektų grupes.
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 57
Esminiai aspektai Programinės įrangos testavimas Esminiai
aspektai (rekomendacijos sistemos dalių testavimui, ekvivalentinis sudalinimas, juodos fėžės, struktūrinis testavimas, testavimo pilnumas, sąsajos defektai, klasių testavimas ir integravimas)
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 58
Klausimas 13.1 Kokios rekomendacijos pateikiamos programos
testavimui?
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 59
Klausimas 13.2 Kokie kriterijai naudojami testuojant juodos
dėžės metodu?
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 60
Klausimas 13.3 Kokie kriterijai naudojami testuojant
struktūriniais metodais?
©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 61
Klausimas 13.4 Kas būdinga integravimo ir objektiniam
testavimui?