1.4.1 Testimise mõiste

Toote kvaliteet sõltub eelkõige toote valmistamise protsessi (tarkvara korral seega tarkvara arendusprotsessi) kvaliteedist ning toote arendajate-valmistajate (analüütikute, arhitektide, programmeerijate, projektijuhtide jt) teadmistest, oskustest ning motivatsioonist. Seega tarkvara kvaliteedi tõstmise viisideks on protsesside parendamine, inimeste koolitamine jms. Tarkvara on vaja ka kontrollida vigade suhtes ehk testida.
Testimine on kasutusel mitmetes inimtegevuse valdkondades: teaduses testitakse vaatluste ja eksperimentidega hüpoteese ning teooriaid, õppe läbiviimisel testitakse tudengeid, tootmises testitakse toodangut.
Testimise eesmärgiks on näidata, et tarkvara teeb seda, mis vaja ja avastada programmis vigu enne, kui see kasutusse antakse. Testimiseks tavaliselt käivitatakse tarkvara kasutades testandmeid. Edasi kontrollitakse testi tulemusi vigade ja anomaaliate leidmiseks või ka mittefunktsionaalsete omaduste kontrollimiseks. Testimise abil saab leida vigu, kuid mitte tõestada nende puudumist. Testimine on üks osa suuremast valideerimise ja verifitseerimise protsessist.
Tüüpilist testimisprotsessi kujutab järgmine joonis:
Joonis 1-6. Testimise protsess
Testjuhtumitele vastavalt valitakse testandmed (sisend) ja lisaks fikseeritakse, milline peab selliste andmete korral olema süsteemi käitumine või väljund. Süsteem käivitatakse valitud testandmetega ja tulemust võrreldakse oodatava tulemuse/käitumisega. Kui süsteem käitus oodatult, loetakse test läbituks. Kui mitte, siis on avastatud viga. Testi tulemuse registreerimiseks koostatakse aruanne. Milles viga täpsemalt seisneb, peavad välja selgitama arendajad ja selle siis parandama.
Tarkvara ja süsteemi ehk toote testimine on otseselt seotud toote kvaliteediga. Toode on kvaliteetne, kui ta rahuldab oma tööga vajadusi, millised motiveerisid toodet looma. Seega on vajalik vastavate testide läbiviimine tegemaks kindlaks, kas toode vastab täielikult kliendi nõuetele. Siiski, absoluutse kindluse, et toode ei sisalda vigu, saavutamine ei ole reaalsuses võimalik.