OPS05-BP02 Testen und Validieren von Änderungen - AWS Well-Architected Framework

OPS05-BP02 Testen und Validieren von Änderungen

Jede eingesetzte Änderung muss getestet werden, um Fehler in der Produktion zu vermeiden. Diese bewährte Methode konzentriert sich auf das Testen von Änderungen von der Versionskontrolle bis zur Erstellung von Artefakten. Neben Änderungen am Anwendungscode sollten die Tests auch die Infrastruktur, die Konfiguration, die Sicherheitskontrollen und die Betriebsverfahren umfassen. Es gibt viele Formen des Testens, von Tests der Einheiten bis hin zur Softwarekomponentenanalyse (SCA). Wenn Tests im Softwareintegrations- und -bereitstellungsprozess weiter nach links verschoben werden, führt dies zu einer höheren Gewissheit der Artefaktqualität.

Ihr Unternehmen muss Teststandards für alle Software-Artefakte entwickeln. Automatisierte Tests verringern den Arbeitsaufwand und vermeiden manuelle Testfehler. In einigen Fällen können aber auch manuelle Tests notwendig sein. Entwickler müssen Zugang zu automatisierten Testergebnissen haben, um Feedbackschleifen zur Verbesserung der Softwarequalität zu erzeugen.

Gewünschtes Ergebnis:

  • Alle Softwareänderungen werden vor der Bereitstellung getestet.

  • Die Entwickler haben Zugang zu den Testergebnissen.

  • Ihr Unternehmen hat einen Teststandard, der für alle Softwareänderungen gilt.

Typische Anti-Muster:

  • Sie stellen eine neue Softwareänderung ohne jegliche Tests bereit. Sie wird in der Produktion nicht ausgeführt, was zu einem Ausfall führt.

  • Es werden neue Sicherheitsgruppen mit AWS CloudFormation eingesetzt, ohne in einer Vorproduktionsumgebung getestet zu werden. Durch die Sicherheitsgruppen ist Ihre App für Ihre Kunden unerreichbar.

  • Eine Methode wurde geändert, aber es gibt keine Tests der Einheiten. Die Software läuft nicht, wenn sie in der Produktion eingesetzt wird.

Vorteile der Nutzung dieser bewährten Methode:

  • Die Fehlerquote bei der Implementierung von Software wird reduziert.

  • Die Qualität der Software wird verbessert.

  • Die Entwickler haben ein größeres Bewusstsein für die Lebensfähigkeit ihres Codes.

  • Sicherheitsrichtlinien können zuverlässig eingeführt werden, um die Compliance des Unternehmens zu unterstützen.

  • Infrastrukturänderungen, wie z. B. automatische Aktualisierungen der Skalierungsrichtlinien, werden im Voraus getestet, um den Anforderungen des Datenverkehrs gerecht zu werden.

Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: hoch

Implementierungsleitfaden

Alle Änderungen, vom Anwendungscode bis zur Infrastruktur, werden im Rahmen Ihrer kontinuierlichen Integrationspraxis getestet. Die Testergebnisse werden veröffentlicht, damit die Entwickler schnelles Feedback erhalten. Ihr Unternehmen hat einen Teststandard, den alle Änderungen erfüllen müssen.

Kundenbeispiel

Als Teil der kontinuierlichen Integrationspipeline führt AnyCompany Retail verschiedene Arten von Tests für alle Software-Artefakte durch. Sie praktizieren eine testgesteurte Entwicklung, sodass die gesamte Software über Tests von Einheiten verfügt. Sobald das Artefakt erstellt ist, führen sie End-to-End-Tests durch. Nach Abschluss dieser ersten Testrunde führen sie einen statischen Anwendungssicherheitsscan durch, bei dem nach bekannten Schwachstellen gesucht wird. Die Entwickler erhalten Meldungen, sobald die einzelnen Prüfpunkte durchlaufen wurden. Sobald alle Tests abgeschlossen wurden, wird der Sofware-Artefakt in einem Artefakt-Repository gespeichert.

Implementierungsschritte

  1. Arbeiten Sie mit den Beteiligten in Ihrem Unternehmen zusammen, um einen Teststandard für Software-Artefakte zu entwickeln. Welche Standardtests sollten alle Artefakte bestehen? Gibt es Compliance- oder Governance-Anforderungen, die bei der Testabdeckung berücksichtigt werden müssen? Müssen Sie die Qualität des Codes testen? Wer muss informiert werden, sobald die Tests abgeschlossen sind?

    1. Die AWS Deployment Pipeline Reference Architecture enthält eine maßgebliche Liste von Testtypen, die als Teil einer Integrationspipeline an Software-Artefakten durchgeführt werden können.

  2. Instrumentieren Sie Ihre Anwendung mit den erforderlichen Tests auf der Grundlage Ihres Software-Teststandards. Jeder Testreihe sollte in weniger als zehn Minuten abgeschlossen sein. Tests sollten im Rahmen einer Integrationspipeline durchgeführt werden.

    1. Amazon CodeGuru Reviewer kann Ihren Anwendungscode auf Fehler prüfen.

    2. Mithilfe von AWS CodeBuild können Sie Tests auf Software-Artefakten durchführen.

    3. AWS CodePipeline kann Ihre Softwaretest in eine Pipeline orchestrieren.

Ressourcen

Zugehörige bewährte Methoden:

Zugehörige Dokumente:

Zugehörige Videos:

Zugehörige Ressourcen:

Zugehörige Services: