Sobes.tech
Junior

Millega sõltub vigade tõsiduse taseme (raskusastme) hindamine?

sobes.tech AI

Vastus AI-lt

Tõrke tõsiduse (severity) määramine sõltub defekti mõjust tarkvara funktsionaalsusele, stabiilsusele või turvalisusele. Hinnatakse potentsiaalset kahju kasutajale või ärile.

Peamised tegurid, mis mõjutavad severity-d:

  • Funktsionaalsuse kriitilisus: Kui oluline on mõjutatud funktsioon tarkvara töö jaoks.
  • Mõju põhitegevustele: Kas defekt takistab võtmetähtsusega ülesannete täitmist.
  • Andmete või raha kaotus: Kas defekt võib põhjustada andmete lekkimise või kaotsimineku ning finantskahju.
  • Süsteemi kättesaadavus: Kas defekt täielikult või osaliselt takistab rakenduse kasutamist.
  • Võimalus mööda minna: Kas on olemas alternatiivne viis tegevuse sooritamiseks.
  • Korduvuse sagedus: Kui sageli defekt ilmneb (kuigi see on pigem prioriteedi tegur, kuid võib mõjutada ka severity-d, kui defekt on kriitiline ja esineb pidevalt).

Tüüpilised severity tasemed (võivad projektist ja ettevõttest sõltuvalt erineda):

  • Blocker: Toode on täielikult kasutamatu, kriitiliselt oluline funktsioon on blokeeritud, töö või testimise jätkamine on võimatu. Andmete või finantskahju on garanteeritud.
  • Critical: Kriitiliselt oluline funktsioon ei tööta või töötab valesti. Põhitegevused on tõsiselt häiritud, kuid osaline töö on võimalik. Mööda mineku võimalus puudub.
  • Major: Oluline, kuid mitte kriitiline funktsioon ei tööta või töötab valesti. Võivad esineda häired põhitegevustes, kuid on olemas mööda mineku võimalus. Andmekao oht on olemas, kuid see ei ole kriitiline.
  • Minor: Väike funktsionaalsuse rikkumine või kasutusmugavuse probleem. Ei mõjuta põhitegevusi. On lihtne mööda mineku võimalus.
  • Trivial: Kosmeetilised vead, teksti vead, mis ei mõjuta funktsionaalsust.
// Näide severity määramisest sõltuvalt defekti tüübist ja mõjust
enum DefectSeverity {
    case blocker, critical, major, minor, trivial
}

func determineSeverity(defectFunctionality: FunctionalityLevel, impact: ImpactLevel) -> DefectSeverity {
    switch (defectFunctionality, impact) {
    case (.critical, .blocksAll): return .blocker // Kriitiline funktsioon, täielikult blokeeriv
    case (.critical, .majorIssue): return .critical // Kriitiline funktsioon, tõsised probleemid
    case (.essential, .blocksAll): return .critical // Põhifunktsioon, täielikult blokeeriv
    case (.essential, .majorIssue): return .major // Põhifunktsioon, tõsised probleemid
    case (_, .minorIssue): return .minor // Väikesed probleemid
    case (_, .cosmetic): return .trivial // Kosmeetilised probleemid
    default: return .minor // Vaikimisi väärtus
    }
}

enum FunctionalityLevel {
    case critical, essential, minor
}

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

// Kasutamine:
let severity = determineSeverity(defectFunctionality: .critical, impact: .blocksAll)
print(severity) // Väljund: blocker