Kõik, mida pead teadma tarkvara testimismeetodite kohta
SisukordLaiendaSisukord
Enne kui tarkvara avalikuks või äriliseks kasutamiseks tarnitakse, kulutavad programmeerijad tunde iga vea kõrvaldamisele, kusjuures toode jääb teadmatusse, kuni kõik sidusrühmad on rahul.
Silicon Valley tarkvarahiiglased, nagu Google ja Facebook, tarnivad sageli turule populaarseid tooteid, hoolimata nende tarkvara madala prioriteediga vigadest. Investorid ja miljonid lojaalsed kasutajad taluvad nende ettevõtete pakutavate toodete tarkvaravärskendusi ja ajutisi moonutusi.
Enamikul tarkvaraettevõtetel seda luksust pole. Kliendid soovivad, et tooted toimiksid nii, nagu reklaamitakse, ja on õigustatult ärevil, kui esineb lahendamata turvaauke.
Miks on oskuste testimine vajalik?
Kuna saadaval on nii palju tarkvaraarendusvõimalusi, ei mõtle kliendid kaks korda laeva hüppamisele, kui toode haiseb raisatud aja ja raha järele. Tarkvaraettevõtted peavad enne nende klientidele avaldamist oma tooteid põhjalikult testima. Need testid annavad järgmise ülevaate:
- Need toovad esile erinevused algse kontseptsiooni ja lõpliku väljundi vahel.
- Nad kontrollivad, kas tarkvara töötab nii, nagu disainerid kavandasid.
- Nad hindavad omadusi ja kvaliteeti.
- Nad kinnitavad, et lõpptoode vastab kliendi nõudmistele.
Testimine järgib ranget kavandit, et optimeerida töökoormust, aega ja raha, pakkudes samal ajal sidusrühmadele olulist teavet toote edasiliikumiseks. Eesmärk on hõlbustada positiivse lõppkasutaja kogemust, hoides põhjalikku teavet kvaliteedi tagamine (QA) programm. Arvestades arendajate suuri panuseid, on kvaliteedikontrolli juhid mõned neist parimad teenijad tehnoloogiatööstuses. Testimine toimub tavaliselt järgmiste sammude järgi:
- Viige läbi nõuete analüüs, kus juhid visandavad plaani sobiva testimisstrateegia paika panemiseks.
- Alustage teste ja analüüsige tulemusi.
- Parandage kõik vead ja viige tarkvara läbi regressioonitesti (süsteem, mis kontrollib, kas programm pärast muudatusi ikka töötab).
- Looge katse lõpetamise aruanne, milles kirjeldatakse üksikasjalikult protsessi ja tulemusi.
Üksikisikud võivad saada sertifitseeritud tarkvara testijateks läbi BCS, The Chartered Institute for IT, STOP (Rahvusvaheline Tarkvaratestimise Kvalifikatsiooninõukogu) ja ASQ (American Society for Quality).
Tarkvara testimismeetodid
Must-valge kasti testimine on kaks põhimeetodit toote käitumise ja jõudluse hindamiseks. Musta kasti testimine, mida nimetatakse ka funktsionaalseks või spetsifikatsioonipõhiseks testimiseks, keskendub väljundile. Testijad ei ole sisemiste mehhanismide pärast mures. Nad kontrollivad ainult seda, kas tarkvara teeb seda, mida ta tegema peab. Kodeerimise tundmine pole vajalik ja testijad töötavad kasutajaliidese tasemel.
Valge kasti testimine kasutab testimisprotseduuri osana kodeerimiskogemust. Kui toode ebaõnnestub, uurivad testijad koodi sügavuti, et leida põhjus. Tarkvaraarendajad teevad seda ise, sest kliendid eeldavad, et nad panevad toote tööle. Valge kasti testimist nimetatakse ka struktuuripõhiseks või klaaskarbi testimiseks.
Staatiline testimine uurib lähtekoodi ja kõiki kaasnevaid dokumente, kuid ei käivita programmi. Staatilised testid algavad toote arendamise alguses kontrolliprotsessi ajal.
Dünaamiline testimine kasutab tarkvara töötamise ajal erinevaid sisendeid ja testijad võrdlevad väljundeid eeldatava käitumisega. Graafilise kasutajaliidese testimine hindab teksti vormingut, tekstikaste, nuppe, loendeid, paigutust, värve ja muid liidese elemente. GUI testimine on aeganõudev ja arendajate asemel võtavad selle ülesande sageli enda kanda kolmanda osapoole ettevõtted.
Testitasemed
Nõrkade ja kattuvate piirkondade tuvastamiseks igas etapis kasutatakse erinevaid testimise tasemeid tarkvaraarenduse elutsükkel . Testi tasemed on järgmised:
- Ühiku test
- Integratsiooni testimine
- Süsteemi testimine
- Vastuvõtu testimine
Üksuse testimisel testivad arendajad koodi kõige elementaarsemaid osi, nagu klassid, liidesed ja funktsioonid/protseduurid. Nad teavad, kuidas nende kood peaks reageerima, ja saavad sõltuvalt väljundist muudatusi teha.
Integratsiooni testimine on tuntud ka kui 'mooduli' või 'programmi' testimine. See sarnaneb üksuse testimisega, kuid sisaldab kõrgemat integratsioonitaset. Tarkvara mooduleid testitakse defektide suhtes, et kontrollida nende toimimist. Integratsiooni testimine tuvastab vead moodulite integreerimisel. Integratsioonitestide erinevad meetodid hõlmavad 'alt-üles', 'ülalt-alla' ja 'funktsionaalset inkrementaalset'.
Süsteemi testimine testib projekti kui terviku komponente erinevates keskkondades. Süsteemi testimine kuulub musta kasti meetodi alla ja on protsessi üks viimaseid teste. See määrab, kas süsteem on äri- ja kasutajavajaduste rahuldamiseks valmis.
Üldiselt on kahte tüüpi vastuvõtuteste. Alfatestimisel käivitatakse tarkvara sisemiselt arendaja saidil simuleeritud või tegelikus keskkonnas. Tarkvara töötab nii, nagu kasutaksid seda reaalajas lõppkasutajad. Arendajad märgivad üles kõik probleemid ning hakkavad vigu ja muid probleeme parandama.
Ka musta kasti testimise raames testivad kliendid aktsepteerimistestimise käigus tarkvara, et välja selgitada, kas arendaja on programmi täielikult välja töötanud, et see vastaks nende soovitud spetsifikatsioonidele.
Beetatestimine ehk välitestimine võimaldab klientidel testida toodet oma saitidel reaalsetes tingimustes. Kliendid võivad pakkuda lõppkasutajate rühmale võimalust testida tarkvara väljalaskeeelse või beetaversiooni kaudu. Beetatestimise eesmärk on saada kasutajate tegelik tagasiside, mis saadetakse arendajale.
Testi tüübid
Erinevat tüüpi tarkvaratestid on loodud keskenduma konkreetsetele eesmärkidele. Testimisinsener ja konfiguratsioonihaldur kasutavad installitesti tagamaks, et lõppkasutaja saab programmi installida ja käivitada. See hõlmab selliseid valdkondi nagu installifailid, paigalduskohad ja administraatoriõigused.
Arengu testimine rakendab mitmeid sünkroniseeritud strateegiaid defektide tuvastamiseks ja ennetamiseks. See sisaldab staatilist koodianalüüsi, kolleegide koodide ülevaatusi, jälgitavust ja mõõdikute analüüsi. Eesmärk on vähendada riske ja säästa kulusid.
Kasutuskogemus on kasutatavuse testimisega tähelepanu keskpunktis. See mõõdab, kui lihtne on GUI-d kasutada. See kontrollib funktsioonide täpsust ja tõhusust ning katsealuste emotsionaalseid reaktsioone.
Terve mõistuse test näitab, kas tarkvara on edasiste testide jätkamiseks kuluvat aega ja kulusid väärt. Kui vigu on liiga palju, ei järgne agressiivsemaid teste.
Terve mõistuse testimine toimub tarkvara väljalaskefaasis, kus tehakse suitsutesti, et näha, kas tarkvara töötab piisavalt testimiseks.
Suitsukatse paljastab põhimõttelisi rikkeid, mis on piisavalt tõsised, et vältida vabanemist. Kui arendajad testivad uut ehitust, nimetatakse seda järgu kontrollimise testiks. Kui süsteemi muudetakse, jälgib regressioonitestimine ootamatut käitumist. See juhib tähelepanu kahjulikele mõjudele moodulitele või komponentidele.
Testijad sisestavad ebanormaalseid kirjeid ja tajuvad tarkvara võimet hallata ootamatut sisendit hävitavates testides. See näitab arendajatele, kui tugev on programmi veahaldus.
Kui riistvara või muud funktsioonid ebaõnnestuvad, näitab taastetest, kui hästi suudab tarkvara taastuda ja tööd jätkata.
Automatiseerimine täidab funktsioone, mida on keeruline käsitsi rakendada. Testimine hõlmab spetsiifilise tarkvara kasutamist testide käitamiseks ja andmete esitamiseks tegelike ja eeldatavate tulemuste kohta.
Tarkvara peab töötama erinevates andmetöötluskeskkondades, seega kontrollib ühilduvuse testimine, kuidas tarkvara reageerib erinevatele süsteemidele. Näiteks programmeerijad testivad tarkvara erinevate operatsioonisüsteemide ja veebibrauseritega.
Testid peavad olema ulatuslikud ja lahendama kõik kliendi mured, vastasel juhul muutub projekt kiiresti ressursside raiskamiseks.
Jõudlustestimine uurib tarkvara jõudlust erinevates stsenaariumides. Kogutakse teavet reageerimisvõime, stabiilsuse, ressursside jaotamise ja kiiruse kohta. Selles protsessis mängivad rolli alamtestid, nagu helitugevuse, mahu ja teravuse testimine.
Turvatestimine mõõdab tarkvara võimet kaitsta kasutajate turvalisust. Autoriseerimisfunktsioonid, autentimine, konfidentsiaalsus, terviklikkus, kättesaadavus ja tagasilükkamatus on kõik näited funktsioonidest, mida tuleb testida.
Juurdepääsetavuse testimine erineb kasutatavuse testimisest. See määrab, mil määral saavad erinevate võimetega kasutajad tarkvara kasutada.
Internaliseerimise ja lokaliseerimise testi tulemused näitavad, kuidas tarkvara suudab kohaneda erinevate keelte ja piirkondlike nõudmistega. See hõlmab komponentide lisamist konkreetsete asukohtade jaoks ja teksti tõlkimist.