Sobes.tech
Middle

Welche Qualitätsmerkmale (Quality Gates) kennen Sie?

sobes.tech KI

Antwort von AI

Qualitäts-Gates sind Punkte im Lebenszyklus der Softwareentwicklung, an denen entschieden wird, ob das Produkt oder ein Teil davon die erforderliche Qualität hat, um zum nächsten Schritt überzugehen.

Die wichtigsten Qualitäts-Gates umfassen:

  • Stabilität des Builds: Erfolgreiche Kompilierung und keine kritischen Fehler im Build.
  • Ergebnisse der statischen Code-Analyse: Einhaltung der Codierungsstandards, keine kritischen Sicherheitslücken oder "Code Smells".
  • Testabdeckung des Codes: Ausreichende Abdeckung durch Unit-, Integrations- und andere automatisierte Tests.
  • Ergebnisse automatisierter Tests: Bestehen aller oder eines festgelegten Prozentsatzes automatisierter Tests (Unit, Integration, Funktional, Regression).
  • Fehlerfreie kritische Bugs: Keine blockierenden oder kritischen Fehler, die bei Tests entdeckt wurden.
  • Ergebnisse manueller Tests: Erfolgreiche Durchführung der geplanten manuellen Testszenarien und Abnahmetests.
  • Erfüllung der Anforderungen: Das Produkt entspricht funktional den Spezifikationen und Anforderungen.
  • Leistung und Skalierbarkeit: Zufriedenstellende Ergebnisse bei Last- und Stresstests.
  • Sicherheit: Bestehen von Sicherheitsprüfungen, einschließlich statischer Sicherheitsanalyse (SAST), dynamischer Sicherheitsanalyse (DAST) und Penetrationstests.
  • Dokumentation: Aktualität und Vollständigkeit der technischen und Benutzerdokumentation.

Beispiele für Metriken für Quality Gates:

  • Codeabdeckung durch Tests >= 80%
  • Anzahl kritischer Bugs = 0
  • Ergebnis automatisierter Tests = 100% erfolgreich
  • Bewertung der statischen Code-Analyse >= A

Beispiel Jenkins-Pipeline mit Quality Gate:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                script {
                    echo 'Bauen...'
                    // Aufruf des Build-Skripts
                }
            }
        }
        stage('Statische Analyse') {
            steps {
                script {
                    echo 'Statische Analyse läuft...'
                    // Integration mit SonarQube oder einem anderen Tool
                }
            }
        }
        stage('Unit-Tests') {
            steps {
                script {
                    echo 'Führe Unit-Tests aus...'
                    // Ausführung der Unit-Tests und Berichterstellung
                }
            }
        }
        stage('Quality Gate Check') {
            steps {
                script {
                    echo 'Prüfung des Quality Gate...'
                    // Beispiel für eine Prüfung mit SonarQube unter Verwendung des Quality Gate
                    // wait-for-quality-gate abortPipeline: true
                }
            }
        }
        stage('Deployment auf Staging') {
             when {
                // Bedingung für den Übergang zum nächsten Schritt, z.B. wenn das Quality Gate bestanden wurde
                expression { return BUILD_STATUS == 'SUCCESS' }
             }
             steps {
                script {
                    echo 'Deployment auf Staging...'
                    // Schritte für das Deployment
                }
             }
        }
    }
}