Conventional Testing vs Object Oriented Testing
Ang Software Testing ay isa sa pinakamahalagang hakbang sa proseso ng pagbuo ng software. Tinitiyak ng pagsubok ng software na natutugunan ng binuong software ang lahat ng kinakailangan ng customer at naisasagawa nang walang mga error. Habang ang mga paradigma at diskarte sa pagpapaunlad ng software ay lumipat mula sa paunang pag-develop ng software ng waterfall patungo sa OOD/Agile at iba pang mga mas bagong konsepto, ang pagsubok ay lumipat din mula sa conventional (tradisyonal) na pagsubok patungo sa Object Oriented Testing (OOT). Ngunit dahil ginagamit pa rin ang waterfall development, ginagamit pa rin ng mga tester ang conventional testing.
Ano ang Conventional Testing?
Ang karaniwang proseso ng pagsubok ay kadalasang nagaganap kapag ang waterfall life cycle ay ginagamit para sa pagbuo ng software sa mga organisasyon. Palaging nagaganap ang maginoo na pagsubok sa yugto ng pagsubok ng ikot ng buhay, na karaniwang sumusunod sa yugto ng pag-unlad at nagpapatuloy sa yugto ng pagpapatupad. Sa yugto ng pagsubok na ito, pangunahing tatlong uri ng pagsubok ang isasagawa. Sisiguraduhin ng pagsubok ng system na natutugunan ng mga feature ng system ang mga kinakailangan ng customer na nakadokumento sa SRS (Software Requirements Specification), kadalasang gumagamit ng black box approach. Sinusuri ng integration testing ang paunang disenyo sa pamamagitan ng paggamit ng functional at decomposition approach. Ang integration testing ay batay sa istruktura ng disenyo gamit ang alinman sa top-down o bottom-up na diskarte. Panghuli, tinitiyak ng mga unit test na tama ang detalyadong disenyo.
Ano ang Object Oriented Testing?
Paggamit ng Object Oriented (OO) na pagsusuri at disenyo kasama ng Agile at iba pang mga kamakailang pamamaraan ng pagbuo ng software ay humahantong sa Object Oriented Testing. Ang pagbuo ng OO ay karaniwang nakatuon sa pag-uugali. Ginagawa ang pagsubok na may diin sa komposisyon. Nangangahulugan iyon na ang disenyo ay nilikha nang paisa-isa at pinagsama-sama upang makumpleto ang buong sistema. Dahil ang mabilis na prototyping at ilang paraan ng incremental na diskarte ay ginagamit para sa pagbuo ng OO ngayon, ang tatlong kumbensyonal na antas ng pagsubok (system, integration at unit testing) ay hindi malinaw na nakikita sa disenyo ng OO (ngunit umiiral ang mga ito sa karamihan ng mga pagkakataon). Ang pagsubok sa system (sa ilalim ng pagsubok ng OO) ay kukuha ng kaparehong (itim na kahon) na diskarte gaya ng karaniwang pagsubok at susuriin ang detalye ng kinakailangan (dahil kailangang ma-verify ang mga kinakailangan anuman ang proseso ng pagbuo). Unit testing sa ilalim ng object oriented testing ay katulad ng conventional unit testing, ngunit ang pangunahing pagkakaiba ay ang kahulugan ng unit na ginamit. Ang kasalukuyang tinatanggap na mga unit na ginagamit para sa unit testing ay mga klase at pamamaraan.
Ano ang pagkakaiba ng Conventional Testing at Object Oriented Testing?
Ang conventional testing ay ang tradisyunal na diskarte sa pagsubok na kadalasang ginagawa kapag water fall life cycle ang ginagamit para sa development, habang ginagamit ang object oriented testing kapag object oriented analysis at design ang ginagamit para sa pagbuo ng enterprise software. Mas nakatutok ang conventional testing sa decomposition at functional approach kumpara sa object oriented na pagsubok, na gumagamit ng komposisyon. Ang tatlong antas ng pagsubok (system, integration, unit) na ginagamit sa conventional testing ay hindi malinaw na tinukoy pagdating sa object oriented na pagsubok. Ang pangunahing dahilan nito ay ang OO development ay gumagamit ng incremental approach, habang ang tradisyonal na development ay sumusunod sa isang sequential approach. Sa mga tuntunin ng unit testing, ang object oriented testing ay tumitingin sa mas maliliit na unit kumpara sa conventional testing.