Τι είναι η δοκιμή βάσει μοντέλου;
⚡ Έξυπνη Σύνοψη
Οι δοκιμές που βασίζονται σε μοντέλα ελέγχουν τη συμπεριφορά του λογισμικού κατά τον χρόνο εκτέλεσης σε σχέση με τις προβλέψεις που γίνονται από ένα abs.tract μοντέλο του συστήματος, δημιουργώντας αυτόματα δοκιμαστικές περιπτώσεις από μηχανές πεπερασμένων καταστάσεων, διαγράμματα καταστάσεων ή σημειογραφίες UML αντί για χειροκίνητα.
Τι είναι η δοκιμή βάσει μοντέλου;
Δοκιμή βάσει μοντέλου είναι μια τεχνική δοκιμής λογισμικού όπου η συμπεριφορά του υπό δοκιμή λογισμικού κατά τον χρόνο εκτέλεσης ελέγχεται σε σχέση με τις προβλέψεις που γίνονται από ένα μοντέλο. Ένα μοντέλο είναι μια περιγραφή της συμπεριφοράς ενός συστήματος, η οποία εκφράζεται με βάση τις ακολουθίες εισόδου, τις ενέργειες, τις συνθήκες, την έξοδο και τη ροή δεδομένων από την είσοδο στην έξοδο. Ένα χρησιμοποιήσιμο μοντέλο πρέπει να είναι πρακτικά κατανοητό, επαναχρησιμοποιήσιμο και κοινόχρηστο, και πρέπει να περιγράφει με ακρίβεια το υπό δοκιμή σύστημα.
Υπάρχουν πολλά διαθέσιμα μοντέλα και το καθένα περιγράφει μια διαφορετική πτυχή της συμπεριφοράς του συστήματος. Συνηθισμένα παραδείγματα είναι:
- Ροή δεδομένων
- Έλεγχος ροής
- Γραφήματα εξάρτησης
- Πίνακες αποφάσεων
- Μηχανές μετάβασης κατάστασης
Η δοκιμή βάσει μοντέλου περιγράφει τον τρόπο με τον οποίο συμπεριφέρεται ένα σύστημα ως απόκριση σε μια ενέργεια που καθορίζεται από το μοντέλο. Παρέχετε την ενέργεια και, στη συνέχεια, ελέγξτε εάν το σύστημα ανταποκρίνεται όπως προβλέπει το μοντέλο. Οποιαδήποτε απόκλιση μεταξύ των δύο είναι είτε ελάττωμα στο λογισμικό είτε σφάλμα στο μοντέλο, και τα δύο αξίζει να εντοπιστούν.
Είναι μια ελαφριά, τυπική μέθοδος για την επικύρωση ενός συστήματος και εφαρμόζεται τόσο στις δοκιμές υλικού όσο και στις δοκιμές λογισμικού. Επειδή οι δοκιμές προέρχονται από μια προδιαγραφή συμπεριφοράς και όχι από τον κώδικα, η τεχνική βασίζεται στο δοκιμή μαύρου κουτιού οικογένεια τεχνικές δοκιμής λογισμικού.
Παράδειγμα δοκιμής βάσει μοντέλου
Ο απλούστερος τρόπος για να διαβάσετε ένα μοντέλο συμπεριφοράς είναι να το ακολουθήσετε. Το παρακάτω διάγραμμα μοντελοποιεί μια μικρή εργασία επεξεργασίας κειμένου, με κάθε πλαίσιο να αντιπροσωπεύει μια κατάσταση στην οποία μπορεί να βρίσκεται η εφαρμογή και κάθε βέλος να αντιπροσωπεύει μια ενέργεια που μπορεί να κάνει ένας χρήστης.
Το μοντέλο εξηγεί μια απλοποιημένη προσέγγιση για τη συγγραφή ποίησης στο Σημειωματάριο και τις πιθανές ενέργειες που σχετίζονται με κάθε βήμα. Για κάθε ενέργεια, όπως η εκκίνηση της εφαρμογής, η εισαγωγή ενός ποιήματος ή η αποθήκευση του αρχείου, ένα περίπτωση δοκιμής μπορούν να δημιουργηθούν και η έξοδος να επαληθευτεί. Η διανύση μιας διαφορετικής διαδρομής μέσω του ίδιου διαγράμματος, για παράδειγμα η έναρξη και το κλείσιμο χωρίς αποθήκευση, παράγει μια διαφορετική δοκιμαστική περίπτωση χωρίς επιπλέον κόστος σχεδιασμού, το οποίο είναι το οικονομικό επιχείρημα για ολόκληρη την τεχνική.
Τύποι MBT
Υπάρχουν δύο τύποι πλαισίων δοκιμών που βασίζονται σε μοντέλα και η διαφορά μεταξύ τους έγκειται απλώς στο πότε παράγονται τα βήματα δοκιμής:
- Εκτός σύνδεσης / εκ των προτέρων: Δημιουργία σουιτών δοκιμών πριν από την εκτέλεσή τους. Μια σουίτα δοκιμών είναι μια συλλογή από δοκιμαστικές περιπτώσεις και σε αυτήν τη λειτουργία η σουίτα αποθηκεύεται, ελέγχεται και εκτελείται ξανά όπως οποιαδήποτε άλλη δοκιμές αυτοματισμού περιουσιακό στοιχείο.
- Διαδικτυακά / άμεσα: Δημιουργία σουιτών δοκιμών κατά την εκτέλεση της δοκιμής, όπου το επόμενο βήμα επιλέγεται με βάση τον τρόπο με τον οποίο το σύστημα ανταποκρίθηκε στην προηγούμενη.
Η δημιουργία εκτός σύνδεσης (offline) είναι κατάλληλη για ρυθμιζόμενα περιβάλλοντα που χρειάζονται μια αναθεωρήσιμη και επαναλήψιμη σουίτα. Η online δημιουργία είναι κατάλληλη για μακροχρόνιες διερευνητικές συνεδρίες σε συστήματα με κατάσταση, επειδή η γεννήτρια μπορεί να αντιδράσει στην πραγματική απόκριση και όχι στην προβλεπόμενη.
Πώς λειτουργεί η δοκιμή βάσει μοντέλου
Όποιο πλαίσιο και αν χρησιμοποιηθεί, η τεχνική ακολουθεί τα ίδια πέντε στάδια. Κάθε στάδιο παράγει ένα τεχνούργημα που καταναλώνει το επόμενο στάδιο, γι' αυτό και το μοντέλο, και όχι το σενάριο δοκιμής, γίνεται αυτό που συντηρεί η ομάδα.
- Βήμα 1: Κατασκευάστε το μοντέλο. Μεταφράστε τις απαιτήσεις ή μια προδιαγραφή σε κοιλιακούςtracμοντέλο t αναμενόμενης συμπεριφοράς, που ορίζει τις καταστάσεις, τις μεταβάσεις μεταξύ τους και τις εισόδους που ενεργοποιούν κάθε μετάβαση.
- Βήμα 2: Επιλέξτε τα κριτήρια επιλογής της δοκιμής. Τα κριτήρια λένε στη γεννήτρια πότε να σταματήσει. Συνηθισμένα είναι η κάλυψη όλων των καταστάσεων, η οποία επισκέπτεται κάθε κατάσταση τουλάχιστον μία φορά, η κάλυψη όλων των μεταβάσεων, η οποία ασκεί κάθε βέλος τουλάχιστον μία φορά και η κάλυψη διαδρομής ή ροής δεδομένων για βαθύτερη εξερεύνηση.
- Βήμα 3: Δημιουργήστε κοιλιακούςtract δοκιμαστικές περιπτώσεις. Το εργαλείο περπατά πάνω στο μοντέλο και εκπέμπει ακολουθίες κοιλιακών.tract βήματα που ικανοποιούν τα επιλεγμένα κριτήρια, μαζί με το αναμενόμενο αποτέλεσμα σε κάθε βήμα.
- Βήμα 4: Στερεώστε τους κοιλιακούςtracδοκιμές t. Ένα στρώμα προσαρμογέα αντιστοιχίζει κάθε κοιλιακό αγγείοtract να προχωρήσει σε μια πραγματική ενέργεια εναντίον του συστήματος, όπως μια αλληλεπίδραση με το UI, ένα API κλήση ή ένα μήνυμα πρωτοκόλλου. Αυτός ο χάρτηςping γράφεται μία φορά και επαναχρησιμοποιείται από κάθε παραγόμενη δοκιμή.
- Βήμα 5: Εκτέλεση και ανάθεση ετυμηγοριών. Οι συγκεκριμένες δοκιμές εκτελούνται σε σχέση με το υπό δοκιμή σύστημα, κάθε παρατηρούμενη απόκριση συγκρίνεται με την πρόβλεψη του μοντέλου και καταγράφεται μια ετυμηγορία επιτυχίας ή αποτυχίας. tracεπέστρεψε στο στοιχείο μοντέλου που το παρήγαγε.
The tracΗ δυνατότητα που δημιουργείται στο βήμα 5 είναι η πρακτική ανταμοιβή. Όταν αλλάζει μια απαίτηση, αλλάζει και το μοντέλο και οι επηρεαζόμενες δοκιμές αναγεννώνται αντί να ξαναγράφονται, γι' αυτό και οι ομάδες που κάνουν συχνά δοκιμή παλινδρόμησης έναντι μιας σταθερής προδιαγραφής ωφελούν τους περισσότερους.
Διαφορετικά μοντέλα σε δοκιμές
Για να κατανοήσουμε τη ΜΒΤ, είναι απαραίτητο να κατανοήσουμε ορισμένα από τα μοντέλα που εξηγούνται παρακάτω. Κάθε ένα ανταλλάσσει την εκφραστική δύναμη με την προσπάθεια, επομένως η επιλογή εξαρτάται από το πόσο περίπλοκη είναι στην πραγματικότητα η υπό δοκιμή συμπεριφορά.
Μηχανές πεπερασμένων κρατών
Αυτό το μοντέλο βοηθά τους δοκιμαστές να αξιολογήσουν το αποτέλεσμα ανάλογα με την επιλεγμένη είσοδο. Διάφοροι συνδυασμοί των εισόδων μπορούν να οδηγήσουν σε μια αντίστοιχη κατάσταση του συστήματος.
Το σύστημα θα έχει μια συγκεκριμένη κατάσταση και μια τρέχουσα κατάσταση, η οποία διέπεται από ένα σύνολο εισροών που δίνονται από τους δοκιμαστές.
Εξετάστε το παρακάτω παράδειγμα. Ένα σύστημα επιτρέπει στους υπαλλήλους να συνδέονται σε μια εφαρμογή. Η τρέχουσα κατάσταση του υπαλλήλου είναι «Εκτός» και γίνεται «Είσοδος» μόλις ο υπάλληλος συνδεθεί στο σύστημα. Στην κατάσταση «Είσοδος», ένας υπάλληλος μπορεί να προβάλει, να εκτυπώσει και να σαρώσει έγγραφα στο σύστημα.
Η μηχανή καταστάσεων για αυτό το παράδειγμα εμφανίζεται εδώ, με κάθε βέλος να επισημαίνεται από την είσοδο που προκαλεί τη μετάβαση.
Διαγράμματα κατάστασης
Ένα διάγραμμα καταστάσεων είναι μια επέκταση της μηχανής πεπερασμένων καταστάσεων και μπορεί να χρησιμοποιηθεί για σύνθετα και συστήματα πραγματικού χρόνου. Τα διαγράμματα καταστάσεων περιγράφουν διάφορες συμπεριφορές του συστήματος, έχουν έναν ορισμένο αριθμό καταστάσεων και η συμπεριφορά του συστήματος αναλύεται και αναπαρίσταται με τη μορφή συμβάντων για κάθε κατάσταση. Η επέκταση που έχει σημασία στην πράξη είναι η ιεραρχία: ένα διάγραμμα καταστάσεων επιτρέπει ένθετες και παράλληλες καταστάσεις, επομένως μια μηχανή που θα χρειαζόταν δεκάδες επίπεδες καταστάσεις μπορεί να σχεδιαστεί συμπαγώς.
Για παράδειγμα, τα ελαττώματα εμφανίζονται στο εργαλείο διαχείρισης ελαττωμάτων με την κατάσταση Νέο. Μόλις ένα ελάττωμα διορθωθεί από τους προγραμματιστές, η κατάσταση πρέπει να αλλάξει σε Διορθώθηκε. Εάν ένα ελάττωμα δεν διορθωθεί, η κατάσταση αλλάζει σε Επανάνοιγμα. Τα γραφήματα καταστάσεων θα πρέπει να σχεδιάζονται έτσι ώστε να καλείται ένα συμβάν για κάθε κατάσταση.
Αυτός ο κύκλος ζωής ελαττώματος απεικονίζεται παρακάτω, με κάθε κατάσταση να εμφανίζεται ως κατάσταση και κάθε ενέργεια ροής εργασίας ως το συμβάν που μετακινεί το ελάττωμα μεταξύ τους.
Ενοποιημένη γλώσσα μοντελοποίησης (UML)
Ενοποιημένη γλώσσα μοντελοποίησης (UML) είναι μια τυποποιημένη γλώσσα μοντελοποίησης γενικής χρήσης. Η UML περιλαμβάνει ένα σύνολο τεχνικών γραφικής σημειογραφίας που χρησιμοποιούνται για τη δημιουργία οπτικών μοντέλων που μπορούν να περιγράψουν πολύ περίπλοκη συμπεριφορά συστήματος.
Το UML έχει σημειώσεις όπως:
- Δραστηριότητες
- Ηθοποιοί
- Επιχειρηματική διαδικασία
- Συστατικά
- Γλώσσα προγραμματισμού
Τα διαγράμματα μηχανής δραστηριότητας και κατάστασης είναι αυτά που διαβάζονται συχνότερα από τις γεννήτριες δοκιμών, όπως απεικονίζει το παρακάτω δείγμα μοντέλου UML.
Εργαλεία Δοκιμών Βασισμένα σε Μοντέλα
Ένα μοντέλο σε χαρτί δεν παράγει τίποτα από μόνο του. Απαιτείται μια γεννήτρια για να διαχειρίζεται το μοντέλο και να εκπέμπει δοκιμαστικές διαδρομές, και η αγορά εργαλείων χωρίζεται σε γεννήτριες ανοιχτού κώδικα και εμπορικές πλατφόρμες σχεδιασμού δοκιμών.
- GraphWalker — ένα εργαλείο ανοιχτού κώδικα που διαβάζει μοντέλα που έχουν διαμορφωθεί σύμφωνα με τις οδηγίες γραφημάτων και δημιουργεί δοκιμαστικές διαδρομές από αυτά, με επιλέξιμες γεννήτριες και συνθήκες διακοπής.
- fMBT — ένα σύνολο εργαλείων δοκιμών ανοιχτού κώδικα που βασίζεται σε μοντέλα από την Intel, το οποίο υποστηρίζει τη δημιουργία και την εκτέλεση δοκιμών σε σχέση με μοντέλα κατάστασης.
- Κονφόρμικ — ένα εμπορικό αυτοματοποιημένο προϊόν σχεδιασμού δοκιμών που παράγει δοκιμαστικές περιπτώσεις και σενάρια από γραφικά μοντέλα συμπεριφοράς.
- MaTeLo και MBTsuite — εμπορικές πλατφόρμες που στοχεύουν σε στατιστικά μοντέλα χρήσης και στη δημιουργία δοκιμών σε υπάρχοντα πλαίσια αυτοματισμού.
- Εξερεύνηση προδιαγραφών - MicrosoftΗ επέκταση δοκιμών που βασίζεται σε μοντέλα για το Visual Studio, η οποία αναφέρεται ευρέως στη βιβλιογραφία δοκιμών πρωτοκόλλων.
Η επιλογή εξαρτάται λιγότερο από τις λίστες χαρακτηριστικών και περισσότερο από δύο ερωτήματα: ποια σημειογραφία μπορεί στην πραγματικότητα να σχεδιάσει η ομάδα και αν το εργαλείο μπορεί να εκπέμψει δοκιμές στο πλαίσιο αυτοματισμού που ήδη χρησιμοποιείται. Μια γεννήτρια που παράγει σουίτες που κανείς δεν μπορεί να εκτελέσει προσθέτει ένα βήμα στη διαδικασία αντί να αφαιρεί ένα.
Δοκιμές που βασίζονται σε μοντέλα έναντι παραδοσιακού σχεδιασμού δοκιμών
Αξίζει να τονιστεί η αντίθεση με τον σχεδιασμό των χειρόγραφων εξετάσεων, επειδή οι δύο προσεγγίσεις αποτυγχάνουν σε διαφορετικά σημεία αντί η μία να είναι απλώς καλύτερη.
| Άποψη | Δοκιμή βάσει μοντέλου | Παραδοσιακός σχεδιασμός δοκιμών |
|---|---|---|
| Πηγή δοκιμαστικών περιπτώσεων | Δημιουργείται αυτόματα από ένα μοντέλο συμπεριφοράς | Γράφτηκε ξεχωριστά από έναν δοκιμαστή από τις απαιτήσεις |
| Επίδραση μιας αλλαγής απαίτησης | Ενημερώστε το μοντέλο, αναδημιουργήστε τις επηρεαζόμενες δοκιμές | Εντοπίστε και επεξεργαστείτε κάθε επηρεαζόμενη δοκιμαστική περίπτωση χειροκίνητα |
| Κάλυψη | Μετρημένο σε σχέση με κριτήρια μοντέλου όπως όλες οι καταστάσεις ή όλες οι μεταβάσεις | Μετράται σε σχέση με τις απαιτήσεις και εξαρτάται από την κρίση του δοκιμαστή |
| Προκαταβολικό κόστος | Υψηλή: ικανότητα μοντελοποίησης, ρύθμιση εργαλείων και επίπεδο προσαρμογέα | Χαμηλό: ένας δοκιμαστής μπορεί να ξεκινήσει να γράφει αμέσως |
| καλύτερη εφαρμογή | Συστήματα με μακρά διάρκεια ζωής και σταθερές προδιαγραφές, με ισχυρή κρατική ισχύ. | Σύντομα έργα, μεμονωμένα χαρακτηριστικά και διερευνητική εργασία |
| Κύριος τρόπος βλάβης | Ένα λανθασμένο ή παλιό μοντέλο δημιουργεί σιωπηλά λανθασμένες δοκιμές | Κενά και διπλότυπα συσσωρεύονται σε μια μεγάλη σουίτα |
Η παρακάτω εξέλιξη τοποθετεί την τεχνική στο κατάλληλο πλαίσιο: η χειροκίνητη εκτέλεση δοκιμών έδωσε τη θέση της στην αυτοματοποιημένη εκτέλεση, και οι προσεγγίσεις που βασίζονται σε μοντέλα μετακινούν τον αυτοματισμό ένα επίπεδο νωρίτερα, στον ίδιο τον σχεδιασμό δοκιμών.
Προκλήσεις της δοκιμής βάσει μοντέλου
Η ανάπτυξη του MBT σε έναν οργανισμό απαιτεί σημαντική επένδυση χρημάτων και προσπάθειας. Τα ακόλουθα είναι τα μειονεκτήματα του MBT σε: τεχνολογία λογισμικού:
- Οι δοκιμαστές χρειάζονται δεξιότητες μοντελοποίησης που δεν απαιτεί ο παραδοσιακός σχεδιασμός δοκιμών.
- Η καμπύλη μάθησης είναι μεγάλη και το πρώτο έργο συνήθως κοστίζει περισσότερο από όσο εξοικονομεί.
- Το ίδιο το μοντέλο μπορεί να είναι δύσκολο να κατανοηθεί και να αναθεωρηθεί, ειδικά όταν αναπτυχθεί.
- Ένα μοντέλο που παρεκκλίνει από τις προδιαγραφές δημιουργεί αξιόπιστες, λανθασμένες δοκιμές.
- Το στρώμα προσαρμογέα που γυρίζει τους κοιλιακούςtracΤα βήματα που μετατρέπονται σε πραγματικές δράσεις πρέπει να γράφονται και να συντηρούνται ξεχωριστά.
- Το μέγεθος του μοντέλου αυξάνεται γρήγορα, επομένως ένα μοντέλο κατάστασης χωρίς περιορισμούς μπορεί να παράγει περισσότερες διαδρομές από όσες μπορεί να εκτελέσει οποιαδήποτε ομάδα.
Κανένα από αυτά δεν αποτελεί λόγο για να αποφευχθεί η τεχνική, αλλά μαζί εξηγούν γιατί το MBT συνήθως εισάγεται πρώτα σε ένα σταθερό υποσύστημα και όχι σε ολόκληρο. κύκλος ζωής δοκιμής λογισμικού με τη μία.
Πλεονεκτήματα των δοκιμών που βασίζονται σε μοντέλα
Σε σύγκριση με αυτό το κόστος, τα οφέλη του MBT είναι:
- Εύκολη συντήρηση σεναρίων δοκιμών και σουίτας δοκιμών, επειδή επεξεργάζεται το μοντέλο και όχι οι μεμονωμένες δοκιμές.
- Μείωση του κόστους κατά τη διάρκεια ζωής ενός μακροπρόθεσμου έργου.
- βελτιωμένη κάλυψη δοκιμών, καθώς η γεννήτρια εξερευνά μονοπάτια που ένα άτομο θα παρακάμπτει.
- Διαφορετικές δημιουργημένες σουίτες μπορούν να εκτελούνται σε οποιονδήποτε αριθμό μηχανών παράλληλα.
- Έγκαιρη ανίχνευση ελαττωμάτων, επειδή εμφανίζονται ασάφειες κατά τη διάρκεια της κατασκευής του μοντέλου, πριν από την εκτέλεση οποιοσδήποτε κώδικα.
- Αύξηση στον αριθμό των ελαττωμάτων που βρέθηκαν για την ίδια προσπάθεια δοκιμών.
- Εξοικονόμηση χρόνου στο σχεδιασμό δοκιμών μόλις υπάρχει το μοντέλο και ο προσαρμογέας.
- Βελτιωμένη ικανοποίηση από την εργασία των ελεγκτών, καθώς η προσπάθεια μετατοπίζεται από την επαναλαμβανόμενη σύνταξη σεναρίων στη μοντελοποίηση και την ανάλυση.
Οι δοκιμαστές κατασκευάζουν νοητικά μοντέλα ούτως ή άλλως ενώ εργάζονται, και το MBT απλώς μεταφέρει αυτά τα νοητικά μοντέλα σε χαρτί όπου μπορούν να αναθεωρηθούν, να τροποποιηθούν και να επαναχρησιμοποιηθούν. Το πού ταιριάζει η τεχνική με τις άλλες διαθέσιμες προσεγγίσεις περιγράφεται στο είδη δοκιμών λογισμικού.





