Kompiuterių programinės įrangos gamyba yra verslas, pagrįstas programinės įrangos kūrimu vartotojams. Sistemų testavimo inžinierius yra asmuo, atsakingas už programinės įrangos programų defektų patikrinimą. Jis paprastai išbando taikomąją programą, kad įsitikintų, jog sistema veikia taip, kaip buvo numatyta, prieš išleidžiant ją vartotojams rinkoje.
Istoriškai sistemos testavimą baigė programinės įrangos inžinieriai, kurie iš pradžių sukūrė programą. Ši praktika pasirodė esanti neveiksminga, nes kūrėjai buvo per daug gerai susipažinę su programine įranga ir paprastai nepastebėjo sistemos defektų. Per pastaruosius kelis dešimtmečius sistemų testavimas tapo kompiuterių mokslo disciplina.
Kokybiški programinės įrangos produktai reikalauja kruopštaus testavimo valandų. Sistemų testavimo inžinierius yra programinės įrangos kūrimo organizacijos kokybės kontrolės specialistas. Paprastai jis turi teisę atmesti sugedusią programinę įrangą. Paprastai jis dirba įmonės testavimo skyriuje ir yra laikomas paskutiniu kokybės patikrinimo tašku prieš gamybą.
Norėdami tapti sistemų testuotoju, asmuo turi suprasti pagrindinius kompiuterio programavimo principus. Jis turėtų turėti aukštąjį išsilavinimą, daugiausia dėmesio skiriant kompiuterių mokslams. Dauguma didelių įmonių turi specialią testavimo komandą, kuri specializuojasi kokybės užtikrinimo procesuose. Šią komandą paprastai sudaro testavimo vadovai, inžinieriai, techniniai rašytojai ir automatikos testuotojai.
Šiandien yra daug automatizuotų programinės įrangos programų, kurios valdo sistemų testuotojo nustatytus defektus. Ši programinė įranga yra pagrindinė testavimo komandos dokumentuotų problemų rezultatų lentelė. Testavimo inžinierius yra atsakingas už visų programinės įrangos defektų sekimą, valdymą ir pranešimą apie juos. Šis dokumentavimo procesas paprastai atliekamas su kiekvienu programinės įrangos kūrimo ir testavimo ciklu.
Kompiuterių programinės įrangos testavimas paprastai atliekamas savarankiškoje testavimo aplinkoje. Šią aplinką valdo ir konfigūruoja sistemų testavimo inžinierius. Jis yra atsakingas už aplinkos, panašios į sistemos konfigūraciją, kurią naudos vartotojai, sukūrimą. Testavimo inžinierius sukuria specialius bandymo scenarijus, kurie yra skirti išbandyti visus programos aspektus.
Geras bandymo ciklas yra toks, kuris pagrįstas teigiamais ir neigiamais mėginiais. Teigiamas testavimas – tai procesas, kurio metu sistema testuojama su gerais duomenimis, kurie atitinka apibrėžtą verslo procesą. Neigiamas testavimas – tai tokia testavimo forma, kuri užtikrina, kad su neteisingais duomenimis tinkamai elgiamasi su klaidomis. Tai laikoma išsamesniu testavimo procesu, nes bandytojas bando sulaužyti sistemą.
Daugelis sistemų testavimo inžinierių naudoja automatizavimo programinę įrangą programoms išbandyti. Ši programinė įranga yra pagrįsta testavimo scenarijais, kurie atlieka tikrąjį testą. Automatizavimo programinė įranga yra tikslesnis testavimo metodas, kuris ateityje gali būti naudojamas programos regresiniam testavimui.