Eine Einführung in Continuous Delivery, Teil 3: Acceptance Test Stage

Architektur/Methoden  –  2 Kommentare

In einer Continuous Delivery Pipeline wird jeder Softwarestand in mehreren Teststufen einer Vielzahl automatisierter Tests unterzogen, um die funktionalen und nichtfunktionalen Anforderungen an die Software kontinuierlich zu überprüfen. In diesem Artikel beschreiben die Autoren den Aufbau der zweiten Teststufe, der sogenannten Acceptance Test Stage, die die Akzeptanzkriterien der Software überprüft.

Im vorhergehenden Artikel wurde der Aufbau der ersten Teststufe, der sogenannten Commit Stage, anhand eines einfachen Beispielprojekts beschrieben: In ihr kompiliert der Build-Server für jede Änderung der Software den Sourcecode der Komponenten und führt die Unit-Tests aus. Das erzeugte Binärartefakt ist eindeutig versioniert und wird für die Verwendung in folgenden Teststufen und die Installation auf Test- und Produktivsystemen in einem einfachen Repository gespeichert.

Eine Einführung in Continuous Delivery

Mit dem erfolgreichen Durchlauf der Commit Stage und der gelungenen Ausführung der Unit-Tests ist die grundlegende Funktion der Software sichergestellt. Dann und nur dann ist es sinnvoll, den Softwarestand weitergehenden Tests zu unterziehen, um festzustellen, ob er auch für einen Einsatz auf einem Produktivsystem geeignet ist. In der jetzt folgenden Teststufe, der sogenannten Acceptance Test Stage, werden dazu die Akzeptanzkriterien der Software überprüft. Hierbei geht es zum einen um das Sicherstellen der Funktionen aus Sicht der Benutzer, zum anderen aber auch um die Prüfung nichtfunktionaler Anforderungen wie der Performance der Anwendung. Die gesamte Acceptance Test Stage wird nur ausgeführt, wenn die vorhergehende Commit Stage erfolgreich war.

Der jetzige Artikel beschreibt unter Wiederverwendung des Beispielprojekts aus dem zweiten Artikel die konkreten Schritte, die zum Aufbau einer Acceptance Test Stage notwendig sind. Dazu steht wieder eine (aktualisierte) virtuelle Maschine bereit, um die Umsetzung der Aufgabe nachzuvollziehen.

In der Acceptance Test Stage fallen die folgenden Aufgaben an:

  • Deployment des Softwarestands auf eine Testumgebung,
  • Ausführen der Akzeptanztests und
  • Erzeugen von Feedback zu Regressionen an die Entwickler.

Für das Deployment der Software auf eine Testumgebung werden dabei immer die in der Commit Stage erzeugten Binärartefakte wiederverwendet. Dieses Vorgehen gewährleistet, dass man sicher sein kann, dass das auf dem Produktionssystem installierte Artefakt mit dem identisch ist, das zuvor erfolgreich durch die Pipeline gelaufen ist.

Um die notwendigen Schritte für den Aufbau einer Acceptance Test Stage zu veranschaulichen, wird nun am Beispielprojekt exemplarisch ein Oberflächentest ausgeführt.