DevOps: Tests im Entwicklungsprozess automatisieren

Dank DevOps soll Software schneller beim Nutzer ankommen. Doch manuelle Tests stehen dem noch immer im Weg. iX zeigt, wie sie sich automatisieren lassen.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen
DevOps: Tests im Entwicklungsprozess automatisieren
Lesezeit: 2 Min.

Wer DevOps einführt, sollte ebenfalls alle Tests automatisieren. Oft geschieht das jedoch bloß beim Prüfen funktionaler Anforderungen, andere Tests wie im Bereich der Sicherheit führen Unternehmen wie gehabt manuell durch. Dies widerspricht allerdings der Idee hinter DevOps. Rudolf Grötz rät Entwicklern in der aktuellen iX 11/2018 daher, DevOps mit dem Continuous Security Testing zum DevSecOps auszubauen.

Zunächst unterscheidet er zwischen funktionalen und nicht funktionalen Sicherheitstests. Erstere lassen sich mit Werkzeugen gut automatisieren und überprüfen unter anderem, ob Funktionen wie die Passwortabfrage korrekt implementiert sind. Nicht funktionale Tests sollen hingegen Schwachstellen im Programm aufspüren. Sind potenzielle Lücken wie bei einer SQL-Injection bekannt, lassen sie sich ebenfalls automatisieren.

Um ihre Applikationen gegen bekannte Schwachstellen zu schützen, können Programmierer auf statische und dynamische Anwendungssicherheitstests (SAST und DAST) zurückgreifen. SAST überprüft automatisch den Quelltext und vergleicht ihn mit Mustern, um Fehler zu finden. So lassen sich Richtlinien einhalten, ohne den Code extra ausführen zu müssen. Allerdings erzeugt SAST viele Fehlermeldungen bei wenigen schwerwiegenden Lücken.

DAST überprüft hingegen ein laufendes Programm und greift es von außen an. Dabei vergleicht es die Applikation wieder mit Mustern, die bei Übereinstimmung auf Schwachstellen hinweisen. Dabei ist es wichtig, SAST und DAST gemeinsam einzusetzen: Sie finden für den Entwickler potenzielle Fehler im Code und Laufzeitfehler.

Was die neueren Ansätze RASP und IAST bieten, erfahren Interessierte im Artikel.

Siehe dazu auch:

(fo)