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