Junior
Od čega zavisi kategorizacija nivoa ozbiljnosti grešaka (težina)?
sobes.tech АИ
Одговор од АИ
Градација нивоа озбиљности грешака (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