Tarkvara testimist käsitlev juhendmaterjal Tarkvara testimine Testimise parimad praktikad Nõudmiste määratlemine Maili Markvardt ASA Quality Services OÜ Tallinn 2006 Sisukord 1 Lugejaskond ja käsitlusala.......................................................................................3 2 Kasutatavad mõisted.................................................................................................3 3 Sissejuhatus testimisse........................................
Tarkvara kvaliteedi kordamisküsimused 1. Pakkuge ise kvaliteedi mõiste, võrrelge ülal pakutud mõistega Kvaliteet on nii tootja või kaubamärgiga kaasas käiv omadus, kui ka suhe toote ja nõuete vahel. 2. Kas tarkvara kvaliteedi määratlus erineb teiste toodete kvaliteedi määratlusest? Miks? Ei erine, lihtsalt vaadatakse erinevaid aspekte. 3. Millal võib kvaliteedi määratluses piirduda vaid tootega? Vaid toote ja nõudmistega? Kui kvaliteet on mingi tootja või kaubamärgiga kaasas käiv omadus. 4. Kuidas suhtuda väitesse "Tarkvara kvaliteeti pole olemas, kogu aeg on kiirustamine ja pole aega ühte asja valmis saada, juba tuleb järgmine"? Millist kvaliteedi mõistet siin arvestatakse? Kas / millal on võimalik, et kvaliteeti pole? See oleneb keskkonnast, kus see toode asub. Mõeldud on ideaalse kvaliteedi mõistet. Sageli ei pruugi ideaalset kvaliteeti olemas olla. 5. Tarkvara arenduse tulemid
o Kes vastutab arhitektuuri eest? – Kõik vastutavad. Probleem: Vahel inimesed ei ole üksteisega nõus Suurtes tiimides skaleeruvus o Nimeta arhitektuuri manager/omanik/vastutaja Arhitektuur suures meeskonnas o Arhitektuuri juhitud lähenemine o Featuuri juhitud lähenemine o Avatud lähtekoodi lähenemine o Kombinatsioon eelnevatest o Arhitektuuri testimine o Küsi endalt: Millistele eeldustele tugineb arhitektuur Millised nõuded arhitektuur katab Mis on selle arhitektuuri võtme riskid Milliste meetmetega leevendada riske Mil moel on see arhitektuur edasiminek viimase kandidaadi/baas arhitektuuri suhtes Agiilne tarkvara arhitektuur o Nõuded juhivad arhitektuuri v.a. kui sa häkid Agiilne arhitektuur
Testipõhisel arendusel (test driven development) luuakse testid enne realiseerimist kliendi kasutuslugude põhjal. Testide hulka kuuluvad ühiktestid (programmeerijalt, kohe enne realiseerimist) ja vastuvõtmise testid (Tellijalt, funktsionaalsed). Scrum is an iterative and incremental agile software development framework for managing software projects and product or application development. Scrum focuses on project management institutions where it is difficult to plan ahead. RUP 6. Tarkvara kvaliteet Töökindluse tõstmise üks võimalusi on kvaliteedihaldus. Väga lühidalt on kvaliteet toote vastavus nõuetele. Keerukate toodete puhul tuleb vastavuse hindamisel arvesse võtta ka toote loomise protsessi. Seega seob kvaliteet toote, nõuded tootele ja tootmise protsessi. Standard võtab arvesse kasutus-, välis-, sise- ja protsessi kvaliteeti. Elutsükli protsesside kvaliteet soodustab toote kvaliteedi (sise- ja väliskvaliteedi) parandamist, toote kvaliteet aga
tarkvara peab olema arusaadav, kasutatav ja ühilduv teiste süsteemidega). Tarkvaratehnika vaated: • Omaniku vaade (Motivation layer), • Kavandaja vaade (System design layer), • Ehitaja vaade (Deployment layer). Tarkvaraprotsessi etapid: 1. Nõuete esiletoomine ja analüüs, 2. Kavandamine e. disain (Arhitektuuriline kavandamine, Detailne kavandamine), 3. Realiseerimine, 4. Testimine, 5. Hooldus ja evolutsioon. Tarkvaraprojekti jaoks vajalikud osad: inimesed, nõuded, vahendid, testid-mockid. Süsteem Tarkvaratehnika ei ole isoleeritud distsipliin vaid osa laiemast süsteemitehnikast. Tarkvarasüsteemid ei ole isoleeritud süsteemid vaid sotsiaalsete süsteemide osad – sotsiotehniline süsteem. Süsteem on üksteisega ühendatud olemite või komponentide hulk, mis moodustavad keerulise terviku või täidavad koos keerulist funktsiooni
pakkumine. Näide. Põhiliste riskide tabel. Nr. Mitu Riski nimetus Riski vähendamise võimalused nädalat loetelus Loodud kasutajaliidese prototüüp, veendumaks kasutajate 1. 4 Väljastatud rahulolus. tarkvara madal Kasutatakse süsteemset arendusprotsessi. kvaliteet Testimine kavandatakse nii, et see kataks kogu funktsionaalsuse. Süsteemi testimine sõltumatute ekspertide poolt. Ajagraafik vaadatakse projekti käigus korduvalt üle. 2. 4 Ajagraafikust Aktiivne protsessi jälgimine toob nihked ajagraafikus
TARKVARATEHNIKA KORDAMISKÜSIMUSED 1. Mis on tarkvaratehnika? Software engineering ! “Engineers Australia” definitsioon: Tarkvaratehnika on tiimide poolt rakendatav distsipliin tootmaks kõrgekvaliteedilist, suuremastaabilist ja hinnaefektiivset tarkvara mis rahuldab kasutajate nõudmisi ja mida saab hooldada teatud ajaperioodi vältel. IEEE definitsioon: Tarkvaratehnika on süstemaatilise, distsiplineeritud ja mõõdetava lähehemisviisi rakendamine tarkvara arendamisele, käitamisele ja hooldamisele, see tähendab, inseneriteaduste rakendamine tarkvarale. Tarkvaraarendus on nõrgem termin, kus tingimata ei kasutata protsesse, tööriistu, standardeid, jne. Tarkvaraarendus on progemine + konfigursatsiooni haldus. Tarkvaratehnika ei ole ainult programmi kirjutamine, vaid teemad hõlmavad ka kvaliteeti, ajakavasid,
eksam 7. Nõude 3 põhiomadust. 8. Nõuete valideerimise tehnikad. 9. Komponentidel põhinev arhitektuur 10.Kihiline arhitektuur eksam 11.Objektorienteeritud arhitektuur 12.Teenusorienteeritud arhitektuur 13.Lihtsa koodi disaini 4 elementi 14.Miks peab nõudeid haldama? 15.Milleks kasutatakse versioonihaldust? eksam 16.Funktsionaalne nõue eksam 17.Mittefunktionaalne nõue eksam 18.Tarkvara elutsükkel 19.Millest koosneb tarkvara? 20.Mis on testimine? 21.Staatiline testimine eksam 22.Dünaamiline testimine eksam 23.Valge kasti testimine 24.Musta kasti testimine 25.Testimise tasemed 26.Re-testmine ja regressioonitestimine 27.eXtreme programmingu alustalad 28.Kirjelda lühidalt XP-d 29.Mis on mudel? eksam 30.Mis on UML? Miks on seda vaja? 31.Tarkvaratehnika 3 vaadet. 32.Tarkvara protsessi etapid. 33.Tabel disaini ja analüüsi abstraktsioonitasemete kohta 34
Kõik kommentaarid