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