1
 
 
Profil
In deinem persönlichen Profilbereich kannst du den Status deiner Bewerbung einsehen, unvollständige Bewerbungen zwischenspeichern und aktuelle News und Events einsehen
16. März 2026

Terraform-Tipps:
Infrastructure-as-Code

mit Terratest absichern 
– Teil 3

Worum geht es in diesem Artikel?

Der dritte Teil der Terraform-Reihe bezieht sich auf das Testen von Terraform Infrastructure-as-Code (IaC). In der OTTO IT setzen viele Teams Terraform ein, um ihre Cloud-Infrastruktur effektiv zu orchestrieren, zu automatisieren und zu verwalten. Wie auch beim normalen Anwendungscode ist es entscheidend, das Testen nicht außer Acht zu lassen, insbesondere wenn es um Terraform-Module geht. So kann sichergestellt werden, dass die Deployments stabil und fehlerfrei sind. In diesem Beitrag erfährst du die Grundlagen des Testens mit Terraform und erhältst praktische Best Practices für deinen Workflow.

Terraform-Tipps-Serie:

Warum ist das Testen von IaC wichtig?

Tests im IaC-Kontext stellen sicher, dass Terraform-Module wie gewünscht funktionieren, bevor sie produktiv eingesetzt werden. Sie helfen dabei:

• Fehler frühzeitig zu erkennen
• die Wartbarkeit des Codes zu verbessern
• die Zuverlässigkeit von Deployments zu erhöhen

Automatisierte Tests verhindern, dass Änderungen an der Infrastruktur zu unerwarteten Problemen führen – und damit zu teuren Ausfällen.

Wie unterscheidet sich das Testen von Terraform von klassischen Applikationstests?

Während sich klassische Tests auf die Businesslogik konzentrieren, erfordert das Testen von Infrastrukturcode oft das Bereitstellen echter Cloud-Ressourcen. Ein vollständiger End-to-End-Test ist jedoch meist zu zeit- und kostenintensiv. Reine Unit-Tests reichen wiederum nicht aus.

Die Lösung: Teile deine Architektur in Module auf und teste diese einzeln. So entsteht ein iterativer, kosteneffizienter Entwicklungsansatz, der Fehler frühzeitig erkennt und die Qualität sichert.

Welche Tools gibt es für das Testen von Infrastructure-as-Code?

Es gibt viele Testing-Frameworks, die beim Testen von Infrastructure-as-Code unterstützen können. Dazu zählen neben der Hashicorp-Variante z.B. Terratest oder Kitchen-Terraform.
In diesem Beitrag konzentrieren wir uns auf Terratest, ein beliebtes Go-basiertes Framework für automatisierte Tests von Terraform-Modulen.

Testing Terraform-Files – Schritt für Schritt

Bestimme deine Testumgebung

Beim Testen werden Ressourcen erstellt und wieder gelöscht. Um unbeabsichtigte Löschungen zu vermeiden, empfiehlt sich eine separate Entwicklungsumgebung, die von Dev, Stage und Live getrennt ist.

Best Practices:

• Jeder Test sollte unabhängig sein und keinen gemeinsamen State verwenden.
• Nutze separate Service-Accounts für jede Testausführung.
• Beispielhafte Verzeichnisstruktur:

Terraform-Modulstruktur mit Terratest-Tests
Terraform-Modulstruktur mit Terratest-Tests

Starte mit „go test“

Installiere zunächst Go und richte Terratest gemäß QuickStart ein. Danach kannst du deine Tests mit dem Befehl “go test” ausführen und prüfen, ob die Infrastruktur wie erwartet provisioniert wird.

Schreibe deine Tests

In deinen Testdateien definierst du Assertions, die die erzeugten Ressourcen überprüfen – ähnlich wie manuell durchgeführte Checks (z. B. „Ist Port 22 offen?“).

Typische Assertions:

• Existenz bestimmter Ressourcen (z. B. EC2-Instanz, Security Group)
• Eigenschaften der Ressourcen (z. B. SSH-Zugriff erlaubt)
• Validierung der Outputs des Moduls

Beispiele für AWS, Google und Azure findest du hier.

Führe deine Tests aus

Nach dem Schreiben der Tests erfolgt die Ausführung per go test. Das Tool liefert direkt Feedback, ob die Infrastruktur korrekt bereitgestellt wurde. Fehler werden sofort angezeigt – das erleichtert das Troubleshooting erheblich.

Automatisiere deine Tests mit CI/CD

Damit Tests ein fester Bestandteil deines Workflows werden, integriere sie in deine CI/CD-Pipeline – z. B. mit GitHub Actions.

Best-Practices für die Integration von Terratest in CI/CD:

• Verwende eindeutige Prä-/Suffixes für Ressourcen, um parallele Testläufe zu entkoppeln.
• Nutze ein Remote-Backend (GCP Storage oder AWS S3) für den Terraform-State
• Setze feste Test-Timeouts, um hängende Jobs zu vermeiden.
• Automatisiere das Aufräumen mit „terraform destroy“, um unnötige Kosten zu vermeiden.

Hier ist ein einfaches Beispiel für eine GitHub Actions-Konfiguration.

Ausblick

Tests sind ein zentraler Bestandteil einer zuverlässigen und skalierbaren Infrastructure-as-Code-Strategie. Egal ob du gerade erst mit Terraform startest oder bestehende Prozesse optimieren willst – automatisierte Tests und ihre Integration in CI/CD sorgen für Qualität und Stabilität deiner Infrastruktur.

FAQ

Was ist Terratest?
Terratest ist ein Go-basiertes Framework zum automatisierten Testen von Terraform-Modulen und Infrastructure-as-Code-Deployments.

Wie testet man Terraform-Module?
Terraform-Module können mit Tools wie Terratest getestet werden, indem Infrastruktur bereitgestellt, überprüft und anschließend wieder zerstört wird.

Warum ist Terraform Testing wichtig?
Automatisierte Tests erkennen Fehler früh und verhindern fehlerhafte Infrastruktur-Deployments.

Möchtest du Teil des Teams werden?

13 Personen gefällt das

0Noch keine Kommentare

Dein Kommentar
Antwort auf:  Direkt auf das Thema antworten

Geschrieben von

Nina Braunger
Nina Braunger
Software Entwicklerin

Ähnliche Beiträge

Gespeichert!

We want to improve out content with your feedback.

How interesting is this blogpost?

We have received your feedback.