Middle
Kokias kontrolės savybes (Quality Gates) žinote?
sobes.tech AI
Atsakymas iš AI
Kokybės vartai (Quality Gates) — tai taškai programinės įrangos kūrimo gyvavimo cikle, kur priimamas sprendimas, ar produktas ar jo dalis turi pakankamą kokybę pereiti į kitą etapą.
Pagrindiniai kokybės vartai apima:
- Sukūrimo stabilumas: Sėkminga kompiliacija ir kritinių klaidų nebuvimas.
- Statinio kodo analizės rezultatai: Atitiktis kodavimo standartams, kritinių pažeidžiamumų ar "code smells" nebuvimas.
- Kodo padengimas testais: Pakankamas vienetinių, integracinių ir kitų automatizuotų testų padengimas.
- Automatizuotų testų rezultatai: Visų arba nustatyto procento automatizuotų testų vykdymas.
- Kritinių trūkumų nebuvimas: Trūkumų, trukdančių ar kritinių klaidų nebuvimas, nustatytų testavimo metu.
- Rankinio testavimo rezultatai: Sėkmingas planuotų rankinio testavimo scenarijų ir priėmimo testų įvykdymas.
- Reikalavimų atitiktis: Produktas funkcionaliai atitinka specifikacijas ir reikalavimus.
- Našumas ir mastelio keitimas: Patenkinami apkrovos ir streso testų rezultatai.
- Saugumas: Sėkmingas saugumo patikrinimų, įskaitant statinį saugumo analizę (SAST), dinaminį saugumo analizę (DAST) ir įsilaužimo testavimą, įvykdymas.
- Dokumentacija: Techninės ir vartotojo dokumentacijos aktualumas ir pilnumas.
Pavyzdžiai metrikų, skirtų kokybės vartams:
- Kodo padengimas testais >= 80%
- Kritinių klaidų skaičius = 0
- Automatizuotų testų vykdymo rezultatas = 100% sėkmingas
- Statinio kodo analizės įvertinimas >= A
Jenkins Pipeline pavyzdys su kokybės vartais:
pipeline {
agent any
stages {
stage('Build') {
steps {
script {
echo 'Building...'
// Kūrimo scenarijaus iškvietimas
}
}
}
stage('Static Analysis') {
steps {
script {
echo 'Running static analysis...'
// Integracija su SonarQube ar kitu įrankiu
}
}
}
stage('Unit Tests') {
steps {
script {
echo 'Running unit tests...'
// Vienetinių testų paleidimas ir ataskaitų rinkimas
}
}
}
stage('Quality Gate Check') {
steps {
script {
echo 'Checking Quality Gate...'
// Pavyzdys patikrinimo naudojant SonarQube ir kokybės vartus
// wait-for-quality-gate abortPipeline: true
}
}
}
stage('Deploy to Staging') {
when {
// Sąlyga pereiti į kitą etapą, pvz., jei kokybės vartai sėkmingai įvykdyti
expression { return BUILD_STATUS == 'SUCCESS' }
}
steps {
script {
echo 'Deploying to Staging...'
// Diegimo žingsniai
}
}
}
}
}