In unserem letzten Beitrag Framework – Das Gerüst der Softwareentwickler haben wir euch in das Thema Frameworks eingeführt, eine ausführliche Beschreibung des Begriffs gegeben und dargestellt, wie das Team um we {code} it Informatikstudenten auf ihren Karriereweg aktiv unterstützt. Heute wollen wir etwas tiefer in die Materie eindringen und die unterschiedlichen Framework-Typen von Testautomatisierung mit ihren Vor- und Nachteilen vorstellen.

 

Moment. Was genau ist nochmal ein Framework?

In der Informatik ist ein Framework eine Schichtstruktur, die angibt, welche Programme gebaut werden können oder sollten und wie diese zusammenhängen würden. Es stellt bestimmte Funktionen als Teil einer größeren Softwareplattform zur Verfügung, um die Entwicklung von Produkten, Lösungen und anwendungsspezifischer Software zu erleichtern. Ein Framework wird als Kombination betrachtet und ist in der Regel umfassender als ein Protokoll und präskriptiver als eine Struktur.

 

Weit verbreitete Frameworks zur Testautomatisierung mit ihren Vor- und Nachteilen:

Bevor wir in die gängigsten Automatisierungsframeworks eintauchen, wollen wir zunächst klären, was ein Framework zur Testautomatisierung eigentlich ist. In einfachen Worten dienen Testautomatisierungstools zur Erstellung und Durchführung von automatisierten Testfällen. Unter anderem unterstützen sie den Tester dabei, Ressourcen effizient zu nutzen. Automatisierte Code-Tests liefern Daten, validieren Testergebnisse, erhöhen die Tiefe und den Umfang der Tests, um die Code-Qualität zu optimieren. Sobald ein Skript erstellt wurde, das all dies tut, reduziert es die Ausführungs- und Berichtszeit. Je ausgereifter ein Automatisierungsskript ist, desto besser sind auch die Erfolgsaussichten.

1) Linear Automation Framework:

Dank des unkomplizierten Designs, müssen Tester keinen Code schreiben, um Funktionen zu erstellen – sie zeichnen jeden Schritt wie Navigation, Benutzereingaben oder Checkpoints einfach manuell auf. Das einfachste Framework ist am besten ausgestattet, um Situationen zu überprüfen in denen der Wunsch besteht einen gleichwertigen Prozess mehrfach zu wiederholen. Einige Anwendungsbeispiele hierfür sind Auftragsverwaltungssysteme oder Aktenverwaltung.
• Vorteile: Hierbei handelt es sich um eine der schnellsten Möglichkeiten Testskripte zu erstellen. Es sind keine fortgeschrittenen Programmierkenntnisse erforderlich und Informatiker müssen nicht zwangsweise benutzerdefinierte Codes schreiben.
• Nachteile: Mit diesem Framework entwickelte Skripte können nicht wiederverwendet werden. Die Wartung ist sehr schwierig und es können Synchronisationsprobleme auftreten, da die Daten im Testskript fest codiert sind und jede Änderung an der Anwendung eine Menge Nacharbeit erfordert.

2) Modul Based Testing Framework:

Die Implementierung eines modularen Frameworks erfordert, dass die Tester die zu testende Anwendung in einzelne Module, Funktionen oder Abschnitte aufteilen, die jeweils einzeln getestet werden. Nach der Aufteilung der Anwendung wird für jedes Modul ein Testskript erstellt und anschließend zu einem größeren Test zusammengefasst.
• Vorteile: Bei Änderungen der einzelnen Abschnitte wird das übergreifende Modul nicht beeinflusst. Die Implementierung von Testfällen nimmt weniger Zeit und Aufwand in Anspruch, da Testskripte wiederverwendet werden können.
• Nachteile: Die Daten sind fest im Testskript codiert, da die Tests separat ausgeführt werden. Es können nicht mehrere Datensätze verwenden werden.

3) Library Architecture Testing Framework:

Die Bibliotheksarchitektur basiert auf dem modularen Framework, hat aber einige zusätzliche Funktionen. Hierbei besteht der Ansatz darin, ähnliche Aufgaben innerhalb der Skripte zu identifizieren und später nach Funktionen zu gruppieren, anstatt die zu testende Anwendung in verschiedene Testskripte aufzuteilen. Es wird eine gewöhnliche Bibliothek erstellt, die die üblichen Funktionen für die zu prüfende Anwendung enthält und bei Bedarf verwendet werden kann.
• Vorteile: Testaufbewahrung und Skalierbarkeit sind einfacher und kostengünstiger. Das Framework trägt zu einer höheren Wiederverwendbarkeit bei, da es eine Bibliothek mit gemeinsamen Funktionen gibt, die von mehreren Testskripten verwendet werden können.
• Nachteile: Die Testdaten sind auch hier fest im Skript codiert. Änderungen an den Daten erfordern Änderungen an den Skripten. Für das Schreiben und Analysieren der gemeinsamen Funktionen ist technisches Know-how erforderlich.

4) Data-Driven Framework:

Bei diesem Framework werden die notwendigen Eingaben und erwarteten Ergebnisse in separaten Dateien gespeichert. Jede Aktion, die sich aus einer externen Quelle (wie z.B. Excel) ergibt, wird als Aufruf der Informationen erkannt.
• Vorteile: Tests können mit mehreren Datensätzen durchgeführt werden. Die Testdaten werden separat gespeichert, sodass es einfacher ist ein anderes Framework – als das Prüfskript – zu erstellen.
• Nachteile: Der Aufbau nimmt viel Zeit in Anspruch. Es müssen externe Datenquellen identifiziert, formuliert und in Code geschrieben werden, der die Tests nahtlos mit den externen Datenquellen verbindet.

5) Keyword-Driven Framework:

Hierbei werden sämtliche Funktionen der zu testenden Anwendung in einer Tabelle dargestellt. Bei diesem Ansatz werden die Schlüsselwörter auch in einer externen Datenquelle gespeichert, sodass sie unabhängig von dem automatisierten Testwerkzeug sind. Sobald die Tabelle eingerichtet ist, müssen die Tester nur noch den Code schreiben, der anhand der Schlüsselwörter die erforderliche Aktion auslöst.
• Vorteile: Schlüsselwörter als auch der Code an sich können über mehrere Testskripte hinweg wiederverwendet werden. Testfälle können unabhängig von der zu testenden Anwendung erstellt werden und sind einfach zu ändern.
• Nachteile: Das Framework ist zeitaufwendig, komplex und ist mit hohen Anfangskosten verbunden. Schlüsselwörter können bei der Skalierung eines Testvorgangs problematisch sein.

6) Hybrid Testing Framework:

Wie der Name schon andeutet, ist ein hybrides Framework eine Kombination aus den zuvor genannten Frameworks. Es kombiniert die Vorteile und mildert die Schwächen aller integrierten Frameworks. Dabei sind sämtliche Anwendungen und jeder Prozess anders.
• Vorteile: Ein hybrides Framework kann leichter implementiert und erweitert werden, um die besten Testergebnisse zu erzielen. Es ist unabhängig von Testdesign, Technologie oder Plattform.

 

Wenn ihr euch für ein automatisiertes Framework entscheidet, solltet ihr darauf achten, dass es möglichst flexibel ist und eine Vielzahl von Anwendungen und Sprachen unterstützt.

Kommentar schreiben