Junior
Xətaların ciddiyyət səviyyəsinin (severity) dərəcələndirilməsi nəyə bağlıdır?
sobes.tech Süni İntellekt
AI-dan cavab
Xətaların ciddiyyət səviyyəsinin (severity) dərəcəsi, defektin funksionallıq, stabillik və ya proqram məhsulunun təhlükəsizliyinə təsirindən asılıdır. İstifadəçi və ya biznes üçün potensial zərər qiymətləndirilir.
Severity-ə təsir edən əsas amillər:
- Funksionallığın kritikliyi: Təsirə məruz qalan funksiyanın tətbiqin işləməsi üçün önəmi.
- Əsas əməliyyatlara təsiri: Defekt əsas vəzifələrin yerinə yetirilməsinə mane olurmu?
- Məlumat və ya maliyyə itkisi: Defekt məlumatların sızması və ya itirilməsi, həmçinin maliyyə itkilərinə səbəb ola bilərmi?
- Sistemə çıxışın mövcudluğu: Defekt tətbiqdən istifadəni tam və ya qismən bloklayırmı?
- Alternativ yolun mövcudluğu: Əməliyyatı yerinə yetirmək üçün başqa bir yol var mı?
- Yaranma tezliyi: Defekt nə qədər tez-tez özünü göstərir (bu, daha çox prioritet amili olsa da, kritik və davamlı olan defektlərdə severity-ə də təsir edə bilər).
Tipik severity səviyyələri (layihə və şirkətdən asılı olaraq dəyişə bilər):
- Bloker: Məhsul tamamilə istifadə edilə bilməz, kritik funksionallıq bloklanıb, iş və ya test davam etdirilə bilməz. Məlumat və ya maliyyə itkisi təmin edilir.
- Kritik: Əhəmiyyətli funksionallıq işləməz və ya düzgün işləməz. Əsas əməliyyatlar ciddi şəkildə pozulur, lakin qismən işləmək imkanı var. Alternativ yol yoxdur.
- Əsas: Əhəmiyyətli, lakin kritik olmayan funksionallıq işləməz və ya düzgün işləməz. Əsas əməliyyatlarda pozuntular ola bilər, lakin alternativ yol mövcuddur. Məlumat itkisi mümkündür, lakin kritik deyil.
- Kiçik: Funksionallıqda kiçik pozuntular və ya istifadə rahatlığı ilə bağlı problemlər. Əsas əməliyyatlara təsiri yoxdur. Sadə bir çıxış yolu mövcuddur.
- Trivial: Estetik defektlər, mətn səhvləri, funksionallığa təsiri olmayan xətalar.
enum DefectSeverity {
case blocker, critical, major, minor, trivial
}
func determineSeverity(defectFunctionality: FunctionalityLevel, impact: ImpactLevel) -> DefectSeverity {
switch (defectFunctionality, impact) {
case (.critical, .blocksAll): return .blocker // Kritik funksiya, tamamilə bloklayır
case (.critical, .majorIssue): return .critical // Kritik funksiya, ciddi problemlər
case (.essential, .blocksAll): return .critical // Əsas funksiya, tamamilə bloklayır
case (.essential, .majorIssue): return .major // Əsas funksiya, ciddi problemlər
case (_, .minorIssue): return .minor // Kiçik problemlər
case (_, .cosmetic): return .trivial // Estetik problemlər
default: return .minor // Standart dəyər
}
}
enum FunctionalityLevel {
case critical, essential, minor
}
enum ImpactLevel {
case blocksAll, majorIssue, minorIssue, cosmetic
}
// İstifadə:
let severity = determineSeverity(defectFunctionality: .critical, impact: .blocksAll)
print(severity) // Nəticə: blocker