Sobes.tech
Middle

Kuras kontroles (Quality Gates) īpašības jūs zināt?

sobes.tech AI

Atbilde no AI

Kvalitātes vārti (Quality Gates) ir punkti programmatūras izstrādes dzīves ciklā, kur pieņem lēmumu par to, vai produkts vai tā daļa ir pietiekami kvalitatīva, lai pārietu uz nākamo posmu.

Galvenie kvalitātes vārtu kritēriji ietver:

  • Būves stabilitāte: Veiksmīga kompilācija un kritisku kļūdu neesamība būvē.
  • Statiskās koda analīzes rezultāti: Atbilstība kodēšanas standartiem, kritisku ievainojamību vai "code smells" neesamība.
  • Koda pārklājums ar testiem: Pietiekams vienību, integrācijas un citu automatizēto testu pārklājums.
  • Automatizēto testu rezultāti: Visu vai noteiktu procentu automatizēto testu veiksmīga izpilde (vienību, integrācijas, funkcionālo, regresijas).
  • Kritisku defektu neesamība: Blokējošu vai kritisku kļūdu neesamība, kas konstatētas testēšanas rezultātos.
  • Rokas testēšanas rezultāti: Plānotu roku testu scenāriju un akceptācijas testu veiksmīga izpilde.
  • Atbilstība prasībām: Produkts funkcionāli atbilst specifikācijām un prasībām.
  • Veiktspēja un mērogojamība: Apmierinoši rezultāti slodzes un stresa testos.
  • Drošība: Drošības pārbaudes, tostarp statiskā drošības analīze (SAST), dinamiskā drošības analīze (DAST) un iekļūšanas testēšana (Penetration Testing).
  • Dokumentācija: Tehniskās un lietotāja dokumentācijas aktuālums un pilnīgums.

Kvalitātes vārtu metrikas piemēri:

  • Koda pārklājums ar testiem >= 80%
  • Kritisku kļūdu skaits = 0
  • Automatizēto testu izpildes rezultāts = 100% veiksmīgi
  • Statiskās analīzes novērtējums >= A

Jenkins Pipeline piemērs ar Quality Gate:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                script {
                    echo 'Būvē...'
                    // Būves skripta izsaukšana
                }
            }
        }
        stage('Static Analysis') {
            steps {
                script {
                    echo 'Veic statisko analīzi...'
                    // Integrācija ar SonarQube vai citu rīku
                }
            }
        }
        stage('Unit Tests') {
            steps {
                script {
                    echo 'Veic vienību testus...'
                    // Vienību testu izpilde un atskaišu veidošana
                }
            }
        }
        stage('Quality Gate Check') {
            steps {
                script {
                    echo 'Pārbauda Quality Gate...'
                    // Piemērs ar SonarQube Quality Gate pārbaudi
                    // wait-for-quality-gate abortPipeline: true
                }
            }
        }
        stage('Deploy to Staging') {
             when {
                // Nosacījums pārejai uz nākamo posmu, piemēram, ja Quality Gate ir veiksmīgi izpildīts
                expression { return BUILD_STATUS == 'SUCCESS' }
             }
             steps {
                script {
                    echo 'Deploja uz Staging...'
                    // Deplošanas soļi
                }
             }
        }
    }
}