Vajad kellegagi rääkida?
Küsi julgelt abi LasteAbi
Logi sisse

Tarkvara testimist käsitlev juhendmaterjal (0)

1 Hindamata
Punktid

Esitatud küsimused

  • Miks vead tekivad?
  • Kuidas testitakse?
  • Milline on testimise projekti skoop?
  • Milliseid meetodeid ja vahended kasutatakse testimisel?
  • Kes viivad läbi testimise tegevusi?
  • Milliseid omadusi ja objekte testitakse ja ei testita?
  • Milliste süsteemi osade testimist on otstarbekas automatiseerida?
  • Mis on selles aluses "teda"?
  • Mis ühendab lülitit üldsüsteemiga"?
  • Kui Jaan" Kas Juhani tutvusringkonnas on keegi Jaanist veel rikkam mees?
  • Kui Jaani tutvusringkonnas?
  • Kes viib protsessi läbi?
  • Kelle heaks Millal?
  • Mis on tulemus Kuidas?
  • Kuidas toimub teavitamise protsess mil viisil?
  • Kellele Millal?
  • Kes Millal Kelle heaks?
  • Paljud mõned koos mitmusega?

Tarkvara testimist käsitlev juhendmaterjal
Tarkvara testimine
Testimise parimad praktikad
Nõudmiste määratlemine
Maili Markvardt
ASA Quality Services
Tallinn 2006
Sisukord
1 Lugejaskond ja käsitlusala 3
2 Kasutatavad mõisted 3
3 Sissejuhatus testimisse 4
4 Testimise koht arendusprotsessis 5
5 Testimise liigid 5
5.1 Liigitus tarkvara testitavate omaduste järgi 5
5.2 Liigitus süsteemi detailsuse järgi 7
5.3 Liigitus testide läbiviija järgi 7
5.4 Liigitus testimise meetodi ja lähenemise järgi 7
5.5 Liigitus testimiseks kasutatavate andmete valiku meetodi järgi 8
5.6 Liigitus testitava objekti spetsiifika järgi 9
6 Testimise parimad praktikad – protsess 10
6.1 Töövoog 10
6.2 Rollid 11
6.3 Artefaktid 12
6.4 Tegevused 16
7 Nõuete määratlemine 19
7.1 Tarkvaranõuete määratlemine 19
7.2 Tarkvara testimist puudutavate nõudmiste määratlemine hanke koostamisel 20
8 Lisa 1 - Spetsifikatsiooni mitmetimõistetavus 23
8.1 Vahemikud 23
8.2 Vähemalt üks AND ja OR samas lauses 23
8.3 Ebamäärased terminid 23
8.4 Spetsiifilised mõisted 24
8.5 Üldistus + mitmus 24
8.6 Üldistused 24
8.7 Asukohakriitilised sõnad 24
8.8 Asesõnad ta, nad, see 25
8.9 Tüüp vs eksemplar 25
8.10 Tingimuslausete täielikkus 25
8.11 Tingimuslausete seotus õige alternatiiviga 26
8.12 Kolme või enama osapoole võrdlus 26
8.13 Protsessi kirjeldava tegusõna täielikkus 26
8.14 Protsessi kirjeldavate nimisõnade täielikkus 26
8.15 Lõpetamata loetelud 26
9 Lisa 2 – Spetsifikatsiooni mitmetimõistetavust leida võimaldav küsimustik 27



  • Lugejaskond ja käsitlusala


    Antud dokumendi lugejaskonnaks on eelkõige avaliku sektori, kuid laiemalt ka igasuguse tellija -poole IT juhid, kes peavad tagama tellitava tarkvara vastavuse hanke aluseks olevatele vajadustele. Dokument kirjeldab testimise alaliike , eesmärke ja seda, kuidas planeerida ning läbi viia tarkvara testimist kogu projekti vältel tagamaks tulemile esitatud nõuded. Esitatakse testimise planeerimise ning läbiviimise tegevused, rollid ning nende sisendid ja väljundid.
    Käesolevas dokumendis kirjeldatud tarkvara testimise üldpõhimõtted on sõltumatud tarkvaraarendusmetoodikast, projekti mahust ja omapärast. Käesolev dokument selgitab ka seda, kuidas kohaldada üldist testimisprotsessi erinevate projektide vajadustele, kuna üksikasjad ei pruugi olla otstarbekad kõigis projektides.
  • Kasutatavad mõisted


    Tarkvara testimine – testimisel on mitmeid erinevaid definitsioone kuid üldiselt ja lühidalt on see toote nõuetelevastavuse kontrollimine. Kasutusel on ka definitsioon programmi käivitamine eesmärgiga leida vigu, või ka programmi käivitamine ning lõpmatu hulga võimalike testilugude seast valitud lõpliku hulga testilugude läbiviimine kontrollimaks , kas programmi toimimine on ootuspärane.
    Tarkvara kvaliteedi järelvalve (Software Quality Assurance) – protsess, mis sisaldab planeeritud ja süstemaatilist lähenemist hindamaks tarkvaratoote kvaliteeti ja vastavust tunnustatud tarkvara-, protsessi- ja protseduuristandarditele. Tarkvara testimine on üks tarkvara kvaliteedi järelvalve osa.
    Testitav objekt – süsteem, mida testime e mille vastavust nõuetele kontrollime
    Musta kasti testimine – testimine, mis käsitleb testitavat objekti musta kastina, st testide koostamisel vaadeldakse ja analüüsitakse ainult sisend -väljund käitumist
    Valge kasti testimine – testimine, milles testide koostamisel kasutatakse infot testitava objekti sisemise struktuuri kohta (programmikoodi)
    Vastuvõtutestimine – Testimine eesmärgiga teha selgeks, kas loodud süsteem vastab määratud vastuvõtukriteeriumidele, st kas süsteem on valmis vastuvõtmiseks
    Artefakt – iga tarkvaraarenduse käigus loodav ja/või kasutatav tulem (näiteks programmikood, nõudmiste dokument, projektiplaan ) on artefakt
    Testiplaan – testimisprotsessi artefakt, mis kirjeldab projekti testimise skoopi, meetodeid , ressursse ja vastutusi, ajagraafikuid, testitavaid objekte ning testitavaid omadusi, riskide haldust
    Testilugu – testimisprotsessi artefakt, mis sisaldab detailset kirjeldust, kuidas kontrollida testitava objekti vastavust mingile nõudmisele
    Küsimustik (checklist) – nimekiri küsimustest, mis viitavad olulistele kontrollimist vajavatele punktidele mingi eesmärgi suhtes
    Nõudmine, nõue (requirement) – dokumenteeritud vajaduse kirjeldus selle kohta, milline süsteem või tulem peab olema, mida võimaldama ja kuidas toimima .
  • Sissejuhatus testimisse


    Testimine on üks osa tarkvara kvaliteedi järelvalvest, mis on laiem protsess, sisaldades planeeritud ja süstemaatilist lähenemist hindamaks tarkvaratoote kvaliteeti ja vastavust tunnustatud tarkvara-, protsessi- ja protseduuristandarditele.
    Tarkvara loomise ajendiks on mingid vajadused või probleem(id). Nende lahendamiseks peab tarkvara realiseerima talle püstitatud nõudeid. Nõudeid võib olla mitmesuguseid ning sellest lähtuvalt saab eristada erinevaid testimise liike (vt Testimise liigid).
    Tarkvara testimist võib defineerida kui tarkvaraarenduse tulemi (programmi, süsteemi) talle esitatud nõuetele vastavuse kontrollimist. Kõrvalepõikena olgu märgitud, et testida (nõuetelevastavust kontrollida) on võimalik iga tarkvaraarenduse artefakti, kuna kõigile neile on püsititatud mingid nõudmised. Käesoleva dokument käsitleb vaid arenduse käigus loodava süsteemi (tarkvara) testimist.
    Miks vead tekivad?
    Tarkvara mittevastavust nõuetele nimetatakse veaks ning vigu on võimalik leida testimise käigus. Samuti on viga tarkvara mittevastavus vajadustele, sobimatus probleemi lahendamiseks.
    Võib öelda, et vead on tarkvarasüsteemide keerukuse tõttu tarkvara loomise paratamatu kaasnähtus. Vigade tekkimist pole võimalik täielikult vältida, kuid kasutades efektiivset testimisprotsessi on võimalik suur osa olulistest vigadest leida. Vigade teket saab vähendada ka analüüsides ning parendades arendusprotsessi, kuid see jääb antud juhise skoobist välja.
    Tarkvara vigade tekkimisel on mitmeid põhjuseid, olulisemaks võiks pidada näiteks tarkvara loomise protsessi üldist suurt keerukust, nõudmiste ebatäspsusi, kolmanda poole komponentide kasutamist, tihedaid projektigraafikuid, juba leitud vigade parandamist (parandamisel võib tekkida uusi vigu) ning tõsiasja, et igasuguse inimtegevusega kaasnevad paratamatult vead.
    Praktikas on kinnitust leidnud ka väide, et programmeerijatel pole enamasti piisavalt aega oma tööd testida ning nad on iseenda töö testimisel suhteliselt ebaedukad: paljud vead jäävad leidmata , kuna autor ei suuda märgata lünki iseenda mõtlemises ning samuti on psühholoogiliselt raske oma tööd lõhkuda.
    Tänapäeva tarkvarasüsteemide suure keerukuse tõttu pole enamasti ka testimise abil võimalik leida absoluutselt kõiki vigu, kuid on võimalik leida suur osa olulistest vigadest.
    Vigade leidmise aeg on samuti oluline. On leitud, et mida varasemas tarkvara elutsükli faasis viga leitakse, seda odavam on selle parandamine. Sellest lähtuvalt võivad vead, mis on leitud arenduse varases faasis, olla kümneid kuni sadu kordi odavamad paranda, kui sama vea parandamine arenduse lõpus või pärast kasutusseandmist.
    Eelnevast lähtuvalt on testimise eesmärgiks peale nõuetelevastavuse kontrollimise leida olulised vead võimalikult kiiresti.
  • Testimise koht arendusprotsessis


    Oluline on märgata, et ükskõik, millisel arendusmetoodikal arendusprotsess põhineb (kosemudel, RUP, agiilmetoodikad), paikneb testimine oma sisendite ja väljundite mõttes nõuete formuleerimise, analüüsi, disaini ning realiseerimise vahel (vt joonis 1). Testimise sisendiks on ühelt poolt süsteemile esitatavad nõudmised ning teiselt poolt testitav objekt. Testimise põhiliseks väljundiks on eelkõige leitud vigade kirjeldused, millele toetudes süsteemi ja vajadusel ka nõudmisi parandatakse, kuid olulised on ka testide kirjeldused, testiplaanid- ja aruanded .
    Joonis 1 Tarkvara testimise asukoht teiste arendustegevuste suhtes
    Arendusmetoodika spetsiifilisuse tõttu võivad protsessi etapid toimuda korduvalt (iteratsioonidena) ning olla erineva pikkusega või olla jaotatud alametappideks.
    Seega tuleb testimisega arvestada projekti algusest saadik ning see projekti sisse planeerida, arvestades teisi tarkvaraarendustegevusi.
  • Testimise liigid


    Vastavalt testimise spetsiifilisele eesmärgile on võimalik eristada väga palju erinevaid testimise klassifikatsioone. Liigitused võivad olla omavahel kattuvad vastavalt sellele, millest testimismeetodi puhul lähtutakse.
    Näiteks võib klassifikatsioone välja tuua selle põhjal,
  • Kes testib?
  • Mida testitakse ?
  • Kuidas testitakse?
    Kõiki testimise liike ei pruugi süsteemi testimisel olla võimalik ega ka vajalik läbi viia (kuna testimisvajadused olenevad süsteemile püstitatud nõuetest), samuti pole järgnevalt kirjeldatud kõiki võimalikke testimise liike.
    Testimise erinevaid liike kirjeldatakse ka raamatutes Lessons Learned in Software Testing [KA+], Effective Methods for Software Testing [PE] ning Testing Standards Working Party materjalides [TS].
  • Liigitus tarkvara testitavate omaduste järgi


    Tarkvaral on palju erinevaid omadusi, millele võib defineerida nõuded. Võimalike omaduste hulgas orienteerumise lihtsustamiseks on koostatud kvaliteediatribuutide süsteeme. Üks neist on ISO/IEC 9216 poolt kirjeldatav kvaliteediatribuutide süsteem, mis jagab tarkvara omadused kvaliteedinäitajateks ning nende allnäitajaiks. Standard on vastu võetud ka Eesti standardiks EVS-ISO/IEC 9126-1: 2003. Standardis kirjeldatud kvaliteedinäitajad ja allnäitajad (sulgudes) on järgmised [9126]:
    Funktsionaalsus ( sobivus kasutaja vajaduste rahuldamiseks, toimimise õigsus, koostalitlusvõime teiste süsteemidega, turvalisus, funktsionaalsuse vastavus normidele)
    Töökindlus (küpsus ehk tõrgete esinemise sagedus, tõrketaluvus väliskeskkonna vigade suhtes, taastuvus, töökindluse vastuavus normidele)
    Kasutuskõlblikkus (Õpitavus, arusaadavus, käsitsetavus, meeldivus, kasutuskõlblikkuse vastavus normidele)
    Tõhusus (ajaline käitumine, ressursikasutus, tõhususe vastavus normidele)
    Hooldatavus (analüüsitavus vea leidmiseks, muudetavus, stabiilsus muudatuste suhtes, testitavus, hooldatavuse vastavus normidele )
    Porditavus (sobitatavus teisele riist - või tarkvaraplatvormile, installeeritavus, koosoluvõime, vahetatavus, porditavuse vastavus normidele)
    Kõigile standardis defineeritud kvaliteedinäitajatele vastavust on võimalik testida, kui süsteemil on püstitatud nõudmised nende omaduste suhtes.
    Nimetatud kvaliteedinäitajatest ja nende kombinatsioonidest tulenevad ka järgmised tuntumad testimise liigid:
    Funktsionaalne testimine ehk vastavustestimine ( functional , conformance testing) – eesmärgiks on kontrollida süsteemi vastavust funktsionaalsetele nõuetele: kas vajalikke tegevusi on võimalik korrektselt läbi viia
    Jõudlustestimine ( Performance testing) – annab vastuse küsimusele, milline on süsteemi toimimise kiirus tavaolukorras ning millised on kitsaskohad, mida oleks võimalik parandada
    Koormustestimine ( Load testing) – annab vastuse küsimusele, kuidas toimib süsteem maksimaalse talutava koormuse korral
    Stresstestimine (Stress testing) – annab vastuse küsimusele, millise koormuse juures lakkab süsteem korrektselt toimimast. Stresstestimine on seotud ka taastuvuse testimisega. Taastuvuse testimine (recoverability testing) – annab vastuse küsimusele, kas süsteem taastub pärast ülekoormuse kõrvaldamist aktsepteeritavalt
    Kasutatavuse testimine (Usability testing) – Testitakse, kas süsteem vastab temale esitatud nõuetele arusaadavuse, õpitavuse, kasutusmugavuse ning meeldivuse osas [AB+]
    Robustness testimine – kontrollida, kas süsteemi on võimalik ebakorrektsete (ootamatute) sisendite või keskkonnatingimuste loomise abil halvata või teha midagi, mis ei tohiks olla lubatud. Kontrollida, kui suur on süsteemi võime taluda ootamatuid olukordi .
    Skaleeruvuse testimine (Scalability testing) – annab vastuse küsimusele: Kuidas on võimalik süsteemi kõige optimaalsemalt laiendada ( riistvara konfiguratsiooni muutes)?
    Turvalisuse testmine ( Security testing) – kontrollida süsteemi vastavust turvalisuse nõuetele: süsteemi kasutamine peab olema võimalik ainult volitatud isikutele kindlaksmääratud osas.
    Kontrollida, kas on säilitatud konfidentsiaalsus, kokkukuuluvus ning kättesaadavus, kus kättesaadavus tähendab, et volitatud isikutel on infole juurdepääs, kokkukuuluvus tähendab, et info õigsus ja täielikkus on tagatud ning konfidentsiaalsus tähendab, et juurdepääs on tagatud vaid selleks volitatud isikutele.
    Installeeritavuse testimine (installability testing) – annab vastuse küsimusele, kas süsteemi installeerimine toimub vastavalt püstitatud nõudmistele (näiteks kas installeerimine toimub ilma probleemideta kõigil soovitud platvorimidel)
  • Liigitus süsteemi detailsuse järgi


    Süsteemitestimine – testitakse kogu süsteemi vastavust talle esitatud nõuetele. Musta kasti testimise alaliik . Süsteemitestimise liigid on ka vastuvõtutestimine, alfa- ja beetatestimine, kuna nende käigus testitakse kogu süsteemi.
    Integratsioonitestimine – testitakse erinevate komponentide liidestamist/koostööd. Kogu süsteemi valmisolek ei ole vajalik, sest on võimalik kasutada testidraivereid, mis simuleerivad puuduvate süsteemi osade käitumist (top-down ja bottom-up või sandwich meetodid). Suuremate süsteemide korral ongi otstarbekam liidestada süsteemid järk-järgult.
    Moodultestimine – eraldiseisva tarkvaramooduli toimimise testimiseks. Mooduli iga meetodi jaoks koostatakse test, mis on eraldiseisev mooduli teistest testidest. Moodultestimine peaks olema tarkvaraarendajate vastutusel.
  • Liigitus testide läbiviija järgi


    Alfatestimine – testimeeskonna poolt läbi viidav testimine arendaja keskkonnas arenduse lõpul
    Beetatestimine – testimine lõppkasutaja poolt väljaspool arendaja keskkonda (lõppkasutaja keskkonnas) arenduse lõpul
    Vastuvõtutestimine – testitakse süsteemi vastavust kasutaja nõudmistele (lepingu nõudmistele). Enamasti kontrollitakse vastuvõtutestimisel kasutaja tüüpilisi tegevusi. Vastuvõtutestimist võib tellija viia läbi iseseisvalt või koostöös arendajaga.
    Kasutaja-testimine – testimine lõppkasutaja poolt arenduse käigus kas arendaja või lõppkasutaja keskkonnas, kusjuures kasutaja tegevusi juhendatakse ja jälgitakse.
    In-House testimine – arendaja kasutab oma tarkvara mõnda aega enne müügile laskmist oma vajaduste rahuldamiseks, et olla kindel selle piisavas usaldusväärsuses.
  • Liigitus testimise meetodi ja lähenemise järgi


    Staatiline vs dünaamiline testimine
    Staatilise testimise käigus testitavat objekti ei käivitata vaid analüüsitakse seda. Staatilist testimist on võimalik läbi viia nii programmikoodile (koodi läbivaatused, küsimustikud) kui ka kõigile teistele tarkvaraarenduse artefaktidele.
    Dünaamilise testimise käigus käitatakse testitav objekt (programm) ning uuritakse selle käitumist.
    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.
    Suitsutestiminepealiskaudne testimine eesmärgiga teha kindlaks, kas pole põhjalikumat testimist takistavaid probleeme (näiteks programm ei käivitu või kõiki põhifunktsioone pole võimalik testida). Automatiseeritud suitsutestid võiksid olla esimene samm testimise automatiseerimise suunal.
    Uuriv testimine (Exploratory testing) – testimine, mille käigus järgmised testilood tulenevad eelmise tulemustest ning testija testimise ajal tekkivatest ideedest. Testilugusid pole kohustuslik dokumenteerida, kuid seda võib teha. Uuriva testimise alusena võib kasutada dokumenteeritud testilugusid, mida testija laiendab vastavalt oma mõtetele. Tegelikkuses praktiseerivad kõik testijad mingil määral uurivat testimist, kuna tavaliselt viiakse läbi rohkem testilugusid kui on dokumenteeritud. Seda põhjusel, et kõiki testilugusid ei saa paratamatult dokumenteerida.
    Uuriva testimise rajajaks on James Bach . Täiendavaid materjale leiab [TE] .
    Guerilla-testimine – uuriva testimise alaliik, mis seisneb püüdes lühikese aja jooksul leida programmi töös vigu kõige võimsamate meetoditega. Kasutatakse juhul, kui on kiiresti vaja anda hinnang programmi toimimisele. Võib eeldada, et kui kõige võimsamad rünnakud ei paljasta ühtegi viga, siis ei leidu selles kriitilisi vigu.
    Paaristestimine – paarisprogrammeerimisele sarnanev tegevus testimisel: kaks testijat kasutavad sama arvutit ning on kordamööda testimist läbiviiva ning jälgiva ja vajadusel juhendava poole rollis.
    Ad-hoc testimine – programmi mittesüstemaatiline testimine (juhuslike, mittedokumenteeritud testilugudega). Ad-hoc testimist ei ole soovitav pikka aega kasutada, kuna sellise testimise puhul pole võimalik hinnata testikatet (millised testid on tehtud), kuna mingit dokumentatsiooni läbiviidud testide kohta ei säili. Samuti ei pruugi süsteemi testikate olla piisav, kuna teste ei koostata süstemaatiliselt. Kolmandaks iseloomulikuks omaduseks on see, et kuna teste ei viida läbi süstemaatiliselt ja testidokumentatsiooni alusel, siis sõltub testimise efektiivsus oluliselt testija kompetentsusest.
  • Liigitus testimiseks kasutatavate andmete valiku meetodi järgi


    Sisendi/väljundi ekvivalentsiklassid ja piirjuhud – Ekvivalentsiklasside ja piirjuhtude analüüs (equivalence partitioning) on kõige laialdasemalt kasutatav meetod musta kasti testilugude koostamiseks . Programmi sisendi ja väljundi põhjal leitakse ekvivalentsiklassid ehk andmete piirkonnad, mille siseselt programm töötleb andmeid ühte moodi. Kui ekvivalentsiklassi üks väärtus leiab vea, siis leiab vea ka suvaline teine väärtus ekvivalentsiklassist, eeldusel , et klassid on õigesti määratletud. Analoogne on olukord, kui väärtus ei leia viga. See omadus võimaldab testida programmi toimimist valides 1-2 väärtust igast ekvivalentsiklassidest. Ekvivalentsiklasside piiridele jäävaid väärtusi nimetatakse piirjuhtudeks ning neid tuleb reeglina testida eraldi.
    Näiteks programmil, mis sisestatud täisarvu kohta väljastab, kas sisestatud arv on 0 või ei, on sisendi ekvivalentsiklassideks positiivsed arvud, negatiivsed arvud ning piirjuhuks 0. Vastavalt sellele teadmisele tuleks koostada testid, kus sisestatav arv omaks väärtust igast klassist ning ka klasside piiril . Ekvivalentsiklassid on võimalik 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 printf("mitte-");
    printf("positiivse täisarvu.\n");
    return;
    Kasutades sisendina väärtust 0, jääb käivitamata lause printf("mitte-");.
    Juhuslike andmetega testimine – testimisel kasutatakse sisendandmetena juhuslikke andmeid. Juhuslikult valitud sisendandmed ei taga enamasti piisavat testikatet, kuid juhuslikke andmeid on lihtne automaatselt genereerida.
    Statistiliste andmetega testimine – testimisel kasutatakse andmeid, mida lõppkasutajad kõige tõenäolisemalt kasutavad ( profiilid ). Enamasti testitakse sel juhul vaid funktsionaalsuse edustsenaariumeid.
  • Liigitus testitava objekti spetsiifika järgi


    Hajus(süsteemide)testimine (distributed testing) – testida tuleb eraldiseisvatest üksteisest sõltuvatest alamsüsteemidest koosnevat süsteemi.
    Pihuseadmete (connection-limited device) testimine (mobiiltelefonid, pihuarvutid) –testimist vajavad ka suhteliselt piiratud mälumahust ning võrguressursside (mitte)kättesaadavusest tingitud alternatiivid
    Reaalajasüsteemide testimine – testimisel on oluline silmas pidades toimimise ajalisi piire – valel ajal muus osas korrektselt toimuv tegevus on viga
    Protokollide testimine – spetsiifilised meetodid ning vahendid [PT]
    Kasutajaliideste testimine – graafiliste kasutajaliideste koostamise headele tavadele vastavuse kontrollimiseks võib kasutada erinevaid küsimustikke ja/või kasutajaliideste koostamise juhiseid. Viimased võivad olla projektisisesed (stiiliraamatud), aga näiteks ka operatsioonisüsteemist tulenevad (MAC OSi kasutajaliideste koostamise juhised: [MAC], GNOME kasutajaliideste koostamise juhised: [GN]).
    Veebirakenduste ja veebiteenuste testimine – olulised on nii turvalisuse [AN+], [OWASP] kui ka kasutatavuse testimise aspektid
  • Testimise parimad praktikad – protsess


    Järgnevalt kirjeldatakse testimise protsessi, mis on kokku pandud lähtuvalt ASA Quality Services töös kasutust leidnud parimatest praktikatest. Testimise protsessi kirjapanemiseks kasutatakse RUPi protsesside modelleerimise metamudelit. See näeb ette protsessi üldise töövoo, rollid, kes viivad läbi mingeid tegevusi, ning artefaktid, mida kasutatakse, luuakse ja muudetakse tegevuste käigus.
    Meie protsessi põhiideedeks on lühidalt:
    • Testimise alustamine arenduse varajases faasis, millega kaasneb nõudmiste täpsustamine
    • Pidev koostöö tellijaga nõudmiste osas
    • Pidev testimine (regressioonitestimine) ning testilugude täiendamine vastavalt nõudmiste ja süsteemi arengule.

  • Töövoog


    Kirjeldatav protsess püüab järgida üldtuntud fakti, et mida varasemas tarkvaraarenduse faasis leitakse viga, seda odavam on selle parandamine. Sellest tulenevalt on kõige odavamad need vead, mis avastatakse tarkvaraarenduse erinevates faasides ning kõige kallimad need, mis avastatakse pärast tarkvara kasutusseandmist.
    Kogemused näitavad, et parim lahendus on testimise arendusse sisseplaneerimine hiljemalt analüüsi faasist alates, hilisem sekkumine ei ole nii efektiivne. Protsessi töövoo esimeseks tegevuseks on planeerida arenduse jooksul läbiviidavad tarkvara kvaliteedi tagamise tegevused.
    Vastavalt süsteemi spetsiifikale määratakse testimise planeerimisel ära
  • testimisvajadused (mida ja kuidas testida)
  • kes testib ( ressursid )
  • millal testib (kooskõlas üldise projektiplaaniga)
    Sellest järgnevalt hakatakse ette valmistama planeeritud testimise tegevusi (vastavalt testiplaanile). Vigade parandamiseks kuluva ressursi optimeerimiseks on soovitav alustada tarkvara testimise tegevustega juba tarkvaraarenduse algfaasis .
    Kõige esimeseks tegevuseks on testilugude koostamine. See sisaldab muuhulgas ka analüüsi/nõuete sisulist ning põhjalikku läbitöötamist ning seega võimaldab avastada analüüs puudusi ning vasturääkivusi enne realiseerimist.
    Testimist tuleks loodud testilugude põhjal alustada nii vara kui võimalik, kui on juba midagi testida. Üldise testimise käigu määrab ära varem loodud testiplaan (kes millal mida testivad). Oluline on ka, et testimist viidaks läbi kogu arenduse jooksul (regressioonitestimine), sest muudatused toovad tihti kaasa uusi vigu.
    Testimise käigus leitud vead dokumenteeritakse ning esitatakse parandamiseks. Võimalik on ka nõudmiste muutumine ning uute nõudmiste ilmnemine. Vastavalt sellele tuleb kaasajastada ka testilugusid.
    Järgnevas esitame täpsemalt protsessi rollide kirjeldused ja nende vastutused tegevuste läbiviimisel ning artefaktide loomisel. Tuleb tähele panna, et üks isik võib projektis olla mitmes rollis (näiteks võib sama isik olla testikonsultandi ja testija rollis), kuid vastutuste selguse eesmärgil on rollid kirjeldatud eraldi.
  • Kohaldamine


    Kirjeldatud protsess on vaikimisi mõeldud kasutamiseks tellija ja täitja koostöös.
    Antud protsessi võib kohaldada ka ainult täitja organisatsiooni siseseks kasutamiseks.
    Sel juhul võtab täitja testijuht enda kanda protsessis kirjeldatud testikonsultandi ülesanded.
    Protsessis kirjeldatud testija võib töötada nii täitja organisatsioonis kui tellija poolel, tegevused jäävad mõlemal juhul samaks.
  • Rollid


    Testikonsultant (tellija esindaja)
    Sisuliselt võib testikonsultanti vaadelda kui tellija-poole kvaliteedialast nõuandjat või järelvaatajat, kes hoolitseb tellitava tulemi nõuetelevastavuse eest.
    Tellija poole testikonsultandi põhiliseks ülesandeks on:
    • Aitab täpsustada nõudeid loodavale süsteemile
    • Jälgib, et täitja-pool peaks kinni tulemile esitatud nõudmistest
    • Osaleb testiplaani koostamisel ning vajadusel algatab selle muutmise (probleemide ilmnemisel , nõudmiste muutumisel)
    • oluline osa vasutvõtutestimise juures (viib läbi või koordineerib vastuvõtutestimist)
    • Võib juhtida ka testimist kogu arenduse käigus (kui tellijaorganisatsioonil on oma testimismeeskond)

    Olulised oskused:
    • Teadmised tellijaorganisatsiooni äriprotsessidest
    • Teadmised tarkvaraarendusmetoodikatest ning tarkvara elutsüklist
    • Teadmised ja kogemused erinevate testimismetoodikate ning testimisvahendite rakendamisel

    Testijuht (täitja esindaja)
    Täitja poole testijuhi ülesanneteks on oma organisatsioonisisese testimisprotsessi toimimise tagamine, kuid antud dokumendi kontekstis on ta ka olulisel kohal projekti kvaliteedialase infovahetuse tagajana. Sellest aspektist on täitja poole testijuht vastutav järgnevate tegevuste eest:
  • Osaleb testiplaani koostamisel täitja-poole esindajana
  • Annab õigeaegselt tagasisidet kõigist probleemidest, mis arenduse käigus võivad tekkida ning võivad nõuda testimisplaanide muutmist
  • Jälgib, et täitja viiks läbi planeeritud kvaliteedi tagamise tegevused
    Testija (erinevad liigid)
    Testija praeguses kontekstis võib töötada nii tellija- kui täitjaorganisatsioonis. Tema vastutusteks on:
  • Testimise läbiviimine vastavalt testimisplaanile
  • Õigeaegne probleemidest teavitamine (testijuhile või testikonsultandile, vastavalt sellele, kas on tegemist täitja- või tellijapoolse testijaga). Probleemideks on peamiselt nõuete muudatused ning testimisel leitud kriitilised vead, mis võivad ohtu seada projekti töögraafiku täitmise.
    Olulised oskused:
    • Oskus konkreetse testimismetoodika rakendamisel või testimistööriista kasutamisel olenevalt testimise liigist
    • Väga hea kirjalik ja suuline eneseväljendusoskus
    • Kasuks tuleb rakendusvaldkonna tundmine, kogemused kasutatavate tehnoloogiate realiseerimisel

    Testija peaks endale teadvustama, et tema töö on vajalik suurele osale projekti rollidest:
    • Testijuht ja testikonsultant – anda operatiivset tagasisidet süsteemi ja testimise hetkeseisu kohta, informeerida võimalikes probleemidest
    • Programmeerija – anda operatiivset tagasisidet leitud vigade kohta
    • Tellija/lõppkasutaja – jälgida loodava süsteemi vastavust nõudmistele ning nõudmiste vastavust tellija vajadustele

    Testiadministraator
    Testiadministraatori põhivastutuseks käesoleva protsessi kontekstis on testikeskkonna seadistamine, hooldamine ning tööshoidmine.
    Vastavalt sellele on olulisteks oskusteks teadmised arvutisüsteemide administreerimisest kui ka teadmised projekti nõutava testikeskkonna kohta.
    Testiadministraatori ülesandeid võib täita tellija või täitja poole süsteemiadministraator või muu töötaja, kes omab vastavaid oskusi.
  • Artefaktid


    Testimise protsessi käigus loodavad ja kasutatavad artefaktid jagunevad laias laastus kaheks:testispetsiifilised ja üldised artefaktid. Testispetsiifilised artefaktid tekivad testimise protsessi tegevuste tulemusel ning nende sisu ja loomise põhimõtteid kirjeldatakse käesolevas dokumendis ka pikemalt . Detailsemat lisainfot on võimalik vaadata standardist IEEE std 829 – Standard for Software Test Documentation [829] ning näiteid artefaktide struktuuri ja sisu kohta leiab ka RUPi dokumentatasioonist [RUP].
    Üldised artefaktid on testiprotsessile põhilisteks sisenditeks ning neid kirjeldatakse vaid ülevaatlikult. Täpsemat infot struktuuri ja sisu kohta leiab RUPi dokumentatsioonist [RUP].
  • Üldised artefaktid


    Visioon defineerib huvitatud osapoolte arusaama ja põhinõudmised (ning nende aluseks olevad vajadused) arendatavale objektile. Visioon on aluseks edasisele detailsemale analüüsile, kuid annab üldülevaate arendatava objekti eesmärkidest.
    Süsteemi funktsionaalsed ja mittefunktsionaalsed nõudmised – kõik süsteemile (või süsteemi osale) esitatavad nõudmised, mille hulka tavaliselt kuuluvad kasutuslugude mudel, kasutuslood ning lisaspetsifikatsioonid ( kirjeldavad nõudmisi, mida pole võimalik kasutuslugude abil kirjeldada)
    Süsteemi kasutuslugu – defineerib kasutaja võimalikud tegevused süsteemiga ning süsteemi vastused. Kasutuslood koondatakse kasutuslugude mudelisse, mis väljendab kasutuslugude omavahelisi ning kasutuslugude ja tegutsejate suhteid.
    Projektiplaan – kajastab kogu arendusprojekti läbiviimise korra, tegevused ja vastutused. Võib kaasata ka teisi dokumente (näiteks iteratsiooniplaane) vastavalt projekti iseloomule .
    Kõikvõimalikud asjassepuutuvad lisadokumendid – sõnastikud, kasutajaliidese prototüübid jm.
  • Testispetsiifilised artefaktid


    Testiplaan
    Testiplaan defineerib testimise skoobi, testimise eesmärgid selles, meetodid, loodavad tulemid ning nende loomiseks kasutatavad sisenddokumendid. Samuti planeeritakse testimistegevuste ajagraafik ning määratakse vastutused. Testimistegevused peavad olema kooskõlas projekti üldplaaniga.
    Testiplaani eesmärgiks on välja tuua ja huvitatud osapooltele kättesaadavaks teha testimise korraldus. Testiplaan juhendab, suunab ja piirab testimise ressursside kasutamist, et saavutada testiplaaniga määratud eesmärgid.
    Testiplaanil võib olla ka alamplaane. Peamine testiplaan kirjeldab sel juhul, milliseid alamplaane luuakse ning tähtaegu nende koostamiseks. Näiteks jõudlustestimise plaan võib olla eraldi dokument, mis koostatakse vastavasse etappi jõudes.
    Testiplaan on tegevuse Testimise planeerimine väljund.
    Testiplaan on sisendiks tegevustele: Testilugude koostamine ja täpsustamine ning nõuete täpsustamine, Testimine, Testikeskkonna seadistamine, Vastuvõtutestide määramine ning vastuvõtutestimine
    Testiplaani koostamise eest vastutab: Testijuht (täitja)
    Testilugu
    Testiloo eesmärgiks on detailselt kirjeldada, kuidas toimub mingi süsteemi omaduse toimimise kontrollimine, millised tegevused peab testija läbi viima ning kuidas otsutada, kas süsteem toimib korrektselt. Testilood koostatakse seega süsteemi nõudmiste põhjal (funktsionaalsed ja mittefunktsionaalsed nõudmised, kasutusjuhud).
    Testiloo soovitavas struktuuris on järgnev info:
    • unikaalne ID – testiloo identifitseerimiseks
    • Lühikirjeldus – testitav omadus lühidalt, et testija saaks kiiresti ettekujutuse, millise omaduse testimist kirjeldatakse
    • Eeltingimused
    • Tegevused samm- sammult (test sisendid)
    • Tegevustele vastavad oodatavad tulemused (testi väljundid)
    • Erinõudmised keskkonnale

    Testilugu on tegevuse Testilugude koostamine ja täiendamine, nõuete täpsustamine väljund.
    Testilugu on sisendiks tegevustele: Testilugude koostamine ja täiendamine, nõuete täpsustamine , Testimine, Vastuvõtutestide määramine ning vastuvõtutestimine
    Testiloo koostamise eest vastutab: Testija
    Vea aruanne
    Vea aruande eermärgiks on vea ja tekkimise kirjeldamine, seega on vea aruanne ajalik vea põhjuste selgitamiseks ning seega ka vea parandamiseks.
    Vea aruande eesmärgist tuleneb ka selle soovituslik struktuur:
    • Unikaalne ID (näiteks vehaldussüsteemi poolt omistatav)
    • Viide testiloole, mille läbiviimisel viga tekkis (võib ka mitte eksisteerida, kui tegemist on uuriva testimisega)
    • Vea lühikokkuvõte (max 80 märki ehk üks rida)
    • Probleemi detailne kirjeldus
    • Samm-sammult tegevused ning detailsed tegelikud tulemused, koos sisend- ja väljundandmetega
    • Kirjeldus selle kohta, mis peaks juhtuma, kuid ei juhtunud
    • Vea korratavuse hinnang

    Veaaruannete koostamise puhul tuleks jälgida järgnevaid soovitusi :
  • ka vead, mida ei õnnestu korrata või mis näiliselt ilmnevad juhuslikult, tuleks dokumenteerida koos kordamise katsetustega (mida on tehtud, et proovida viga esile kutsuda)
  • Veaaruande lühikokkuvõte peaks olema lühike kuid ülevaatlik (max 80 märki ehk üks rida)
  • Veaaruanne peab olema lihtsas keeles, hästi arusaadav (ka väsinud, tülpinud, kiirustavale inimesele)
  • Veaaruande toon peab olema neutraalne, asjalik
    Tööriistad
    Vigade aruannete halduseks on soovitav kasutada veahaldussüsteemi (näiteks Itracker [IT], Trac [TR], Bugzilla [BZ]). See lihtsustab infovahetust kõigi huvitatud osapoolte vahel:
    • programmeerijad ja testijad saavad vahetada vigu ja nende parandamist puudutavat infot
    • testijuhid ja/või konsultandid ja ka teised huvitatud osapooled saavad vajadusel infot leitud vigade hulga, tõsiduse kohta.

    Vea aruanne on tegevuse Testimine väljund.
    Vea aruanne on sisendiks tegevustele: Testimine
    Vea aruande koostamise eest vastutab: Testija
    Testiaruanne
    Testiaruande eesmärgiks on anda ülevaade testimise ja testitava objekti hetkeseisust. Testiaruandeid koostatakse perioodiliselt vastavalt projektiplaanile ja vajadusele. Seetõttu peaks testiaruanne sisaldama järgmist infot:
    • Kokkuvõte läbi viidud testimise tegevustest
    • Kõrvalekaldumised testiplaanist
    • Kokkuvõte testimise tulemustest
    • Hinnang testimise põhjalikkusele
    • Hinnang testitavale objektile

    Testiaruanne on tegevuse Testimine väljund.
    Testiaruanne on sisendiks tegevustele: Testimine
    Testiaruande koostamise eest vastutab: Testija
    Testilogi
    Testilogi eesmärgiks on pakkuda kronoloogiliselt järjestatud infot testide läbiviimise kohta. Testilogid on abiks vigade põhjuslike seoste otsimisel ning analüüsimisel või testitulemustest järelduste tegemisel (näiteks jõudlustestide puhul), seega on otstarbekas kirjeldada võimalikult palju konkreetsel juhul huvitavat infot.
    Testilogid tekivad erinevate testide käigus, seega pole võimalik kirjeldada ühtset struktuuri .
    Näiteks funktsionaalse käsitsitestimise logiks on testimise kuupäeva ja tegeliku tulemusega varustatud testilood. Vajadusel võib lisada ka küsimusi, millele hiljem vastuseid otsida.
    Testilogiks on ka automaatsete testide (näiteks funktsionaalsete või jõudlustestide) käivitamisel genereeritavad logifailid, mida on hiljem võimalik analüüsida.
    Tihti kasutatakse testilogisid analüüsi eesmärgil ning pärast järelduste tegemist muutuvad testilogid mittevajalikuks või vähemasti mitte aktiivselt kasutatavaks.
    Testilogi on tegevuse Testimine väljund.
    Testilogi on sisendiks tegevustele: Testimine
    Testilogi koostamise eest vastutab: Testija
    Testikeskkond
    Testikeskkonna all mõeldakse vajalikku riist- ja tarkvara ( arvutid , operatsioonisüsteemid, testimisvahendid), mis on vajalikud planeeritud testimise läbiviimiseks.
    Testikeskkond on tegevuse Testikeskkonna seadistamine väljund.
    Testikeskkond on sisendiks tegevustele: Testimine
    Testiplaani koostamise eest vastutab: Testiadministraator
  • Tegevused

  • Testimise planeerimine


    Testimise planeerimise tegevuse eesmärgiks on:
    • Testimisele eraldatavate ressursside efektiivseima jaotuse leidmine
    • Testimise eesmärkide, tegevuste ja meetodite paikapanemine

    Sisendid: Projekti üldplaan, visioon, nõuded, kasutusjuhud (kui on),
    Väljundid: Testiplaan
    Testimise tegevused peavad olema kooskõlas projekti üldise plaaniga ning täitjaorganisatsiooni töökorraldusega. Näiteks kui tarkvaraarendus toimub iteratsioonidena, siis koostatakse esmane projektiplaan arenduse alguses ning täiendatakse seda vastavalt iga iteratsiooni plaanile.
    Spetsiifiliste testimise alamtegevuste jaoks on võimalik koostada ka alamplaane (näiteks testimise automatiseerimise plaan, jõudlustestimise plaan, skaleeruvuse testimise plaan). Peamises testiplaanis kirjeldatakse sel juhul alamplaanide eesmärgid ning loomise tähtajad.
    Esimeseks tegevuseks testimise planeerimisel on projekti olemasoleva dokumentatsiooniga tutvumine – millise (milliste omadustega) süsteemiga on tegemist. Testiplaan peab olema kooskõlas arenduse üldplaani ja eesmärkidega, seega tuleb sobiva plaani koostamisel infot vahetada ja kokkuleppeid saavutada nii arendajate esindajaga kui vajadusel ka teiste huvitatud osapooltega.
    Seejärel tuleb saadud informatsiooni põhjal vastata küsimustele, millele peab vastuse andma testiplaan.
    • Milline on testimise projekti skoop ?
    • Milliseid meetodeid ja vahended kasutatakse testimisel?
    • Milliseid tegevusi viiakse läbi testimise käigus ning mis on nende tegevuste tulemiteks?
    • Milliseid ressursse testimisel kasutatakse ning milline on testimise ajagraafik, kes viivad läbi testimise tegevusi?
    • Milliseid omadusi ja objekte testitakse ja ei testita?
    • Millised on testimise projektiga seotud riskid ning kuidas toimida nende realiseerumisel?

    Kui projekti näeb ette testimise automatiseerimist, on soovitav testiplaani koostamisel sellele eraldi tähelepanu pöörata, kuna automatiseerimise tegevused peavad edu tagamiseks olema põhjalikult läbi mõeldud. Tuleks mõelda:
    • milliste süsteemi osade testimist on otstarbekas automatiseerida?
    • milline testimisvahend on antud projekti iseloomu arvestades kõige otstarbekam?
    • kas testiandmete genereerimist oleks vajalik automatiseerida?
    • milliseid meetodeid ja vahendeid on otstarbeksas testiandmete automatiseerimiseks kasutada?

    Testiplaani täpsemat struktuuri kirjeldab artefakt: Testiplaan
  • Testilugude koostamine ja täiendamine, nõuete täpsustamine


    Sisendid: Süsteemi nõudmised, spetsifikatsioonid, kasutuslood, testiplaan, küsimustikud (valikuline)
    Väljundid: Testilood, ettepanekud sisenddokumentide täpsustamiseks
    Testilugude koostamine
    Testilugude koostamisel võib esimese sammuna identifitseerida testiideed, mis kirjeldavad lühidalt, mida peaks süsteemi juures testima. Seejärel pannakse samm-sammult kirja juhis, kuidas süsteemi vastavalt sellele testida. Nii testiideede kui testilugude koostamine toimub nõudmiste ja/või kasutuslugude põhjal.
    Testilugude koostamisel tuleks jälgida ka seda, et testilood oleksid loogiliselt struktureeritud (modulaarsed), mis tagab nende hallatavuse. Samuti ei ole mõistlik koostada liiga detailseid testilugusid, kuna see toob nõudmiste muutumisel kaasa ulatuslikud muudatused.
    Testilugude täiendamine
    Testilugusid tuleb vastavalt nõuete muutumisele ning täpsustamisele pidevalt täiendada ning parandada kuni projekti lõpuni. Vastasel juhul kaotavad testilood kiiresti oma relevantsuse ning ei ole regressioonitestimisel kasutatavad ning sellega kaasneb testimise muutumine Ad-Hoc testimiseks, seega pole võimalik enam adekvaatselt hinnata, mida ja kui palju on testitud.
    Kõiki testilugsid ei ole võimalik alguses ette näha ning kirjeldada. Uuriv testimine on heaks allikaks testilugude täiendamisel. Testimise käigus on soovitav teha läbi ka testilugudega kirjeldamata tegevusi vastavalt tekkivatele ideedele (uuriv testimine). Selle käigus aga võib ilmneda uusi ning häid testilugusid, mis tuleks dokumenteerida. Tulemuseks on paremat testikatet pakkuvad testilood.
    Nõuete täpsustamine
    Testilugude koostamise aluseks on spetsifikatsiooni süstemaatiline läbitöötamine, mis võimaldab leida puudusi spetsifikatsioonis. Spetsifikatsiooni puudutavate küsimuste tekkimisel tuleb need edastada ja läbi arutada spetsifikatsiooni koostaja või tema esindajaga. Selle tulemusena võib toimuda muudatusi alusdokumentides ning need peavad kajastuma ka testilugudes.
    Abistava materjalina võib spetsifikatsiooniga tutvumisel kasutada mitmetimõistetavuste küsimustikku, mis juhib tähelepanu üldlevinumatele vigadele ning ebatäpsuste suhtes kriitilistele kohtadele.
  • Testikeskkonna seadistamine


    Sisendid: Testiplaan, sihtkesskonda kirjeldavad nõudmised (kui on)
    Väljundid: Testikeskkond
    Testimisele eelneb testikeskkonna ettevalmistamine. Nõudmised testikeskkonnale on püsititatud testiplaanis vastavalt testitavatele omadustele. Nõudmiste ning plaanide muutumisel tuleb ka testikeskkonda vastavalt muuta. Testikeskkonna töökorras hoidmine on samuti pidev protsess, et keskkond ei saaks tööd pidurdavaks asjaoluks.
    Testikeskkonna puhul on oluline, et oleks loodud võimalikult sarnased tingimused programmi testimiseks sihtkeskkonnaga, kuna vastasel juhul on väga tõenäoline, et tekib probleeme projekti lõpufaasis, kui arendatavat süsteemi siiratakse sihtkeskkonda. Testikeskkonna sarnasus lõppkeskkonnaga aitab avastada need kriitilised probleemid projekti varajases etapis . Kui testikeskkonda pole võimalik luua sarnasena sihtkeskkonnale (näiteks sihtkeskkonna keerukuse või kalliduse tõttu), siis oleks vajalik leida võimalus testida süsteemi arendatavaid versioone sihtkeskkonnas, et varakult leida võimalikud probleemid, mis võivad nõuda ulatuslikke muudatusi.
    Testikeskkonna loomine ning nõudmised sellele olenevad oluliselt projekti eripärast, seega ei saa anda konkreetseid soovitusi.
  • Testimine


    Sisendid: Testiplaan, testilood, testitav süsteem, testiaruanded, vigade aruanded, testilogid
    Väljundid: Testilogid, testiaruanded, vigade aruanded, täiendatud testilood
    Testimine kujutab endast kirjeldatud testilugude läbiviimist vastavalt testiplaanile.
    Testimise liike on erinevaid (vt Testimise liigid) ning vastavalt testieesmärgile on ka testimise tegevused erinevad.
    Testimise tegevuse alla kuuluvad käesolevas protsessis ka funktsionaalse testimise automatiseerimisega seotud tegevused, kui need on testiplaanis ette nähtud. Testiplaaniga on määratud sel juhul ka testimisvahendid. Kui on planeeritud funktsionaalsustestide automatiseerimine , siis tuleb sellega samuti alustada võimalikult nii vara kui võimalik, kuna vastasel juhul tekib harjumus käsitsitestimiseks ning automatiseeritud testimise alustamine on raskendatud.
    Testide automatiseerimine toimub järkjärguliselt ning ka juba koostatud teste tuleb vajadusel muuta ja parandada, kuna projekti käigus toimub täiendusi nõudmistes ja testilugudes. Testimise automatiseerimisel on oluline koostada testid nii, et neid oleks võimalikult lihtne hallata ning nad oleksid võimalikult väikese hooldusega kasutatavad projekti lõpuni. [MA]
    Testimise automatiseerimise puhul võib olla vajalik ka eraldiseisev testide sisendandmete genereerimine. Testiandmete genereerimise vajaduse ning kasutatava meetodi üle tuleb igas olukorras eraldi otsustada, kuna tihti ei pruugi see olla otstarbekas ja erinevaid võimalusi on palju [ED]. Andmete genereerimise automatiseerimiseks tuleb suure tõenäosusega kohaldada olemasolevaid algoritme ja vahendeid käesoleva olukorra jaoks. Seetõttu tuleb kindlasti arvestada, et valitud meetodi rakendamine võtab aega ning seega tuleb selle jaoks ressursid planeerida juba testimise planeerimise etapis.
    Testimisel leitud vead tuleb kirjeldada. Leitud vea kirjeldamine on testimise üks olulisemaid tegevusi, kuna vea kirjelduse põhjal määratakse kindlaks vea põhjus ning otsustatakse, kas ja kuidas viga parandada. Samuti on korralike veaaruannete põhjal hiljem lihtne vigade parandusi kontrollida, kuna vea saamise muster on üksikasjalikult kirjeldatud. Kui viga on kirjeldatud ebatäpselt, on ka testijal hiljem raske adekvaatselt kontrollida, kas viga on parandatud.
    Testimise ja testitava objekti hetkeseisust teavitamise eesmärgil koostatakse ka perioodilisi testiaruandeid.
  • Vastuvõtutestide määratlemine ja vastuvõtutestimine


    Sisendid: Testilood, testiplaan, visioon
    Väljundid: Vastuvõtutestide nimekiri, vastuvõtutestimise aruanne
    Vastuvõtutestideks valitakse mingi hulk kogu süsteemi testilugudest, kuna ei pruugi olla aega kõiki testilugusid läbi viia. Vastuvõtutestideks määratakse tellija äriprotsessi kõige kriitilisemad testid. Vastuvõtutestide määramist võiks alustada juba testiplaani koostamisel, kuid vahetult enne vastuvõtutestimist tuleks vastuvõtutestide relevantsus üle kontrollida ning vajadusel teha täiendusi.
    Vastuvõtutestimine peaks toimuma tellija poolel. Vastavalt projekti suurusele ning kasutatavatele ressurssidele võib vastuvõtutestimise läbi viia testikonsultant või tellijapoolne testija/testimeeskond. Vastuvõtutestimisse võib kaasata ka tellija esindajaid, kui nende ettevalmistus selleks on piisav (näiteks tellija IT osakond ).
    Vastuvõtutestimise tulemuseks on vastuvõtutestimise aruanne, mis vormilt on samasugune kui testiaruanne.
  • Nõuete määratlemine

  • Tarkvaranõuete määratlemine


    Nagu eelnevalt öeldud, on testimine tarkvara nõuetelevastavuse kontrollimine, nõuded aga on tarkvara vundamendiks. Seetõttu on oluline, et nõuded, mis kirjeldavad piisavalt täpselt tarkvara loomist ajendanud probleemi, oleks kirja pandud. Kogemused on näidanud, et tegelikkuses on korrektsete nõuete kirjeldamine komplitseeritud ning veaohtlik tegevus, mis tingib vajaduse nõuetele erilise tähelepanu pööramiseks.
    Üldtuntud on ka fakt, et valestipüstitatud nõuetest tekkinud vead on kõige kallimad parandada (kümneid kuni sadu kordi kallimad kui vead, mis leiti kodeerimise käigus), sest nad tekivad juba tarkvaraarenduse varajases faasis ning pahatihti avastatakse vahetult enne tarkvara kasutusseandmist (vastuvõtutestide käigus).
    Sellest lähtuvalt on oluline, et nõudmised oleks püstitatud võimalikult täpselt ning üheseltmõistetavalt. Nõuete kirjeldamise ning arendamise tehnoloogiat nimetatakse nõudmiste ehitamiseks ( requirements engineering) [HU+]. See on hetkel küllalt reglementeerimata ning Eesti praktikas üsna vähetuntud valdkond.
    Tarkvaranõuded ja spetsifikatsioonid koostatakse enamasti inimkeeles, kuna erinevalt formaalsetest spetsifitseerimiskeeltest on see arusaadav kõigile osapooltele. Inimkeele kasutamisega kaasneb paratamatult mitmetimõistetavus (ambiguity) – olukord, kus kirjeldatud nõudmisel on rohkem kui üks võimalik interpretatsioon. Kuna tarkvaranõuded peavad olema siiski täpsed ja kõigile üheselt mõistetavad, siis on vajalik teada, kus ja millisel moel võib mitmetimõistetavus tekkida ning kuidas seda vältida. Võimalikke ohtusid teades ja silmas pidades saab oluliselt vähendada inimkeele mitmetimõistetavust.
    Nõuete täpsustamisele ning mitmetimõistetavuste avastamisele aitab kaasa testilugude koostamine arenduse algfaasis, kuna testilugude koostamisel töötatakse nõuded süstemaatiliselt läbi. See võimaldab leida paljud vasturääkivused ja puudused enne, kui hakatakse vastavat osa realiseerima ning see omakorda lihtsustab realiseerimist ning vähendab tekkivaid vigu.
    Analüüsidokumentide süstemaatilisel läbivaatamisel (testilugude koostamiseks või analüüsi verifitseerimiseks) võib kasutada nõuete keelelist mitmetimõistetavust leida võimaldavat küsimustikku, mis on toodud Lisas 2. Küsimustiku mõistmise lihtsustamiseks on Lisas 1 on välja toodud küsimustiku aluseks olevad tüüpilised mitmetimõistetavad olukorrad, mida võib spetsifikatsioonides esineda ning millele tuleb tähelepanu pöörata. Iga probleemi juures on esitatud ka mõistmist illustreeriv näide. Lisaks on antud soovitusi, kuidas esinenud vigu parandada või kuidas neid edaspidi vältida
    Keelelisest mitmetimõistetavusest saab rohkem lugeda Kamsties’e ja Berry raamatust Linguistic Sources of Ambigutity [BE+].
  • Tarkvara testimist puudutavate nõudmiste määratlemine hanke koostamisel


    Tarkvara testimise hanke või tarkvara loomise hanke testimist puudutava osa koostamisel tuleb samuti püstitada nõudmised testimisprotsessile, et hanke täitjale oleks üheselt mõistetav, mida temalt oodatakse ning et tagada hankija ja täitja ühene arusaam hanke eesmärgist või tellitava tarkvara kvaliteedi tagamisest.
    Seetõttu tuleks tarkvara (testimise) hanget plaanides välja selgitada ning hanke pakkumiskutsesse lisada suhteliselt konkreetne testimisülesande püstitus:
  • Hanke sisendid (testitava objekti arenduse alusdokumendid ) ning testitav objekt (erinevad versioonid)
  • Hanke väljundid:
  • Testiplaan
  • Testilood
  • Täiendusettepanekud alusdokumentide (nõudmiste) osas
  • Testimise tulemused kõigi testimise liikide kohta
  • perioodilised testitulemuste aruanded kõigi läbiviidud testimise liikide kohta (sagedus vastavalt kokkuleppele)
  • Lõplik testiaruanne koos hinnanguga projekti kvaliteedile
    Hanke korraldamisel tuleks eelnevalt indentifitseerida:
  • Olulisemad testimisvajadused, milliseid teste läbi viiakse (vt. Testimise klassifikatsioonid). Läbiviidavate testide hulk ei pruugi pakkumiskutses olla täielik, kuna testimisvajadused vaadatakse üle ning täpsustatakse testimise algfaasis testikonsultandi osavõtmisel.
  • Hanke umbkaudne maht inimtundides
    Hanke nõudmiste püstitamisel võib oodata täitjalt käesolevas dokumendis kirjeldatud testimise parimate praktikate kasutamist mingis osas, kui täitja soovib neid oma arendusprotsessis kasutusele võtta.
    Viited
    [829] IEEE std 829-1998 Standard for Test Documentation
    [9126] EVS - ISO/IEC 9126-1:2003 Tarkvaratehnika . Toote kvaliteet. Osa 1: Kvaliteedimudel
    [AB+] Abratt, D., Mallinson, W., Bekker, A. (2003). Usability Testing: Recipe for success . http://www.testingstandards.co.uk/usability_recipe_for_success.ht m
    [AN+] Andrews, M., Whittaker, J.A. (2006). How to break software: Functional and Security Testing of Web Applications and Web Services. Addison-Wesley Professional
    [BE+]Berry, D.M., Kamsties, E., Krieger , M.M. (2003). From Contract Drafting to Software Specification: Linguistic Sources of Ambiguity--A Handbook , manuscript. http://se.uwaterloo.ca/~dberry/handbook/ambiguityHandbook.pdf
    [BZ] Bugzilla. Http://www.bugzilla.org/ Veahaldussüsteem
    [ED] Edvardsson, J. A survey on Automatic Test data Generation. http://www.ida.liu.se/~joned/papers/class_atdg.pdf
    [FE+]Fewster, M., Graham, D. (1999). Software test automation: effective use of test execution tools . Addison-Wesley
    [GN] GNOME Human Interface Guidlines http://developer.gnome.org/projects/gup/hig/2.0/
    [HU+] Hull, E., Jackson, K., Dick , J. (2004). Requirements Engineering 2nd edition . Springer
    [IT] Itracker. http://www.itracker.org/ Vabavaraline veahaldussüsteem
    [KA+] Kaner,C., Bach, J., Pettichord, B. (2001). Lessons learned in Software testing 1st edition. Wiley
    [MA] Marick, B. (1998) When should a test be automated? http://www.testing.com/writings/automate.pdf
    [MAC] Apple Human Interface Guidlines http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/
    [OWASP] The Open Web Application Security Project www.owasp.org
    [PE] Perry , W.E. (2000). Effective methods for software testing 2nd edition. Wiley
    [PT] Protool testing – Theory, Test Suites, Tools, Formal Methods http://www.protocoltesting.com/
    [RUP] Rational unified process
    [TE] Center for Software Testing Education and Research www.testingeducation.org
    [TR] Trac. http://trac.edgewall.org/ Veahaldussüsteem
    [TS] The Testing Standards Working Party http://www.testingstandards.co.uk/
  • Lisa 1 - Spetsifikatsiooni mitmetimõistetavus


    Järgnevalt kirjeldatakse [BE+] alusel 15 levinumat mitmetimõistetavuse allikat ning näidatakse, kuidas neid vältida.
  • Vahemikud


    Kui tekstis on spetsifitseeritud vahemikke, siis kas vahemike otspunktid on üheselt kirjeldatud? Näiteks:
    Kui registreerunud osavõtjaid on 5 kuni 12, kasutatakse väikest saali, rohkema osavõtjate arvu korral suurt saali, vähema osavõtjate arvu puhul jäetakse üritus ära.
    Kas otspunktid 5 ja 12 on kaasa või välja arvatud? Soovitav on kasutada notatsiooni:
  • mõlemad otspunktid kaasaarvatud: [algus, lõpp],
  • mõlemad otspunktid väljaarvatud: ]algus, lõpp[,
  • esimene otspunkt kaasa arvatud, teine välja arvatud [algus, lõpp[,
  • esimene otspunkt välja arvatud, teine kaasaarvatud ]algus, lõpp]
  • Vähemalt üks AND ja OR samas lauses


    Kui tingimuste sidumisel on kasutatud vähemalt ühte ANDi ja ORi samas lauses, siis kas tingimuste järjekord on üheselt mõistetav? Näiteks kuidas mõista järgnevat lauset?
    Süsteem annab häire, kui lähenev objekt on ebasõbralik või tundmatu ja liigub ülehelikiirusel.
    Antud lauset võib mõista kahel viisil:
  • Süsteem annab häire, kui lähenev objekt on (ebasõbralik või tundmatu) ja (liigub ülehelikiirusel)
  • Süsteem annab häire, kui lähenev objekt on (ebasõbralik) või (tundmatu ja liigub ülehelikiirusel)
    Mitme ANDi ja ORi kasutamisel võib arusaamatuste vältimiseks kasutada mitut moodust:
  • Võib kasutada sulge nagu antud näite seletuses,
  • Võib kasutada loetelusid
  • Võib sellised “valemid” lihtsustada.
  • Ebamäärased terminid


    Ebamäärasteks terminiteks nimetab autor sõnu, mille tähendus on suhteline, ei ole üheselt määratud. Sellisteks sõnadeks on näiteks suur, väike, harva, tihti, kiiresti. Analoogsed sõnad spetsifikatsioonis viitavad otsesele ebatäpsusele, mis hiljem tekitab probleeme, kuna nendel sõnadel puutub ühene mõõt. Seetõttu ei tohi spetsifikatsioon selliseid sõnu sisaldada vaid need tuleks asendada konkreetselt mõõdetavate suurustega (koos mõõtühikuga).
  • Spetsiifilised mõisted


    Spetsifikatsioonide kirjutamisel tuleb jälgida, et kõik spetsiifilised mõisted oleksid eelpool defineeritud. Näiteks:
    Süsteem teavitab andmete saabumisest.
    Et antud juhul oleks spetsifikatsioon täielik, peab olema defineeritud, mida tähendab mõiste “andmed” ning mida tähendab mõiste “saabumine”.
  • Üldistus + mitmus


    Kui on kasutatud üldistusi (sõnad „kõik“, „paljud“, „mõned“) + mitmus, siis enamasti pole täpselt aru saada, mida sellise konstruktsiooniga mõeldakse. Näiteks
    Kõik lambid on seotud lülitiga.
    Sellisel lausel on kaks erinevat tähendust:
  • Iga lamp on seotud oma lülitiga
  • Kõik lambid on seotud ühise lülitiga
    Esimesel juhul viidatakse eraldi igale 1 – 1 suhtele, teisel juhul on tegemist ühe 1 – mitu suhtega.
    Kui soovitakse viidata igale hulga elemendile eraldi, tuleks kasutada sõna “iga”:
    Iga lamp on seotud lülitiga.
    Kui soovitakse viidata koos kõigile hulga elementidele, võib kasutada sõna “kõik” täpsustamiseks sõna “ühine”:
    Kõik lambid on seotud ühise lülitiga.
  • Üldistused


    Üldistustele viitavad sõnad ( Universal qualifiers) spetsifikatsioonis on näiteks kõik, iga, iialgi, alati. Igasuguste üldistuste juures aga peab meeles pidama , et enamasti leidub igal reeglil erandeid , millega peab arvestama. Erandite otsimine aitab leida alternatiivseid stsenaariume.
  • Asukohakriitilised sõnad


    Asukohakriitilisteks sõnadeks nimetab autor sõnu, mille asukohast lauses sõltub lause tähendus. Järgnevalt käsitletakse neist kolme: ainult, ka ning isegi. Asukohakriitilised sõnad olenevad ka kasutatavast keelest. Järgnevalt kirjeldatud sõnade puhul kehtivad samad reeglid nii eesti- kui ingliskeelsete spetsifikatsioonide puhul, teiste keelte puhul pole sobivust uuritud.
  • Ainult


    Nagu eelpool mainitud , on “ainult” üks nendest sõnadest, mille asukohast lauses oleneb lause mõte. Seetõttu peavad kõik sõnad „ainult“ asuma täpselt õiges kohas.
    Grammatikareeglid ütlevad, et sõna “ainult” limiteerib seda fraasi, millele ta vahetult eelneb. Järgnevas näites liigutatakse sõna “ainult” lauses ning vaadeldakse lause sisu muutumust.
  • Ainult Mari võtab oma koera kaasa.
  • Mari võtab ainult oma koera kaasa.
  • Mari võtab oma koera ainult kaasa.
    Esimene lause viitab sellele, et Mari on ainuke, kes oma koera kaasa võtab, teised oma koera kaasa ei võta. Teises lauses viidatakse sellele, et Mari võtab kaasa ainult oma koera ja mitte kedagi teist, ka mitte kellegi teise koera. Kolmas lause ütleb, et Mari ei tee koeraga muud kui võtab ta kaasa, ehkki ta võiks näiteks ka teda toita või pesta.
  • Ka


    Sõna “ka” jagab sisuliselt sama saatust kui “ainult”. Samalaadselt sõnaga “ainult” tuleb “ka” panna vahetult selle fraasi ette, mille kohta ta kehtib. Järgnev näide illustreerib lause mõtte muutumist selle sõna asukoha muutumisel.
  • Ka Mari võtab oma koera kaasa.
  • Mari võtab ka oma koera kaasa.
  • Mari võtab oma koera ka kaasa.
  • Isegi


    Isegi kuulub samasse gruppi, kuhu “ainult” ja “ka”. Erinevalt nendest sõnadest aga on “isegi” kasutamine spetsifikatsioonides üldiselt ebasoovitav, kuna tegemist on suhteliselt mitteformaalse, emotsionaalse ning „nõrga“ väljendiga.
    Lause mõtte muutumist sõna asukoha muutumisel kirjeldab järgnev näide:
  • Isegi ma (mina) ei näinud teda eile.
  • Ma isegi ei näinud teda eile.
  • Ma ei näinud eile isegi teda.
  • Asesõnad ta, nad, see


    Ainsuse ja mitmuse kolmandat isikut väljendavad isikulised asesõnad “ta” ja “nad” ning näitav asesõna “see” [9] puhul tuleb jälgida, et see, millele nad viitavad, on üheselt mõistetav ja korrektse tähendusega. Näiteks kuidas mõista lauset “Bob ütles Joele, et ta peab lahkuma “? Kas lahkuma peab Bob või Joe?
    Teiseks näiteks võiks olla lause “Igal lambil on lüliti, mis ühendab teda üldsüsteemiga”. Mis on selles aluses “teda”? Kas “Igal lambil on lüliti, mis ühendab lampi üldsüsteemiga” või “Igal lambil on lüliti, mis ühendab lülitit üldsüsteemiga”? Sellises olukorras võib segaduste vältimiseks asesõna asemel korrata tegelikku sõna, nagu toodud eelnevas lauses.
  • Tüüp vs eksemplar


    Tüüp vs eksemplar – kas mõeldakse kõiki mingit tüüpi olemeid või konkreetset tüübi eksemplari? “See on kiire auto” – kas konkreetne auto on kiire, või seda marki autod üldiselt on kiired?
  • Tingimuslausete täielikkus


    Igal tingimuslausel peab olema määratud, mis toimub, kui tingimus ei ole täidetud, st peab eksisteerima else ”.
  • Tingimuslausete seotus õige alternatiiviga


    Paljude tingimuslausete korral tuleb jälgida nende omavahelist järjekorda ning if osa vastamist korrektsele else-osale. Ülevaatlikkuse ja selguse saavutamiseks on soovitav kasutada programmeerimisest tuntud treppimist või hierarhilist numeratsiooni.
  • Kolme või enama osapoole võrdlus


    Võrdlus kolme või enamat osapoole vahel. Näiteks “Juhan tunneb veel rikkamat meest kui Jaan”. Kas Juhani tutvusringkonnas on keegi Jaanist veel rikkam mees? Või hoopis on Juhani tutvusringkonnas rikkam mees kui Jaani tutvusringkonnas?
  • Protsessi kirjeldava tegusõna täielikkus


    Kas iga protsessi kirjeldava tegusõna (process verb ) kohta on vastatud küsimustele: kes viib protsessi läbi? Kelle heaks? Millal? Mis on tulemus? Kuidas? Küsimus “Kuidas?” ei käi siinkohal mitte realisatsiooni kohta vaid selle kohta, milliste sammudena protsess läbi viiakse. Näiteks “Süsteem teavitab, kui andmed saabuvad”. Eeldusel, et “andmed” ja “saabumine” on eelnevalt defineeritud (vt punkt 4), peavad täielikus spetsifikatsioonis olema vastatud küsimused: Kes teavitab? Mida teavitatakse? Kuidas toimub teavitamise protsess, mil viisil? Kellele? Millal?
  • Protsessi kirjeldavate nimisõnade täielikkus


    Olukord on analoogne protsessi tegusõnadega. Moonutused tekivad protsessi väljendavate sõnade (tegusõnade) viimisel nimisõna vormi ehk sündmuseks. Näiteks “Andmete saabumisest peab teavitatama” – Ka nimisõna vormis oleva tegusõna puhul peavad olema vastatud küsimused: kes? Millal? Kelle heaks? Mis on tulemus? Kuidas?
  • Lõpetamata loetelud


    Lõpetamata loeteludeks nimetab käesoleva töö autor fraase, milles viidatakse loetelu jätkumisele, kuid pole võimalik üheselt kindlaks määrata, millised elemendid on välja jäetud. Lõpetamata loetelule viitavad fraasid on näiteks “ja nii edasi”, “ja teised”, “või muu sarnane” loetelu lõpus, ka sõna “näiteks” kasutus viitab lõpetamata loetelule.
    Lõpetamata loetelu pole kindlasti üheselt mõistetav, seega tuleb spetsifikatsioonides kõik sellised fraasid eemaldada, eelnevalt välja selgitades nende taga peituva informatsiooni
  • Lisa 2 – Spetsifikatsiooni mitmetimõistetavust leida võimaldav küsimustik


    Vastavalt Lisas 1 toodud mitmetimõistetavuste allikatele saab kokku panna järgneva küsimustiku, mis aitab juhtida tähelepanu spetsifikatsiooni mitmetimõistetavustele.
  • Kas spetsifikatsioonis kirjeldatud vahemike otspunktid on üheseltmõistetavalt defineeritud?
  • Kui tingimuste sidumisel on kasutatud vähemalt ühte ANDi ja ORi, siis kas tingimuste järjekord on üheselt määratud?
  • Kas spetsifikatsioonis on kasutatud ebamääraseid termineid?
  • Kas spetsiifilised mõisted on eelnevalt defineeritud?
  • Kas on kasutatud üldistusi (kõik, paljud, mõned) koos mitmusega?
  • Kui on kasutatud üldistusi (kõik, iga, iialgi, alati), siis kas on kindel, et ei leidu erandeid?
  • Kas on kasutatud lõpetamata loetelusid (täpsustamisel, jne, vms)?
  • Kas kõik sõnad “ainult” asuvad lauses õigel kohal?
  • Kas kõik sõnad “ka” asuvad lauses õigel kohal?
  • Kas kasutatakse sõna “isegi” ning kas see asub lauses õigel kohal?
  • Kas “ta”, “nad”, “see” viitavad sellele, millele vaja?
  • Kas esineb “tüüp vs eksemplar”-mitmetimõistetavust? Kas on üheselt aru saada, kas objekti puhul mõistetakse kõiki objekte mingist klassist või konkreetset eksemplari?
  • Kas kõigil tingimuslausetel on määratud ka see, mis juhtub siis, kui tingimused pole täidetud?
  • Kas kõik tingimuslaused on seotud õige alternatiiviga?
  • Kas kolme või enama osapoolega võrdlused on üheselt mõistetavad?
  • Kas kõik protsessi kirjeldavad tegusõnad on täielikult defineeritud?
  • Kas kõik protsessi kirjeldavad nimisõnad on täielikult defineeritud?
  • Vasakule Paremale
    Tarkvara testimist käsitlev juhendmaterjal #1 Tarkvara testimist käsitlev juhendmaterjal #2 Tarkvara testimist käsitlev juhendmaterjal #3 Tarkvara testimist käsitlev juhendmaterjal #4 Tarkvara testimist käsitlev juhendmaterjal #5 Tarkvara testimist käsitlev juhendmaterjal #6 Tarkvara testimist käsitlev juhendmaterjal #7 Tarkvara testimist käsitlev juhendmaterjal #8 Tarkvara testimist käsitlev juhendmaterjal #9 Tarkvara testimist käsitlev juhendmaterjal #10 Tarkvara testimist käsitlev juhendmaterjal #11 Tarkvara testimist käsitlev juhendmaterjal #12 Tarkvara testimist käsitlev juhendmaterjal #13 Tarkvara testimist käsitlev juhendmaterjal #14 Tarkvara testimist käsitlev juhendmaterjal #15 Tarkvara testimist käsitlev juhendmaterjal #16 Tarkvara testimist käsitlev juhendmaterjal #17 Tarkvara testimist käsitlev juhendmaterjal #18 Tarkvara testimist käsitlev juhendmaterjal #19 Tarkvara testimist käsitlev juhendmaterjal #20 Tarkvara testimist käsitlev juhendmaterjal #21 Tarkvara testimist käsitlev juhendmaterjal #22 Tarkvara testimist käsitlev juhendmaterjal #23 Tarkvara testimist käsitlev juhendmaterjal #24 Tarkvara testimist käsitlev juhendmaterjal #25 Tarkvara testimist käsitlev juhendmaterjal #26 Tarkvara testimist käsitlev juhendmaterjal #27
    Punktid 10 punkti Autor soovib selle materjali allalaadimise eest saada 10 punkti.
    Leheküljed ~ 27 lehte Lehekülgede arv dokumendis
    Aeg2018-07-08 Kuupäev, millal dokument üles laeti
    Allalaadimisi 11 laadimist Kokku alla laetud
    Kommentaarid 0 arvamust Teiste kasutajate poolt lisatud kommentaarid
    Autor urmash Õppematerjali autor

    Kasutatud allikad

    Sarnased õppematerjalid

    Tarkvara kvaliteet ja standardid kordamisküsimused
    22
    docx

    Tarkvara kvaliteet ja standardid kordamisküsimused

    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

    Tarkvara kvaliteet ja standardid
    Tarkvara kvaliteet ja standardid
    21
    docx

    Tarkvara kvaliteet ja standardid

    1. Tarkvaratoode ­ mis siia kuulub? Tarkvara arenduse tulem (toode, teenus) hõlmab mitmesuguseid komponente, mis kõik võivad olla kvaliteedihalduse objektid, näiteks arenduse käigus hangitud infotehnoloogiavahendid: riistvara, standardtarkvara, sideseadmed arenduse käigus tehtud töö: täitja arendatud tarkvara (sealhulgas lähtekood, objektkood, täitmiskood jm); installatsioonid, kohandamised, muudatused; andmehõive muudatused tellija organisatsioonis, protsessides, töökorralduses... projektdokumentatsioon kasutamise kohta (kasutajajuhendid); objektsüsteemi kohta; loodavate objektide kohta (programmi/testimise dokumentatsioon); installeerimise ja seadistamise kohta; arenduse (sh testimise) kohta metoodika: tulemuste kasutamine; tulemuste edasiarendamine; uute arenduste tegemine

    Tarkvara kvaliteet ja standardid
    Tarkvaratehnika 2016 2017 eksami materjal
    138
    docx

    Tarkvaratehnika 2016/2017 eksami materjal

    Tarkvaratehnika: Loeng 1:  Taust: o Tarkvara iseloom o Kõrgenenud nõudmised:  Suuremad süsteemid  Keerulisemad süsteemid  Kiiremini  Erinevad näited vigadest mis on tehtud: o Ariane Crash 1996 kosmosesüstiku alla kukkumine, tuli välja et selle alla kukkumise põhjuseks oli tarkvarasüsteemis viga ilmus trajektoori osas. o Therac-25 kiiritusravi andmises tehti viga kasutaja liideses, kus

    Tarkvaratehnika
    Tarkvaratehnika
    72
    docx

    Tarkvaratehnika

    Tarkvaratehnika 1. Loeng Kvaliteetse tarkvara atribuudid: 1. Teostab ettenähtud funktsionaalsust 2. Hooldatav ­ Tarkvara peab arenema, et vastata muutuvatele vajadustele. 3. Usaldusväärne ­ Töökindlus ja turvalisus. 4. Vastuvõetav ­ Kasutajad on aktsepteerinud selle. Tarkvara on neile arusaadav, kasutatav ja ühilduv teiste süsteemidega. Mis on tarkvaratehnika? 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. Tarkvaratehnika on süstemaatilise, distsiplineeritud ja mõõdetava lähenemisviisi rakendamine tarkvara arendamisele, käitamisele ja hooldamisele,

    Tarkvaratehnika
    Tarkvaratestimine
    13
    doc

    Tarkvaratestimine

    ............................................................... 3 MIS ON VIGA?.................................................................................................................................. 4 MIKS VEAD TEKIVAD?.................................................................................................................... 5 KUI PALJU VEAD MAKSAVAD?....................................................................................................... 5 MIDA TÄPSELT TEEB TARKVARA TESTIJA?................................................................................. 5 TARKVARA TESTIJAL PEAVAD OLEMA KA KINDLAD OMADUSED............................................. 6 ERINEVAD TARKVARA ARENDUS MEETODID.............................................................................. 6 MUSTA-KASTI, VALGE-KASTI JA HALLI-KASTI TESTIMINE......................................................... 9 STAATILINE JA DÜNAAMILINE TESTIMINE..............................................

    Ainetöö
    Tarkvaratehnika konspekt eksamiks
    62
    pdf

    Tarkvaratehnika konspekt eksamiks

    Tarkvaratehnika konspekt. Tarkvaratehnika Tarkvaratehnika e. tarkvara inseneeria on professionaalsele tarkvaraarendusele suunatud distsipliin, mis tegeleb sellega, kuidas organiseerida tarkvaraarendust, arvestades organisatsiooniliste ja rahaliste piirangutega. Tarkvaratooted koosnevad valjatöötatud programmidest ja nende dokumentatsioonist. Tarkvaratehnika eesmärgiks on kuluefektiivne tarkvaraarendus kogu tarkvara elukaare ulatuses. Tarkvaratehnika on süstemaatilise, distsiplineeritud ja mõõdetava lähehemisviisi rakendamine tarkvara arendamisele, käitamisele ja hooldamisele, see tähendab, inseneriteaduste rakendamine tarkvarale. Tarkvaratehnika „point“: Tarkvaratehnika on suunatud professionaalsele tarkvaraarendusele. Tarkvaratehnika ei tegele tarkvaraarenduse endaga vaid sellega, kuidas organiseerida tarkvaraarendust. Tarkvaratehnika vajadus - kõrgenenud nõudmised: suuremad süsteemid, keerulisemad süsteemid, kiiremini arendatavad süsteemid. Insener suuda

    Tarkvaratehnika
    Tarkvaratehnika kordamisküsimused
    210
    pdf

    Tarkvaratehnika kordamisküsimused

    ○ “tavaline testimine”  28    73. Kus leitud viga on kõige odavam parandada?       74. Räägi statistikast läbivaatuse kohta.   ● Tarkvara inspektsioon võimaldab leida 70%­80% vigadest enne funktsionaalset  testimist.  Standup on ka läbivaatus, probleeme saab kohe lahendada.  ● Tunni jooksul leitav vigade keskmine arv   ○ Funktsionaalne valge kasti testimine – 0.282   ○ Funktsionaalne musta kasti testimine – 0.322   ○ Läbvaatused – 1.056  

    Tarkvaratehnika
    Tarkvaraprojekti esijalgne kavandamine
    12
    doc

    Tarkvaraprojekti esijalgne kavandamine

    Projekti visioon. Enne mistahes projekti käivitamist peab projektimeeskond projekti põhieesmärgi suhtes kujundama ühised arusaamad ja need ka kirjalikult lühidalt formuleerima. Põhieesmärk peab olema kõrge, kuid reaalne. Halvim on, kui projekti täitjad saavad aru eesmärkide ebareaalsusest, kuid projekti juhtkond mitte; sellisel juhul täitjate motivatsioon langeb kiiresti. Visioonist peaks lähtuma, määratlemaks, mida loodav tarkvara peab võimaldama ja mida mitte. Näiteks MS Word for Windows 1.0 arendamine võttis algselt kavandatud ühe aasta asemel aega viis aastat, kuna eesmärgid olid seatud liiga kõrged! Seega on näiteks "Luua maailma parim tekstitöötlussüsteem" liiga üldine, parem oleks "Luua maailma kõige kasutajasõbralikum tekstitöötlussüsteem", kuna annab arendajatele ka ideid, mida ei peaks tarkvara koosseisu lülitama. Põhiotsustaja määratlemine

    Projektijuhtimine




    Kommentaarid (0)

    Kommentaarid sellele materjalile puuduvad. Ole esimene ja kommenteeri



    Sellel veebilehel kasutatakse küpsiseid. Kasutamist jätkates nõustute küpsiste ja veebilehe üldtingimustega Nõustun