Konventionelles Testen vs. objektorientiertes Testen
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 verlagert haben, hat sich auch das Testen von konventionellem (traditionellem) Testen zu objektorientiertem Testen (OOT) verlagert. Da die Wasserfallentwicklung jedoch immer noch im Einsatz ist, wird konventionelles Testen von den Testern immer noch verwendet.
Was ist konventionelles Testen?
Herkömmliche Testprozesse finden hauptsächlich statt, wenn der Wasserfall-Lebenszyklus für die Entwicklung von Software in Organisationen verwendet wird. Herkömmliches Testen findet immer während der Testphase des Lebenszyklus statt, die sich in der Regel an die Entwicklungsphase anschließt und in die Implementierungsphase übergeht. 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, normalerweise unter Verwendung eines Black-Box-Ansatzes. Integrationstests testen das vorläufige Design, indem sie einen funktionalen und einen Dekompositionsansatz verfolgen. Integrationstests basieren auf der Struktur des Designs, wobei entweder ein Top-Down- oder ein Bottom-Up-Ansatz verwendet wird. Schließlich stellen Einheitentests sicher, dass das detaillierte Design korrekt ist.
Was ist objektorientiertes Testen?
Die Verwendung von objektorientierter (OO) Analyse und Design zusammen mit agilen und anderen neueren Softwareentwicklungsmethoden führt zu objektorientiertem Testen. Die OO-Entwicklung konzentriert sich normalerweise auf das Verh alten. Die Prüfung erfolgt mit dem Schwerpunkt auf Zusammensetzung. Das bedeutet, dass Design Stück für Stück erstellt und zusammengefügt wird, um das vollständige System zu vervollständigen. Da heute für die OO-Entwicklung Rapid Prototyping und irgendeine Form von inkrementellem Ansatz verwendet werden, sind die drei herkömmlichen Testebenen (System-, Integrations- und Einheitentests) im OO-Design nicht klar sichtbar (aber sie existieren meistens). Systemtests (unter OO-Tests) verfolgen weitgehend den gleichen (Black-Box-)Ansatz wie herkömmliches Testen und überprüfen die Anforderungsspezifikation (weil Anforderungen unabhängig vom Entwicklungsprozess verifiziert werden müssen). Unit-Tests unter objektorientiertem Testen ähneln konventionellen Unit-Tests, der grundlegende Unterschied besteht jedoch in der Definition der verwendeten Unit. Derzeit akzeptierte Einheiten, die für Komponententests verwendet werden, sind Klassen und Methoden.
Was ist der Unterschied zwischen konventionellem Testen und objektorientiertem Testen?
Konventionelles Testen ist der traditionelle Testansatz, der meistens durchgeführt wird, wenn der Wasserfalllebenszyklus 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. Herkömmliches Testen konzentriert sich mehr auf Dekomposition und funktionale Ansätze im Gegensatz zu objektorientiertem Testen, das Komposition verwendet. Die beim konventionellen Testen verwendeten drei Testebenen (System, Integration, Unit) 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 betrachtet objektorientiertes Testen viel kleinere Einheiten im Vergleich zu konventionellem Testen.