Middle
Milyen ellenőrzési (Quality Gates) tulajdonságokat ismersz?
sobes.tech MI
Válasz az MI-től
Minőségkapuk (Quality Gates) — ezek a pontok a szoftverfejlesztés életciklusában, ahol döntést hoznak arról, hogy a termék vagy annak része elég jó minőségű-e ahhoz, hogy a következő szakaszba lépjen.
A kulcsfontosságú minőségkapuk a következők:
- Build stabilitás: Sikeres fordítás és kritikus hibák hiánya a build-ben.
- Statikus kódanalízis eredményei: Kódolási szabványoknak való megfelelés, kritikus sebezhetőségek vagy "code smells" hiánya.
- Kód lefedettség tesztekkel: Elégséges egység-, integrációs és más automatizált teszt lefedettség.
- Automatizált tesztek eredményei: Minden vagy a meghatározott százalékos arányban sikeres automatizált tesztek (egység, integrációs, funkcionális, regressziós).
- Kritikus hibák hiánya: Blokkoló vagy kritikus hibák hiánya, amelyeket tesztelés során találtak.
- Manuális tesztek eredményei: Sikeres végrehajtás a tervezett manuális teszteseteknek és elfogadási teszteknek.
- Elvárásoknak való megfelelés: A termék funkcionálisan megfelel a specifikációknak és követelményeknek.
- Teljesítmény és skálázhatóság: Megfelelő eredmények a terheléses és stressz teszteken.
- Biztonság: Biztonsági ellenőrzések sikeres elvégzése, beleértve a statikus biztonsági elemzést (SAST), dinamikus biztonsági elemzést (DAST) és behatolási tesztelést.
- Dokumentáció: A technikai és felhasználói dokumentáció aktualitása és teljessége.
Példák metrikákra a Quality Gates-hez:
- Kódlefedettség tesztekkel >= 80%
- Kritikus hibák száma = 0
- Automatizált tesztek végrehajtási eredménye = 100% sikeres
- Statikus kódanalízis eredménye >= A
Jenkins Pipeline példa Quality Gate-el:
pipeline {
agent any
stages {
stage('Build') {
steps {
script {
echo 'Building...'
// Build szkript hívása
}
}
}
stage('Static Analysis') {
steps {
script {
echo 'Running static analysis...'
// Integráció SonarQube vagy más eszközzel
}
}
}
stage('Unit Tests') {
steps {
script {
echo 'Running unit tests...'
// Egységtesztek futtatása és jelentések gyűjtése
}
}
}
stage('Quality Gate Check') {
steps {
script {
echo 'Checking Quality Gate...'
// Példa ellenőrzés SonarQube használatával a Quality Gate-el
// wait-for-quality-gate abortPipeline: true
}
}
}
stage('Deploy to Staging') {
when {
// Átmeneti feltétel a következő szakaszba, pl. ha a Quality Gate sikeresen átment
expression { return BUILD_STATUS == 'SUCCESS' }
}
steps {
script {
echo 'Deploying to Staging...'
// Lépések a telepítéshez
}
}
}
}
}