230 likes | 522 Views
Miks nad küll vigadeta tarkvara ei tee? Urmo Keskel. Millest teen juttu. Tarkvara vigadest Testimise olemusest Meie uuest väljakutsest Kuidas Teie saate parema tarkvara nimel kaasa aidata. Mis on tarkvara viga?. Inglise keeles: bug, defect
E N D
Miks nad küll vigadeta tarkvara ei tee? Urmo Keskel
Millest teen juttu • Tarkvara vigadest • Testimise olemusest • Meie uuest väljakutsest • Kuidas Teie saate parema tarkvara nimel kaasa aidata
Mis on tarkvara viga? Inglise keeles: bug, defect Puudus tarkvaras, mis võib viia süsteemi funktsiooni korrektse täitmata jätmiseni.
Vigade tüübid • Vead nõudmistes – ei vasta kasutaja vajadustele • Nõudmiste/programmi mittevastavus • Programmeerimisvead – programm ei tee seda, mida programmeerija ootas • Disainivead – ebamugav kasutajale, lahendus pole laiendatav • Dokumentatsiooni/programmi mittevastavus
Miks vead tekivad? • Nõudmiste spetsifikatsioon on ebatäpne ja mitmetimõistetav • Ootamatud olukorrad • Tähtajad liiga lähedal, et oma tööd põhjalikult testida • Programmeerija ei saa testida oma “mõtlemislünki”, sest ta lihtsalt ei tule nende peale
Miks vead tekivad? • Kolmanda osapoole komponentide (sh arendusvahendid ) kasutamisest • Konfiguratsioonihalduse vahendite väärkasutamisest • Vigade parandamisel võib tekkida uusi vigasid • ... • Inimesed lihtsalt teevad vigu...
Miks vead tekivad? • Tarkvaraarendus on üsna noor valdkond – standardeid ja nõuded vähe kirjeldatud, need ei ole kohustuslikud • Tarkvara arendus materjali poolelt odav • Tarkvaraarendus on kiiresti muutuv valdkond • Tarkvarasüsteemid on ajaga muutunud järjest keerulisemaks
Kuidas vigadele jälile saada? • Alustada vigade otsimisega võimalikult vara • Kaasata arendusprotsessi sõltumatud proffessionaalsed testijad • Saada võimalikult vara potensiaalse kasutaja tagasiside (beeta testmine) • Automaatsed vearaporteerimise süsteemid • Kokkulepped toodangus vigadest raporteerimiseks
Oluline on leida viga võimalikult vara Vea parandamise hind arenduse eri faasides: Allikas: McConnell, Steve (2004). Code Complete, 2nd edition, Microsoft Press
Testimise definitsioon The processconsisting of all life cycle activities, concerned with planning, preparationand evaluationof software products and related work productsto determine: –that they satisfy specified requirements, –to demonstrate that they are fit for purpose and –to detect defects Allikas: ISTQB
Testimine piltlikult Testiplaanid, testijuhud, testiaruanded, vearaportid Nõuded, ootused Testimine Testitavobjekt
Vigadeta tarkvara? Pole olemas, või kui on, siis ei ole taskukohane Testimine ei tõesta tarkvaras vigade puudumist, küll aga annab infot testitava tulemi kvaliteedi kohta.
ID-kaardi tarkvara täielik testimine Testitavaid kombinatsioone = opsüsteemid*kaardilugejad*brauserid* kaardi tüübid*sertifikaatide olekud*funktsionaalsus*muud sisendparameetrid*.... = väga palju Järeldus:kõike ei jõua testida
Palju testida? Testida tuleb seni, kuni vigade leidmise kulud on väiksemad kui kulud vea ilmnemisel toodangus [Koomen 1999]
Edukas testimine tuvastab olulised vead • tuleb saada aru võimalike vigadega seotud riskidest • planeerida testimine konkreetsele projektile sobivalt • eraldada testimiseks piisavalt ressurssi
Tüüpilised vead testimisel • Ei testita üldse • –Tundmatus kohas vettehüppamine • •Testitakse “midagi”(mittesüstemaatiliselt) • –Pimeduses liikuva märklaua tabamine • •Testimise jaoks pole aega planeeritud • –Sul on liiga kiire, et kontrollida, kas läksid õige bussi peale • •Testimine toimub ühekordselt, eeldades, et pärast leitud vigade parandamist on kõik korras • –Pea liiva alla peitmine lootuses, et keegi ei leia sind • •Testimise tegevused kaasatakse alles arenduse lõpus • –Pidev “tuletõrjumine”probleemide ennetamise asemel
Vead tekivad muutustega Uue ID-kaardi tarkvara avaldamisel – täiendustega koos on tarkvaras mõni uus viga, mis testimisel ei ilmnenud.Tarkvara töökeskkonna muutumisel – operatsioonisüsteemi, brauseri, kaardilugeja draiverite jne uuenduste tõttu. Lisaks ID-kaardi tarkvara vigadele on vead operatsioonisüsteemides, millega tuleb samuti tegeleda
Seisame silmitsi uute väljakutsetega • Tuleb uus tarkvara – iga algus on rakse, laps peab õppima roomama, käima ... • x*y*z*... kasvab pidevalt: lisandunud on uusi opsüsteeme (Linux, W7, Lumeleopard), brausereid (Chrome), kaardi tüüpe (digitaalne isikutnnistus), failiformaate (bdoc, pdf) jne • ID-kaart ei ole enam vaid tehnoloogiafriikide vahend, üha rohkem lisandub kaardi kasutajate perre tädi Maalisid
Ärge hoidke vigade infot endale! • Teie olete infole (kasutajale) kõige lähemal • Kui vigadest teada ei anta, siis me neist ei tea ja need ei saa need ka parandatud • Kui viga kordub, siis anda ka korduvalt teada, abiks on hinnangud probleemide ulatuse kohta (Teie vaatevinklist)
Vigade/probleemide info edastamine • Täpne • OP-süsteem • brauser (versioon) • tarkvara (versioon) • kaardilugeja (mudel) • mida soovitakse teha (isikutuvastus, allkirjastamine) • kus soovitakse teha (e-teenus, DigiDoc Client, DigiDoc portaal jne) • probleemi kirjeldus (veateade, ekraanipilt) • kasutaja info: isikukood, kontakttelefon • Kiire/ajakohane • Heas toonis
Tagasivaade • Paratamatult tarkvaraarenduses esineb vigu • Vigu ei saa täielikult vältida, kuid need tuleb võimalikult kiiresti tuvastada • Testimine annab infot ja võimaldab riske maandada • Ärge hoidke vigade infot endale • Tehke vearaportid võimalikud selged ja hea tooniga