Continuous Testing

4 Tipps für die erfolgreiche DevOps-Umsetzung

Mit vier Tipps rund um das Prinzip des „Continuous Testing“ lässt sich eine erfolgreiche DevOps-Umsetzung realisieren.

Continuous Testing

Mit „Continuous Testing“ lässt sich eine erfolgreiche DevOps-Umsetzung realisieren.

In der Vergangenheit wurde häufig von einem nötigen Kulturwandel in der Unternehmens-IT als Basis für eine erfolgreiche DevOps-Umsetzung gesprochen. Eine umfassende Kommunikation zwischen den Entwicklern und dem IT-Betrieb (Operations), Teamfähigkeit und Offenheit für Veränderungen spielen hier eine wichtige Rolle. Doch dies allein genügt nicht, um eine DevOps-Strategie erfolgreich umzusetzen: Erst die enge Verknüpfung von Entwicklung, Testing und Operations über kontinuierliche Feedback-Schleifen verhilft IT-Organisationen zu einer effektiveren Zusammenarbeit, einer kürzeren Time-to-Market und steigert gleichzeitig die operative Agilität.

DevOps unterstützt IT-Administratoren bei der Identifizierung von Ineffizienzen und der Problemlösung in enger Abstimmung mit der Software-Entwicklung und Qualitätssicherung. Dabei kann die Methode des Continuous Testings eine wichtige Rolle einnehmen: Durch kontinuierliches Testen von Entwicklungsbeginn an können Bugs sofort aufgespürt und beseitigt werden.

Grundsätzlich handelt es sich bei Continuous Testing um einen schnellen, kontinuierlichen Feedback-Mechanismus. Mit Hilfe von automatisierten Feedback-Schleifen wird die Applikationslieferung an jedem definierten Kontrollpunkt im Software-Entwicklungszyklus getrieben. Continuous Testing wirkt hier wie ein automatischer Prüfpunkt für den folgenden Prozess in der Lieferkette. Ist die Prüfung nicht erfolgreich, so wird der nächste Schritt im Prozess erst ausgelöst, wenn entsprechende Korrekturmaßnahmen eingeleitet worden sind. So bleiben die Fehlerbehebungskosten klein und die Qualität wächst mit jeder Korrekturlieferung. Die automatisierten Feedback-Schleifen fördern den ständigen Austausch zwischen Entwicklungs-, Testing- und Betriebsteams, so dass bei Inbetriebnahme der Applikation nur noch transparente, akzeptable Risiken vorhanden sind.

4 Tipps für erfolgreiches Continuous Testing

Damit Unternehmen die Qualitätssteigerung bei der Software-Entwicklung auch wirklich nutzen können, muss ein reibungsloser Ablauf von Continuous Testing garantiert sein. Folgende Schritte sollten daher bei der Umsetzung beachtet werden:

1. Integration der Automatisierungs-Suite: Regressionstests werden während der Applikationsentwicklung laufend angepasst und automatisiert. Die Integration der Automatisierungs-Suite in ein Build-Deployment-Tool ermöglicht nicht nur eine zentral gesteuerte Ausführung der Tests, sondern auch ein zentrales Reporting.

2. Automatisiertes Speichern von Testresultaten: Das Speichern von Testresultaten in Test-Management-Tools oder in einer geteilten Ordnerstruktur dient dazu, eine zentrale Informationsquelle für alle am Projekt beteiligten Personen zu schaffen. Hier laufen Informationen über die Testaktivitäten sowie deren Ergebnisse zusammen, so dass sich jeder einen Überblick über die aktuelle Qualität der Software in den unterschiedlichen Entwicklungs- und Teststufen verschaffen kann.

3. Implementieren einer virtuellen Service-Infrastruktur: Die Bereitstellung einer virtuellen Service-Infrastruktur garantiert die hochverfügbare Verifikation von implementierten oder benutzten Schnittstellen und ermöglicht eine hohe Testeffizienz.

4. Klassifizierung in multiple Test-Schichten: Damit für jeden Kontrollpunkt schnelleres Feedback eingeht, sollten die vorhandenen automatisierten Testfälle in mehrfache Test-Schichten aufgeteilt werden.

Hierbei kommen die gängige Testmethoden zum Einsatz:

  • Smoke-Tests: Bei Smoke-Tests handelt es sich um eine erste oberflächliche Überprüfung der Programmfunktionen, die gewährleistet, dass alle Systemfunktionen in Betrieb sind und nicht durch Defekte blockiert werden.
  • Vollständiger Regressionstest: Ausgesuchte Testfälle werden wiederholt, um sicherzustellen, dass Modifikationen in bereits getesteten Teilen der Software keine neuen Fehler verursachen. Der Regressionstest gehört zu den dynamischen Testtechniken. Aufgrund des Wiederholungscharakters und der Häufigkeit dieser Wiederholungen ist es sinnvoll, wenn hier eine Testautomatisierung zum Einsatz kommt. Durch die parallele Ausführung von automatisierten Tests durch mehrere Threads oder Maschinen wird die Feedback-Zeit so kurz wie möglich gehalten.
  • Intelligente Regression: Hat man es dennoch mit verlängerten Feedback-Zyklen zu tun, ist also die Ausführungszeit für den vollständigen Regressionstest zu hoch, sollte die Regressionsausführung risikobasiert verkürzt und mit wiederkehrenden Frequenzen auf nachts oder das Wochenende verschoben werden.
  • Health Check: Eine automatisierte Kontrolle stellt sicher, dass die Dienste nach dem Deployment auch wirklich laufen.

Testing-Teams spielen bei der Umsetzung von DevOps-Strategien eine zentrale Rolle: Die erfolgreiche Implementierung von Continuous Testing als erster Schritt der Strategie, fördert den engen Austausch von Entwicklung und Operations. Fehler können noch vor Auslieferung der Software behoben werden. Dies spart dem IT-Betrieb nicht nur viel Zeit bei der Fehlerbehebung nach Release der Applikation, auch das Unternehmen vermeidet einen finanziellen Mehraufwand, der durch den Ausfall der neuen Software entstehen würde.

* Der Autor Robert Bonomo ist Leiter Quality Engineering & Assurance (QE&A) für die D-A-CH Region und Ost-Europa bei Cognizant.

Bildquelle: Thinkstock/iStock

©2019Alle Rechte bei MEDIENHAUS Verlag GmbH

Unsere Website verwendet Cookies, um Ihnen den bestmöglichen Service zu bieten. Durch die weitere Nutzung der Seite stimmen Sie der Verwendung zu. Weitere Infos finden Sie in unserer Datenschutzerklärung.

ok