Konvenční testování vs. objektově orientované testování
Testování softwaru je jedním z nejdůležitějších kroků v procesu vývoje softwaru. Testování softwaru zajišťuje, že vyvinutý software splňuje všechny požadavky zákazníků a provádí se bez chyb. Protože se paradigmata a techniky vývoje softwaru posunuly z počátečního vývoje vodopádového softwaru na OOD / Agile a další novější koncepce, testování se také posunulo od konvenčního (tradičního) testování k objektově orientovanému testování (OOT). Protože se však vývoj vodopádů stále používá, testeři stále používají konvenční testování.
Co je konvenční testování?
Konvenční testovací proces probíhá většinou, když se životní cyklus vodopádu používá pro vývoj softwaru v organizacích. Konvenční testování vždy probíhá během zkušební fáze životního cyklu, která obvykle následuje vývojovou fázi a pokračuje ve fázi implementace. Během této fáze testování budou provedeny hlavně tři druhy testování. Testování systému zajistí, aby funkce systému vyhovovaly požadavkům zákazníka zdokumentovaným ve specifikaci SRS (Software Requirements Specification), obvykle s využitím přístupu black box. Testování integrace testuje předběžný návrh pomocí funkčního a dekompozičního přístupu. Integrační testování je založeno na struktuře návrhu pomocí přístupu shora dolů nebo zdola nahoru. Nakonec jednotkové testy zajistí správný podrobný návrh.
Co je to objektově orientované testování?
Použití objektově orientované (OO) analýzy a návrhu spolu s Agile a dalšími nejnovějšími metodikami vývoje softwaru vedou k objektově orientovanému testování. Vývoj OO je obvykle zaměřen na chování. Testování se provádí s důrazem na složení. To znamená, že design je vytvořen kousek po kousku a skládá se dohromady, aby dokončil celý systém. Protože pro vývoj OO se dnes používá rychlý prototyp a určitá forma inkrementálního přístupu, tři konvenční úrovně testování (testování systému, integrace a testování jednotek) nejsou v designu OO jasně viditelné (ale většinou existují). Testování systému (v rámci testování OO) bude mít téměř stejný přístup (černé pole) jako konvenční testování a bude kontrolovat specifikaci požadavků (protože požadavky musí být ověřeny bez ohledu na proces vývoje). Testování jednotek v rámci objektově orientovaného testování je podobné klasickému testování jednotek, ale základním rozdílem je definice použité jednotky. V současné době používané jednotky používané pro testování jednotek jsou třídy a metody.
Jaký je rozdíl mezi konvenčním testováním a objektově orientovaným testováním?
Konvenční testování je tradiční přístup k testování, který se většinou provádí, když se pro vývoj používá životní cyklus pádu vody, zatímco objektové testování se používá, když se pro vývoj podnikového softwaru používá objektově orientovaná analýza a návrh. Konvenční testování se zaměřuje více na rozklad a funkční přístupy, na rozdíl od objektově orientovaného testování, které využívá složení. Tři úrovně testování (systém, integrace, jednotka) používané v konvenčním testování nejsou jasně definovány, pokud jde o objektově orientované testování. Hlavním důvodem je to, že vývoj OO používá inkrementální přístup, zatímco tradiční vývoj následuje sekvenční přístup. Z hlediska testování jednotek se objektově orientované testování zaměřuje na mnohem menší jednotky ve srovnání s konvenčním testováním.