Konventionelle Prüfung vs. objektorientierte Prüfung
Softwaretests sind einer der wichtigsten Schritte im Softwareentwicklungsprozess. Softwaretests stellen sicher, dass die entwickelte Software alle Kundenanforderungen erfüllt und fehlerfrei ausgeführt wird. Da sich die Paradigmen und Techniken der Softwareentwicklung von der anfänglichen Wasserfall-Softwareentwicklung zu OOD / Agile und anderen neueren Konzepten verschoben haben, hat sich das Testen von herkömmlichen (traditionellen) Tests hin zu Object Oriented Testing (OOT) verschoben. Da die Entwicklung von Wasserfällen jedoch noch immer in Gebrauch ist, werden von den Testern weiterhin herkömmliche Tests verwendet.
Was ist konventionelle Prüfung??
Konventionelle Testverfahren finden meistens statt, wenn der Wasserzyklus für die Entwicklung von Software in Organisationen verwendet wird. Konventionelle Tests finden immer in der Testphase des Lebenszyklus statt, die normalerweise der Entwicklungsphase folgt und die Implementierungsphase durchläuft. Während dieser Testphase werden hauptsächlich drei Arten von Tests durchgeführt. Systemtests stellen sicher, dass die Systemfunktionen die in der SRS (Software Requirements Specification) dokumentierten Kundenanforderungen erfüllen, wobei in der Regel ein Black-Box-Ansatz verwendet wird. Integrationstests testen das vorläufige Design anhand eines Funktions- und Dekompositionsansatzes. Integrationstests basieren auf der Struktur des Designs, wobei entweder ein Top-Down- oder ein Bottom-Up-Ansatz verwendet wird. Schließlich stellen Komponententests sicher, dass das detaillierte Design korrekt ist.
Was ist objektorientiertes Testen??
Die Verwendung von objektorientierter (OO) Analyse und Design sowie Agile und andere neuere Softwareentwicklungsmethoden führen zu objektorientiertem Testen. Die OO-Entwicklung konzentriert sich normalerweise auf das Verhalten. Die Tests werden mit Schwerpunkt auf die Komposition durchgeführt. Das bedeutet, dass Design Stück für Stück erstellt und zusammengesetzt wird, um das gesamte System zu vervollständigen. Da für die OO-Entwicklung heutzutage Rapid Prototyping und eine Art inkrementeller Ansatz verwendet wird, sind die drei konventionellen Teststufen (System-, Integrations- und Komponententests) im OO-Design nicht eindeutig sichtbar (sie sind jedoch meist vorhanden). Systemtests (im Rahmen von OO-Tests) verwenden weitgehend den gleichen (Black-Box-) Ansatz wie herkömmliche Tests und überprüfen die Anforderungsspezifikationen (da Anforderungen unabhängig vom Entwicklungsprozess überprüft werden müssen). Das Testen von Einheiten unter objektorientierten Tests ähnelt dem herkömmlichen Testen von Einheiten. Der grundlegende Unterschied besteht jedoch in der Definition der verwendeten Einheit. Derzeit akzeptierte Einheiten für Einheitentests sind Klassen und Methoden.
Was ist der Unterschied zwischen konventionellen Tests und objektorientierten Tests??
Herkömmliche Tests sind der traditionelle Ansatz für Tests, die meistens durchgeführt werden, wenn der Lebenszyklus eines Wasserfalls für die Entwicklung verwendet wird, während objektorientiertes Testen verwendet wird, wenn objektorientierte Analyse und Design für die Entwicklung von Unternehmenssoftware verwendet werden. Konventionelle Tests konzentrieren sich eher auf Zerlegungs- und Funktionsansätze als auf objektorientiertes Testen, bei dem Komposition verwendet wird. Die drei Testebenen (System, Integration, Einheit), die beim konventionellen Testen verwendet werden, sind beim objektorientierten Testen nicht klar definiert. Der Hauptgrund dafür ist, dass die OO-Entwicklung einen inkrementellen Ansatz verwendet, während die traditionelle Entwicklung einem sequentiellen Ansatz folgt. Bei der Prüfung von Einheiten werden bei objektorientierten Tests im Vergleich zu herkömmlichen Tests wesentlich kleinere Einheiten betrachtet.