Middle
Ի՞նչ որակների վերահսկում (Quality Gates) եք գիտեք։
sobes.tech AI
Պատասխան AI-ից
Որակության դարպասներ (Quality Gates) — դա ծրագրային ապահովման զարգացման կյանքի ցիկլի կետեր են, որտեղ ընդունվում է որոշում՝ արդյոք արտադրանքը կամ դրա մասնիկը բավարար որակ ունի հաջորդ փուլին անցնելու համար:
Հիմնական որակների դարպասները ներառում են՝
- Կառուցման կայունություն: Հաջողակոմպիլացիա և критիկական սխալների բացակայություն կառուցման մեջ:
- Կոդի ստատիկ վերլուծության արդյունքներ: Կոդավորման ստանդարտների համապատասխանություն, критիկական թերություններ կամ "code smells" բացակայություն:
- Կոդի ծածկույթ թեստերով: Դատապարտված ծածկույթ միավորային, ինտեգրացիոն և այլ ավտոմատացված թեստերով:
- Ավտոմատացված թեստերի արդյունքներ: Բոլոր կամ նշված տոկոսով ավտոմատացված թեստերի անցկացման արդյունքներ:
- Կրիտիկական թերությունների բացակայություն: Թեստավորման արդյունքներով հայտնաբերված բլոկավորող կամ կրիտիկական սխալների բացակայություն:
- Հատուկ թեստավորման արդյունքներ: Պլանավորված ձեռքով թեստային սցենարների հաջող անցում և ընդունում:
- Անհրաժեշտությունների համապատասխանություն: Ապրանքը ֆունկցիոնալ առումով համապատասխանում է սպեցիֆիկացիաներին և պահանջներին:
- Արդյունավետություն և մասշտաբայնություն: Լավ արդյունքներ բեռնում և սթրես-թեստավորումներից:
- Անվտանգություն: Անվտանգության ստատիկ և դինամիկ վերլուծությունների, ինչպես նաև ներխուժման թեստերի հաջող անցում:
- Փաստաթղթավորում: Տեխնիկական և օգտվողական փաստաթղթերի արդիականություն և լրում:
Quality Gates-ի համար մետրիկայի օրինակներ՝
- Կոդի ծածկույթ թեստերով >= 80%
- Կրիտիկական սխալների թիվը = 0
- Ավտոմատացված թեստերի արդյունք = 100% հաջողություն
- Կոդի ստատիկ վերլուծության գնահատականը >= A
Jenkins Pipeline-ի օրինակ՝ Quality Gate-ով՝
pipeline {
agent any
stages {
stage('Build') {
steps {
script {
echo 'Building...'
// Կառուցման սցենարի կանչ
}
}
}
stage('Static Analysis') {
steps {
script {
echo 'Running static analysis...'
// Ինտեգրացիա SonarQube կամ այլ գործիքի հետ
}
}
}
stage('Unit Tests') {
steps {
script {
echo 'Running unit tests...'
// Միավորային թեստերի գործարկում և հաշվետվությունների հավաքում
}
}
}
stage('Quality Gate Check') {
steps {
script {
echo 'Checking Quality Gate...'
// Օրինակ՝ ստուգում SonarQube-ով և օգտագործելով Quality Gate
// wait-for-quality-gate abortPipeline: true
}
}
}
stage('Deploy to Staging') {
when {
// Շարունակական փուլ անցնելու պայման, օրինակ՝ եթե Quality Gate-ն անցել է հաջողությամբ
expression { return BUILD_STATUS == 'SUCCESS' }
}
steps {
script {
echo 'Deploying to Staging...'
// Դեպլոյմենտի քայլեր
}
}
}
}
}