Tavapärane testimine vs objektorienteeritud testimine
Tarkvara testimine on tarkvara arendusprotsessi üks olulisemaid etappe. Tarkvara testimine tagab, et väljatöötatud tarkvara rahuldab kõik kliendi nõudmised ja töötab vigadeta. Kuna tarkvaraarenduse paradigmad ja tehnikad on nihkunud algsest kosetarkvara arendusest OOD/Agile ja muude uuemate kontseptsioonide poole, on ka testimine nihkunud tavapäraselt (traditsiooniliselt) testimiselt objektorienteeritud testimise (OOT) poole. Kuid kuna jugaarendus on endiselt kasutusel, kasutavad testijad endiselt tavapärast testimist.
Mis on tavaline testimine?
Tavapärane testimisprotsess toimub enamasti siis, kui kose elutsüklit kasutatakse organisatsioonide tarkvara arendamiseks. Tavaline testimine toimub alati elutsükli testifaasis, mis tavaliselt järgneb arendusfaasile ja jätkub juurutamise faasis. Selle testimisetapi jooksul viiakse läbi peamiselt kolme tüüpi testid. Süsteemi testimine tagab, et süsteemi funktsioonid vastavad SRS-is (Software Requirements Specification) dokumenteeritud kliendi nõuetele, kasutades tavaliselt musta kasti lähenemisviisi. Integratsioonitestimine testib esialgset disaini, kasutades funktsionaalset ja lagunevat lähenemisviisi. Integratsioonitestimine põhineb disaini ülesehitusel, kasutades kas ül alt-alla või alt-üles lähenemisviisi. Lõpuks kontrollivad seadmetestid, et detailne disain on õige.
Mis on objektorienteeritud testimine?
Objektorienteeritud (OO) analüüsi ja disaini kasutamine koos Agile'i ja muude hiljutiste tarkvaraarenduse metoodikatega viivad objektorienteeritud testimiseni. OO areng on tavaliselt suunatud käitumisele. Testimisel on rõhk kompositsioonil. See tähendab, et disain luuakse tükkhaaval ja koostatakse kogu süsteemi lõpuleviimiseks. Kuna tänapäeval kasutatakse OO arendamiseks kiiret prototüüpimist ja mingit järkjärgulist lähenemist, ei ole kolm tavapärast testimise taset (süsteem, integratsioon ja üksuse testimine) OO disainis selgelt nähtavad (kuid need on enamasti olemas). Süsteemi testimine (OO-testimise all) kasutab suures osas sama (must kasti) lähenemisviisi kui tavaline testimine ja kontrollib nõuete spetsifikatsiooni (sest nõudeid tuleb kontrollida arendusprotsessist sõltumata). Objektorienteeritud testimise ühiktestimine sarnaneb tavapärase ühiktestiga, kuid põhiline erinevus seisneb kasutatava ühiku määratluses. Üksuste testimisel kasutatavad praegu aktsepteeritud ühikud on klassid ja meetodid.
Mis vahe on tavapärasel testimisel ja objektorienteeritud testimisel?
Tavapärane testimine on traditsiooniline lähenemine testimisele, mida tehakse enamasti siis, kui arenduseks kasutatakse vesilanguse elutsüklit, samas kui objektorienteeritud testimist kasutatakse siis, kui ettevõtte tarkvara arendamiseks kasutatakse objektorienteeritud analüüsi ja disaini. Tavapärane testimine keskendub rohkem lagunemisele ja funktsionaalsetele lähenemisviisidele, mitte objektorienteeritud testimisele, mis kasutab kompositsiooni. Tavalises testimises kasutatavad kolm testimise taset (süsteem, integratsioon, üksus) ei ole objektorienteeritud testimise puhul selgelt määratletud. Selle peamiseks põhjuseks on see, et OO arendus kasutab inkrementaalset lähenemist, samas kui traditsiooniline arendus järgib järjestikust lähenemist. Üksustestimise osas vaadeldakse objektorienteeritud testimisel palju väiksemaid ühikuid võrreldes tavapärase testimisega.