Sobes.tech
Middle

Hangi kalite kapıları (Quality Gates) biliyorsunuz?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kalite Kapıları (Quality Gates), yazılım geliştirme yaşam döngüsünde, ürünün veya bir bölümünün bir sonraki aşamaya geçmeye yeterli kaliteye sahip olup olmadığına karar verilen noktalardır.

Ana kalite kapıları şunları içerir:

  • Derleme stabilitesi: Başarılı derleme ve derlemede kritik hataların olmaması.
  • Statik kod analizi sonuçları: Kodlama standartlarına uyum, kritik güvenlik açıkları veya "code smells" olmaması.
  • Koda test kapsamı: Birim, entegrasyon ve diğer otomatik testlerle yeterli kapsam.
  • Otomatik testlerin sonuçları: Tüm veya belirli bir yüzdelik otomatik testlerin geçmesi (birim, entegrasyon, fonksiyonel, regresyon).
  • Kritik hataların olmaması: Testlerde tespit edilen engelleyici veya kritik hataların olmaması.
  • Manuel test sonuçları: Planlanan manuel test senaryolarının ve kabul testlerinin başarılı olması.
  • Gereksinimlere uygunluk: Ürünün fonksiyonel olarak spesifikasyonlara ve gereksinimlere uygun olması.
  • Performans ve ölçeklenebilirlik: Yük ve stres testlerinde tatmin edici sonuçlar.
  • Güvenlik: Güvenlik kontrollerinden geçme, statik güvenlik analizi (SAST), dinamik güvenlik analizi (DAST) ve sızma testleri (Penetration Testing) dahil.
  • Dokümantasyon: Teknik ve kullanıcı dokümantasyonunun güncelliği ve bütünlüğü.

Kalite kapıları için örnek metrikler:

  • Kod kapsamı >= 80%
  • Kritik hata sayısı = 0
  • Otomatik testlerin sonucu = %100 başarılı
  • Statik kod analizi değerlendirmesi >= A

Jenkins Pipeline örneği ile Quality Gate:

pipeline {
    agent any
    stages {
        stage('Build') {
            steps {
                script {
                    echo 'İnşa ediliyor...'
                    // Derleme betiğinin çağrılması
                }
            }
        }
        stage('Statik Analiz') {
            steps {
                script {
                    echo 'Statik analiz çalışıyor...'
                    // SonarQube veya başka bir araç ile entegrasyon
                }
            }
        }
        stage('Birim Testleri') {
            steps {
                script {
                    echo 'Birim testleri çalışıyor...'
                    // Birim testlerinin çalıştırılması ve raporların oluşturulması
                }
            }
        }
        stage('Kalite Kapısı Kontrolü') {
            steps {
                script {
                    echo 'Kalite kapısı kontrol ediliyor...'
                    // SonarQube ile Quality Gate kullanımı örneği
                    // wait-for-quality-gate abortPipeline: true
                }
            }
        }
        stage('Staging'e Dağıtım') {
             when {
                // Bir sonraki aşamaya geçiş koşulu, örneğin, Quality Gate başarılıysa
                expression { return BUILD_STATUS == 'SUCCESS' }
             }
             steps {
                script {
                    echo 'Staging'e dağıtım...'
                    // Dağıtım adımları
                }
             }
        }
    }
}