τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
αν είστε αμηχανικός δοκιμών λογισμικού , αυτό που αντιμετωπίζεις κάθε μέρα είναι εκείνα τα «δύσκολα» σφάλματα, είναι σαν εχθροί κρυμμένοι στο σκοτάδι, που ξεπηδούν από καιρό σε καιρό για να σου κάνουν μια «έκπληξη». Λοιπόν, πώς μπορείτε να αναλύσετε και να αντιμετωπίσετε αποτελεσματικά αυτά τα σφάλματα και να κάνετε τη δοκιμή σας αποτελεσματική και ενδιαφέρουσα; Σήμερα θα μιλήσουμε για αυτό το θέμα.
Ας ρίξουμε μια ματιά σε μια κλασική περίπτωση πρώτα.Ο Xiao Li είναι έμπειροςΜηχανικός δοκιμής , πρόσφατα ήταν υπεύθυνος για τη δοκιμή ενός χρηματοπιστωτικού συστήματος. Κατά τη διάρκεια μιας δοκιμής, ο Xiao Li ανακάλυψε ένα σοβαρό σφάλμα: υπήρχε ένα σφάλμα στο ποσό όταν ο χρήστης πραγματοποίησε μια λειτουργία μεταφοράς. Εάν αυτό το σφάλμα τοποθετούνταν σε περιβάλλον παραγωγής, οι συνέπειες θα ήταν καταστροφικές.
Έτσι, ο Xiao Li ξεκίνησε το «ταξίδι του ντετέκτιβ». Ξεκίνησε με τη βασική αιτία και ανέλυσε διάφορους παράγοντες που μπορεί να προκάλεσαν το σφάλμα. Μετά από κάποια έρευνα, ο Xiao Li διαπίστωσε ότι το πρόβλημα βρισκόταν σε ελλιπή ανάλυση ζήτησης και ζητήματα κώδικα προγράμματος. Ορισμένες οριακές συνθήκες δεν καθορίζονται στο έγγραφο απαιτήσεων, προκαλώντας σφάλματα στο πρόγραμμα κατά τον χειρισμό ειδικών σεναρίων.
Σε αυτήν την περίπτωση, το Xiao Li όχι μόνο χρειάζεται να διορθώσει το σφάλμα, αλλά πρέπει επίσης να βελτιώσει τη διαδικασία ανάλυσης απαιτήσεων και αναθεώρησης κώδικα για να αποφύγει την επανεμφάνιση παρόμοιων προβλημάτων.
Ας δούμε μια άλλη περίπτωση. Ο Xiao Wang είναι ο συνάδελφος του Xiao Li και συμμετείχαν από κοινού στη δοκιμή ενός έργου ηλεκτρονικού εμπορίου. Ο Xiao Wang ανακάλυψε ένα σφάλμα: η ποσότητα αποθέματος ορισμένων προϊόντων στο καλάθι αγορών δεν μπορούσε να εμφανιστεί σωστά. Αυτό το σφάλμα φαίνεται απλό, αλλά ο λόγος πίσω από αυτό είναι περίπλοκος.
Μετά από λεπτομερή ανάλυση, ο Xiao Wang διαπίστωσε ότι οι προγραμματιστές έλαβαν υπόψη μόνο κανονικά σενάρια κατά την κωδικοποίηση και αγνόησαν μη φυσιολογικές καταστάσεις. Για παράδειγμα, όταν η ποσότητα αποθέματος είναι μηδέν, το πρόγραμμα δεν το χειρίζεται ανάλογα, με αποτέλεσμα να εμφανίζεται σφάλμα εμφάνισης. Αυτό το σφάλμα υπενθυμίζει στον Xiao Wang ότι όταν γράφετε δοκιμαστικές περιπτώσεις, δεν πρέπει να καλύπτετε μόνο κανονικά σενάρια, αλλά και να εξετάζετε διάφορες μη φυσιολογικές καταστάσεις.
Για να βοηθήσει όλους να καταλάβουν καλύτερα, ο Xiao Wang έγραψε επίσης ένα δείγμα κώδικα:
def check_inventory(item_id):
inventory = get_inventory(item_id)
if inventory > 0:
return f"库存数量:{inventory}"
else:
return "商品已售罄"
# 测试用例
assert check_inventory(101) == "库存数量:10"
assert check_inventory(102) == "商品已售罄"
Αυτός ο κώδικας χρησιμοποιεί απλή υπό όρους κρίση για να διασφαλίσει ότι οι πληροφορίες μπορούν να εμφανίζονται σωστά ακόμη και όταν το απόθεμα είναι μηδέν. Αυτό έμαθε ο Xiao Wang μέσω της ανάλυσης σφαλμάτων.
Όταν αναλύουμε σφάλματα, πρέπει επίσης να προσέχουμε σε ποιο στάδιο της διαδικασίας ανάπτυξης ανακαλύφθηκαν. Σε γενικές γραμμές, η φάση ανακάλυψης σφαλμάτων μπορεί να χωριστεί στη φάση ανάλυσης δοκιμής και στη φάση εκτέλεσης δοκιμής.
Το στάδιο ανάλυσης δοκιμής εξετάζει κυρίως τα έγγραφα απαιτήσεων και περιγράφει τα έγγραφα σχεδιασμού. Σφάλματα που ανακαλύπτονται σε αυτό το στάδιο σχετίζονται συχνά με ζητήματα τεκμηρίωσης και θέματα ελέγχου. Η φάση εκτέλεσης της δοκιμής, συμπεριλαμβανομένης της δοκιμής καπνού, της λειτουργικής δοκιμής, της δοκιμής παλινδρόμησης, κ.λπ., είναι η πλήρης επαλήθευση του λογισμικού για τη διασφάλιση της κανονικής λειτουργίας κάθε λειτουργικής μονάδας.
Για παράδειγμα, ο Xiao Li και ο Xiao Wang ανακάλυψαν πολλά προβλήματα τεκμηρίωσης στα πρώτα στάδια του έργου, εάν αυτά τα προβλήματα δεν επιλυθούν εγκαίρως, είναι πιθανό να προκαλέσουν περισσότερα σφάλματα σε επόμενες δοκιμές. Επομένως, ελέγχουν αυστηρά κάθε στάδιο δοκιμών για να διασφαλίσουν ότι όλη η τεκμηρίωση και ο κώδικας ελέγχονται πλήρως.
Μερικές φορές, η εμφάνιση σφαλμάτων σχετίζεται με την πολυπλοκότητα και το μέγεθος της τροποποίησης ενός συγκεκριμένου συστήματος. Σε ένα μεγάλο έργο που περιλαμβάνει πολλά συστήματα, ορισμένα συστήματα ενδέχεται να γίνουν "περιοχές υψηλής συχνότητας" για σφάλματα λόγω βαρέων τροποποιήσεων. Για παράδειγμα, στα έργα των Xiao Li και Xiao Wang, το System 2 και το System 3 είχαν τον μεγαλύτερο αριθμό τροποποιήσεων, επομένως είχαν επίσης τα περισσότερα σφάλματα.
Υπολογίζοντας την πυκνότητα ελαττώματος κάθε συστήματος (δηλαδή τον αριθμό των ελαττωμάτων ανά χίλιες γραμμές κώδικα), διαπίστωσαν ότι παρόλο που το Σύστημα 4 είχε μεγάλο αριθμό τροποποιήσεων, ο αριθμός των ελαττωμάτων ήταν σχετικά μικρός. Αυτό υποδηλώνει ότι το Σύστημα 4 έχει υψηλότερη ποιότητα κώδικα, ενώ το Σύστημα 2 και το Σύστημα 3 χρειάζονται περαιτέρω βελτιστοποίηση.
Τέλος, πρέπει επίσης να δώσουμε προσοχή στο πρόβλημα των χαμένων ανιχνεύσεων στις δοκιμές. Ανεξάρτητα από το πόσο προσεκτικοί είναι οι δοκιμαστές, ορισμένα σφάλματα ενδέχεται να συνεχίσουν να «διαρρεύσουν» κατά τη φάση της δοκιμής και να εισέλθουν στο περιβάλλον παραγωγής. Προκειμένου να μειωθεί αυτή η κατάσταση, οι Xiao Li και Xiao Wang εξετάζουν τακτικά τη διαδικασία δοκιμών, αναλύουν ποιοι σύνδεσμοι ενδέχεται να έχουν παραλείψεις και κάνουν έγκαιρες βελτιώσεις.
Για παράδειγμα, μετά την έναρξη ενός έργου, ανακάλυψαν ότι εμφανίστηκαν ορισμένα σφάλματα στο περιβάλλον παραγωγής, το ένα τρίτο των οποίων προκλήθηκαν από χαμένες ανιχνεύσεις κατά τη διαδικασία δοκιμών. Ορισμένα από αυτά τα σφάλματα οφείλονται στην ανεπαρκή κάλυψη των δοκιμαστικών περιπτώσεων και ορισμένα οφείλονται σε δεδομένα δοκιμής χαμηλής ποιότητας.
Μέσα από μια ολοκληρωμένη ανάλυση των σφαλμάτων, μπορούμε όχι μόνο να βρούμε τη βασική αιτία του προβλήματος, αλλά και να αντλήσουμε έμπνευση για βελτίωση. Είτε πρόκειται για ανάλυση απαιτήσεων, ποιότητα κώδικα ή διαδικασία δοκιμής, κάθε πτυχή απαιτεί την προσεκτική μας προσοχή και τη συνεχή βελτιστοποίηση. Μόνο με αυτόν τον τρόπο μπορεί να βελτιωθεί η ποιότητα του λογισμικού και να μειωθεί η εμφάνιση σφαλμάτων.
Τέλος, θα ήθελα να ευχαριστήσω όλους όσοι διάβασαν προσεκτικά το άρθρο μου.
Πρέπει να μελετήσουμε για να βρούμε μια υψηλά αμειβόμενη δουλειά set Πιστεύω ότι όλοι μπορούν να βρουν μια ικανοποιητική δουλειά με βάση τις πληροφορίες της συνέντευξης.