Sobes.tech
Junior

რა არის დამოკიდებული შეცდომების სერიოზულობის დონეს (სერიოზულობა)?

sobes.tech AI

პასუხი AI-სგან

სერიოზულობის დონე (severity) დამოკიდებულია დეფექტის გავლენაზე პროგრამული პროდუქტის ფუნქციონალურობაზე, სტაბილურობაზე ან უსაფრთხოებაზე. შეფასებულია პოტენციური ზიანი მომხმარებლის ან ბიზნესისთვის.

სერიოზულობაზე გავლენას ახდენს ძირითადი ფაქტორები:

  • ფუნქციონალობის კრიტიკულობა: რამდენად მნიშვნელოვანია დაზარალებული ფუნქცია პროგრამის მუშაობისთვის.
  • მთავარი ოპერაციების გავლენა: აფერხებს თუ არა დეფექტი ძირითადი დავალებების შესრულებას.
  • მონაცემთა ან ფულის დაკარგვა: შეიძლება გამოიწვიოს მონაცემთა გაჟონვა ან დაკარგვა, ასევე ფინანსური ზარალი.
  • სისტემის ხელმისაწვდომობა: სრულად ან ნაწილობრივ ბლოკავს თუ არა დეფექტი პროგრამის გამოყენებას.
  • გადახვევა შესაძლებლობა: არსებობს თუ არა ალტერნატიული გზა მოქმედების შესრულებისთვის.
  • ხშირობა: რამდენად ხშირად გამოჩნდება დეფექტი (თუმცა ეს უფრო პრიორიტეტის ფაქტორია, მაგრამ შეიძლება გავლენა იქონიოს სერიოზულობაზე, თუ დეფექტი კრიტიკულია და მუდმივად გამოჩნდება).

ტიპიური სერიოზულობის დონეები (შესაძლოა განსხვავდებოდეს პროექტისა და კომპანიის მიხედვით):

  • Blocker: პროდუქტი სრულიად დაუყენებელია, კრიტიკულად მნიშვნელოვანი ფუნქცია ბლოკირებულია, შეუძლებელია მუშაობის ან ტესტირების გაგრძელება. მონაცემთა ან ფულის დაკარგვა გარანტირებულია.
  • Critical: კრიტიკულად მნიშვნელოვანი ფუნქცია არ მუშაობს ან არასწორად მუშაობს. ძირითადი ოპერაციები სერიოზულად არის დარღვეული, მაგრამ შესაძლებელია ნაწილობრივი მუშაობა. არ არის შესაძლებელი გადახვევა.
  • Major: მნიშვნელოვანი, მაგრამ არა კრიტიკული ფუნქცია არ მუშაობს ან არასწორად მუშაობს. შეიძლება იყოს დარღვევები ძირითადი ოპერაციებში, მაგრამ არსებობს გადახვევა. მონაცემთა დაკარგვა შესაძლებელია, მაგრამ არ არის კრიტიკული.
  • Minor: მცირედი ფუნქციონალური დარღვევა ან გამოყენების კომფორტის პრობლემა. არ ზემოქმედებს ძირითადი ოპერაციებზე. არსებობს მარტივი გადახვევა.
  • Trivial: კოსმეტიკური დეფექტები, ტექსტის შეცდომები, რომლებიც არ ზემოქმედებს ფუნქციონალობაზე.
// მაგალითი სერიოზულობის განსაზღვრის, დამოკიდებული დეფექტის ტიპსა და მის გავლენაზე
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