Uuriv testimine (exploratory testing) on mitteformaalne tarkvara testimise tehnika, mille puhul testija hindab testide kavandamist nende täitmise käigus ning kasutab saadud informatsiooni uute ja paremate testide projekteerimiseks. Suitsutestimisel (smoke testing) täidetakse alamhulk kõigist testidest selgitamaks, kas põhilised funktsioonid töötavad. Nimetus tuleneb elektroonikatööstusest (seadme esmane sisselülitamine). 9. Funktsionaalne testimine, ekvivalentsiklasside analüüs, piirolukorrad, otsustustabelid, veaotsing, andmepõhine testimine. Antud nõuded, pakkuda testid Spetsifikatsiooni põhise testimise puhul vaatame programmi kui musta kasti, sest me ei tea tema siseehitust, teame vaid sisendeid ja väljundeid (spetsifikatsiooni). Erinevus programmipõhise testimisega ongi selles, mille põhjal leitakse testide sisendid (spetsifikatsioon või programmi tekst); väljundid tekitatakse mõlemal juhul spetsifikatsiooni alusel.
samaväärsust. Siis valemi F ekvivalentsiklass on kõigi temaga samaväärsete ainult muutujaid A ja B sisaldavate valemite hulk. Selgitasime välja, et hulk X jaguneb 16 ekvivalentsiklassiks. c. Teoreem hulga jaotumisest ekvivalentsiklassideks: Kui R on hulgal X defineeritud ekvivalentsirelatsioon, siis kehtib: i. Kui kehtib xRy, siis [x]R = [y]R, ii. Kui xRy ei kehti, siis [x]R [y]R = , iii. Ekvivalentsiklasside ühend on hulk X. Tõestus. 1) Kehtigu xRy. Vastavate ekvivalentsiklasside võrduse näitamiseks näitame, et kumbki on teise alamhulk. Olgu z [x]R. Näitame, et siis ka z [y]R. Ekvivalentsiklassi definitsioonist saame z kohta xRz. Relatsiooni R sümmeetrilisuse tõttu saame väite 1) eeldusest yRx. Relatsioon R transitiivsus annab nüüd yRz, seega z [y]R. Analoogiliselt saab tõestada
testide kavandamist nende täitmise käigus ning kasutab saadud infot uute ja paremate testide projekteerimiseks. Riskipõhine testimine- testitakse esmalt tootega seotud kriitilisi riske. Selleks selgitatakse välja riskid, omistada neile prioriteedid, testida kõige prioriteetsemaid riske, informeerida teisi osapooli tulemustest ning võtta vastu otsused edasise kohta. 22. Funktsionaalne testimine, erinevus programmipõhisest testimisest, ekvivalentsiklasside analüüs, piirolukorrad, otsustustabelid, kasutusjuhud. Funktsionaalne testimine- testimine, mis põhineb süsteemi või komponendi funktsionaalsuse analüüsil. Erinevus programmipõhisest testimisest- FT puhul vaatame programmi kui "musta kasti" - me ei tea tema sisemist ehitust, teame vaid sisendeid ja vastavaid väljundeid. Erinevus on selles, mille põhjal leitakse testide sisendid. FT-st vaatame ekvivalentsiklasside, piirjuhtude ja vea otsingu meetodeid.
Manuaalne vs automatiseeritud testimine Manuaalse testimise puhul viiakse testilood läbi käsitsi. Automatiseeritud testimise puhul kirjeldatakse testilood programmina ning need viib läbi arvuti. Testimise automatiseerimist käsitleb põhjalikult [FE+]. Musta kasti vs valge kasti testimine Musta kasti testimise puhul koostatakse testilood süsteemile sisendite ja väljundite põhjal. Süsteemi sisemine struktuur on teadmata. Musta kasti testimismeetodite alla kuulub näiteks ekvivalentsiklasside ja piirjuhtude analüüs. Valge kasti testimise puhul koostatakse testilood programmi struktuuri põhjal. Valge kasti testimismeetodite alla käib kattekriteeriumide alusel läbi viidav testimine. Regressioonitestimine testimine pärast iga muudatust eesmärgiga, teha kindlaks, kas muudatused ning funktsionaalsuse lisamine pole tekitanud vigu varem toiminud programmi osas. Suitsutestimine pealiskaudne testimine eesmärgiga teha kindlaks, kas pole
Myhill-Nerode'I teoreem (piisav ja tarvilik tingimus keelte regulaarsuseks): Olgu antu keel L stringide hulgast *. Olgu antud seos HL on alamhulgaks * x *. H kehtib stringide x ja y vahel parajasti siis, kui iga stringi z korral stringid xz ja yz kas kuuluvad korraga keelde L või ei kuulu sellesse. HL on ekvivalentsiseos, kuna xzHxz, xzHyz <=> yzHxz, xzHwz AND wzHyz => xzHyz. Myhill ja Nerode väitsid, et keel on regulaarne parajasti siis, kui seose H ekvivalentsiklasside hulk on lõplik. Tarvilikkuse tõestus: Moodustame keelt L aktsepteeriva lõpliku automaadi M = (,Q,delta,Q0,F). Moodustame hulgad: R0i = {x | x on string, (x,qo) * (e,qi), q0 on algolek, qi on olek} Seose H ekvivalentsiklass on esitatav ühendina: Ck = R0i1 U ... U R0ik Iga kahe sõna x kuulub R0i ja y kuulub R0i korral masin kas aktsepteerib neid sõnu korraga või ei aktsepteeri tuleneb masina definitsioonist. Sõnu xz ja yz
Keel L = {0n1n|n > 0} pole regulaarne. Sellise keele jaoks on vaja mälu. 6 Myhill-Nerode teoreem. DEF: Olgu keele L ⊆ Σ* (keel on kõigi sõnede hulga alamhulk) jaoks antud ekvivalentsiseos HL ⊆ Σ* × Σ* selline, et xHLy kehtib parajasti siis, kui iga z ∈ Σ* korral kehtib xz ∈ L yz ∈ L (iga suvalise z lisamisel x ja y sappa, kuuluvad saadud xz ja yz mõlemad keelde L või ei kuulu mõlemad). Teoreem: Keel L on regulaarne parajasti siis, kui seose HL ekvivalentsiklasside hulk on lõplik. T: (tarvilikkus) Kui keel L on regulaarne, leidub teda aktsepteeriv lõplik automaat M = (Q , Σ, δ, q0, F). Olgu R0i ⊆ Σ* sõnede hulk, mis viib automaadi M lähteolekust q0 olekusse qi. Seose HL ekvivalentsiklass on lõplik ühend Cl = R0i1 ∪ R0i2 ∪ . . . ∪ R0il. (piisavus) Olgu HL ekvivalentsiklassid C0,…,Cm. Teeme lõpliku automaadi olekute hulgaga Q = {C0…Cm}: Valime algolekuks klassi C0, mis sisaldab ε-d
Siis valemi F ekvivalentsiklass on kõigi temaga samaväärsete ainult muutujaid A ja B sisaldavate valemite hulk. Selgitasime välja, et hulk X jaguneb 16 ekvivalentsiklassiks. Teoreem hulga jaotumisest ekivalentsiklassideks o Teoreem. Kui R on hulgal X defineeritud ekvivalentsirelatsioon, siis kehtib: 1) Kui xRy kehtib, siis [x ] R=[ y ]R , 2) Kui xRy ei kehti, siis [x ]R ∩ [ y ] R=∅ , 3) Ekvivalentsiklasside ühend on hulk X . 21 25. Mitterange ja range järjestusrelatsioon. Tähtsamad näited. Lineaarsed ja mittelineaarsed järjestused. Näited. [2] Mitterange järjestusrelatsioon o DEF: Relatsiooni R nimetatakse mitterangeks järjestusrelatsiooniks, kui R on refleksiivne, antisümmeetriline ja transitiivne. Range järjestusrelatsioon
Pärast programmi parandamist tuleb teste alustada otsast peale. TESTIDE KOOSTAMISEL püütakse saavutada testide võimalikult väike arv ja käsitsi lahendamise lihtsus. TESTIDE KOOSTAMISE MEETODID jagatakse üldiselt kaheks - MUSTA KASTI MEETODID ja VALGE KASTI MEETODID. MUSTA KASTI MEETODID käsitlevad programmi kui "musta kasti", s.t. uuri- vad selle käitumist lähtudes püstitatud ülesandest, sealjuures teadmata, kuidas programm seda ülesannet lahendab. Musta kasti meetoditeks on: EKVIVALENTSIKLASSIDE MEETOD. Võimalikud sisendandmed jagatakse niimoodi klassideks, et programm töötab iga klassiga ühtemoodi. Klassid tekita- takse ülesande põhjal sisendtingimuste ja muude aspektide ülevaatamise teel. Näiteks: +---------------------------+----------------------+-------------------+ | Tingimus või aspekt | Õiged klassid | Valed klassid | +---------------------------+----------------------+-------------------+
pidev kujutus ehk tee. Seejuures s(0) = x ja s(1) = z, st s on ¨hendav tee ning (x; z) ∈ σ. J¨arelikult on σ ka punkte x ja z u transitiivne. T¨ahistame punktiga x ∈ X ekvivalentsete punktide hulka [x]: [x] = { y ∈ X | (x; y) ∈ σ }. Hulki [x] nimetatakse ekvivalentsiklassideks. Iga kaks ekviva- ¨hisosata v˜oi langevad kokku. Et x ∈ [x], lentsiklassi on kas u siis ruum X avaldub ekvivalentsiklasside u ¨hendina: X = ∪x∈X [x]. Definitsioon 8.7 Seose σ ekvivalentsiklasse [x] nimeta- takse topoloogilise ruumi X lineaarse sidususe kompo- nentideks. Teoreem 8.44 Topoloogilise ruumi X iga lineaarse sidususe komponent on lineaarselt sidus alamruum ruumis X. T˜oestus. Olgu K topoloogilise ruumi X lineaarse sidususe komponent. Valime x, y ∈ K ja n¨aitame, et nad on u ¨henda- tavad teega ruumis K. Kuna K on lineaarse sidususe kompo-
Pärast programmi parandamist tuleb teste alustada otsast peale. TESTIDE KOOSTAMISEL püütakse saavutada testide võimalikult väike arv ja käsitsi lahendamise lihtsus. TESTIDE KOOSTAMISE MEETODID jagatakse üldiselt kaheks - MUSTA KASTI MEETODID ja VALGE KASTI MEETODID. MUSTA KASTI MEETODID käsitlevad programmi kui "musta kasti", s.t. uuri- vad selle käitumist lähtudes püstitatud ülesandest, sealjuures teadmata, kuidas programm seda ülesannet lahendab. Musta kasti meetoditeks on: EKVIVALENTSIKLASSIDE MEETOD. Võimalikud sisendandmed jagatakse niimoodi klassideks, et programm töötab iga klassiga ühtemoodi. Klassid tekita- takse ülesande põhjal sisendtingimuste ja muude aspektide ülevaatamise teel. Näiteks: +---------------------------+----------------------+-------------------+ | Tingimus või aspekt | Õiged klassid | Valed klassid | +---------------------------+----------------------+-------------------+