Middle
Welke kwaliteitskenmerken (Quality Gates) ken je?
sobes.tech AI
Antwoord van AI
Kwaliteitsdeuren (Quality Gates) zijn punten in de levenscyclus van softwareontwikkeling waar wordt besloten of het product of een deel ervan voldoende kwaliteit heeft om naar de volgende fase over te gaan.
De belangrijkste kwaliteitsdeuren omvatten:
- Stabiliteit van de build: Succesvolle compilatie en afwezigheid van kritieke fouten in de build.
- Resultaten van statische code-analyse: Naleving van coderingsnormen, geen kritieke kwetsbaarheden of "code smells".
- Testcoverage van de code: Voldoende dekking door unit-, integratie- en andere geautomatiseerde tests.
- Resultaten van geautomatiseerde tests: Alle of een vastgesteld percentage van geautomatiseerde tests slagen (unit, integratie, functioneel, regressie).
- Afwezigheid van kritieke defecten: Geen blokkade- of kritieke bugs gevonden tijdens tests.
- Resultaten van handmatige tests: Succesvolle uitvoering van geplande handmatige testscenario's en acceptatietests.
- Voldoen aan eisen: Het product voldoet functioneel aan specificaties en eisen.
- Prestaties en schaalbaarheid: Bevredigende resultaten bij load- en stresstests.
- Veiligheid: Het doorstaan van veiligheidscontroles, inclusief statische beveiligingsanalyse (SAST), dynamische beveiligingsanalyse (DAST) en penetratietests.
- Documentatie: Actualiteit en volledigheid van technische en gebruikersdocumentatie.
Voorbeelden van metrics voor Quality Gates:
- Code coverage >= 80%
- Aantal kritieke bugs = 0
- Resultaat van geautomatiseerde tests = 100% succesvol
- Beoordeling van statische code-analyse >= A
Voorbeeld Jenkins Pipeline met Quality Gate:
pipeline {
agent any
stages {
stage('Build') {
steps {
script {
echo 'Bouwen...'
// Aanroepen van build-script
}
}
}
stage('Statische analyse') {
steps {
script {
echo 'Statische analyse uitvoeren...'
// Integratie met SonarQube of ander hulpmiddel
}
}
}
stage('Unit Tests') {
steps {
script {
echo 'Uitvoeren van unit tests...'
// Uitvoeren van unit tests en rapporten genereren
}
}
}
stage('Quality Gate Control') {
steps {
script {
echo 'Controleren van Quality Gate...'
// Voorbeeld van controle met SonarQube met gebruik van Quality Gate
// wait-for-quality-gate abortPipeline: true
}
}
}
stage('Deploy naar Staging') {
when {
// Voorwaarde om door te gaan naar de volgende fase, bijvoorbeeld als Quality Gate succesvol is
expression { return BUILD_STATUS == 'SUCCESS' }
}
steps {
script {
echo 'Deployen naar Staging...'
// Stappen voor deployment
}
}
}
}
}