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