Tests für CI/CD-Pipelines - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Tests für CI/CD-Pipelines

Die beiden Arten automatisierter Tests, auf die in Bereitstellungspipelines häufig Bezug genommen wird, sind Komponententests und Integrationstests. Es gibt jedoch viele Arten von Tests, die Sie auf einer Codebasis und in der Entwicklungsumgebung ausführen können. Die AWS Deployment Pipeline Reference Architecture definiert die folgenden Testtypen:

  • Komponententest — Diese Tests erstellen Anwendungscode und führen ihn aus, um zu überprüfen, ob er erwartungsgemäß funktioniert. Sie simulieren alle externen Abhängigkeiten, die in der Codebasis verwendet werden. Beispiele für Unit-Test-Tools sind JUnitJest und Pytest.

  • Integrationstest — Diese Tests verifizieren, dass die Anwendung die technischen Anforderungen erfüllt, indem sie anhand einer bereitgestellten Testumgebung getestet werden. Beispiele für Integrationstesttools sind Cucumber, vRest NG und Integ-Tests (for). AWS CDK

  • Akzeptanztest — Bei diesen Tests wird anhand einer bereitgestellten Testumgebung überprüft, ob die Anwendung die Benutzeranforderungen erfüllt. Zu den Tools für Akzeptanztests gehören beispielsweise Cypress und Selenium.

  • Synthetischer Test — Diese Tests werden kontinuierlich im Hintergrund ausgeführt, um Traffic zu generieren und zu überprüfen, ob das System fehlerfrei ist. Beispiele für synthetische Testtools sind Amazon CloudWatch Synthetics und Dynatrace Synthetic Monitoring.

  • Leistungstest — Diese Tests simulieren die Produktionskapazität. Sie ermitteln, ob die Anwendung die Leistungsanforderungen erfüllt, und vergleichen die Kennzahlen mit der Leistung in der Vergangenheit. Zu den Tools für Leistungstests gehören beispielsweise Apache JMeter, Locust und Gatling.

  • Resilienztest — Diese Tests, auch Chaostests genannt, führen zu Fehlern in Umgebungen, um Risikobereiche zu identifizieren. Perioden, in denen die Fehler auftreten, werden dann mit Perioden ohne Fehler verglichen. Zu den Tools für Resilienz-Tests gehören beispielsweise AWS Fault Injection ServiceGremlin.

  • Statischer Anwendungssicherheitstest (SAST) — Diese Tests analysieren Code auf Sicherheitsverletzungen wie SQL-Injection oder Cross-Site Scripting (XSS). Beispiele für SAST-Tools sind Amazon CodeGuru und SonarQubeCheckmarx.

  • Dynamischer Anwendungssicherheitstest (DAST) — Diese Tests werden auch als Penetrationstests oder Penetrationstests bezeichnet. Sie identifizieren Sicherheitslücken wie SQL-Injection oder XSS in einer bereitgestellten Testumgebung. Beispiele für DAST-Tools sind Zed Attack Proxy (ZAP) und HCL. AppScan Weitere Informationen finden Sie unter Penetrationstests.

Nicht alle CI/CD-Pipelines führen alle diese Tests durch. Eine Pipeline sollte jedoch mindestens Unit-Tests und SAST-Tests auf der Codebasis sowie Integrations- und Akzeptanztests in einer Testumgebung ausführen.