Sobes.tech
Middle

Milyen ellenőrzési (Quality Gates) tulajdonságokat ismersz?

sobes.tech MI

Válasz az MI-től

Minőségkapuk (Quality Gates) — ezek a pontok a szoftverfejlesztés életciklusában, ahol döntést hoznak arról, hogy a termék vagy annak része elég jó minőségű-e ahhoz, hogy a következő szakaszba lépjen.

A kulcsfontosságú minőségkapuk a következők:

  • Build stabilitás: Sikeres fordítás és kritikus hibák hiánya a build-ben.
  • Statikus kódanalízis eredményei: Kódolási szabványoknak való megfelelés, kritikus sebezhetőségek vagy "code smells" hiánya.
  • Kód lefedettség tesztekkel: Elégséges egység-, integrációs és más automatizált teszt lefedettség.
  • Automatizált tesztek eredményei: Minden vagy a meghatározott százalékos arányban sikeres automatizált tesztek (egység, integrációs, funkcionális, regressziós).
  • Kritikus hibák hiánya: Blokkoló vagy kritikus hibák hiánya, amelyeket tesztelés során találtak.
  • Manuális tesztek eredményei: Sikeres végrehajtás a tervezett manuális teszteseteknek és elfogadási teszteknek.
  • Elvárásoknak való megfelelés: A termék funkcionálisan megfelel a specifikációknak és követelményeknek.
  • Teljesítmény és skálázhatóság: Megfelelő eredmények a terheléses és stressz teszteken.
  • Biztonság: Biztonsági ellenőrzések sikeres elvégzése, beleértve a statikus biztonsági elemzést (SAST), dinamikus biztonsági elemzést (DAST) és behatolási tesztelést.
  • Dokumentáció: A technikai és felhasználói dokumentáció aktualitása és teljessége.

Példák metrikákra a Quality Gates-hez:

  • Kódlefedettség tesztekkel >= 80%
  • Kritikus hibák száma = 0
  • Automatizált tesztek végrehajtási eredménye = 100% sikeres
  • Statikus kódanalízis eredménye >= A

Jenkins Pipeline példa Quality Gate-el:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                script {
                    echo 'Building...'
                    // Build szkript hívása
                }
            }
        }
        stage('Static Analysis') {
            steps {
                script {
                    echo 'Running static analysis...'
                    // Integráció SonarQube vagy más eszközzel
                }
            }
        }
        stage('Unit Tests') {
            steps {
                script {
                    echo 'Running unit tests...'
                    // Egységtesztek futtatása és jelentések gyűjtése
                }
            }
        }
        stage('Quality Gate Check') {
            steps {
                script {
                    echo 'Checking Quality Gate...'
                    // Példa ellenőrzés SonarQube használatával a Quality Gate-el
                    // wait-for-quality-gate abortPipeline: true
                }
            }
        }
        stage('Deploy to Staging') {
             when {
                // Átmeneti feltétel a következő szakaszba, pl. ha a Quality Gate sikeresen átment
                expression { return BUILD_STATUS == 'SUCCESS' }
             }
             steps {
                script {
                    echo 'Deploying to Staging...'
                    // Lépések a telepítéshez
                }
             }
        }
    }
}