1 / 61

Programinės įrangos testavimas

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.

xuxa
Download Presentation

Programinės įrangos testavimas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programinės įrangos testavimas • Programų ir komponentų vykdymas su parinktais pradiniais duomenimis, siekiant nustatyti sistemos klaidas. (Kas tai yra programinės įrangos testavimas?)

  2. Įžanga • Programinės įrangos testavimas Įžanga (Tikslai, temos, testavimo procesas, fazės)

  3. Tikslai • Suprasti testavimo metodus, kurie yra naudojami tam, kad rasti programos klaidas. • Supažindinti su nuorodomis sąsajų testavimui. • Suprasti objektinio testavimospecifiškumą. • Suprasti CASE priemonių principus testavime.

  4. Nagrinėjamos temos • Klaidų testavimas • Juodos dėžės testavimas • Struktūrinis testavimas • Integravimo testavimas • Objektinis testavimas • Testavimo karkasai

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

  6. Komponentų testavimas Integravimo testavimas Nepriklausoma testavimo komanda Programinės įrangos kūrėjas Testavimo fazės Kam tenka atsakomybė ir kas vykdo komponentų ir integravimo testavimą?

  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

  8. Testavimo prioritetai • 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?)

  9. Testiniai duomenys ir testiniai atvejai • 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?)

  10. Testavimo atvejai Testavimo duomenys Testavimo rezultatai Testavimo ataskaitos Suprojektuoti testavimo atvejus Paruošti testavimo duomenis Paleisti programą su test. duom. Palyginti rezultatus su testavimo atvejais Klaidų testavimo procesas Kokie veiksmai vykdomi klaidų testavimo metu?

  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

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

  13. Duomenys, sukeliantis nenormalų elgesį. Įvesti testavimo duomenys I Sistema Rezultatai, kurie parodo defektų buvimą. Išvesti testavimo rezultatai O “Juodos dėžės “ testavimas e Kaip grafiškai atvaizduojamas juodos dėžės testavimas? e

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

  15. Duomenų klasės Sistema Rezultatų klasės Ekvivalentinis sudalinimas Kaip grafiškai atvaizduojamas ekvivalentinis sudalinimas?

  16. Ekvivalentinis sudalinimas ir ribinės reikšmės • 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?)

  17. 3 1 1 4 7 1 0 Mažiau nei 4 Tarp 4 ir 10 Daugiau nei 10 Įvedamas 5-10 skaitmenų skaičius 9999 100000 10000 50000 99999 Mažiau nei 10000 Tarp 10000 ir 99999 Daugiau nei 99999 Įvedamas 5 skaitmenų skaičius tarp 10000 ir 99999 Ekvivalentinis padalinimas ir ribinės bei vidurinės reikšmės Kaip testuojamas 5-10 skaitmenų skaičiaus įvedimas?

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

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

  20. Testai paieškos procedūrai (Kaip testuojama paieškos procedūra?)

  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

  22. Struktūrinis testavimas • 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?)

  23. Binary search (Java)

  24. Binary search flow graph

  25. Programos skaičiavimų grafas • 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?)

  26. Nepriklausomi keliai • 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?)

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

  28. 1 2 3 4 5 6 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 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?)

  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

  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

  31. Integravimo testavimas • Testavimui išbaigtos sistemos ar posistemės, sudarytos iš integruotų komponentų. • Integravimo testavimas turėtų būti “juodosdėžes” su testais, gautais iš specifikacijų. • Pagrindinis sunkumas yra klaidų lokalizavimas. • Palaipsninis integravimo testavimas mažina šią problemą. ( Kas būdinga integravimo testavimui?)

  32. Testo eiliškumas Testo eiliškumas Testo eiliškumas Palaipsninis integravimo testavimas

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

  34. Lygis 1 Testavimo eiliškumas Lygis 1 ... Lygis 2 Lygis 2 Lygis 2 Lygis 2 Lygis 2 “kamščiai” Lygis 3 “kamščiai” Smulkinantis testavimas ( Kaip grafiškai atvaizduojamas smulkinantis testavimas?)

  35. Testų “drivers” Testavimo eiliškumas Lygis N Lygis N Lygis N Lygis N Lygis N Testų “drivers” Lygis N-1 Lygis N-1 Lygis N-1 Stambinantis testavimas ( Kaip grafiškai atvaizduojamas stambinantis testavimas?)

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

  37. Sąsajos testavimas • 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?)

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

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

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

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

  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

  43. Objektinis testavimas • Komponentai, kurie turi būti patikrinti, yra objektų klasės, kurios realizuojamos kaip objektai. • Didesniems vienetams negu individuali funkcija “baltosdėžė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?)

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

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

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

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

  48. Testavimas pagal scenarijų • Atpažįsta scenarijų iš naudojamų atvejų (use-cases) ir jų papildymų su bendravimo diagramomis, kurios parodo objektus, įtrauktus į scenarijų.

  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

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

More Related