Razvoj računalnog softvera zahtijeva proces dizajna, kodiranja i testiranja softverskog koda. Proces testiranja softvera sastoji se od faza testiranja jedinice, integracije, sustava i performansi. Integrirano testiranje je proces u kojem se moduli kombiniraju unutar aplikacijskog projekta i testiraju kao cijeli paket.
Testno okruženje je zajedničko okruženje dizajnirano za testiranje. Ovo okruženje je najbolje koristiti za testiranje sustava i performanse. Obično je testno okruženje odvojeno od razvojnog i proizvodnog okruženja.
Softverska aplikacija sadrži više neovisnih modula. Svaki modul je dizajniran za određenu namjenu, što ga čini samodovoljnim. Jedinično testiranje je proces provjere valjanosti modula unutar aplikacije. Ovo testiranje jedinice obično se događa prije integracijskog testiranja.
Softverski moduli su poput dijelova zagonetke koji zahtijevaju integraciju u veći okvir softverske aplikacije. Kada se moduli spoje u okvir aplikacije, provodi se integrirano testiranje. Ovaj proces testiranja potvrđuje da moduli mogu komunicirati s drugim objektima u aplikaciji.
Model testiranja je serijski proces koji započinje jediničnim testom nakon čega slijede integracijski testovi, a zatim testiranje sustava. Faza testiranja sustava omogućuje testiranje cijele aplikacije. Prije nego što se može dogoditi testiranje sustava, svi moduli moraju proći kroz integriranu fazu testiranja. Ova se faza obično događa tijekom procesa automatizirane izgradnje sustava.
Većina projekata razvoja softvera uključuje više programera. Svaki razvojni programer dobiva posebne module za izgradnju i integraciju u okvir softverske aplikacije. Kada programer napiše kod, on će svoj modul provjeriti iz zajedničkog okruženja u privatno razvojno okruženje. Ovo privatno okruženje obično se nalazi na samostalnom računalu ili prijenosnom računalu.
Prije nego što se softver može implementirati u zajedničko razvojno okruženje, mora se prevesti u binarni strojni kod. Ovaj proces kompilacije obično se naziva procesom izgradnje. Kontinuirano integracijsko testiranje je proces u kojem se od programera softvera zahtijeva da provedu integrirano testiranje tijekom procesa izgradnje razvojnog napora.
Automatizirani proces izrade uključuje izradu dokumentacije, validaciju jediničnog testa i provjeru integriranog testiranja. Ovaj slijed se ponavlja za svako ažuriranje softverskog koda. Ako dođe do pogreške tijekom procesa izgradnje, kod ostaje u privatnom okruženju. Ovaj proces integracije smanjuje pogreške u okruženju dijeljenog koda. Automatizirani procesi izgradnje smatraju se najboljom praksom za razvoj softvera.
Unutar razvoja softvera, projekt je mapa koja sadrži više modula, objekata i klasa koje čine softverski paket. Testiranje projekta je testiranje cijelog softverskog projekta. Ovo testiranje projekta dovršava se tijekom faze integracijskog testiranja.