Konventionelles Testen gegen objektorientiertes Testen
Das Testen von Software ist 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 auch vom konventionellen (traditionellen) Testen zum objektorientierten Testen (OOT) verschoben. Da die Wasserfallentwicklung jedoch noch in Gebrauch ist, werden die Tester weiterhin konventionelle Tests durchführen.
Was ist konventionelles Testen?
Herkömmliche Testverfahren finden hauptsächlich statt, wenn der Wasserfall-Lebenszyklus für die Entwicklung von Software in Organisationen verwendet wird. Konventionelle Tests finden immer während der Testphase des Lebenszyklus statt, die normalerweise auf die Entwicklungsphase folgt und die Implementierungsphase fortsetzt. Während dieser Testphase werden hauptsächlich drei Arten von Tests durchgeführt. Durch Systemtests wird sichergestellt, dass die Systemfunktionen die in der SRS (Software Requirements Specification) dokumentierten Kundenanforderungen erfüllen, wobei normalerweise ein Black-Box-Ansatz verwendet wird. Integrationstests testen das vorläufige Design anhand eines Funktions- und Zerlegungsansatzes. Integrationstests basieren auf der Struktur des Entwurfs, wobei entweder ein Top-Down- oder ein Bottom-Up-Ansatz verwendet wird. Schließlich stellen Unit-Tests sicher, dass das detaillierte Design korrekt ist.
Was ist objektorientiertes Testen?
Die Verwendung von objektorientierter Analyse und Design (OO) zusammen mit Agile und anderen neueren Softwareentwicklungsmethoden führt zu objektorientiertem Testen. Die OO-Entwicklung konzentriert sich normalerweise auf das Verhalten. Die Tests werden mit Schwerpunkt auf der Zusammensetzung durchgeführt. Das heißt, das Design wird Stück für Stück erstellt und zusammengesetzt, um das gesamte System zu vervollständigen. Da für die OO-Entwicklung heutzutage Rapid Prototyping und ein inkrementeller Ansatz verwendet werden, sind die drei herkömmlichen Teststufen (System-, Integrations- und Komponententests) im OO-Design nicht klar sichtbar (existieren jedoch meistens). Systemtests (unter OO-Tests) verfolgen weitgehend den gleichen (Black-Box-) Ansatz wie herkömmliche Tests und überprüfen die Anforderungsspezifikation (da die Anforderungen unabhängig vom Entwicklungsprozess überprüft werden müssen). Unit-Tests unter objektorientierten Tests ähneln herkömmlichen Unit-Tests, der grundlegende Unterschied besteht jedoch in der Definition der verwendeten Einheit. Derzeit akzeptierte Einheiten, die für Unit-Tests verwendet werden, sind Klassen und Methoden.
Was ist der Unterschied zwischen konventionellem Testen und objektorientiertem Testen?
Herkömmliche Tests sind der traditionelle Testansatz, der hauptsächlich durchgeführt wird, wenn der Wasserfall-Lebenszyklus für die Entwicklung verwendet wird, während objektorientierte Tests verwendet werden, wenn objektorientierte Analysen und Designs für die Entwicklung von Unternehmenssoftware verwendet werden. Herkömmliche Tests konzentrieren sich eher auf Zerlegungs- und Funktionsansätze als auf objektorientierte Tests, bei denen Kompositionen verwendet werden. Die drei Teststufen (System, Integration, Einheit), die bei herkömmlichen Tests 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. In Bezug auf Unit-Tests werden beim objektorientierten Testen im Vergleich zu herkömmlichen Tests viel kleinere Einheiten betrachtet.