Sobes.tech
Junior

Hata ciddiyet seviyesi (severity) derecelendirmesi neye bağlıdır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Hataların ciddiyet seviyesi (severity) derecelendirmesi, hatanın fonksiyonellik, kararlılık veya yazılım ürününün güvenliğine etkisine bağlıdır. Kullanıcı veya işletme için potansiyel zarar değerlendirilir.

Severity üzerinde etkili ana faktörler:

  • Fonksiyonun kritikliği: Etkilenen fonksiyonun uygulamanın çalışması için önemi.
  • Ana işlemler üzerindeki etkisi: Hata, ana görevlerin yerine getirilmesini engelliyor mu?
  • Veri veya maddi kayıp: Hata, veri sızıntısına veya kaybına, finansal kayıplara yol açabilir mi?
  • Sistem erişilebilirliği: Hata, uygulamanın kullanımını tamamen veya kısmen engelliyor mu?
  • Alternatif yol olasılığı: İşlemi gerçekleştirmek için başka bir yol var mı?
  • Oluşma sıklığı: Hata ne sıklıkla ortaya çıkar (bu daha çok öncelik faktörü olsa da, kritik ve sürekli ortaya çıkan hata ise severity üzerinde de etkili olabilir).

Tipik severity seviyeleri (proje ve şirkete göre değişebilir):

  • Engelleyici: Ürün tamamen kullanılamaz hale gelir, kritik öneme sahip fonksiyonlar engellenir, çalışma veya test devam edemez. Veri veya finansal kayıplar garanti edilir.
  • Kritik: Kritik öneme sahip fonksiyon çalışmıyor veya yanlış çalışıyor. Ana işlemler ciddi şekilde etkilenmiş, ancak kısmi çalışma imkanı var. Alternatif yol yok.
  • Büyük: Önemli ama kritik olmayan fonksiyon çalışmıyor veya yanlış çalışıyor. Ana işlemlerde kesintiler olabilir, ancak alternatif yol mevcut. Veri kaybı olabilir, ancak kritik değil.
  • Küçük: Fonksiyonellikte küçük bozukluklar veya kullanılabilirlik sorunları. Ana işlemleri etkilemez. Basit bir çözüm yolu var.
  • Trivial: Kozmetik hatalar, metin hataları, fonksiyonelliği etkilemeyen hatalar.
enum DefectSeverity {
    case blocker, critical, major, minor, trivial
}

func determineSeverity(defectFunctionality: FunctionalityLevel, impact: ImpactLevel) -> DefectSeverity {
    switch (defectFunctionality, impact) {
    case (.critical, .blocksAll): return .blocker // Kritik fonksiyon, tamamen engeller
    case (.critical, .majorIssue): return .critical // Kritik fonksiyon, ciddi sorunlar
    case (.essential, .blocksAll): return .critical // Ana fonksiyon, tamamen engeller
    case (.essential, .majorIssue): return .major // Ana fonksiyon, ciddi sorunlar
    case (_, .minorIssue): return .minor // Küçük sorunlar
    case (_, .cosmetic): return .trivial // Kozmetik sorunlar
    default: return .minor // Varsayılan değer
    }
}

enum FunctionalityLevel {
    case critical, essential, minor
}

enum ImpactLevel {
    case blocksAll, majorIssue, minorIssue, cosmetic
}

// Kullanım:
let severity = determineSeverity(defectFunctionality: .critical, impact: .blocksAll)
print(severity) // Çıktı: blocker
}}