61
mmerville 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?)

Programinės įrangos testavimas

  • 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

Page 1: Programinės įrangos testavimas

©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?)

Page 2: 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)

Page 3: Programinės įrangos testavimas

©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.

Page 4: Programinės įrangos testavimas

©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

Page 5: Programinės įrangos testavimas

©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?)

Page 6: Programinės įrangos testavimas

©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ą?

Page 7: Programinės įrangos testavimas

©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

Page 8: Programinės įrangos testavimas

©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

Page 9: Programinės įrangos testavimas

©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

Page 10: Programinės įrangos testavimas

©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?

Page 11: Programinės įrangos testavimas

©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

Page 12: Programinės įrangos testavimas

©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?)

Page 13: Programinės įrangos testavimas

©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?

Page 14: Programinės įrangos 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?)

Page 15: Programinės įrangos testavimas

©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?

Page 16: Programinės įrangos testavimas

©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

Page 17: Programinės įrangos testavimas

©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?

Page 18: Programinės įrangos testavimas

©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?)

Page 19: Programinės įrangos testavimas

©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 ))

Page 20: Programinės įrangos testavimas

©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?)

Page 21: Programinės įrangos testavimas

©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

Page 22: Programinės įrangos testavimas

©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

Page 23: Programinės įrangos 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

Page 24: Programinės įrangos testavimas

©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

Page 25: Programinės įrangos testavimas

©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

Page 26: Programinės įrangos testavimas

©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

Page 27: Programinės įrangos testavimas

©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?)

Page 28: Programinės įrangos testavimas

©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

Page 29: Programinės įrangos testavimas

©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

Page 30: Programinės įrangos testavimas

©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

Page 31: Programinės įrangos testavimas

©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?)

Page 32: Programinės įrangos testavimas

©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

Page 33: Programinės įrangos testavimas

©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?)

Page 34: Programinės įrangos testavimas

©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?)

Page 35: Programinės įrangos 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?)

Page 36: Programinės įrangos 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ą?)

Page 37: Programinės įrangos testavimas

©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

Page 38: Programinės įrangos 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?)

Page 39: Programinės įrangos testavimas

©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?)

Page 40: Programinės įrangos testavimas

©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?)

Page 41: Programinės įrangos testavimas

©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?)

Page 42: Programinės įrangos testavimas

©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

Page 43: Programinės įrangos testavimas

©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

Page 44: Programinės įrangos 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?)

Page 45: Programinės įrangos testavimas

©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?)

Page 46: Programinės įrangos testavimas

©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?)

Page 47: Programinės įrangos testavimas

©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?)

Page 48: Programinės įrangos testavimas

©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ų.

Page 49: Programinės įrangos testavimas

©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

Page 50: Programinės įrangos testavimas

©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?)

Page 51: Programinės įrangos testavimas

©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?)

Page 52: Programinės įrangos testavimas

©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.

Page 53: Programinės įrangos testavimas

©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?)

Page 54: Programinės įrangos 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

Page 55: Programinės įrangos testavimas

©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ą.

Page 56: Programinės įrangos testavimas

©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.

Page 57: Programinės įrangos testavimas

©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)

Page 58: Programinės įrangos testavimas

©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 58

Klausimas 13.1 Kokios rekomendacijos pateikiamos programos

testavimui?

Page 59: Programinės įrangos testavimas

©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 59

Klausimas 13.2 Kokie kriterijai naudojami testuojant juodos

dėžės metodu?

Page 60: Programinės įrangos testavimas

©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 60

Klausimas 13.3 Kokie kriterijai naudojami testuojant

struktūriniais metodais?

Page 61: Programinės įrangos testavimas

©Ian Sommerville 2010 Software Engineering, 8th edition. Slide 61

Klausimas 13.4 Kas būdinga integravimo ir objektiniam

testavimui?