Sobes.tech
Junior

Қателердің ауырлық деңгейінің бағалануы неге байланысты?

sobes.tech AI

AI-дан жауап

Қателіктердің ауырлық деңгейінің градациясы (severity) бағдарламалық өнімнің функционалдығы, тұрақтылығы немесе қауіпсіздігіне әсеріне байланысты. Бұл пайдаланушыға немесе бизнеске потенциальды зиянды бағалау.

Негізгі факторлар, олар severity-ке әсер етеді:

  • Функционалдың маңыздығы: Қандай дәрежеде әсер еткен функция қолдану үшін маңызды.
  • Негізгі операцияларға әсері: Қателік негізгі тапсырмалардың орындалуына кедергі келтіреді ме.
  • Деректер немесе қаржылық шығындар: Қателік деректердің ағып кетуіне немесе жоғалуына, сондай-ақ қаржылық шығындарға әкелуі мүмкін бе.
  • Жүйенің қол жетімділігі: Қателік қолданбаны толық немесе ішінара пайдалану мүмкіндігін блоктайды ма.
  • Альтернативті жолдың болуы: Әрекетті орындаудың баламалы тәсілі бар ма.
  • Қайталану жиілігі: Қателік қаншалықты жиі байқалады (бұл әдетте приоритет факторы, бірақ егер қателік критикалық және үнемі байқалса, severity-ке әсер етуі мүмкін).

Типтік severity деңгейлері (жоба мен компанияға байланысты өзгеруі мүмкін):

  • Blocker: Өнім толық пайдалануға жарамсыз, критикалық маңызды функционал блокталған, жұмыс немесе тестілеуді жалғастыру мүмкін емес. Деректердің жоғалуы немесе қаржылық шығындар кепілденген.
  • Critical: Критикалық маңызды функционал жұмыс істемейді немесе дұрыс жұмыс істемейді. Негізгі операциялар айтарлықтай бұзылған, бірақ ішінара жұмыс істеу мүмкіндігі бар. Баламалы жол жоқ.
  • Major: Маңызды, бірақ критикалық емес функционал жұмыс істемейді немесе дұрыс жұмыс істемейді. Негізгі операцияларда бұзушылықтар болуы мүмкін, бірақ баламалы жол бар. Деректер жоғалуы мүмкін, бірақ ол критикалық емес.
  • Minor: Функционалдың шағын бұзылуы немесе пайдалану ыңғайлылығы мәселелері. Негізгі операцияларға әсер етпейді. Жай баламалы жол бар.
  • Trivial: Эстетикалық ақаулар, мәтін қателері, функционалға әсер етпейді.
// Қателік түрі мен әсеріне байланысты severity анықтау мысалы
enum DefectSeverity {
    case blocker, critical, major, minor, trivial
}

func determineSeverity(defectFunctionality: FunctionalityLevel, impact: ImpactLevel) -> DefectSeverity {
    switch (defectFunctionality, impact) {
    case (.critical, .blocksAll): return .blocker // Критикалық функция, толық блоктау
    case (.critical, .majorIssue): return .critical // Критикалық функция, маңызды мәселелер
    case (.essential, .blocksAll): return .critical // Негізгі функция, толық блоктау
    case (.essential, .majorIssue): return .major // Негізгі функция, маңызды мәселелер
    case (_, .minorIssue): return .minor // Аздаған мәселелер
    case (_, .cosmetic): return .trivial // Эстетикалық мәселелер
    default: return .minor // Әдепкі мән
    }
}

enum FunctionalityLevel {
    case critical, essential, minor
}

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

// Қолдану:
let severity = determineSeverity(defectFunctionality: .critical, impact: .blocksAll)
print(severity) // Шығарады: blocker