Sobes.tech
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