testida, võrrelda tulemusi, hinnata Hinnang: hea. 24. Mis on testimine programmi teksti põhjal? Mis on adekvaatsuskriteeriumid? Milline on viimaste võimsuse suhe, kuidas neid kasutada? Kas teeadekvaatsus garanteerib programmi korrektsuse? Anda hinnang programmi keerukusele. Kuidas toimub tsüklite testimine? Testimine programmi teksti põhjal- võetakse ette programm ja luuakse teste selle teksti põhjal. Lauseadekvaatsus- testimise tulemusena peab programmis iga lause olema vähemalt üks kord töötanud. Haruadekvaatsus- läbib kõik harud, ka tühjad. Seega on täielikum kui lauseadekvaatsus. Elementaartingimuste adekvaatsus- kui If-lause tingimus on loogiline avaldis, siis tekivad selle avaldise läbimisel sisuliselt programmi harud, mis peavad olema testide käigus läbitud. Teeadekvaatsus- Kõik programmi teed peavad olema läbitud.
Ei leia puuduvaid harusid. · Programmi teksti pole alati olemas. Mitte alati saavutatav · Tulemused: testikomplekt, mis katab programmi · Suhe teistesse: kasutada koos teiste meetoditega · Vahendid: on olemas vahendid, mis aitavad leida lauseadekvaatset testikomplekti Lauseadekvaatsuse puhul läbitakse kõik laused, kuid harud, milles lauseid pole, jäetakse läbimata. Haruadekvaatsuse nõue eeldab ka tühjade harude läbimist, seega on ta täielikum, Lauseadekvaatsus Haruadekvaatsus. Haruadekvaatsust saab illustreerida programmi graafil. Sellel vastab igale hargnemisele graafi tipp, millest väljub rohkem kui üks haru. Üksteisele järgnevad täidetavad hargnemiseta laused võib ühendada üheks tipuks. Haruadekvaatsuse nõuet võib sõnastada järgmiselt: testimise käigus peavad programmi graafi kõik kaared olema läbitud. Järgneval joonisel on kujutatud lihtne programm ja sellele vastav graaf. Graafis on kolm esimest lauset ühendatud üheks tipuks
analoogselt leida ka väljundile, arvestades programmi väljundväärtuste rühmitumist klassidesse. Antud juhul langevad sisendi ja väljundi ekvivalentsiklassid ning piirjuhud kokku. Kattekriteeriumil põhinev testimine kattekriteeriumil põhineva testimise (code coverage based testing) puhul luuakse testilood programmiteksti põhjal süstemaatiliselt vastavalt mingile kattekriteeriumile (test coverage/adequacy criterion). [KA+] Tuntuimad kattekriteeriumid on näiteks lauseadekvaatsus, haruadekvaatsus, kuid erinevaid kriteeriume on palju. Näiteks 100% lauseadekvaatsuse saavutamiseks on vajalik, et kõik programmi käivitatavad laused oleks testimise käigus käivitatud. Järgneva pseudokoodis programmilõigu, mis väljastab, kas sisestatud arv on 0 või ei, lauseadekvaatseks testimiseks oleks vajalik testida mingi negatiivse väärtusega, sest see võimaldab käivitada kõik programmi käivitatavad read: void foo(int a) { printf("Sisestasite "); if (a < 0) {
Vastavalt standardile ANSI/IEE Std 829 koostatud testi tulemuste raport on näha tabelis nr 8. Identifikaator TSR-‐UT-‐01 Kokkuvõte Kõrvalekaldumised Põhjalikkuse hinnang testimisega on täidetud lauseadekvaatsus koos ühe kõrvalekaldega. Tulemuste kokkuvõte Hinnang 61 Tegevuste kokkuvõte Testiti kõiki klassi SudokuSolver meetodeid lauseadekvaatsuse