Junior
Xatoliklarning jiddiylik darajasining baholashiga nima ta'sir qiladi?
sobes.tech AI
AIdan javob
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