Arvutitarkvara tootmine on äri, mis põhineb tarbijatele mõeldud tarkvararakenduste arendamisel. Süsteemide testimise insener on isik, kes vastutab tarkvararakenduste defektide kontrollimise eest. Tavaliselt testib ta rakendust, et tagada süsteemi kavandatud toimimine, enne kui see turule jõuab.
Ajalooliselt viisid süsteemi testimise lõpule tarkvarainsenerid, kes rakenduse algselt lõid. See praktika osutus ebatõhusaks, kuna arendajad olid tarkvaraga liiga lähedalt tuttavad ja jätsid tavaliselt süsteemivigade vahele. Viimase paarikümne aasta jooksul on süsteemi testimisest saanud arvutiteaduse distsipliin.
Kvaliteetsed tarkvaratooted nõuavad tunde ranget testimist. Süsteemide testimise insener on tarkvaraarendusorganisatsiooni kvaliteedikontrolli spetsialist. Tavaliselt on tal õigus defektne tarkvara tagasi lükata. Tavaliselt töötab ta ettevõtte testimisosakonnas ja teda peetakse viimaseks kvaliteedikontrolli punktiks enne tootmist.
Süsteemitestide inseneriks saamiseks peaks inimene mõistma põhilisi arvutiprogrammeerimise põhimõtteid. Tal peaks olema kolledži haridus, rõhuasetusega arvutiteadusel. Enamikul suurettevõtetel on spetsiaalne testimismeeskond, mis on spetsialiseerunud kvaliteedi tagamise protsessidele. Sellesse meeskonda kuuluvad tavaliselt testimisjuhid, insenerid, tehnilised kirjutajad ja automatiseerimise testijad.
Tänapäeval on palju automatiseeritud tarkvararakendusi, mis haldavad süsteemitestide inseneri leitud defekte. See tarkvara on testimismeeskonna dokumenteeritud probleemide põhitulemuskaart. Testimisinsener vastutab kõigi tarkvararakenduses leitud defektide jälgimise, haldamise ja nendest teatamise eest. Seda dokumenteerimisprotsessi tehakse tavaliselt iga tarkvara koostamise ja testimise tsükliga.
Arvutitarkvara testimine toimub tavaliselt iseseisvas testimiskeskkonnas. Seda keskkonda haldab ja konfigureerib süsteemide testimise insener. Ta vastutab sellise keskkonna loomise eest, mis sarnaneb tarbijate kasutatavale süsteemikonfiguratsioonile. Testimisinsener loob spetsiaalsed testiskriptid, mis on mõeldud rakenduse kõigi tahkude testimiseks.
Hea testimistsükkel on selline, mis põhineb positiivsetel ja negatiivsetel testitavatel proovidel. Positiivne testimine on protsess, mille käigus testitakse süsteemi heade andmetega, mis järgivad määratletud äriprotsessi. Negatiivne testimine on testimise vorm, mis tagab vigade korrektse käsitlemise kehtetute andmetega. Seda peetakse üksikasjalikumaks testimisprotsessiks, kuna testija üritab süsteemi murda.
Enamik süsteemide testijaid kasutab rakenduste testimiseks automatiseerimistarkvara. See tarkvara põhineb testimisskriptidel, mis sooritavad tegeliku testi. Automatiseerimistarkvara on täpsem testimismeetod, mida saab tulevikus kasutada rakenduse regressioonitestimiseks.