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