Häid tarkvarafirmad, nagu Google, õnnestuvad oma tarkvarast hoolimata vähese tähtsusega vigu, kuid väiksematel ettevõtetel ja alustavatel ettevõtetel pole seda luksust.
Kliendid eeldavad, et tooted teevad müügi lehel või dokumentatsioonis nõude. Seal, kus on palju võimalusi, ei mõtle nad kaks korda laeva hüppamisest, kui toode raiskab oma aega ja raha. Seetõttu laseb tarkvara enne vabanemist läbi rangelt kontrollida, et:
esile esialgse kontseptsiooni ja lõpliku väljundi erinevused
kontrollige, kas tarkvara töötab disainerite kavandatud viisil
lõpptoote valideerimine - toode peab vastama klientide nõuetele
hinnata funktsioone ja kvaliteeti
Testimine järgib rangeid printsiipe. See optimeerib väärtuslike ressursside - oskuste, aja ja raha ärakasutamist, pakkudes huvirühmadele olulist teavet toote edasitoimetamiseks. Eesmärgiks on tagada hea lõppkasutaja kogemus tugeva kvaliteedi tagamise programmi kaudu. Kui panused on nii suured, on QA-juhid mõned tech-tech- teenistuse tippspetsialistid . Testimise käigus järgitakse tavaliselt järgmisi samme:
Nõuete analüüs, kus juhid kirjeldavad plaani sobiva testimise strateegia sisseseadmiseks.
Katsed algavad ja tulemused läbivad analüüsi.
Kõik defektid on parandatud ja tarkvara läbib regressioonanalüüsi - süsteem, mis kontrollib programmi toimimist pärast muudatuste tegemist.
Seejärel esitatakse katseprotokolli aruanne kogu protsessi ja tulemuste kohta.
Tarkvara testimise meetodid
Siin on erinevad meetodid, mida kasutatakse toote käitumise ja toimivuse hindamisel.
Musta karbi ja valge karbi katsetamine on kaks põhilist meetodit.
- Musta kasti testimine - seda nimetatakse ka funktsionaalseks või spetsifikatsioonipõhiseks testimiseks, see meetod keskendub väljundile. Testrid ei puuduta sisemisi mehhanisme. Nad kontrollivad, kas tarkvara teeb seda, mida ta peaks. Koodide tundmine pole vajalik ja testijad töötavad kasutajaliideses.
- Valge kasti testimine - see meetod kasutab katseprotseduuri osana oskusteabe kodeerimist. Kui toode ebaõnnestub, lähevad testrid põhjuse leidmiseks koodi sügavale. Tarkvaraarendajad teevad seda ise, kuna nad määravad kindlaks, kuidas toode peaks toimima. Selle meetodi muud nimetused on struktuuripõhised ja klaasist katsed.
- Staatiline testimine - testijad uurivad tarkvara koodi ja dokumentatsiooni, kuid ei vii programmi ellu. Staatilised katsed algavad tootearenduse ajal kontrollimise käigus.
- Dünaamiline testimine - tarkvara käivitatakse erinevate sisenditega ja testijad võrdlevad väljundeid eeldatava käitumisega selle meetodiga.
- GUI testimine - see testib GUI-omadusi - teksti vormindamine, tekstikasti, nupud, loendid, paigutus, värvid, fondid, suurused kirjas ja nii edasi. GUI-testimine on aeganõudev ning kolmandate osapoolte ettevõtted võtavad sageli ülesandeid arendaja asemel.
Testitasemed
Need on vajalikud tarkvara arengu elutsükli igas etapis nõrkade ja kattuvate valdkondade kindlakstegemiseks.
- Ühikukatsed - arendajad katsetavad kõige elementaarsemaid koodi osi, nagu klassid, liidesed ja funktsioonid / protseduurid. Nad teavad, kuidas nende kood peaks reageerima ja võib teha kohandusi sõltuvalt väljundist.
- Komponentide testimine - muud nimed on mooduli või programmi testimine. See sarnaneb ühikutestidega, kuid sisaldab kõrgemat integratsiooni taset. Tarkvara mudeleid kontrollitakse nende individuaalse funktsiooni kontrollimiseks defektidena.
- Integratsiooni testimine - see tuvastab vead, kui moodulid on integreeritud. Erinevad integreerimiskatsed on alt üles, ülevalt alla ja funktsionaalsed täiendavad.
- Süsteemi testimine - Selle meetodiga katsetatakse projekti komponente tervikuna erinevates keskkondades. See kuulub musta kasti meetodi alla ja on üks protsessi viimaseid katsetusi. See määrab, kas süsteem toimib nii nagu see peaks vastama äri- ja kasutajate vajadustele.
- Alfa testimine - sisemised töötajad katsetavad tarkvara arendaja saidil simuleeritud või tegelikus keskkonnas. Pärast seda parandavad arendajad vead ja muud probleemid.
- Beeta testimine - Tuntud ka kui välitesti, klient katsetab toodet oma saidil reaalsetes tingimustes. Klient võib pakkuda lõppkasutajate rühmale tarkvara testimist prerelease või beetaversioonide abil. Tagasiside võimalike paranduste kohta saadetakse seejärel arendajale.
- Vastuvõtmise katsetamine - ka musta kasti testimise ulatuses kontrollib klient tarkvara, et välja selgitada, kas arendaja on loonud programmi soovitud spetsifikatsioonidele.
Katse tüübid
Need tarkvarakatsetused keskenduvad konkreetsetele eesmärkidele.
- Paigalduskontroll - tarkvara testimise insener ja seadistustehaldur viivad läbi selle testi, et lõppkasutaja saaks programmi installida ja käivitada. See hõlmab selliseid valdkondi nagu installifailid, paigalduskohad ja administraatoriõigused.
- Arenduskatsed. Selles rakendatakse mitmesuguseid sünkroniseeritud strateegiaid defektide tuvastamiseks ja vältimiseks. See hõlmab staatilist koodi analüüsi, peer-koodide ülevaatusi, jälgitavust ja mõõdikute analüüsi. Eesmärk on vähendada riske ja säästa kulusid.
- Kasutatavuse katsetamine - kasutajate kogemus on selles katses tähelepanu keskpunktis. See mõõdab GUI kujundamise ja selle kasutuslihtsuse. Katse käigus kontrollitakse katsealuste funktsioonide ja emotsionaalsete reaktsioonide täpsust ja efektiivsust.
- Tervislikkuse testimine - see näitab, kas tarkvara on edasiste testide jätkamiseks väärt aega ja kulu. Liiga palju vigu ja agressiivsemaid katseid ei järgita.
- Suitsetestid - Suitsetestid näitavad olulisi tõrkeid, mis on vabanemise vältimiseks piisavalt tõsised. Kui seda tehakse uue ehitise puhul, nimetatakse seda ehitaja kinnituskatseks.
- Regressioonanalüüs - kui süsteem muutub, jälgib regressioonanalüüs ootamatut käitumist. Ta märgib kahjulikke mõjusid moodulitele või komponentidele.
- Destruktiivne testimine - testijad sisestavad ebaharilikke sissekandeid ja mõistavad tarkvara võimet juhtida ootamatut sisendit. See näitab arendajatele, kui tugev on programm viga juhtida.
- Taastekontroll - kui riistvara või muud funktsioonid ebaõnnestuvad, näitab see test, kui hästi tarkvara taastuda ja töö jätkub.
- Automatiseeritud testimine - see täidab ülesandeid, mida on raske käsitsi rakendada. Testide tegemiseks kasutab ta spetsiaalset tarkvara ja esitab andmeid tegelike ja oodatavate tulemuste kohta.
- Sobivuse testimine - tarkvara peab töötama erinevates arvutis keskkondades, nii et see kontrollib ühilduvust erinevate süsteemidega. Näiteks kas tarkvara töötab erinevate operatsioonisüsteemide ja veebibrauseritega?
- Jõudluskontroll - see on põhjalik test, mis uurib tarkvara toimivust erinevates stsenaariumides. Kogutakse teavet reageerimisvõime, stabiilsuse, ressursside jaotamise ja kiiruse kohta. Lisaks sellele osalevad selles protsessis sellised alltestid nagu maht, läbilaskevõime ja nippude testimine.
- Turvalisuse testimine - see mõõdab tarkvara võimet kaitsta kasutajate turvalisust. See tähendab volitamisfunktsioone, autentimist, konfidentsiaalsust, terviklikkust, kättesaadavust ja loobumist.
- Juurdepääsu katsetamine - see ei ole sama mis kasutatavuse katsetamine. See määrab, millises ulatuses saavad tarkvara kasutada erinevaid võimeid kasutavaid kasutajaid - õppimist ja füüsilist puuet.
- Rahvusvahelistumise ja lokaliseerimise katsetamine - tulemused näitavad, kuidas tarkvara saab kohandada erinevate keelte ja piirkondlike nõudmistega. See hõlmab teatud kohtade komponentide lisamist ja teksti tõlkimist.
Tarkvara testimine on toote turule toomise oluline osa. Ja ilma testerita ei eksisteeriks laialdast olemasolevat tarkvara. Hakka sertifitseeritud tarkvara testis selliste organisatsioonide kaudu nagu BCS, Chartered Institute for IT, ISTQB® (International Software Testing Qualifications Board) ja ASQ (endine Ameerika Kvaliteediühing).