Sobes.tech
Middle

Jaké vlastnosti kontroly (Quality Gates) znáte?

sobes.tech AI

Odpověď od AI

Kontrolní kvality (Quality Gates) — jsou to body v životním cyklu vývoje softwaru, kde se rozhoduje, zda má produkt nebo jeho část dostatečnou kvalitu pro přechod do další fáze.

Klíčové kontrolní kvality zahrnují:

  • Stabilita sestavení: Úspěšná kompilace a absence kritických chyb v sestavení.
  • Výsledky statické analýzy kódu: Shoda s kodérskými standardy, absence kritických zranitelností nebo "code smells".
  • Pokrytí kódu testy: Dostatečné pokrytí jednotkovými, integračními a dalšími typy automatizovaných testů.
  • Výsledky automatizovaných testů: Provedení všech nebo stanoveného procenta automatizovaných testů (jednotkové, integrační, funkční, regresní).
  • Absence kritických vad: Žádné blokující nebo kritické chyby zjištěné při testování.
  • Výsledky manuálního testování: Úspěšné projití plánovaných manuálních testovacích scénářů a akceptačního testování.
  • Shoda s požadavky: Produkt funkčně odpovídá specifikacím a požadavkům.
  • Výkon a škálovatelnost: Přijatelné výsledky z load a stres testů.
  • Bezpečnost: Úspěšné absolvování bezpečnostních kontrol, včetně statické analýzy bezpečnosti (SAST), dynamické analýzy bezpečnosti (DAST) a penetračního testování.
  • Dokumentace: Aktuálnost a úplnost technické a uživatelské dokumentace.

Příklady metrik pro Quality Gates:

  • Pokrytí kódu testy >= 80%
  • Počet kritických chyb = 0
  • Výsledek automatizovaných testů = 100% úspěšných
  • Hodnocení statické analýzy kódu >= A

Příklad Jenkins Pipeline s Quality Gate:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                script {
                    echo 'Building...'
                    // Volání skriptu sestavení
                }
            }
        }
        stage('Static Analysis') {
            steps {
                script {
                    echo 'Running static analysis...'
                    // Integrace se SonarQube nebo jiným nástrojem
                }
            }
        }
        stage('Unit Tests') {
            steps {
                script {
                    echo 'Running unit tests...'
                    // Spuštění jednotkových testů a sběr zpráv
                }
            }
        }
        stage('Quality Gate Check') {
            steps {
                script {
                    echo 'Checking Quality Gate...'
                    // Příklad kontroly s použitím SonarQube s Quality Gate
                    // wait-for-quality-gate abortPipeline: true
                }
            }
        }
        stage('Deploy to Staging') {
             when {
                // Podmínka přechodu na další fázi, například pokud je Quality Gate úspěšně splněn
                expression { return BUILD_STATUS == 'SUCCESS' }
             }
             steps {
                script {
                    echo 'Deploying to Staging...'
                    // Kroky pro nasazení
                }
             }
        }
    }
}