

# OPS05-BP02 Testen und Validieren von Änderungen
<a name="ops_dev_integ_test_val_chg"></a>

 Jede bereitgestellte Ä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 Feedback-Schleifen zur Verbesserung der Softwarequalität zu schaffen. 

 **Gewünschtes Ergebnis:** Ihre Softwareänderungen werden vor der Bereitstellung getestet. Die Entwickler haben Zugang zu den Testergebnissen und den Validierungen. Ihre Organisation hat einen Teststandard, der für alle Softwareänderungen gilt. 

 **Typische Anti-Muster:** 
+  Sie stellen eine neue Softwareänderung ohne jegliche Tests bereit. Sie kann in der Produktion nicht ausgeführt werden, 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 Änderungen bei Softwarebereitstellungen 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 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
<a name="implementation-guidance"></a>

 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. Ihre Organisation hat einen Teststandard, den alle Änderungen erfüllen müssen. 

 Nutzen Sie die Leistungsfähigkeit generativer KI mit Amazon Q Developer, um die Entwicklerproduktivität und die Codequalität zu verbessern. Amazon Q Developer umfasst die Generierung von Codevorschlägen (basierend auf großen Sprachmodellen), die Erstellung von Komponententests (einschließlich Randbedingungen) und Verbesserungen der Codesicherheit durch die Erkennung und Behebung von Sicherheitsschwachstellen. 

 **Kundenbeispiel** 

 Als Teil der kontinuierlichen Integrationspipeline führt AnyCompany Retail verschiedene Arten von Tests für alle Software-Artefakte durch. Das Unternehmen praktiziert eine testgesteuerte Entwicklung, sodass die gesamte Software über Tests von Einheiten verfügt. Sobald das Artefakt erstellt ist, werden End-to-End-Tests durchgeführt. Nach Abschluss dieser ersten Testrunde wird ein statischer Anwendungssicherheitsscan durchgeführt, 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 Software-Artefakt in einem Artefakt-Repository gespeichert. 

### Implementierungsschritte
<a name="implementation-steps"></a>

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 [Referenzarchitektur für AWS-Bereitstellungs-Pipelines](https://pipelines.devops.aws.dev/) enthält eine maßgebliche Liste von Testtypen, die als Teil einer Integrationspipeline an Software-Artefakten durchgeführt werden können. 

1.  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.  Verwenden Sie [Amazon Q Developer](https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/what-is.html), ein generatives KI-Tool, mit dem Sie Modultestfälle (einschließlich Randbedingungen) erstellen, Funktionen mithilfe von Code und Kommentaren generieren und bekannte Algorithmen implementieren können. 

   1.  Verwenden Sie [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html), um Ihren Anwendungscode mithilfe von Tests auf Fehler zu prüfen. 

   1.  Sie können [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) verwenden, um Tests auf Software-Artefakten durchzuführen. 

   1.  [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) kann Ihre Softwaretests in eine Pipeline orchestrieren. 

## Ressourcen
<a name="resources"></a>

 **Zugehörige bewährte Methoden:** 
+  [OPS05-BP01 Verwendung einer Versionskontrolle](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_version_control.html) 
+  [OPS05-BP06 Gemeinsame Design-Standards](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_share_design_stds.html) 
+  [OPS05-BP07 Implementieren von Verfahren zur Verbesserung der Codequalität](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_code_quality.html) 
+  [OPS05-BP10 Vollständige Automatisierung von Integration und Bereitstellung](https://docs.aws.amazon.com/wellarchitected/latest/operational-excellence-pillar/ops_dev_integ_auto_integ_deploy.html) 

 **Zugehörige Dokumente:** 
+  [Einen testgetriebenen Entwicklungsansatz verwenden](https://docs.aws.amazon.com/prescriptive-guidance/latest/best-practices-cdk-typescript-iac/development-best-practices.html) 
+  [Beschleunigen Ihres Softwareentwicklungszyklus mit Amazon Q](https://aws.amazon.com/blogs/devops/accelerate-your-software-development-lifecycle-with-amazon-q/) 
+  [Amazon Q Developer (jetzt allgemein verfügbar) enthält Vorschauen neuer Funktionen, mit denen Sie das Entwicklererlebnis neu gestalten können](https://aws.amazon.com/blogs/aws/amazon-q-developer-now-generally-available-includes-new-capabilities-to-reimagine-developer-experience/) 
+  [Der ultimative Spickzettel für den Einsatz von Amazon Q Developer in Ihrer IDE](https://community.aws/content/2eYoqeFRqaVnk900emsknDfzhfW/the-ultimate-cheat-sheet-for-using-amazon-q-developer-in-your-ide) 
+  [Shift-Left-Workload, Nutzung von KI für die Testerstellung](https://community.aws/content/2gBZtC94gPzaCQRnt4P0rIYWuBx/shift-left-workload-leveraging-ai-for-test-creation) 
+  [Amazon Q Developer Center](https://aws.amazon.com/developer/generative-ai/amazon-q/) 
+  [10 Möglichkeiten, Anwendungen mit Amazon CodeWhisperer schneller zu entwickeln](https://aws.amazon.com/blogs/devops/10-ways-to-build-applications-faster-with-amazon-codewhisperer/) 
+  [Ein Blick über die Codeabdeckung hinaus – mit Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/looking-beyond-code-coverage-with-amazon-codewhisperer/) 
+  [Bewährte Methoden für Prompt-Engineering mit Amazon CodeWhisperer](https://aws.amazon.com/blogs/devops/best-practices-for-prompt-engineering-with-amazon-codewhisperer/) 
+  [Automatisierte AWS CloudFormation-Testpipeline mit TaskCat und CodePipeline](https://aws.amazon.com/blogs/devops/automated-cloudformation-testing-pipeline-with-taskcat-and-codepipeline/) 
+  [Erstellen einer End-to-End-AWS DevSecOps-CI/CD-Pipeline mit Open-Source-SCA-, -SAST- und -DAST-Tools](https://aws.amazon.com/blogs/devops/building-end-to-end-aws-devsecops-ci-cd-pipeline-with-open-source-sca-sast-and-dast-tools/) 
+  [Erste Schritte beim Testen von Serverless-Anwendungen](https://aws.amazon.com/blogs/compute/getting-started-with-testing-serverless-applications/) 
+  [Meine CI/CD-Pipeline ist mein Release Captain](https://aws.amazon.com/builders-library/cicd-pipeline/) 
+  [Durchführung von Continuous Integration und Continuous Delivery in AWS (Whitepaper)](https://docs.aws.amazon.com/whitepapers/latest/practicing-continuous-integration-continuous-delivery/welcome.html) 

 **Zugehörige Videos:** 
+  [Implementieren einer API mit Amazon Q Developer-Agent für die Softwareentwicklung](https://www.youtube.com/watch?v=U4XEvJUvff4) 
+  [Installation, Konfiguration und Verwendung von Amazon Q Developer mit JetBrains-IDEs (Anleitung)](https://www.youtube.com/watch?v=-iQfIhTA4J0) 
+  [Amazon CodeWhisperer meistern – YouTube-Playlist](https://www.youtube.com/playlist?list=PLDqi6CuDzubxzL-yIqgQb9UbbceYdKhpK) 
+  [AWS re:Invent 2020: Testbare Infrastruktur: Integrationstests in AWS](https://www.youtube.com/watch?v=KJC380Juo2w) 
+  [AWS Summit ANZ 2021 – Vorantreiben einer „Test-First“-Strategie mit CDK und testgesteuerter Entwicklung](https://www.youtube.com/watch?v=1R7G_wcyd3s) 
+  [Testen Ihrer Infrastruktur als Code mit AWS CDK](https://www.youtube.com/watch?v=fWtuwGSoSOU) 

 **Zugehörige Ressourcen:** 
+  [Referenzarchitektur für AWS-Bereitstellungs-Pipelines – Anwendung](https://pipelines.devops.aws.dev/application-pipeline/index.html) 
+  [AWS Kubernetes DevSecOps-Pipeline](https://github.com/aws-samples/devsecops-cicd-containers) 
+  [Tests von Einheiten für eine Node.js-Anwendung aus GitHub mithilfe von AWS CodeBuild ausführen](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/run-unit-tests-for-a-node-js-application-from-github-by-using-aws-codebuild.html) 
+  [Serverspec für die testgesteuerte Entwicklung von Infrastrukturcode verwenden](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/use-serverspec-for-test-driven-development-of-infrastructure-code.html) 

 **Zugehörige Services:** 
+  [Amazon Q Developer](https://aws.amazon.com/q/developer/) 
+  [Amazon CodeGuru Reviewer](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/welcome.html) 
+  [AWS CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/welcome.html) 
+  [AWS CodePipeline](https://docs.aws.amazon.com/codepipeline/latest/userguide/welcome.html) 