Junior
Από τι εξαρτάται η βαθμολογία του επιπέδου σοβαρότητας των σφαλμάτων (severity);
sobes.tech AI
Απάντηση από AI
Η βαθμολογία του επιπέδου σοβαρότητας (severity) των σφαλμάτων εξαρτάται από την επίδραση του ελαττώματος στη λειτουργικότητα, σταθερότητα ή ασφάλεια του λογισμικού προϊόντος. Αξιολογείται η πιθανή ζημιά για τον χρήστη ή την επιχείρηση.
Οι κύριοι παράγοντες που επηρεάζουν το severity:
- Κρισιμότητα της λειτουργίας: Πόσο σημαντική είναι η επηρεαζόμενη λειτουργία για τη λειτουργία της εφαρμογής.
- Επίδραση στις κύριες λειτουργίες: Εμποδίζει το ελάττωμα την εκτέλεση βασικών εργασιών;
- Απώλεια δεδομένων ή χρημάτων: Μπορεί το ελάττωμα να οδηγήσει σε διαρροή ή απώλεια δεδομένων, καθώς και σε χρηματοοικονομικές απώλειες;
- Διαθεσιμότητα συστήματος: Μπλοκάρει πλήρως ή μερικώς τη χρήση της εφαρμογής;
- Δυνατότητα εναλλακτικής λύσης: Υπάρχει εναλλακτικός τρόπος εκτέλεσης της ενέργειας;
- Συχνότητα εμφάνισης: Πόσο συχνά εμφανίζεται το ελάττωμα (αν και αυτό είναι περισσότερο παράγοντας προτεραιότητας, μπορεί επίσης να επηρεάσει το severity αν το ελάττωμα είναι κρίσιμο και εμφανίζεται συνεχώς).
Τυπικά επίπεδα 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) // Θα εμφανίσει: μπλοκάρισμα