Sobes.tech
Middle

Aké vlastnosti kontroly (Quality Gates) poznáte?

sobes.tech AI

Odpoveď od AI

Kvalitatívne brány (Quality Gates) — sú to body v životnom cykle vývoja softvéru, kde sa prijíma rozhodnutie, či má produkt alebo jeho časť dostatočnú kvalitu na prechod do ďalšej fázy.

Kľúčové kvality kontroly zahŕňajú:

  • Stabilita zostavy: Úspešná kompilácia a absencia kritických chýb v zostave.
  • Výsledky statickej analýzy kódu: Súlad so štandardmi kódovania, absencia kritických zraniteľností alebo "code smells".
  • Pokrytie kódu testami: Dostatočné pokrytie jednotkovými, integračnými a ďalšími typmi automatizovaných testov.
  • Výsledky automatizovaných testov: Spustenie všetkých alebo stanoveného percenta automatizovaných testov (jednotkové, integračné, funkčné, regresné).
  • Absencia kritických chýb: Žiadne blokujúce alebo kritické chyby zistené počas testovania.
  • Výsledky manuálneho testovania: Úspešné prechody plánovaných scenárov manuálneho testovania a akceptačného testovania.
  • Zhodnosť s požiadavkami: Produkt funkčne zodpovedá špecifikáciám a požiadavkám.
  • Výkon a škálovateľnosť: Vyhovujúce výsledky z load a stress testov.
  • Bezpečnosť: Úspešné absolvovanie bezpečnostných kontrol, vrátane statickej analýzy bezpečnosti (SAST), dynamickej analýzy bezpečnosti (DAST) a testovania prenikania (Penetration Testing).
  • Dokumentácia: Aktuálnosť a úplnosť technickej a používateľskej dokumentácie.

Príklady metrík pre Quality Gates:

  • Pokrytie kódu testami >= 80%
  • Počet kritických chýb = 0
  • Výsledok automatizovaných testov = 100% úspešných
  • Hodnotenie statickej analýzy kódu >= A

Príklad Jenkins Pipeline s Quality Gate:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                script {
                    echo 'Building...'
                    // Volanie skriptu na zostavenie
                }
            }
        }
        stage('Static Analysis') {
            steps {
                script {
                    echo 'Running static analysis...'
                    // Integrácia so SonarQube alebo iným nástrojom
                }
            }
        }
        stage('Unit Tests') {
            steps {
                script {
                    echo 'Running unit tests...'
                    // Spustenie jednotkových testov a zber správ
                }
            }
        }
        stage('Quality Gate Check') {
            steps {
                script {
                    echo 'Checking Quality Gate...'
                    // Príklad kontroly s použitím SonarQube s Quality Gate
                    // wait-for-quality-gate abortPipeline: true
                }
            }
        }
        stage('Deploy to Staging') {
             when {
                // Podmienka pre prechod na ďalší krok, napr. ak je Quality Gate úspešný
                expression { return BUILD_STATUS == 'SUCCESS' }
             }
             steps {
                script {
                    echo 'Deploying to Staging...'
                    // Kroky na nasadenie
                }
             }
        }
    }
}