5.7.8 Staatiline ja dünaamiline testimine

Tarkvara testimine jaotatakse staatiliseks ja dünaamiliseks testimiseks. Staatilise testimise põhiülesandeks on leida vigu juba programmi projekteerimise ja spetsifitseerimise faasides. Staatilise testimise käigus saab kontrollida ka süsteemi omadusi nagu näiteks hooldatavus, töökindlus, analüüsitavus.
Staatilise testimise teostamine võib oluliselt vähendada tarkvara arendamise kulusid ning tarkvara arendamisele kuluvat aega. Samas tuleb meeles pidada, et staatiline testimine ei asenda dünaamilist testimist ning ei garanteeri, et ainult staatilise testimise läbinud tarkvara töötab veatult. Staatilise analüüsi vahendid teavitavad tarkvara arendajaid vigadest nagu kasutamiskõlbmatu programmi kood, kirjeldamata muutujad jne.
Dünaamiline testimine jaotatakse:
- funktsionaalseks testimiseks
- struktuurseks testimiseks.
Funktsionaalse testimise tehnikad on tuntud ka kui nn Black Box (must kast) ja sisend / väljund testimise tehnikad. Seda seepärast, et antud testimise tehnikat kasutades ei huvita testijat tarkvara ise vaid sisend ja väljund. Testija ei pea teadma ega omama teadmisi programmi koodi ja struktuuri kohta, ta keskendub tarkvara funktsionaalsuse testimisele huvitudes küsimusest, mida tarkvara teeb, mitte kuidas tarkvara seda teeb.
Struktuursete testimise tehnikate puhul tulenevad sooritatavad testid tarkvara sisemisest struktuurist ja neid nimetatakse ka White Box (valge kast) tehnikateks, kuna nende kasutamisel peab omama teadmisi kuidas tarkvara on juurutatud ning kuidas ta töötab. Üldjuhul kasutavad neid tehnikaid tarkvara arendajad ise. Struktuurse testimise tehnikad on tüüpilised moodulite testimise tehnikad, mille käigus testitakse ainult tarkvara süsteemi osi.