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
}
}
}
}
}