Επαλήθευση λογισμικού. Δοκιμή του BKU και του λογισμικού του σε μη εμπορικούς οργανισμούς. Μέθοδοι επαλήθευσης λογισμικού και δοκιμής White Box Testing

μια ομάδα περιλαμβάνει περισσότερα από δύο άτομα, αναπόφευκτα τίθεται το ερώτημα σχετικά με την κατανομή των ρόλων, των δικαιωμάτων και των ευθυνών στην ομάδα. Το συγκεκριμένο σύνολο ρόλων καθορίζεται από πολλούς παράγοντες - τον αριθμό των συμμετεχόντων στην ανάπτυξη και τις προσωπικές τους προτιμήσεις, την υιοθετούμενη μεθοδολογία ανάπτυξης, τα χαρακτηριστικά του έργου και άλλους παράγοντες. Σχεδόν σε οποιαδήποτε ομάδα ανάπτυξης, οι ρόλοι που αναφέρονται παρακάτω μπορούν να διακριθούν. Μερικά από αυτά μπορεί να απουσιάζουν εντελώς, ενώ τα άτομα μπορεί να εκτελούν πολλούς ρόλους ταυτόχρονα, αλλά η συνολική σύνθεση αλλάζει ελάχιστα.

Πελάτης (αιτών). Αυτός ο ρόλος ανήκει σε έναν εκπρόσωπο του οργανισμού που παρήγγειλε το υπό ανάπτυξη σύστημα. Συνήθως ο αιτών είναι περιορισμένος στην αλληλεπίδρασή του και επικοινωνεί μόνο με τους διαχειριστές του έργου και τον ειδικό πιστοποίησης ή υλοποίησης. Συνήθως, ο πελάτης έχει το δικαίωμα να αλλάξει τις απαιτήσεις για το προϊόν (μόνο σε αλληλεπίδραση με τους διαχειριστές), να διαβάσει την τεκμηρίωση σχεδιασμού και πιστοποίησης που επηρεάζει μη τεχνικά χαρακτηριστικά του συστήματος που αναπτύσσεται.

Υπεύθυνος έργου. Αυτός ο ρόλος παρέχει ένα κανάλι επικοινωνίας μεταξύ του πελάτη και της ομάδας έργου. Ο διαχειριστής προϊόντων διαχειρίζεται τις προσδοκίες των πελατών και αναπτύσσει και διατηρεί το επιχειρηματικό πλαίσιο του έργου. Η δουλειά του δεν σχετίζεται άμεσα με τις πωλήσεις, επικεντρώνεται στο προϊόν, καθήκον του είναι να καθορίζει και να παρέχει απαιτήσεις πελατών. Ο διαχειριστής έργου έχει το δικαίωμα να αλλάξει τις απαιτήσεις του προϊόντος και την τεκμηρίωση του τελικού προϊόντος.

ΔΙΑΧΕΙΡΙΣΤΗΣ προγράμματος. Αυτός ο ρόλος διαχειρίζεται τις επικοινωνίες και τις σχέσεις εντός της ομάδας του έργου, ενεργεί ως συντονιστής, αναπτύσσει και διαχειρίζεται λειτουργικές προδιαγραφές, διατηρεί το χρονοδιάγραμμα του έργου και αναφέρει την κατάσταση του έργου και ξεκινά αποφάσεις κρίσιμες για την πρόοδο του έργου.

Δοκιμές- η διαδικασία εκτέλεσης ενός προγράμματος προκειμένου να εντοπιστεί ένα σφάλμα.

Δεδομένα δοκιμής- είσοδοι που χρησιμοποιούνται για τη δοκιμή του συστήματος.

Δοκιμαστική υπόθεση- είσοδοι για τη δοκιμή του συστήματος και αναμενόμενες έξοδοι ανάλογα με τις εισόδους εάν το σύστημα λειτουργεί σύμφωνα με τις προδιαγραφές των απαιτήσεων.

Καλή κατάσταση δοκιμής- μια κατάσταση που έχει μεγάλη πιθανότητα ανίχνευσης ενός σφάλματος που δεν έχει ακόμη εντοπιστεί.

Επιτυχημένο τεστ- μια δοκιμή που εντοπίζει ένα σφάλμα που δεν έχει ακόμη εντοπιστεί.

Λάθος- μια ενέργεια του προγραμματιστή στο στάδιο ανάπτυξης, που οδηγεί στο γεγονός ότι το λογισμικό περιέχει ένα εσωτερικό ελάττωμα, το οποίο κατά τη λειτουργία του προγράμματος μπορεί να οδηγήσει σε εσφαλμένο αποτέλεσμα.

Αρνηση- απρόβλεπτη συμπεριφορά του συστήματος, που οδηγεί σε ένα απροσδόκητο αποτέλεσμα, το οποίο θα μπορούσε να προκληθεί από ελαττώματα που περιέχονται σε αυτό.

Έτσι, κατά τη διαδικασία δοκιμής λογισμικού, συνήθως ελέγχονται τα ακόλουθα.

Επαλήθευση λογισμικού Η επαλήθευση είναι μια μορφή δοκιμής. Αναπτύχθηκε τη δεκαετία του '80. Clark και Emerson στις ΗΠΑ, και ανεξάρτητα από τους Quayle και Sifakis στη Γαλλία. Η δοκιμή λογισμικού είναι η διαδικασία εντοπισμού σφαλμάτων στο λογισμικό. Οι τρέχουσες μέθοδοι δοκιμής λογισμικού δεν μας επιτρέπουν να καθορίσουμε με σαφήνεια τη σωστή λειτουργία του αναλυόμενου προγράμματος. Επαλήθευση (από τα λατινικά verus - true, facere - to do) - επαλήθευση, επαληθευσιμότητα, τρόπος τεκμηρίωσης (επιβεβαίωσης) οποιωνδήποτε θεωρητικών προτάσεων με σύγκριση με πειραματικά δεδομένα. Η επαλήθευση είναι επιβεβαίωση που βασίζεται στην παροχή αντικειμενικών αποδεικτικών στοιχείων ότι οι καθορισμένες απαιτήσεις πληρούνται (σύμφωνα με το GOST ISO).


Επίσημη επαλήθευση Επίσημη επαλήθευση Κατά κανόνα, οι περισσότεροι προγραμματιστές συστημάτων λογισμικού χρησιμοποιούν μεθόδους προσομοίωσης μοντελοποίησης και δοκιμών για να επαληθεύσουν την ορθότητα του σχεδιασμού. Είναι αρκετά αποτελεσματικά στα πολύ πρώιμα στάδια του εντοπισμού σφαλμάτων, όταν το σύστημα που σχεδιάζεται εξακολουθεί να είναι γεμάτο λάθη, αλλά η αποτελεσματικότητα αυτών των μεθόδων μειώνεται γρήγορα καθώς το σύστημα γίνεται καθαρότερο. Οι επίσημες μέθοδοι επαλήθευσης είναι μια αξιόλογη εναλλακτική λύση στη μοντελοποίηση και τη δοκιμή προσομοίωσης. Η μοντελοποίηση και η δοκιμή προσομοίωσης εξετάζουν μόνο μερικά από τα πιθανά σενάρια συμπεριφοράς του σχεδιασμένου συστήματος, επομένως το ερώτημα παραμένει ανοιχτό εάν οι αχρησιμοποίητες τροχιές περιέχουν μοιραίο σφάλμα. Η επίσημη επαλήθευση παρέχει μια εξαντλητική ανάλυση όλων των πιθανών επιλογών για τη συμπεριφορά του συστήματος.


Μέθοδοι επίσημης επαλήθευσης Αυτόματη απόδειξη θεωρημάτων – απόδειξη θεωρημάτων που υλοποιούνται σε λογισμικό. Βασίζεται στη συσκευή της μαθηματικής λογικής. Χρησιμοποιεί επίσης ιδέες από τη θεωρία της τεχνητής νοημοσύνης. Η διαδικασία της απόδειξης βασίζεται σε προτασιακή και κατηγορηματική λογική. Έλεγχος μοντέλου. Μέθοδος αυτόματης επαλήθευσης παράλληλων συστημάτων με πεπερασμένο αριθμό καταστάσεων. Συμβολική εκτέλεση (γραφήματα). Αφηρημένη ερμηνεία.


Στάδια επίσημης επαλήθευσης σε μοντέλο Στάδια επίσημης επαλήθευσης σε μοντέλο Μοντελοποίηση. Για το σχεδιασμένο σύστημα, είναι απαραίτητο να κατασκευαστεί το αφηρημένο μοντέλο του (για παράδειγμα, ένα πεπερασμένο σύστημα μετάβασης), αποδεκτό για εργαλεία επαλήθευσης μοντέλων προγραμμάτων. Προσδιορισμός. Αυτή η εργασία συνίσταται στη διατύπωση των ιδιοτήτων που πρέπει να έχει το σχεδιασμένο σύστημα. Είναι αδύνατο να προσδιοριστεί εάν μια δεδομένη προδιαγραφή καλύπτει όλες τις ιδιότητες που πρέπει να έχει ένα σύστημα. Για υλικό και λογισμικό, κατά κανόνα χρησιμοποιούνται δυναμικές λογικές, λογικές χρονισμού και οι παραλλαγές τους με σταθερά σημεία. Υπολογισμοί αλγορίθμων. Το αποτέλεσμα των υπολογισμών του καθολικού αλγορίθμου ελέγχου μοντέλου είναι ένα σύνολο καταστάσεων μοντέλου στις οποίες ικανοποιείται η προδιαγραφή και ο αλγόριθμος ελέγχου τοπικού μοντέλου κατασκευάζει ως αντιπαράδειγμα κάποιον υπολογισμό (ίχνος σφάλματος) που δείχνει γιατί δεν ισχύει ο τύπος. Τα αντιπαραδείγματα είναι ιδιαίτερα σημαντικά για την εύρεση λεπτών σφαλμάτων σε πολύπλοκα συστήματα μετάβασης.


Μέθοδος ελέγχου μοντέλου Σε σύγκριση με άλλες προσεγγίσεις για την επίσημη επαλήθευση προγράμματος, η μέθοδος ελέγχου μοντέλου έχει δύο αξιοσημείωτα πλεονεκτήματα: Είναι εντελώς αυτόματη και η εφαρμογή της δεν απαιτεί από τον χρήστη να έχει ειδικές γνώσεις σε μαθηματικούς κλάδους όπως η λογική και η θεωρία απόδειξης θεωρημάτων. Όποιος μπορεί να προσομοιώσει ένα σύστημα που σχεδιάζεται είναι πλήρως σε θέση να δοκιμάσει αυτό το σύστημα. Εάν το σχεδιασμένο σύστημα δεν έχει την επιθυμητή ιδιότητα, τότε το αποτέλεσμα της δοκιμής μοντέλου θα είναι ένα αντιπαράδειγμα που καταδεικνύει τη συμπεριφορά του συστήματος που αναιρεί αυτήν την ιδιότητα. Αυτό το ίχνος σφάλματος παρέχει ανεκτίμητες πληροφορίες για την κατανόηση της αιτίας του σφάλματος, καθώς και μια σημαντική ένδειξη για την επίλυση του προβλήματος. Το κύριο μειονέκτημα της μεθόδου ελέγχου μοντέλου είναι η "συνδυαστική έκρηξη", η οποία συμβαίνει όταν οι μεταβάσεις σε ορισμένα στοιχεία του συστήματος εκτελούνται παράλληλα. Το 1987, ο K. McMillan έδειξε ότι, χρησιμοποιώντας μια συμβολική αναπαράσταση του γραφήματος μετάβασης, μπορούν να επαληθευτούν πολύ περίπλοκα συστήματα. Η νέα συμβολική αναπαράσταση βασίστηκε στα διατεταγμένα δυαδικά διαγράμματα ανάλυσης (OBDD) του Briand.


Η έννοια της επαλήθευσης του λογισμικού BKU Στο RSC Energia, η έννοια της επαλήθευσης δεν μπορεί να χρησιμοποιηθεί πλήρως, καθώς κατά τη δημιουργία πολύ περίπλοκων συστημάτων, είναι αδύνατο να εφαρμοστεί μια πλήρης επαλήθευση, καθώς υπάρχουν περιορισμοί χρόνου και κόστους. Δείκτης ποιότητας για ανάπτυξη και δοκιμή σύμφωνα με το BKU KA


Ανάπτυξη και δοκιμή λογισμικού BKU. Στην επιχείρηση RSC Energia, οι NPO που λειτουργούν σε πραγματικό χρόνο χρησιμοποιούνται για τη δοκιμή του λογισμικού BKU. Η ολοκληρωμένη ανάπτυξη και δοκιμή λογισμικού πραγματοποιείται από την ομάδα ολοκλήρωσης και δοκιμών χρησιμοποιώντας ειδικά αναπτυγμένα προγράμματα και μεθόδους δοκιμής (TMP) (σενάρια δοκιμών). NKO-1 NKO-2 (πραγματικό μηχάνημα BCWS) Χρησιμοποιείται για την ενοποίηση και τον επακόλουθο εντοπισμό σφαλμάτων του λογισμικού BKU στο βαθμό: επιλεκτικοί έλεγχοι των κύριων διαδρομών για τις πιο πιθανές καταστάσεις έκτακτης ανάγκης. έλεγχος διεπαφής, π.χ. δοκιμή λογισμικού στο πλαίσιο: ανταλλαγή συστοιχιών δεδομένων και λέξεων. μεταφορά πινάκων εντολών. μεταφορά δεδομένων TM· έλεγχος κατανομής πόρων (μνήμη, χρόνος CPU, κανάλια I/O). Χρησιμοποιείται για δοκιμή ή με άλλο τρόπο επαλήθευση του λογισμικού BKU στο ακόλουθο πεδίο: δοκιμή του λογισμικού BKU σύμφωνα με το σχέδιο πτήσης (FP) και τις λειτουργίες διαστημικού σκάφους. έλεγχος συμμόρφωσης λογισμικού με τις προδιαγραφές.






Πρόγραμμα μεθόδου δοκιμής Για τη διεξαγωγή δοκιμών λογισμικού, αναπτύσσονται προγράμματα μεθόδων δοκιμής (TMP). Το MPI για κάθε σενάριο πρέπει να περιέχει πληροφορίες για τη διαπίστωση της αντιστοιχίας μεταξύ των πραγματικών αποτελεσμάτων της δοκιμής και των προγραμματισμένων αποτελεσμάτων δοκιμών, καθώς και ανοχές για κάθε ελεγχόμενη παράμετρο.


Δοκιμαστικό σενάριο Το δοκιμαστικό σενάριο για σύνθετο εντοπισμό σφαλμάτων είναι χτισμένο με βάση ένα λογικό διάγραμμα διεργασιών εντοπισμού σφαλμάτων. Το σενάριο πρέπει να αντικατοπτρίζει την εμφάνιση των γεγονότων και τις σχέσεις μεταξύ τους στο χρόνο. Η επιλογή των διακριτών χρονικών στιγμών κατά τις οποίες πραγματοποιείται η αξιολόγηση και γίνονται ενέργειες ελέγχου εξαρτάται από τις ιδιαιτερότητες του λογισμικού και την πρόοδο της διαδικασίας υλοποίησης εντοπισμού σφαλμάτων. Τα σενάρια δοκιμής είναι γραμμένα σε γλώσσες που αναπτύχθηκαν στην επιχείρηση. Αυτές οι γλώσσες περιλαμβάνουν: D Dipole (χρησιμοποιείται στη δημιουργία SM, TGK και KA του συστήματος δορυφορικής επικοινωνίας Yamal, που χρησιμοποιείται επίσης στον πάγκο δοκιμών ελέγχου CIS). L Lua (επί του παρόντος χρησιμοποιείται για MRM1 - μικρή ερευνητική ενότητα). σε γλώσσες εσωτερικών εξετάσεων.


Πίνακας ιχνηλασιμότητας απαιτήσεων (NKO2) Ο πίνακας ιχνηλασιμότητας απαιτήσεων περιέχει μια λίστα με όλες τις απαιτήσεις, το αναγνωριστικό μονάδας προγράμματος, το όνομα της μονάδας προγράμματος, τον αριθμό των απαιτήσεων της ανώτερης τεχνικής προδιαγραφής και το αναγνωριστικό της δοκιμής που επιβεβαιώνει αυτές τις απαιτήσεις.


Αναφορά δοκιμής Η αναφορά δοκιμής είναι ένα αρχείο κειμένου που περιέχει, με χρονολογική σειρά, τις αποκρίσεις του συστήματος σε επιρροές εισόδου κατά τη διάρκεια της δοκιμής. Το πρωτόκολλο περιέχει την ώρα της Μόσχας του συμβάντος, την ώρα που σχετίζεται με την έναρξη της δοκιμής, τις τιμές των παραμέτρων που θα καθοριστούν και σημειώσεις που περιέχουν σχόλια σχετικά με τα συμβάντα.


Αρχειοθέτηση TM Το αρχείο τηλεμετρίας είναι ένα αρχείο που περιέχει σε κωδικοποιημένη μορφή ένα σύνολο μηνυμάτων τηλεμετρίας που λαμβάνονται από το σύστημα κατά τη διάρκεια της δοκιμής. Το αρχείο περιέχει τον ενσωματωμένο χρόνο των γεγονότων και τις τιμές των τηλεμετρικών παραμέτρων. Το πρόγραμμα Telemet2 σάς επιτρέπει να παρουσιάσετε το αρχείο τηλεμετρίας με τη μορφή αρχείου κειμένου με σχόλια και τιμές παραμέτρων σε δεκαδική και δεκαεξαδική μορφή.


Κριτήρια αποδοχής Το PMI για κάθε δοκιμή πρέπει να περιέχει απαιτήσεις που καθορίζουν το κριτήριο αποδοχής. Το εύρος και το βάθος των ελέγχων θεωρούνται επαρκή, υπό την προϋπόθεση ότι πληρούνται οι ακόλουθες απαιτήσεις για την πληρότητα των δοκιμών: το λογισμικό BKU πρέπει να λειτουργεί σε όλες τις πιθανές διαμορφώσεις πτήσης. όλες οι λειτουργικές εναλλακτικές έχουν δοκιμαστεί σύμφωνα με τις εξωτερικές προδιαγραφές. έχουν επιλυθεί βασικές καταστάσεις έκτακτης ανάγκης· Οι οριακές τιμές ελέγχθηκαν. Το PMI για κάθε δοκιμή στην ενότητα "Κριτήρια αξιολόγησης" πρέπει να περιέχει πληροφορίες που σας επιτρέπουν να καθορίσετε την αντιστοιχία μεταξύ των πραγματικών αποτελεσμάτων των δοκιμών και των προγραμματισμένων αποτελεσμάτων δοκιμών, καθώς και ανοχές για κάθε ελεγχόμενη παράμετρο.

Επαλήθευση και επικύρωση ( επαλήθευση και επικύρωση-V& V)προορίζονται για ανάλυση, επαλήθευση της σωστής εκτέλεσης και συμμόρφωσης του λογισμικού με τις προδιαγραφές και τις απαιτήσεις των πελατών. Αυτές οι μέθοδοι ελέγχου της ορθότητας προγραμμάτων και συστημάτων αντίστοιχα σημαίνουν:

  • η επαλήθευση ελέγχει ότι το σύστημα έχει κατασκευαστεί σωστά σύμφωνα με τις προδιαγραφές του·
  • Η επικύρωση είναι ένας έλεγχος της σωστής εκπλήρωσης καθορισμένων απαιτήσεων συστήματος.

Η επαλήθευση βοηθά στην εξαγωγή συμπερασμάτων σχετικά με την ορθότητα του δημιουργημένου συστήματος μετά την ολοκλήρωση του σχεδιασμού και της ανάπτυξής του. Η επικύρωση σάς επιτρέπει να προσδιορίσετε τη σκοπιμότητα καθορισμένων απαιτήσεων και περιλαμβάνει έναν αριθμό ενεργειών για την απόκτηση σωστών προγραμμάτων και συστημάτων, και συγκεκριμένα:

  • διαδικασίες σχεδιασμού για τον έλεγχο και την παρακολούθηση των αποφάσεων και των απαιτήσεων σχεδιασμού·
  • εξασφάλιση του επιπέδου αυτοματοποίησης του σχεδιασμού του προγράμματος με εργαλεία CASE.
  • έλεγχος της σωστής λειτουργίας των προγραμμάτων με τη χρήση μεθόδων δοκιμής σε σύνολα δοκιμών-στόχων·
  • προσαρμογή του προϊόντος στο λειτουργικό περιβάλλον κ.λπ.

Η επικύρωση ολοκληρώνει αυτές τις δραστηριότητες αναθεωρώντας και επιθεωρώντας τις προδιαγραφές και τα αποτελέσματα σχεδιασμού των φάσεων του κύκλου ζωής για να επιβεβαιώσει ότι υπάρχει σωστή εφαρμογή των αρχικών απαιτήσεων και ότι πληρούνται οι καθορισμένες προϋποθέσεις και περιορισμοί. Οι εργασίες επαλήθευσης και επικύρωσης περιλαμβάνουν τον έλεγχο της πληρότητας, της συνέπειας και της ασάφειας των προδιαγραφών απαιτήσεων και της σωστής απόδοσης των λειτουργιών του συστήματος.

Η επαλήθευση και η επικύρωση υπόκεινται σε:

  • κύρια στοιχεία του συστήματος·
  • διεπαφές στοιχείων (λογισμικό, τεχνικές και πληροφορίες) και αλληλεπιδράσεις αντικειμένων (πρωτόκολλα και μηνύματα) που διασφαλίζουν την εκτέλεση του συστήματος σε κατανεμημένα περιβάλλοντα·
  • μέσα πρόσβασης στη βάση δεδομένων και αρχεία (συναλλαγές και μηνύματα) και έλεγχος των μέσων προστασίας από μη εξουσιοδοτημένη πρόσβαση σε δεδομένα διαφορετικών χρηστών·
  • τεκμηρίωση για το λογισμικό και το σύστημα ως σύνολο·
  • δοκιμές, διαδικασίες δοκιμών και δεδομένα εισόδου.

Με άλλα λόγια, οι κύριες συστηματικές μέθοδοι για την ορθότητα του προγράμματος είναι:

  • επαλήθευσηεπικύρωση προδιαγραφών στοιχείων λογισμικού και απαιτήσεων.
  • Επιθεώρηση PSνα διαπιστωθεί η συμμόρφωση του προγράμματος με τις δεδομένες προδιαγραφές·
  • δοκιμήκωδικός εξόδου του λογισμικού σε δεδομένα δοκιμής σε συγκεκριμένο περιβάλλον λειτουργίας για τον εντοπισμό σφαλμάτων και ελαττωμάτων που προκαλούνται από διάφορα ελαττώματα, ανώμαλες καταστάσεις, βλάβες εξοπλισμού ή τερματισμό έκτακτης ανάγκης του συστήματος (βλ. Κεφάλαιο 9).

Τα πρότυπα ISO/IEC 3918-99 και 12207 περιλαμβάνουν διαδικασίες επαλήθευσης και επικύρωσης. Για αυτούς, ορίζονται στόχοι, στόχοι και ενέργειες για την επαλήθευση της ορθότητας του δημιουργημένου προϊόντος (συμπεριλαμβανομένων των προϊόντων εργασίας και των ενδιάμεσων προϊόντων) στα στάδια του κύκλου ζωής και της συμμόρφωσης με τις απαιτήσεις του.

Ο κύριος στόχος των διαδικασιών επαλήθευσης και επικύρωσης είναι να ελέγξτε και επιβεβαιώστεότι το τελικό λογισμικό είναι κατάλληλο για το σκοπό και ανταποκρίνεται στις απαιτήσεις του πελάτη. Αυτές οι διαδικασίες καθιστούν δυνατό τον εντοπισμό σφαλμάτων στα προϊόντα εργασίας των σταδίων του κύκλου ζωής, χωρίς να προσδιορίζονται οι λόγοι εμφάνισής τους, καθώς και ο προσδιορισμός της ορθότητας του λογισμικού σε σχέση με τις προδιαγραφές του.

Αυτές οι διαδικασίες είναι αλληλένδετες και ορίζονται από έναν όρο - «επαλήθευση και επικύρωση» (V&V 7).

Κατά την επαλήθευση διενεργούνται τα εξής:

  • έλεγχος της ορθότητας της μετάφρασης των μεμονωμένων στοιχείων στον κωδικό εξόδου, καθώς και των περιγραφών διεπαφής με τον εντοπισμό των διασυνδέσεων των στοιχείων σύμφωνα με τις καθορισμένες απαιτήσεις του πελάτη·
  • ανάλυση της ορθότητας της πρόσβασης σε αρχεία ή βάσεις δεδομένων, λαμβανομένων υπόψη των διαδικασιών χειρισμού δεδομένων και μεταφοράς των αποτελεσμάτων που υιοθετούνται στα χρησιμοποιούμενα εργαλεία συστήματος·
  • έλεγχος του εξοπλισμού προστασίας εξαρτημάτων για συμμόρφωση με τις απαιτήσεις των πελατών και διεξαγωγή της ιχνηλάτησής τους.

Μετά τον έλεγχο των επιμέρους στοιχείων του συστήματος, πραγματοποιείται η ενσωμάτωσή τους, καθώς και η επαλήθευση και επικύρωση του ολοκληρωμένου συστήματος. Το σύστημα δοκιμάζεται έναντι μιας ποικιλίας σειρών δοκιμών για να προσδιοριστεί η επάρκεια και η επάρκεια αυτών των σειρών για την ολοκλήρωση της δοκιμής και τη διαπίστωση της ορθότητας του συστήματος.

Η ιδέα της δημιουργίας ενός διεθνούς έργου για την επίσημη επαλήθευση προτάθηκε από τον T. Hoar, και συζητήθηκε σε ένα συμπόσιο για το επαληθευμένο λογισμικό τον Φεβρουάριο του 2005 στην Καλιφόρνια. Στη συνέχεια, τον Οκτώβριο του ίδιου έτους, στο συνέδριο IFIP στη Ζυρίχη, εγκρίθηκε ένα διεθνές έργο για περίοδο 15 ετών για την ανάπτυξη «ένα ολοκληρωμένο αυτοματοποιημένο σύνολο εργαλείων για τον έλεγχο της ορθότητας του λογισμικού».

Διατυπώνει τα ακόλουθα κύρια καθήκοντα:

  • ανάπτυξη μιας ενοποιημένης θεωρίας κατασκευής και ανάλυσης προγράμματος.
  • δημιουργία ενός ολοκληρωμένου, ολοκληρωμένου συνόλου εργαλείων επαλήθευσης για όλα τα στάδια παραγωγής, συμπεριλαμβανομένης της ανάπτυξης και επαλήθευσης προδιαγραφών, της δημιουργίας δοκιμαστικών περιπτώσεων, της βελτίωσης του προγράμματος, της ανάλυσης και της επαλήθευσης·
  • δημιουργία ενός αποθετηρίου επίσημων προδιαγραφών και επαληθευμένων αντικειμένων λογισμικού διαφόρων τύπων και τύπων.

Αυτό το έργο προϋποθέτει ότι η επαλήθευση θα καλύπτει όλες τις πτυχές της δημιουργίας και του ελέγχου της ορθότητας του λογισμικού και θα γίνει πανάκεια για όλα τα δεινά που σχετίζονται με τη συνεχή εμφάνιση σφαλμάτων στα δημιουργημένα προγράμματα.

Πολλές επίσημες μέθοδοι για την απόδειξη και την επαλήθευση συγκεκριμένων προγραμμάτων έχουν υποβληθεί σε πρακτική δοκιμή. Έχει γίνει πολλή δουλειά από τη διεθνή επιτροπή ISO/IEC στο πλαίσιο του προτύπου ISO/IEC 12207:2002 για την τυποποίηση των διαδικασιών επαλήθευσης και επικύρωσης λογισμικού. Ο έλεγχος της ορθότητας των διαφόρων αντικειμένων προγραμματισμού χρησιμοποιώντας επίσημες μεθόδους είναι πολλά υποσχόμενος.

Το αποθετήριο είναι ένα αποθετήριο προγραμμάτων, προδιαγραφών και εργαλείων που χρησιμοποιούνται στην ανάπτυξη και τη δοκιμή, την αξιολόγηση τελικών εξαρτημάτων, τα εργαλεία και τις προετοιμασίες μεθόδων. Του ανατίθενται τα ακόλουθα γενικά καθήκοντα:

  • συσσώρευση επαληθευμένων προδιαγραφών, μεθόδων απόδειξης, αντικειμένων λογισμικού και υλοποιήσεων κώδικα για πολύπλοκες εφαρμογές.
  • συσσώρευση διαφόρων μεθόδων επαλήθευσης, ο σχεδιασμός τους σε μορφή κατάλληλη για αναζήτηση και επιλογή εφαρμοσμένης θεωρητικής ιδέας για περαιτέρω εφαρμογή.
  • ανάπτυξη τυποποιημένων εντύπων για τον καθορισμό και την ανταλλαγή επίσημων προδιαγραφών διαφόρων αντικειμένων προγραμματισμού, καθώς και εργαλείων και έτοιμων συστημάτων.
  • ανάπτυξη μηχανισμών διαλειτουργικότητας και αλληλεπίδρασης για τη μεταφορά τελικών επαληθευμένων προϊόντων από το αποθετήριο σε νέα περιβάλλοντα διανομής και δικτύου για τη δημιουργία νέου λογισμικού.

Το έργο αυτό αναμένεται να αναπτυχθεί σε μια περίοδο 50 ετών. Προηγούμενα έργα έθεταν παρόμοιους στόχους: βελτίωση της ποιότητας του λογισμικού, επισημοποίηση μοντέλων υπηρεσιών, μείωση της πολυπλοκότητας μέσω της χρήσης PIC, δημιουργία εργαλείων εντοπισμού σφαλμάτων για οπτική διάγνωση σφαλμάτων και εξάλειψή τους, κ.λπ. ή την επίτευξη υψηλής ποιότητας λογισμικού. Η διαδικασία ανάπτυξης συνεχίζεται.

Ένα νέο διεθνές έργο επαλήθευσης λογισμικού απαιτεί από τους συμμετέχοντες όχι μόνο γνώση των θεωρητικών πτυχών των προδιαγραφών του προγράμματος, αλλά και υψηλά καταρτισμένους προγραμματιστές για την υλοποίησή του τα επόμενα χρόνια.


Οι όροι επαλήθευση και επικύρωση σχετίζονται με τον έλεγχο της ποιότητας του λογισμικού. Χρησιμοποιούμε αυτούς τους όρους στα άρθρα και τις αναφορές μας. Έχουμε ακούσει επανειλημμένα διάφορα σχόλια και επιχειρήματα σχετικά με το εάν η στατική ανάλυση του πηγαίου κώδικα του προγράμματος πρέπει να ταξινομηθεί ως επαλήθευση και επικύρωση και ποια είναι η διαφορά μεταξύ αυτών των εννοιών. Γενικά, έχει κανείς την εντύπωση ότι ο καθένας βάζει τις δικές του έννοιες σε αυτούς τους όρους, και αυτό οδηγεί σε αμοιβαία παρεξήγηση.

Αποφασίσαμε να κατανοήσουμε την ορολογία για να τηρήσουμε την πιο σωστή ερμηνεία αυτών των εννοιών. Κατά τη διάρκεια της έρευνας, βρήκαμε το έργο του V.V. Kulyamin "Μέθοδοι επαλήθευσης λογισμικού". Παρέχει μια λεπτομερή περιγραφή αυτών των όρων και αποφασίσαμε να βασιστούμε περαιτέρω στους ορισμούς που δίνονται σε αυτήν την εργασία. Ακολουθούν ορισμένα αποσπάσματα από αυτήν την εργασία που σχετίζονται με την επαλήθευση και την επικύρωση.

Επαλήθευση και επικύρωσηείναι δραστηριότητες που στοχεύουν στην παρακολούθηση της ποιότητας του λογισμικού και στον εντοπισμό σφαλμάτων σε αυτό. Έχοντας κοινό στόχο, διαφέρουν ως προς τις πηγές των ιδιοτήτων, τους κανόνες και τους περιορισμούς που δοκιμάστηκαν κατά την πορεία τους, η παραβίαση των οποίων θεωρείται σφάλμα.

Για περαιτέρω έκθεση, πρέπει να εισαγάγουμε τον όρο «τεχνούργημα κύκλου ζωής λογισμικού». Τα τεχνουργήματα του κύκλου ζωής λογισμικού είναι διάφορες οντότητες πληροφοριών, έγγραφα και μοντέλα που δημιουργούνται ή χρησιμοποιούνται κατά την ανάπτυξη και συντήρηση λογισμικού. Έτσι, τα τεχνουργήματα είναι μια τεχνική προδιαγραφή, μια περιγραφή της αρχιτεκτονικής, ένα μοντέλο της θεματικής περιοχής σε κάποια γραφική γλώσσα, ο πηγαίος κώδικας, η τεκμηρίωση χρήστη κ.λπ. Διάφορα μοντέλα που χρησιμοποιούνται από μεμονωμένους προγραμματιστές κατά τη δημιουργία και την ανάλυση λογισμικού, αλλά δεν έχουν καταγραφεί με τη μορφή εγγράφων προσβάσιμα σε άλλα άτομα, δεν μπορούν να θεωρηθούν τεχνουργήματα.

Η επαλήθευση ελέγχει τη συμμόρφωση ορισμένων τεχνουργημάτων που δημιουργήθηκαν κατά την ανάπτυξη και τη συντήρηση λογισμικού με άλλα που δημιουργήθηκαν ή χρησιμοποιήθηκαν προηγουμένως ως δεδομένα εισόδου, καθώς και τη συμμόρφωση αυτών των τεχνουργημάτων και των διαδικασιών ανάπτυξής τους με κανόνες και πρότυπα. Ειδικότερα, η επαλήθευση ελέγχει τη συμμόρφωση μεταξύ προτύπων, περιγραφές απαιτήσεων (τεχνικές προδιαγραφές) για λογισμικό, σχεδιαστικές λύσεις, πηγαίο κώδικα, τεκμηρίωση χρήστη και τη λειτουργία του ίδιου του λογισμικού. Επιπλέον, επαληθεύεται ότι οι απαιτήσεις, οι λύσεις σχεδιασμού, η τεκμηρίωση και ο κώδικας καταρτίζονται σύμφωνα με τα πρότυπα και τα πρότυπα που υιοθετούνται σε μια δεδομένη χώρα, βιομηχανία και οργανισμό κατά την ανάπτυξη λογισμικού, καθώς και ότι κατά τη δημιουργία τους όλες οι λειτουργίες που καθορίζονται στο τα πρότυπα εκτελέστηκαν με τις απαιτούμενες ακολουθίες τρόπων. Τα σφάλματα και τα ελαττώματα που εντοπίστηκαν κατά την επαλήθευση είναι ασυμφωνίες ή αντιφάσεις μεταξύ πολλών από τα παρατιθέμενα έγγραφα, μεταξύ των εγγράφων και της πραγματικής λειτουργίας του προγράμματος, μεταξύ των προτύπων και των πραγματικών διαδικασιών ανάπτυξης και συντήρησης λογισμικού. Ταυτόχρονα, η απόφαση για το ποιο έγγραφο υπόκειται σε διόρθωση (ίσως και τα δύο) αποτελεί ξεχωριστή εργασία.

Η επικύρωση ελέγχει τη συμμόρφωση τυχόν τεχνουργημάτων που δημιουργήθηκαν ή χρησιμοποιούνται κατά την ανάπτυξη και συντήρηση λογισμικού με τις ανάγκες και τις απαιτήσεις των χρηστών και των πελατών αυτού του λογισμικού, λαμβάνοντας υπόψη τους νόμους της θεματικής περιοχής και τους περιορισμούς του πλαισίου χρήσης του λογισμικού . Αυτές οι ανάγκες και απαιτήσεις τις περισσότερες φορές δεν τεκμηριώνονται - όταν καταγράφονται, μετατρέπονται σε περιγραφή απαιτήσεων, ένα από τα τεχνουργήματα της διαδικασίας ανάπτυξης λογισμικού. Επομένως, η επικύρωση είναι μια λιγότερο τυπική δραστηριότητα από την επαλήθευση. Διεξάγεται πάντα με τη συμμετοχή εκπροσώπων πελατών, χρηστών, επιχειρηματικών αναλυτών ή ειδικών σε θέματα - εκείνων των οποίων οι απόψεις μπορούν να θεωρηθούν ως μια αρκετά καλή έκφραση των πραγματικών αναγκών και απαιτήσεων των χρηστών, των πελατών και άλλων ενδιαφερομένων. Οι μέθοδοι για την υλοποίησή του συχνά χρησιμοποιούν συγκεκριμένες τεχνικές για τον προσδιορισμό της γνώσης και των πραγματικών αναγκών των συμμετεχόντων.

Η διαφορά μεταξύ επαλήθευσης και επικύρωσης απεικονίζεται στο Σχήμα 1.

Οι συγκεκριμένοι ορισμοί προέρχονται από κάποια επέκταση των ορισμών από το πρότυπο IEEE 1012 για διαδικασίες επαλήθευσης και επικύρωσης. Στο τυπικό λεξικό όρων μηχανικής λογισμικού IEEE 610.12 του 1990, ο ορισμός της επαλήθευσης είναι περίπου ο ίδιος, αλλά ο ορισμός της επικύρωσης είναι κάπως διαφορετικός - λέει ότι η επικύρωση πρέπει να ελέγχει τη συμμόρφωση του λογισμικού που λαμβάνεται ως αποτέλεσμα της ανάπτυξης με το πρωτότυπο απαιτήσεις για αυτό. Σε αυτήν την περίπτωση, η επικύρωση θα ήταν μια ειδική περίπτωση επαλήθευσης, η οποία δεν σημειώνεται πουθενά στη βιβλιογραφία της μηχανικής λογισμικού, επομένως, και επίσης επειδή διορθώθηκε στο IEEE 1012 του 2004, αυτός ο ορισμός θα πρέπει να θεωρείται ανακριβής. Συχνή χρήση της φράσης του B. Boehm:

Η επαλήθευση απαντά στην ερώτηση "Κατασκευάζουμε το προϊόν σωστά;" και η επικύρωση απαντά στην ερώτηση "Κατασκευάζουμε το σωστό προϊόν;"

προσθέτει επίσης στη σύγχυση, αφού ο αφορισμός αυτής της δήλωσης, δυστυχώς, συνδυάζεται με ασάφεια. Ωστόσο, πολλά έργα του συγγραφέα του υποδηλώνουν ότι με την επαλήθευση και την επικύρωση εννοούσε περίπου τις ίδιες έννοιες με αυτές που ορίστηκαν παραπάνω. Αυτές οι αποκλίσεις μπορούν επίσης να εντοπιστούν στο περιεχόμενο των προτύπων μηχανικής λογισμικού. Έτσι, το πρότυπο ISO 12207 θεωρεί ότι η δοκιμή είναι ένας τύπος επικύρωσης, αλλά όχι επαλήθευσης, η οποία, προφανώς, είναι συνέπεια της χρήσης ενός ανακριβούς ορισμού από το τυπικό λεξικό.

Εν κατακλείδι, θα ήθελα να σημειώσω ότι, σύμφωνα με τους παραπάνω ορισμούς, η στατική ανάλυση του πηγαίου κώδικα του προγράμματος αντιστοιχεί στην επαλήθευση λογισμικού, όπως ο έλεγχος της συμμόρφωσης του κώδικα προγράμματος με διάφορα πρότυπα κωδικοποίησης. Η στατική ανάλυση ελέγχει τη συμμόρφωση των αποτελεσμάτων του σταδίου σχεδιασμού του συστήματος λογισμικού με τις απαιτήσεις και τους περιορισμούς που διατυπώθηκαν προηγουμένως.

Βιβλιογραφία

  • V.V. Kulyamin "Μέθοδοι επαλήθευσης λογισμικού". Ινστιτούτο Προγραμματισμού Συστημάτων RAS 109004, Μόσχα, οδός. B. Kommunisticheskaya, αρ. 25.
    http://www.ict.edu.ru/ft/005645/62322e1-st09.pdf
  • Πρότυπο IEEE 1012-2004 για επαλήθευση και επικύρωση λογισμικού. IEEE, 2005.
  • IEEE 610.12-1990 Standard Glossary of Software Engineering Terminology, Corrected Edition. IEEE, Φεβρουάριος 1991.
  • B. W. Boehm. Μηχανική Λογισμικού; Τάσεις Ε&Α και αμυντικές ανάγκες. Στο R. Wegner, ed. Ερευνα. Οδηγίες στην Τεχνολογία Λογισμικού. Cambridge, MA:MIT Press, 1979.
  • ISO/IEC 12207 Μηχανική συστημάτων και λογισμικού - Διαδικασίες κύκλου ζωής λογισμικού. Γενεύη, Ελβετία: ISO, 2008.

Οι όροι «επαλήθευση» και «επικύρωση» χρησιμοποιούνται πολύ συχνά στην τεχνική βιβλιογραφία και σχετίζονται με την ανάλυση της ποιότητας οποιουδήποτε λογισμικού. Στην επιστημονική βιβλιογραφία μπορείτε να βρείτε διαφορετικές ερμηνείες αυτών των εννοιών. Λοιπόν, ας προσπαθήσουμε να κατανοήσουμε αυτό το ζήτημα.

Ο πιο σωστός, από την άποψή μας, είναι ο παρακάτω ορισμός. Η επικύρωση και η επαλήθευση είναι δραστηριότητες που στοχεύουν στη διεξαγωγή ποιοτικού ελέγχου προκειμένου να εντοπιστούν λάθη σε αυτόν σε πρώιμο στάδιο. Φαίνεται ότι έχουν κοινό στόχο. Ωστόσο, αυτοί οι τύποι έχουν διαφορές στις πηγές επαληθευμένων ιδιοτήτων, περιορισμών και κανόνων, η μη συμμόρφωση με τους οποίους μπορεί να θεωρηθεί σφάλμα.

Η επαλήθευση είναι έλεγχος της συμμόρφωσης του λογισμικού με τις παρουσιαζόμενες τεχνικές προδιαγραφές, αρχιτεκτονική ή Οι «ευθύνες» αυτού του όρου περιλαμβάνουν επίσης σύγκριση της διαδικασίας υπολογισμού με τη διαδικασία ανάπτυξης, τους κανόνες και τα πρότυπα τους.

Η επαλήθευση δεδομένων μπορεί να πραγματοποιηθεί για να διαπιστωθεί η συμμόρφωση της λειτουργίας του προγράμματος με καθιερωμένα πρότυπα, απαιτήσεις, λύσεις σχεδιασμού και τεκμηρίωση χρήστη. Στην περίπτωση αυτή, τα έγγραφα με τα οποία πραγματοποιείται σύγκριση για συμμόρφωση με τα πρότυπα και τους κανονισμούς τους που έχουν θεσπιστεί στη χώρα όπου χρησιμοποιείται το λογισμικό υπόκεινται σε υποχρεωτική προκαταρκτική επαλήθευση. Είναι απαραίτητο να ληφθεί υπόψη η συμμόρφωση με όλες τις ακολουθίες λειτουργιών που εκτελούνται.

Εάν εντοπιστεί σφάλμα ή ελάττωμα στη λειτουργία του προγράμματος ή ανιχνευθεί αντίφαση μεταξύ των παραπάνω εγγράφων και της τρέχουσας λειτουργίας του προγράμματος, η λήψη απόφασης για την επιλογή ενός εγγράφου για διόρθωση θα πρέπει να αποτελεί λύση σε ένα ξεχωριστό πρόβλημα.

Σε αντίθεση με την επαλήθευση, η επικύρωση είναι υπεύθυνη για τον έλεγχο της συμμόρφωσης των προϊόντων λογισμικού που έχουν αναπτυχθεί ή συντηρούνται με τις ανάγκες ή τις ανάγκες των πελατών ή των χρηστών. Αυτές οι ανάγκες συχνά δεν καταγράφονται σε καμία τεκμηρίωση. Αυτός είναι ο λόγος για τον οποίο η επικύρωση είναι λιγότερο τυπική από την επαλήθευση. Αυτή είναι μια διαδικασία κατά την οποία ένας εκπρόσωπος του πελάτη, χρήστη, και μπορεί επίσης να παρευρεθεί από έναν αναλυτή ή εμπειρογνώμονα με άλλα λόγια, εκείνοι που μπορούν να εκφράσουν τις συγκεκριμένες ανάγκες και τις πραγματικές ανάγκες των ενδιαφερομένων.

Η επαλήθευση είναι η απάντηση στην ερώτηση "Είναι το λογισμικό σωστά κατασκευασμένο;" και η επικύρωση είναι η απάντηση στο "Είναι το λογισμικό σωστά κατασκευασμένο;"

Όταν αναζητάτε μια απάντηση στις ερωτήσεις που τίθενται, μπορείτε να διαπιστώσετε ότι η επικύρωση (ή η πιστοποίηση) στο περιεχόμενο έχει κάπως ευρύτερο νόημα από την επαλήθευση (επαλήθευση). Ωστόσο, η επαλήθευση σχετίζεται πολύ στενά με τη διασφάλιση του ελέγχου της ποιότητας ενός προϊόντος λογισμικού.

Για παράδειγμα, η επαλήθευση προγράμματος υπολογιστή περιλαμβάνει μια διαδικασία στην οποία ο στόχος είναι να διασφαλιστεί ότι οι απαιτήσεις δεδομένων που λαμβάνονται σε έναν συγκεκριμένο κύκλο ζωής προϊόντος ικανοποιούν αυτές που ελήφθησαν σε προηγούμενο στάδιο.

Εάν μιλάμε για επαλήθευση μοντέλου, τότε εδώ θα μιλήσουμε για τον έλεγχο της ορθότητας της αντιστοίχισης ενός δεδομένου υπολογιστικού μοντέλου στα απαραίτητα εννοιολογικά ή

Κατά την επαλήθευση του κώδικα συστήματος, η κωδικοποίηση πηγής αναλύεται και ελέγχεται για συμμόρφωση με την περιγραφή του εγγράφου.

Η διαδικασία επαλήθευσης μπορεί να περιλαμβάνει συναλλαγές που περιέχουν εναλλακτικούς υπολογισμούς. Η τεχνική και επιστημονική τεκμηρίωση του νέου έργου συγκρίνεται με την αντίστοιχη τεκμηρίωση υφιστάμενου έργου, πραγματοποιούνται υποχρεωτικές δοκιμές, έγκριση του νέου προϊόντος λογισμικού και επίδειξη των αποτελεσμάτων.