4. Kas tai yra testavimas? Testavimas tai programins 眺rangos vykdymo ( execution ) procesas, kurio metu reikia nustatyti, ar jos pateikiami rezultatai yra teisingi Testavimas tai programos vykdymo procesas, kurio tikslas yra surasti programos klaidas
5. Kas tai yra testavimas? Programins 眺rangos testavimas tai procesas, kuris skirtas 眺rodyti, jog programoje yra klaid迭, o ne atvirk邸iai Testavimas tai sistemos ar jos komponento vykdymas prie tam tikr迭 slyg迭, gaunam迭 rezultat迭 stebjimas ir fiksavimas bei tam tikr迭 sistemos ar komponento savybi迭 眺vertinimas (IEEE/ANSI, 1990)
6. Testavimo filosofija Galima teigti, kad testavimas yra tam tikras mastymo b笛das Jeigu P町 k笛rj迭 tikslas testavimo metu yra parodyti, jog klaid迭 programoje nra, jie j迭 neras arba ras nedidel眺 skaii迭 Ir prie邸ingai, jeigu testavimo proceso metu bus siekiama parodyti, kad programoje klaid迭 yra, j迭 bus tikrai rasta ir nema転ai
7. P町 sutrikimas (failure) Programins 眺rangos sutrikimas atsiranda tuomet, kai programa netenkina reikalavim迭 specifikacijos
8. P町 gedimas (fault) Gedimas tai tokia situacija, kai programos vidin b笛sena yra nesuderinama su tiktina b笛sena
9. P町 defektas (defect) Defektas tai programos kodo fragmentas, kuris sukelia gedim bei sutrikim
10. P町 klaida (error) Klaida tai programuotojo klaida, kurios pasekoje atsiranda defektas
11. Testavimo atvejis (test case) Testavimo atvejis tai tam tikras duomen迭 rinkinys, kurio pagalba yra tikrinama programa
12. Testavimo atvejo strukt笛ra Prad転ios ta邸kas arba slyga, vidini迭 kintam迭j迭 pradins reik邸ms Pradiniai duomenys Testuojamos programos funkcijos arba savybs pavadinimas Laukiami rezultatai
13. Testai ir j迭 parinkimo kriterijai Testas tai testavimo atvej迭 rinkinys Test迭 parinkimo kriterijai naudojami nustatyti, kurie testavimo atvejai leis geriausiai i邸testuoti program Testavimo parinkimo kriterijus leid転ia nusprsti, ar testavimo proces jau galima nutraukti
14. Test迭 parinkimo kriterij迭 strukt笛ra Test迭 parinkimo kriterij迭 sudaro trys elementai: P, S ir T P tai testuojama programa S programos specifikacija, pagal kuri buvo paruo邸ti testavimo atvejai T testavimo atvej迭 rinkinys
15. Testavimo efektyvumas Testavimo efektyvumas matuojamas testavimo atvej迭 skaiiumi, reikalingu i邸testuoti program Jeigu program galima i邸testuoti su nedideliu testavimo atvej迭 skaiiumi, vadinasi, jie buvo parinkti tinkamai ir yra efektyv笛s Testavimo efektyvum apibr転ia ir tai, ar parinkti testavimo atvejai leido pasiekti pagrindinius testavimo tikslus
16. Testavimo tikslai Surasti programos defektus. iuo atveju, efektyv笛s bus tie testai, kuriuos vykdant programa suveik klaidingai Patikrinti, kad programa atitinka savo specifikacij. iuo atveju, efektyv笛s bus tie testai, kurie 眺rodys, jog programa veikia taip, kaip apra邸yta specifikacijoje
17. Testavimo orakulas (oracle) Testavim vykdantis 転mogus ar programa, kuri nusprend転ia, jog programa test prajo (arba neprajo), vadinamas testavimo orakulu
18. Testavimo orakulo problema Pagrindin su testavimo orakulu susijusi problema yra jo atliekam迭 funkcij迭 automatizavimas, nes 転mogui 眺vykdyti didel眺 skaii迭 test迭 ir po to i邸analizuoti gautus rezultatus yra gantinai sunku
22. Vienet迭 testavimas (1) Vienet迭 testavimas tikrina izoliuot迭 programins 眺rangos komponent迭, kuriuos 眺manoma i邸testuoti atskirai, veikim Vienetu gali b笛ti tiek nedidels paprograms, tiek ir didesni komponentai, sudaryti i邸 tampriai tarpusavyje susiet迭 element迭 Vienet迭 testavimas da転niausiai atliekamas i邸 karto po programos kompiliacijos
23. Vienet迭 testavimas (2) Vienet迭 testavimas skirstomas 眺 statin analiz ir dinamin analiz Statin analiz apima programos kodo analiz bei sintakss ir semantikos klaid迭 paie邸k speciali迭 priemoni迭 pagalba Dinamin analiz apima baltos d転s testavim, juodos d転s testavim ir duomen迭 strukt笛romis paremt testavim
24. Integracijos testavimas (1) Integracijos testavimas tikrina sistemos komponent迭, da転niausiai jau i邸testuot迭 atskirai per vienet迭 testavim, tarpusavio sveik Integracijos testavimo metu sistemos komponentai apjungiami palaipsniui, taip palengvinant klaid迭 paie邸kos proces
25. Integracijos testavimas (2) Egzistuoja tokie komponent迭 apjungimo metodai: smulkinantis ( top-down ) testavimas stambinantis ( bottom-up ) testavimas
26. Smulkinantis (top-down) testavimas (1) Smulkinanio testavimo atveju, apjungimas pradedamas nuo auk邸iausio lygio komponent迭: pirmiausia i邸testuojami auk邸iausio lygio komponentai, o 転emesniame lygyje esantys pakeiiami tu邸iomis proced笛romis arba kam邸iais ( stubs )
28. Stambinantis (bottom-up) testavimas (1) Stambinanio testavimo atveju, apjungimas pradedamas nuo 転emiausio lygmens: kiekvienas 転emiausio lygio komponentas testuojamas atskirai, paskui i邸testuoti komponentai apjungiami 眺 auk邸tesn眺 lyg眺 ir procesas kartojamas tol, kol gaunama visi邸kai sukomplektuota sistema
29. Stambinantis (bottom-up) testavimas (2) io testavimo metu naudojami test迭 vykdikliai arba draiveriai ( drivers ) Draiveris tai programa, paduodanti testinius atvejus testuojamai programai ir sulyginanti gautus rezultatus su laukiamais
31. Sistemos testavimas (1) Sistemos testavimas skirtas ne surasti sistemos funkcionavimo klaidoms (dauguma j迭 turjo b笛ti i邸taisytos vienet迭 ir integracijos testavimo metu), o patikrinti visos sistemos elges眺 ir veikim
32. Sistemos testavimas (2) io testavimo metu testuojamos i邸orins ssajos su kitomis programomis, techniniais 眺renginiais, veikimo aplinka ir pan. Taip pat tikrinama, ar sistema atitinka nefunkcinius reikalavimus, tokius kaip saugumas, patikimumas, panaudojamumas ir kt.
34. Alfa testavimas Alfa testavimo metu P町 k笛rjai instaliuoja dar ne iki galo i邸baigt program savo 眺monje ir pakvieia norinius vartotojus su ja dirbti io testavimo atveju P町 k笛rjai yra nuolat 邸alia vartotojo, pasiruo邸 i邸taisyti pasirod転iusias klaidas
35. Beta testavimas Beta testavimo metu dar ne iki galo i邸baigta programa instaliuojama pas norinius vartotojus ir testuojama jau savo veikimo aplinkoje Beta testavimas kartais gali b笛ti pavojingas tuo, kad vartotojas, pamats, kiek programoje yra klaid迭, gali nebenorti 眺sigyti galutins jos versijos Dl 邸ios prie転asties, beta testavime dalyvaujanius vartotojus reikia skatinti: daryti nuolaidas, suteikti nemokamas licencijas ir pan.
36. Regresinis testavimas (1) Regresinis testavimas yra pakartotinis sistemos testavimas, atliekamas modifikavus sistem arba i邸leidus nauj jos versij
37. Regresinis testavimas (2) Regresinis testavimas gali b笛ti vykdomas keliais b笛dais: kartojami visi anksiau atlikti testai, plius 眺vykdomi testai, sukurti i邸testuoti atliktiems pakeitimams i邸testuojami tik atlikti pakeitimai i邸testuojami atlikti pakeitimai bei tos sistemos dalys, kurias 眺takoja tie pakeitimai
38. Stresinis testavimas Stresinis testavimas testuoja sistem su tokiais duomen迭 kiekiais, kurie i邸eina u転 leistino kiekio rib迭 arba yra netoli maksimalaus leistino kiekio ribos io testavimo metu siekiama patikrinti, kas atsitiks, kai sistema dirbs esant slygoms, kurioms ji nebuvo suprojektuota: ar bus prarasti paslaugos ir duomenys, kiek j迭 bus prarasta ir pan. Stresinis testavimas da転niausiai atliekamas realaus laiko sistemoms
40. Intuicija pagr眺stas testavimas (1) Vienas i邸 da転niausiai naudojam迭 testavimo metod迭 yra testavimas, pagr眺stas intuicija io metodo atveju, testavimo atvejai parenkami paio testuotojo, kuris remiasi savo 転iniomis bei patirtimi, sukaupta testuojant pana邸aus tipo programas
41. Intuicija pagr眺stas testavimas (2) Nors ir rekomenduojama naudoti kitus testavimo metodus, testavimas, pagr眺stas intuicija yra labai naudingas ypating迭 testavimo atvej迭 i邸skyrimui, kuri迭 ne眺manoma numatyti remiantis kokiomis nors taisyklmis
42. Juodos d転s testavimas (1) Juodos d転s testavimas yra pagr眺stas sistemos specifikacija Testuojant program 邸io metodo pagalba, ji yra 眺sivaizduojama kaip juoda d転: 転inomi tik 眺jimai ir i邸jimai, bet ne転inomas programos kodas Paprastai juodos d転s testavim atlieka ne programuotojas, o kitas 転mogus, nedalyvaujantis programavimo procese
47. Keli迭 testavimas (1) Testavimo atvejai parenkami taip, kad kiekvienas, programoje egzistuojantis kelias, b笛t迭 眺vykdytas bent vien kart Keli迭 testavimo metu yra sudaromas programos skaiiavim迭 grafas, parodantis programos mazgus, priimanius sprendimus, bei lankus, rodanius skaiiavim迭 vykdymo eili邸kum Programos mazgais yra slyginiai operatoriai
48. Keli迭 testavimas (2) Nepriklausomais keliais yra: 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
50. ak迭 testavimas Testavimo atvejai parenkami taip, kad programoje esanios slygos b笛t迭 patikrintos tuo atveju, kai jos yra tenkinamos, ir tuo atveju, kai jos netenkinamos
51. Baltos d転s testavimo privalumai Baltos d転s metodo privalumas tas, kad testini迭 atvej迭 skaiius yra daug ma転esnis, negu juodos d転s atveju Taip yra dl to, kad mes 転inome, kas yra programos viduje