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