Programins rangos testavimas l Program ir komponent vykdymas

  • Slides: 61
Download presentation
Programinės įrangos testavimas l Programų ir komponentų vykdymas su parinktais pradiniais duomenimis, siekiant nustatyti

Programinės įrangos testavimas l Programų ir komponentų vykdymas su parinktais pradiniais duomenimis, siekiant nustatyti sistemos klaidas. (Kas tai yra programinės įrangos testavimas? ) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 1

Įžanga l Programinės įrangos testavimas Įžanga (Tikslai, temos, testavimo procesas, fazės) ©Ian Sommerville 2010

Įžanga l Programinės įrangos testavimas Įžanga (Tikslai, temos, testavimo procesas, fazės) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 2

Tikslai l l Suprasti testavimo metodus, kurie yra naudojami tam, kad rasti programos klaidas.

Tikslai l l 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, 8 th edition. Slide 3

Nagrinėjamos temos l l l Klaidų testavimas Juodos dėžės testavimas Struktūrinis testavimas Integravimo testavimas

Nagrinėjamos temos l l l Klaidų testavimas Juodos dėžės testavimas Struktūrinis testavimas Integravimo testavimas Objektinis testavimas Testavimo karkasai ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 4

Testavimo procesas l Komponentų testavimas: • • individualių programos komponentų testavimas, įprastai atsakomybė už

Testavimo procesas l 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? ) l 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 ©Ian Sommerville 2010 Software Engineering, 8 th edition. testavimui? ) Slide 5

Testavimo fazės Komponentų testavimas Integravimo testavimas Programinės įrangos kūrėjas Nepriklausoma testavimo komanda Kam tenka

Testavimo fazės Komponentų testavimas Integravimo testavimas Programinės įrangos kūrėjas Nepriklausoma testavimo komanda Kam tenka atsakomybė ir kas vykdo komponentų ir integravimo testavimą? ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 6

Nagrinėjamos temos l Klaidų testavimas (Testavimo prioritetai, testiniai duomenys ir testiniai atvejai, testavimo procesas)

Nagrinėjamos temos l Klaidų testavimas (Testavimo prioritetai, testiniai duomenys ir testiniai atvejai, testavimo procesas) l l l Juodos dėžės testavimas Struktūrinis testavimas Integravimo testavimas Objektinis testavimas Testavimo karkasai ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 7

Testavimo prioritetai l l Tiktai išsamus testavimas gali parodyti, kad programa yra be klaidų,

Testavimo prioritetai l l 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? ) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 8

Testiniai duomenys ir testiniai atvejai l l Testiniai duomenys – įėjimų reikšmės, skirtos sistemos

Testiniai duomenys ir testiniai atvejai l l 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? ) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 9

Klaidų testavimo procesas Testavimo atvejai Suprojektuoti testavimo atvejus Testavimo duomenys Paruošti testavimo duomenis Paleisti

Klaidų testavimo procesas Testavimo atvejai Suprojektuoti testavimo atvejus Testavimo duomenys Paruošti testavimo duomenis Paleisti programą su test. duom. Testavimo rezultatai Testavimo ataskaitos Palyginti rezultatus su testavimo atvejais Kokie veiksmai vykdomi klaidų testavimo metu? ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 10

Nagrinėjamos temos l l Klaidų testavimas Juodos dėžės testavimas (įėjimų ir išėjimų sritys, ekvivalentinis

Nagrinėjamos temos l l Klaidų testavimas Juodos dėžės testavimas (įėjimų ir išėjimų sritys, ekvivalentinis sudalinimas, ribinės reikšmės, nuorodos masyvams, paieškos procedūra) l l Struktūrinis testavimas Integravimo testavimas Objektinis testavimas Testavimo karkasai ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 11

“Juodos dėžės “ testavimas l l l Testavimo metodas, kai programa yra įsivaizduojama kaip

“Juodos dėžės “ testavimas l l l 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, 8 th edition. Slide 12

“Juodos dėžės “ testavimas Įvesti testavimo duomenys I e Kaip grafiškai atvaizduojamas juodos dėžės

“Juodos dėžės “ testavimas Įvesti testavimo duomenys I e Kaip grafiškai atvaizduojamas juodos dėžės testavimas? Sistema Išvesti testavimo rezultatai ©Ian Sommerville 2010 Duomenys, sukeliantis nenormalų elgesį. Oe Software Engineering, 8 th edition. Rezultatai, kurie parodo defektų buvimą. Slide 13

Ekvivalentinis sudalinimas l l l Įvedami duomenys ir išvedami rezultatai paskirstomi į atskiras klases,

Ekvivalentinis sudalinimas l l l Į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, 8 th edition. Slide 14

Ekvivalentinis sudalinimas Duomenų klasės Sistema Kaip grafiškai atvaizduojamas ekvivalentinis sudalinimas? Rezultatų klasės ©Ian Sommerville

Ekvivalentinis sudalinimas Duomenų klasės Sistema Kaip grafiškai atvaizduojamas ekvivalentinis sudalinimas? Rezultatų klasės ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 15

Ekvivalentinis sudalinimas ir ribinės reikšmės l l l Padalinti sistemos įėjimų ir išėjimų reikšmes

Ekvivalentinis sudalinimas ir ribinės reikšmės l l l 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? ) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 16

Ekvivalentinis padalinimas ir ribinės bei vidurinės reikšmės 3 4 11 10 7 Mažiau nei

Ekvivalentinis padalinimas ir ribinės bei vidurinės reikšmės 3 4 11 10 7 Mažiau nei 4 Tarp 4 ir 10 Daugiau nei 10 Įvedamas 5 -10 skaitmenų skaičius 9999 10000 50000 100000 99999 Mažiau nei 10000 Tarp 10000 ir 99999 Įvedamas 5 skaitmenų skaičius tarp 10000 ir 99999 ©Ian Sommerville 2010 Daugiau nei 99999 Kaip testuojamas 5 -10 skaitmenų skaičiaus įvedimas? Software Engineering, 8 th edition. Slide 17

Testavimo nuorodos masyvams l l Testuoti programinę įrangą kai masyvas turi tik vieną elementą.

Testavimo nuorodos masyvams l l 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, 8 th edition. Slide 18

Paieškos procedūros specifikacija procedure Search (Key : ELEM ; T: ELEM_ARRAY; Found : in

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 element T’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, 8 th edition. Slide 19

Testai paieškos procedūrai (Kaip testuojama paieškos procedūra? ) ©Ian Sommerville 2010 Software Engineering, 8

Testai paieškos procedūrai (Kaip testuojama paieškos procedūra? ) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 20

Nagrinėjamos temos l l l Klaidų testavimas Juodos dėžės testavimas Struktūrinis testavimas (Programos skaičiavimų

Nagrinėjamos temos l l l Klaidų testavimas Juodos dėžės testavimas Struktūrinis testavimas (Programos skaičiavimų grafas, nepriklausomi keliai, testavimo kriterijai, operatoriai, šakos, keliai) l l l Integravimo testavimas Objektinis testavimas Testavimo karkasai ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 21

Struktūrinis testavimas l l l Dar vadinamas “baltos dėžės“ testu. Testiniai atvejai gaunami iš

Struktūrinis testavimas l l l 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? ) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 22

Binary search (Java) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 23

Binary search (Java) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 23

Binary search flow graph ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 24

Binary search flow graph ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 24

Programos skaičiavimų grafas l l Aprašo programos skaičiavimų valdymą. Kiekviena atšaka yra parodyta kaip

Programos skaičiavimų grafas l l 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? ) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 25

Nepriklausomi keliai l l l 1, 2, 3, 8, 9; 1, 2, 3, 4,

Nepriklausomi keliai l l l 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? ) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 26

Testavimo kriterijai l l l Testai turi vykdyti bent vieną kartą kiekvieną programos operatorių

Testavimo kriterijai l l l 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, 8 th edition. Slide 27

Operatoriai, šakos, keliai l Example: Proc(x); • If x > 17 then x :

Operatoriai, šakos, keliai l Example: Proc(x); • If x > 17 then x : = x - 17 If x = 13 then (1) 1 (2) (3) 2 (4) x=0; 4 3 (5) 5 End; (6) 6 Testiniai duomenys x = 30 - visi operatoriai Testiniai duomenys x = 30, x = 17 - visos šakos Testiniai 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? ) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 28

Testavimo pilnumas l l Testavimo pilnumo matavimas rodo kaip išpildytas testavimo kriterijus. Testavimo pilnumas

Testavimo pilnumas l l 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, 8 th edition. Slide 29

Nagrinėjamos temos l l l Defektų testavimas Juodos dėžės testavimas Struktūrinis testavimas Integravimo testavimas

Nagrinėjamos temos l l l 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, 8 th edition. Slide 30

Integravimo testavimas l l Testavimui išbaigtos sistemos ar posistemės, sudarytos iš integruotų komponentų. Integravimo

Integravimo testavimas l l 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, 8 th edition. Slide 31

Palaipsninis integravimo testavimas Testo eiliškumas ©Ian Sommerville 2010 Testo eiliškumas Software Engineering, 8 th

Palaipsninis integravimo testavimas Testo eiliškumas ©Ian Sommerville 2010 Testo eiliškumas Software Engineering, 8 th edition. Slide 32

Integravimo testavimo metodai l smulkinantis (Top-down ) testavimas: pradėti nuo sistemos aukščiausio lygio ir

Integravimo testavimo metodai l 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; l stambinantis (Bottom-up) testavimas: integruoti individualius komponentus į lygius iki tol, kol sukuriama visiškai sukomplektuota sistema. l Praktiškai integravimas įtraukia šių strategijų kombinacijas ( Kokie yra integravimo testavimo metodai? ) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 33

Smulkinantis testavimas Testavimo eiliškumas Lygis 1 Lygis 2 . . . Lygis 2 “kamščiai”

Smulkinantis testavimas Testavimo eiliškumas Lygis 1 Lygis 2 . . . Lygis 2 “kamščiai” Lygis 3 “kamščiai” ( Kaip grafiškai atvaizduojamas smulkinantis testavimas? ) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 34

Stambinantis testavimas Testų “drivers” Lygis N Lygis N-1 ( Kaip grafiškai atvaizduojamas stambinantis testavimas?

Stambinantis testavimas Testų “drivers” Lygis N Lygis N-1 ( Kaip grafiškai atvaizduojamas stambinantis testavimas? ) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 35 Testavimo eiliškumas

Testavimo metodų palyginimas l Architektūros atestavimas: smulkinantis integravimo testavimas yra geresnis atrandant klaidas sistemos

Testavimo metodų palyginimas l Architektūros atestavimas: smulkinantis integravimo testavimas yra geresnis atrandant klaidas sistemos architektūroje. l Sistemos demonstravimas: smulkinantis integravimo testavimas leidžia ribotą demonstravimą pradinėje kūrimo stadijoje. l Testo realizavimas: dažniausiai yra lengviau realizuoti testus stambinančiam integravimo testavimui. l 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, 8 th edition. Slide 36

Sąsajos testavimas l l l Naudojamas, kai moduliai ar posistemės jungiami, kad sukurti dideles

Sąsajos testavimas l l l 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? ) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 37

Sąsajų tipai l Parametrų sąsajos: • l Bendrai naudojamos atminties sąsajos: • l atminties

Sąsajų tipai l Parametrų sąsajos: • l Bendrai naudojamos atminties sąsajos: • l atminties bloku bendrai naudojamasi. Procedūrinės sąsajos: • l duomenys perduodami iš vienos procedūros į kitą. 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, 8 th edition. Slide 38

Sąsajos klaidos l Klaidingai naudojama sąsaja: • l Sąsajos neteisingas interpretavimas: • l pakviestas

Sąsajos klaidos l Klaidingai naudojama sąsaja: • l Sąsajos neteisingas interpretavimas: • l pakviestas komponentas iškviečia kitą komponentą ir daro klaidas jo naudojamoje sąsajoje, pvz. : parametrai neteisinga tvarka. 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, 8 th edition. Slide 39

Rekomendacijos sąsajos testavimui l l l Suprojektuokite testus taip, kad parametrai iškviestai procedūrai turėtų

Rekomendacijos sąsajos testavimui l l l 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, 8 th edition. Slide 40

Stresinis testavimas l l l Testuoja sistemą virš jos maksimaliai suprojektuoto krūvio. Sistemos spaudimas

Stresinis testavimas l l l 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, 8 th edition. Slide 41

Nagrinėjamos temos l l l Defektų testavimas Juodos dėžės testavimas Struktūrinis testavimas Integravimo testavimas

Nagrinėjamos temos l l l 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) l Testavimo karkasai ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 42

Objektinis testavimas l l l Komponentai, kurie turi būti patikrinti, yra objektų klasės, kurios

Objektinis testavimas l l l 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? ) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 43

Objektų testavimo lygiai l l Testuoti operacijas susietas su objektais. Testuoti objektų klases. Testuoti

Objektų testavimo lygiai l l 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, 8 th edition. Slide 44

Objektų klasių testavimas l Pilnas klasės testavimas apima : • • • l testavimas

Objektų klasių testavimas l Pilnas klasės testavimas apima : • • • l 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, 8 th edition. Slide 45

Objektų integravimo testavimas l l l Integravimo lygiai yra mažiau aiškūs objektinėse sistemose. Grupės

Objektų integravimo testavimas l l l 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, 8 th edition. Slide 46

Objektų grupių testavimo metodai l Naudojamų atvejų arba scenarijaus testavimas: • • l Gijų

Objektų grupių testavimo metodai l Naudojamų atvejų arba scenarijaus testavimas: • • l Gijų testavimas: • l testavimas yra pagrįstas vartotojo ryšiu su sistema, turi pranašumą, kad taip testuojamos sistemos savybės kaip patyrusių vartotojų. 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, 8 th edition. Slide 47

Testavimas pagal scenarijų l Atpažįsta scenarijų iš naudojamų atvejų (use-cases) ir jų papildymų su

Testavimas pagal scenarijų l Atpažįsta scenarijų iš naudojamų atvejų (use-cases) ir jų papildymų su bendravimo diagramomis, kurios parodo objektus, įtrauktus į scenarijų. ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 48

Nagrinėjamos temos l l l Defektų testavimas Juodos dėžės testavimas Struktūrinis testavimas Integravimo testavimas

Nagrinėjamos temos l l l 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, 8 th edition. Slide 49

Testavimo karkasai (instrumentinių priemonių rinkinys) l l l Testavimas yra brangi proceso fazė. Testavimo

Testavimo karkasai (instrumentinių priemonių rinkinys) l l l 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, 8 th edition. Slide 50

Testavimo karkasas (Iš ko susideda testavimo karkasas? ) ©Ian Sommerville 2010 Software Engineering, 8

Testavimo karkasas (Iš ko susideda testavimo karkasas? ) ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 51

Testavimo karkaso priderinimas l l l Skriptai gali būti naudojami vartotojų sąsajų imitatoriams ir

Testavimo karkaso priderinimas l l l 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, 8 th edition. Slide 52

Kodėl reikalingas automatinis testavimas? l Programos kūrimo, derinimo, priežiūros metu tenka tą pačią programą

Kodėl reikalingas automatinis testavimas? l 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, 8 th edition. Slide 53

Veiksmų išsaugojimas l l Klaviatūros bei pelės paspaudimai gali būti užrašyti į failą ir

Veiksmų išsaugojimas l l 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, 8 th edition. Slide 54

Esminiai aspektai l l Testuoti sistemos dalis, kurios yra dažniau naudojamos negu tos, kurios

Esminiai aspektai l l 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, 8 th edition. Slide 55

Esminiai aspektai l Testavimo pilnumo matavimas rodo kaip išpildytas testavimo kriterijus. ( Ką rodo

Esminiai aspektai l Testavimo pilnumo matavimas rodo kaip išpildytas testavimo kriterijus. ( Ką rodo testavimo pilnumas? ) l l l 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, 8 th edition. Slide 56

Esminiai aspektai l Programinės įrangos testavimas Esminiai aspektai (rekomendacijos sistemos dalių testavimui, ekvivalentinis sudalinimas,

Esminiai aspektai l 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, 8 th edition. Slide 57

Klausimas 13. 1 l Kokios rekomendacijos pateikiamos programos testavimui? ©Ian Sommerville 2010 Software Engineering,

Klausimas 13. 1 l Kokios rekomendacijos pateikiamos programos testavimui? ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 58

Klausimas 13. 2 l Kokie kriterijai naudojami testuojant juodos dėžės metodu? ©Ian Sommerville 2010

Klausimas 13. 2 l Kokie kriterijai naudojami testuojant juodos dėžės metodu? ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 59

Klausimas 13. 3 l Kokie kriterijai naudojami testuojant struktūriniais metodais? ©Ian Sommerville 2010 Software

Klausimas 13. 3 l Kokie kriterijai naudojami testuojant struktūriniais metodais? ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 60

Klausimas 13. 4 l Kas būdinga integravimo ir objektiniam testavimui? ©Ian Sommerville 2010 Software

Klausimas 13. 4 l Kas būdinga integravimo ir objektiniam testavimui? ©Ian Sommerville 2010 Software Engineering, 8 th edition. Slide 61