Sobes.tech
Junior

Na čom závisí hodnotenie úrovne závažnosti chýb (severity)?

sobes.tech AI

Odpoveď od AI

Gradácia úrovne závažnosti chýb (severity) závisí od vplyvu vady na funkčnosť, stabilitu alebo bezpečnosť softvérového produktu. Hodnotí sa potenciálna škoda pre používateľa alebo podnikanie.

Hlavné faktory ovplyvňujúce severity:

  • Kritickosť funkcie: Ako dôležitá je dotknutá funkcia pre chod aplikácie.
  • Vplyv na hlavné operácie: Bráni vada vykonávaniu kľúčových úloh.
  • Strata dát alebo peňazí: Môže vada viesť k úniku alebo strate dát, ako aj k finančným stratám.
  • Dostupnosť systému: Plne alebo čiastočne blokuje použitie aplikácie.
  • Možnosť obchádzania: Existuje alternatívny spôsob vykonania akcie.
  • Frekvencia výskytu: Ako často sa vada prejavuje (hoci je to skôr faktor priority, ale môže ovplyvniť aj severity, ak je vada kritická a opakovaná).

Typické úrovne severity (môžu sa líšiť podľa projektu a spoločnosti):

  • Blocker: Produkt je úplne nepoužiteľný, kriticky dôležitá funkcia je zablokovaná, nie je možné pokračovať v práci alebo testovaní. Strata dát alebo peňazí je zaručená.
  • Critical: Kritická funkcia nefunguje alebo funguje nesprávne. Hlavné operácie sú vážne narušené, ale je možná čiastočná funkčnosť. Nie je k dispozícii obchádzanie.
  • Major: Dôležitá, ale nie kritická funkcia nefunguje alebo funguje nesprávne. Môžu nastať narušenia hlavných operácií, ale je k dispozícii obchádzanie. Môže dôjsť ku strate dát, ale nie je kritická.
  • Minor: Menšia porucha funkčnosti alebo problémy s použiteľnosťou. Neovplyvňuje hlavné operácie. Je k dispozícii jednoduché obchádzanie.
  • Trivial: Estetické vady, chyby v texte, ktoré neovplyvňujú funkčnosť.
// Príklad určenia severity v závislosti od typu vady a jej vplyvu
enum DefectSeverity {
    case blocker, critical, major, minor, trivial
}

func determineSeverity(defectFunctionality: FunctionalityLevel, impact: ImpactLevel) -> DefectSeverity {
    switch (defectFunctionality, impact) {
    case (.critical, .blocksAll): return .blocker // Kritická funkcia, úplné blokovanie
    case (.critical, .majorIssue): return .critical // Kritická funkcia, vážne problémy
    case (.essential, .blocksAll): return .critical // Hlavná funkcia, úplné blokovanie
    case (.essential, .majorIssue): return .major // Hlavná funkcia, vážne problémy
    case (_, .minorIssue): return .minor // Menšie problémy
    case (_, .cosmetic): return .trivial // Estetické problémy
    default: return .minor // Predvolená hodnota
    }
}

enum FunctionalityLevel {
    case critical, essential, minor
}

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

// Použitie:
let severity = determineSeverity(defectFunctionality: .critical, impact: .blocksAll)
print(severity) // Vypíše: blocker