Sobes.tech
Junior

Miből függ a hibák súlyossági szintjének (severity) osztályozása?

sobes.tech MI

Válasz az MI-től

A hibák súlyossági szintje (severity) a hiba hatásától függ a szoftver funkcionalitására, stabilitására vagy biztonságára. A potenciális kár értékelése a felhasználóra vagy az üzletre nézve.

A severity-t befolyásoló fő tényezők:

  • Funkcionalitás kritikus volta: Mennyire fontos az érintett funkció a program működéséhez.
  • Hatás a fő műveletekre: Megakadályozza-e a hiba a kulcsfontosságú feladatok végrehajtását.
  • Adat- vagy pénzveszteség: Vezethet-e a hiba adatvesztéshez vagy pénzügyi veszteséghez.
  • A rendszer elérhetősége: Teljes vagy részleges blokkolja-e a hiba az alkalmazás használatát.
  • Kikerülési lehetőség: Van-e alternatív mód a művelet végrehajtására.
  • Előfordulási gyakoriság: Milyen gyakran jelentkezik a hiba (bár ez inkább prioritási tényező, de befolyásolhatja a severity-t, ha a hiba kritikus és folyamatosan fennáll).

A tipikus severity szintek (projekt és cég függvényében változhatnak):

  • Blocker: A termék teljesen használhatatlan, kritikus funkció blokkolva, nem folytatható a munka vagy tesztelés. Az adat- vagy pénzveszteség garantált.
  • Critical: Kritikus funkció nem működik vagy hibásan működik. A fő műveletek súlyosan sérültek, de részleges működés lehetséges. Nincs kikerülési lehetőség.
  • Major: Fontos, de nem kritikus funkció nem működik vagy hibásan működik. Lehetnek problémák a fő műveletekben, de van alternatív megoldás. Adatveszteség lehetséges, de nem kritikus.
  • Minor: Kisebb funkcionális hiba vagy használhatósági probléma. Nem befolyásolja a fő műveleteket. Van egyszerű kikerülési lehetőség.
  • Trivial: Esztétikai hibák, szöveghibák, amelyek nem befolyásolják a funkcionalitást.
// Példa a severity meghatározására a hiba típusától és hatásától függően
enum DefectSeverity {
    case blocker, critical, major, minor, trivial
}

func determineSeverity(defectFunctionality: FunctionalityLevel, impact: ImpactLevel) -> DefectSeverity {
    switch (defectFunctionality, impact) {
    case (.critical, .blocksAll): return .blocker // Kritikus funkció, teljes blokkolás
    case (.critical, .majorIssue): return .critical // Kritikus funkció, súlyos problémák
    case (.essential, .blocksAll): return .critical // Alapvető funkció, teljes blokkolás
    case (.essential, .majorIssue): return .major // Alapvető funkció, súlyos problémák
    case (_, .minorIssue): return .minor // Kisebb problémák
    case (_, .cosmetic): return .trivial // Esztétikai problémák
    default: return .minor // Alapértelmezett érték
    }
}

enum FunctionalityLevel {
    case critical, essential, minor
}

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

// Használat:
let severity = determineSeverity(defectFunctionality: .critical, impact: .blocksAll)
print(severity) // Kiírja: blocker