Sobes.tech
Middle

Hansı nəzarət keyfiyyətləri (Quality Gates) bilirsiniz?

sobes.tech Süni İntellekt

AI-dan cavab

Keyfiyyət Qapıları (Quality Gates) proqram təminatının inkişaf dövründə nöqtələrdir və burada qərar qəbul edilir ki, məhsul və ya onun bir hissəsi növbəti mərhələyə keçmək üçün kifayət qədər keyfiyyətə malikdir.

Əsas keyfiyyət qapıları aşağıdakılardır:

  • Yığmanın stabilliyi: uğurlu yığma və kritik xətaların olmaması.
  • Statik kod analizi nəticələri: kodlama standartlarına uyğunluq, kritik təhlükəsizlik zəiflikləri və ya "code smells" olmaması.
  • Koda testlərlə əhatə: birlik, inteqrasiya və digər avtomatlaşdırılmış testlərlə kifayət qədər əhatə.
  • Avtomatlaşdırılmış testlərin nəticələri: bütün və ya müəyyən faizdə avtomatlaşdırılmış testlərin keçməsi.
  • Kritik xətaların olmaması: testlərdə aşkarlanmış bloklama və ya kritik səhvlərin olmaması.
  • Əl ilə test nəticələri: planlaşdırılmış əl ilə test ssenarilərinin və qəbul testlərinin uğurla keçirilməsi.
  • Tələblərə uyğunluq: məhsul funksional olaraq spesifikasiyalar və tələblərə cavab verir.
  • Performans və miqyaslandırma: yükləmə və stres testlərində müsbət nəticələr.
  • Təhlükəsizlik: təhlükəsizlik yoxlamalarından keçmə, o cümlədən statik təhlükəsizlik analizi (SAST), dinamik təhlükəsizlik analizi (DAST) və sızma testləri.
  • Sənədləşmə: texniki və istifadəçi sənədlərinin aktual və tam olması.

Keyfiyyət qapıları üçün nümunə metriklər:

  • Kodun testlərlə əhatə dairəsi >= 80%
  • Kritik səhvlərin sayı = 0
  • Avtomatlaşdırılmış testlərin nəticəsi = 100% müvəffəqiyyətli
  • Statik kod analizi qiymətləndirməsi >= A

Jenkins pipeline nümunəsi ilə Keyfiyyət Qapısı:

pipeline {
    agent any
    stages {
        stage('Yığma') {
            steps {
                script {
                    echo 'Yığılır...'
                    // Yığma skriptinə çağırış
                }
            }
        }
        stage('Statik analiz') {
            steps {
                script {
                    echo 'Statik analiz həyata keçirilir...'
                    // SonarQube və ya digər alətlərlə inteqrasiya
                }
            }
        }
        stage('Birləşdirmə testləri') {
            steps {
                script {
                    echo 'Birləşdirmə testləri həyata keçirilir...'
                    // Birlik testlərinin işlədilməsi və hesabatların yaradılması
                }
            }
        }
        stage('Keyfiyyət Qapısı yoxlaması') {
            steps {
                script {
                    echo 'Keyfiyyət Qapısı yoxlanır...'
                    // SonarQube ilə Keyfiyyət Qapısı yoxlaması nümunəsi
                    // wait-for-quality-gate abortPipeline: true
                }
            }
        }
        stage('Staging-ə yerləşdirmə') {
             when {
                // Növbəti mərhələyə keçid şərti, məsələn, Keyfiyyət Qapısı uğurla keçibsə
                expression { return BUILD_STATUS == 'SUCCESS' }
             }
             steps {
                script {
                    echo 'Staging-ə yerləşdirilir...'
                    // Yerləşdirmə addımları
                }
             }
        }
    }
}