Τι είναι το SOA Testing; Εκμάθηση με Παράδειγμα
⚡ Έξυπνη Σύνοψη
Οι δοκιμές SOA επικυρώνουν μια υπηρεσία προσανατολισμένη ArchiΜια δομή στην οποία χαλαρά συνδεδεμένες υπηρεσίες ανταλλάσσουν μηνύματα σε ένα δίκτυο, ελέγχοντας κάθε υπηρεσία ξεχωριστά, τις ενσωματώσεις μεταξύ τους και ολόκληρη την επιχειρηματική ροή από άκρο σε άκρο.
Τι είναι το SOA Testing;
SOA (Προσανατολισμός υπηρεσιών Archiτεχνολογία) Δοκιμές είναι η δοκιμή του αρχιτεκτονικού στυλ SOA, στο οποίο τα στοιχεία της εφαρμογής έχουν σχεδιαστεί για να επικοινωνούν μέσω πρωτοκόλλων επικοινωνίας, συνήθως μέσω ενός δικτύου.
Τι είναι το SOA;
Το SOA είναι μια μέθοδος ενσωμάτωσης επιχειρηματικών εφαρμογών και διαδικασιών ώστε να καλύπτονται οι επιχειρηματικές ανάγκες.
In Τεχνολογία Λογισμικού, το SOA παρέχει ευελιξία και ευελιξία στις επιχειρηματικές διαδικασίες. Μια αλλαγή σε μια διαδικασία ή εφαρμογή μπορεί να απευθύνεται σε ένα συγκεκριμένο στοιχείο χωρίς να επηρεάζει ολόκληρο το σύστημα.
Οι προγραμματιστές λογισμικού που εργάζονται σε SOA είτε αναπτύσσουν είτε αγοράζουν τμήματα προγραμμάτων που ονομάζονται υπηρεσιες.
Τι είναι Υπηρεσία;
Το παρακάτω διάγραμμα δείχνει μια πύλη πληρωμών που δημοσιεύεται ως υπηρεσία την οποία μπορούν να καλέσουν αρκετοί ιστότοποι ηλεκτρονικού εμπορίου.
- Μια υπηρεσία μπορεί να είναι μια λειτουργική μονάδα μιας εφαρμογής ή μιας επιχειρηματικής διαδικασίας, η οποία μπορεί να επαναχρησιμοποιηθεί ή να επαναληφθεί από οποιαδήποτε άλλη εφαρμογή ή διαδικασία. (Για παράδειγμα, στην παραπάνω εικόνα, η Πύλη Πληρωμών είναι μια υπηρεσία που μπορεί να επαναχρησιμοποιηθεί από οποιονδήποτε ιστότοπο ηλεκτρονικού εμπορίου. Κάθε φορά που χρειάζεται να γίνει μια πληρωμή, ο ιστότοπος ηλεκτρονικού εμπορίου καλεί ή ζητά την υπηρεσία Πύλης Πληρωμών. Αφού ολοκληρωθεί η πληρωμή στην πύλη, αποστέλλεται μια απάντηση πίσω στον ιστότοπο ηλεκτρονικού εμπορίου.)
- Οι υπηρεσίες συναρμολογούνται εύκολα και αναδιαμορφώνονται εύκολα τα εξαρτήματα.
- Οι υπηρεσίες μπορούν να συγκριθούν με δομικά στοιχεία. Μπορούν να κατασκευάσουν οποιαδήποτε εφαρμογή χρειάζεται και η προσθήκη ή η αφαίρεσή τους από την εφαρμογή ή την επιχειρηματική διαδικασία είναι εύκολη.
- Οι υπηρεσίες ορίζονται περισσότερο από την επιχειρηματική λειτουργία που εκτελούν παρά ως κομμάτια κώδικα.
Υπηρεσίες Διαδικτύου
Οι περισσότερες υπηρεσίες SOA παρουσιάζονται ως διαδικτυακές υπηρεσίες, επομένως αξίζει να παρουσιαστούν οι μηχανισμοί μιας κλήσης διαδικτυακής υπηρεσίας πριν από τα επίπεδα δοκιμής.
Οι υπηρεσίες Web είναι ανεξάρτητα στοιχεία εφαρμογής που είναι διαθέσιμα μέσω του διαδικτύου.
Μπορούν να δημοσιευτούν, να βρεθούν και να χρησιμοποιηθούν στο διαδίκτυο και επικοινωνούν μέσω του διαδικτύου. Η παρακάτω ακολουθία δείχνει πώς αλληλεπιδρούν ένας πάροχος, ένα μητρώο και ένας καταναλωτής.
- Ο πάροχος υπηρεσιών δημοσιεύει την υπηρεσία στο Διαδίκτυο.
- Ο Πελάτης αναζητά μια συγκεκριμένη διαδικτυακή υπηρεσία στο Μητρώο Διαδικτυακών Υπηρεσιών.
- A URL και την wsdl επιστρέφονται τα δεδομένα για την απαιτούμενη διαδικτυακή υπηρεσία. Χρησιμοποιώντας το WSDL και το URL, η επικοινωνία μεταξύ του παρόχου υπηρεσιών και του αιτούντος γίνεται μέσω μηνυμάτων SOAP.
- Όταν ένας καταναλωτής καλεί μια διαδικτυακή υπηρεσία, δημιουργείται μια σύνδεση HTTP με τον πάροχο.
- Δημιουργείται ένα μήνυμα SOAP για να δώσει εντολή στον πάροχο να καλέσει την απαιτούμενη λογική της υπηρεσίας ιστού.
- Η απόκριση που λαμβάνεται από τον πάροχο είναι ένα μήνυμα SOAP το οποίο είναι ενσωματωμένο στην απόκριση HTTP. Αυτή η απόκριση HTTP είναι η μορφή δεδομένων που είναι κατανοητή από την εφαρμογή καταναλωτή.
Παράδειγμα
Το παρακάτω στιγμιότυπο οθόνης δείχνει μια αναφορά καιρού που παρέχεται από μια εξωτερική υπηρεσία και είναι ενσωματωμένη στην αρχική σελίδα μιας μηχανής αναζήτησης.
Η αρχική σελίδα ενός ιστότοπου και μια μηχανή αναζήτησης εμφανίζουν μια καθημερινή αναφορά καιρού. Αντί να κωδικοποιείται η ενότητα αναφοράς καιρού από την αρχή, μια υπηρεσία αναφοράς καιρού μπορεί να αγοραστεί από έναν προμηθευτή και να ενσωματωθεί στις σελίδες.
Επίπεδα δοκιμών SOA
Το SOA αποτελείται από διάφορες τεχνολογίες και οι εφαρμογές που έχουν κατασκευαστεί με τη χρήση του SOA διαθέτουν διάφορες υπηρεσίες οι οποίες είναι χαλαρά συνδεδεμένες. Το παρακάτω διάγραμμα απεικονίζει τα τρία επίπεδα που πρέπει να καλύπτει ένα σχέδιο δοκιμών.
Οι δοκιμές SOA θα πρέπει να επικεντρώνονται σε 3 επίπεδα συστήματος.
Επίπεδο υπηρεσιών
Αυτό το επίπεδο αποτελείται από τις υπηρεσίες που εκτίθενται από ένα σύστημα, οι οποίες προέρχονται από επιχειρηματικές λειτουργίες.
Για παράδειγμα, σκεφτείτε έναν ιστότοπο ευεξίας που αποτελείται από:
- Weight Tracker
- σακχάρου στο αίμα Tracker
- Αρτηριακή πίεση Tracker
TracΤα kers εμφανίζουν τα αντίστοιχα δεδομένα και την ημερομηνία εισαγωγής τους. Το επίπεδο υπηρεσιών αποτελείται από τις υπηρεσίες που λαμβάνουν τα αντίστοιχα δεδομένα από τη βάση δεδομένων:
- Βάρος Tracυπηρεσία ker
- σακχάρου στο αίμα Tracυπηρεσία ker
- Αρτηριακή πίεση Tracυπηρεσία ker
- Υπηρεσία σύνδεσης
Επίπεδο διαδικασίας
Το επίπεδο διεργασιών αποτελείται από τις διεργασίες, τη συλλογή υπηρεσιών που αποτελούν μέρος μιας ενιαίας λειτουργικότητας.
Οι διεργασίες μπορεί να αποτελούν μέρος μιας διεπαφής χρήστη (για παράδειγμα, μιας μηχανής αναζήτησης) ή μέρος ενός εργαλείου ETL που αντλεί δεδομένα από τη βάση δεδομένων.
Η κύρια εστίαση σε αυτό το επίπεδο είναι στις διεπαφές χρήστη και τις διεργασίες. Η διεπαφή χρήστη του βάρους tracΤο ker και η ενσωμάτωσή του με τη βάση δεδομένων είναι το κύριο μέλημα.
Οι ακόλουθες λειτουργίες λαμβάνονται υπόψη:
- Προσθήκη νέων δεδομένων
- Επεξεργασία υπαρχόντων δεδομένων
- Δημιουργία νέου tracker
- Διαγραφή δεδομένων
Επίπεδο Καταναλωτή
Αυτό το επίπεδο περιλαμβάνει κυρίως διεπαφές χρήστη, όπως φαίνεται στην παρακάτω οθόνη.
Με βάση αυτά τα επίπεδα, ο έλεγχος μιας εφαρμογής SOA κατανέμεται σε τρία επίπεδα:
- Επίπεδο εξυπηρέτησης
- Επίπεδο διεπαφής
- Επίπεδο από άκρη σε άκρη
Οι δύο κατευθύνσεις πορείας διαφέρουν: για τον σχεδιασμό των δοκιμών χρησιμοποιείται μια προσέγγιση από πάνω προς τα κάτω, ενώ για την εκτέλεση των δοκιμών χρησιμοποιείται μια προσέγγιση από κάτω προς τα πάνω.
Στρατηγική για δοκιμές SOA
Προσέγγιση Σχεδιασμού Δοκιμών
- Η πλήρης αρχιτεκτονική της εφαρμογής θα πρέπει να είναι κατανοητή από τους δοκιμαστές SOA.
- Η εφαρμογή πρέπει να αναλυθεί σε ανεξάρτητες υπηρεσίες (μια υπηρεσία που έχει τη δική της δομή αιτημάτων και απαντήσεων και δεν εξαρτάται από καμία άλλη υπηρεσία για να σχηματίσει μια απάντηση).
- Η δομή της εφαρμογής πρέπει να αναδιοργανωθεί σε τρία στοιχεία — δεδομένα, υπηρεσίες και εφαρμογές front-end.
- Όλα τα στοιχεία πρέπει να αναλυθούν προσεκτικά και να καθοριστούν επιχειρηματικά σενάρια.
- Τα επιχειρηματικά σενάρια θα πρέπει να ταξινομηθούν σε κοινά σενάρια και σενάρια ειδικά για κάθε εφαρμογή.
- A TracΠίνακας ικανότητας θα πρέπει να είναι προετοιμασμένοι και όλες οι δοκιμαστικές περιπτώσεις θα πρέπει να είναι tracσε επιχειρηματικά σενάρια.
Προσέγγιση εκτέλεσης δοκιμής
- Κάθε εξάρτημα σέρβις πρέπει να ελεγχθεί.
- Δοκιμή ολοκλήρωσης των στοιχείων της υπηρεσίας θα πρέπει να γίνει για να επικυρωθεί η ροή δεδομένων μέσω των υπηρεσιών και η ακεραιότητα των δεδομένων.
- Δοκιμή συστήματος του πλήρους μοντέλου θα πρέπει να γίνει για την επικύρωση της ροής δεδομένων μεταξύ της εφαρμογής front-end και της βάσης δεδομένων.
- Δοκιμές Απόδοσης πρέπει να γίνει για λεπτή ρύθμιση και βέλτιστη απόδοση.
Μέθοδοι δοκιμής SOA
1) Δοκιμές που βασίζονται σε επιχειρηματικά σενάρια και βασίζονται σε δεδομένα
- Θα πρέπει να αναλυθούν διάφορες επιχειρηματικές πτυχές που σχετίζονται με το σύστημα.
- Τα σενάρια θα πρέπει να αναπτυχθούν με βάση την ενσωμάτωση των διαφόρων διαδικτυακών υπηρεσιών της εφαρμογής και των διαδικτυακών υπηρεσιών με την εφαρμογή.
- Η επεξεργασία των δεδομένων θα πρέπει να γίνει με βάση τα παραπάνω σενάρια.
- Η δημιουργία δεδομένων θα πρέπει επίσης να καλύπτει σενάρια από άκρο σε άκρο.
2) Στελέχη
- Δημιουργούνται εικονικές διεπαφές για τη δοκιμή υπηρεσιών.
- Μέσω αυτών των διεπαφών μπορούν να παρέχονται διάφορες είσοδοι και οι έξοδοι μπορούν να επικυρωθούν.
- Όταν μια εφαρμογή χρησιμοποιεί μια διεπαφή με μια εξωτερική υπηρεσία που δεν βρίσκεται υπό δοκιμή (μια υπηρεσία τρίτου μέρους), μπορεί να δημιουργηθεί ένα stub κατά τη διάρκεια της δοκιμής ολοκλήρωσης.
3) Δοκιμή παλινδρόμησης
- Δοκιμή παλινδρόμησης στην εφαρμογή θα πρέπει να γίνεται όταν υπάρχουν πολλαπλές εκδόσεις, ώστε να διασφαλίζεται η σταθερότητα και η διαθεσιμότητα των συστημάτων.
- Θα δημιουργηθεί μια ολοκληρωμένη σουίτα δοκιμών παλινδρόμησης που θα καλύπτει τις υπηρεσίες που αποτελούν σημαντικό μέρος της εφαρμογής.
- Αυτή η σουίτα δοκιμών μπορεί να επαναχρησιμοποιηθεί σε πολλαπλές εκδόσεις του έργου.
4) Δοκιμή επιπέδου υπηρεσίας
Οι δοκιμές σε επίπεδο υπηρεσίας περιλαμβάνουν τον έλεγχο του στοιχείου ως προς τη λειτουργικότητα, την ασφάλεια, την απόδοση και τη διαλειτουργικότητα. Κάθε υπηρεσία πρέπει πρώτα να δοκιμάζεται ανεξάρτητα.
5) Λειτουργικός Έλεγχος
Λειτουργική δοκιμή θα πρέπει να γίνεται σε κάθε υπηρεσία για να:
- Βεβαιωθείτε ότι η υπηρεσία παρέχει τη σωστή απάντηση σε κάθε αίτημα.
- Βεβαιωθείτε ότι λαμβάνονται τα σωστά σφάλματα για αιτήματα με μη έγκυρα ή εσφαλμένα δεδομένα.
- Ελέγξτε κάθε αίτημα και απόκριση για κάθε λειτουργία που πρέπει να εκτελέσει η υπηρεσία κατά τον χρόνο εκτέλεσης.
- Επικυρώστε τα μηνύματα σφάλματος όταν παρουσιάζεται σφάλμα σε επίπεδο διακομιστή, υπολογιστή-πελάτη ή δικτύου.
- Επιβεβαιώστε ότι οι απαντήσεις που λάβατε είναι στη σωστή μορφή.
- Επιβεβαιώστε ότι τα δεδομένα που ελήφθησαν στην απάντηση αντιστοιχούν στα δεδομένα που ζητήθηκαν.
6) Δοκιμές ασφαλείας
Ο έλεγχος ασφαλείας της διαδικτυακής υπηρεσίας είναι μια σημαντική πτυχή κατά τον έλεγχο επιπέδου υπηρεσίας της εφαρμογής SOA, επειδή διασφαλίζει την ασφάλεια της εφαρμογής.
Οι ακόλουθοι παράγοντες πρέπει να καλύπτονται κατά τη διάρκεια της δοκιμής:
- Το πρότυπο του κλάδου που ορίζεται από την WS-Security θα πρέπει να τηρείται από την υπηρεσία web.
- Τα μέτρα ασφαλείας πρέπει να λειτουργούν άψογα.
- Κρυπτογράφηση δεδομένων και ψηφιακών υπογραφών στα έγγραφα.
- Πιστοποίηση και εξουσιοδότηση.
- Η έγχυση SQL, το κακόβουλο λογισμικό, το XSS, το CSRF και άλλες ευπάθειες πρόκειται να δοκιμαστούν στο XML.
- Επιθέσεις άρνησης υπηρεσίας.
7) Δοκιμή απόδοσης
Πρέπει να γίνει δοκιμή απόδοσης της υπηρεσίας, επειδή οι υπηρεσίες είναι επαναχρησιμοποιήσιμες και πολλές εφαρμογές ενδέχεται να χρησιμοποιούν την ίδια υπηρεσία.
Κατά τη διάρκεια της δοκιμής λαμβάνονται υπόψη οι ακόλουθοι παράγοντες:
- Η απόδοση και η λειτουργικότητα της υπηρεσίας πρέπει να ελέγχονται υπό βαρύ φορτίο.
- Η απόδοση της υπηρεσίας πρέπει να συγκρίνεται όταν λειτουργεί μεμονωμένα και όταν είναι συνδεδεμένη εντός της εφαρμογής.
- Δοκιμή φόρτωσης της υπηρεσίας θα πρέπει να εκτελείται για την επαλήθευση του χρόνου απόκρισης, τον έλεγχο για σημεία συμφόρησης, την επαλήθευση της χρήσης της CPU και της μνήμης και την πρόβλεψη της επεκτασιμότητας.
8) Έλεγχος επιπέδου ενσωμάτωσης
- Ο έλεγχος επιπέδου υπηρεσιών διασφαλίζει την ορθή λειτουργία των υπηρεσιών μεμονωμένα· δεν εγγυάται τη λειτουργία των συνδεδεμένων στοιχείων.
- Οι δοκιμές ολοκλήρωσης πραγματοποιούνται εστιάζοντας κυρίως στο διεπαφές.
- Αυτή η φάση καλύπτει όλα τα πιθανά επιχειρηματικά σενάρια.
- Σε αυτή τη φάση θα πρέπει να γίνει εκ νέου δοκιμή μη λειτουργικότητας της εφαρμογής. Η ασφάλεια, η συμμόρφωση και οι δοκιμές απόδοσης διασφαλίζουν τη διαθεσιμότητα και τη σταθερότητα του συστήματος από όλες τις απόψεις.
- Τα πρωτόκολλα επικοινωνίας και δικτύου θα πρέπει να ελέγχονται για την επικύρωση της συνέπειας της επικοινωνίας δεδομένων μεταξύ των υπηρεσιών.
9) Τελική δοκιμή
Αυτή η φάση διασφαλίζει ότι η εφαρμογή συμμορφώνεται με τις επιχειρηματικές απαιτήσεις τόσο λειτουργικά όσο και μη λειτουργικά.
Τα παρακάτω στοιχεία είναι εγγυημένα ότι θα δοκιμαστούν κατά τη διάρκεια δοκιμή από άκρο σε άκρο:
- Όλες οι υπηρεσίες λειτουργούν όπως αναμένεται μετά την ενσωμάτωση
- Χειρισμός εξαίρεσης
- Διεπαφή χρήστη της εφαρμογής
- Η σωστή ροή δεδομένων μέσω όλων των στοιχείων
- Επιχειρηματική διαδικασία
Προκλήσεις στις δοκιμές SOA
Η εφαρμογή αυτών των μεθόδων σπάνια είναι απλή και οι δυσκολίες που αναφέρονται παρακάτω εμφανίζονται σχεδόν σε κάθε πρόγραμμα SOA.
- Έλλειψη διεπαφών για υπηρεσίες.
- Η διαδικασία δοκιμών εκτείνεται σε πολλαπλά συστήματα, γεγονός που δημιουργεί πολύπλοκες ανάγκες σε δεδομένα.
- Η εφαρμογή είναι μια συλλογή από διάφορα στοιχεία που τείνουν να αλλάζουν, επομένως η ανάγκη για δοκιμές παλινδρόμησης είναι πιο συχνή.
- Λόγω της πολυστρωματικής αρχιτεκτονικής, είναι δύσκολο να απομονωθούν ελαττώματα.
- Δεδομένου ότι μια υπηρεσία χρησιμοποιείται από διαφορετικές διεπαφές, το φορτίο είναι δύσκολο να προβλεφθεί, γεγονός που καθιστά τον προγραμματισμό των δοκιμών απόδοσης δυσκίνητο.
- Το SOA είναι ένα σύνολο ετερογενών τεχνολογιών. Η δοκιμή μιας εφαρμογής SOA απαιτεί άτομα με διαφορετικές δεξιότητες, γεγονός που με τη σειρά του αυξάνει το κόστος σχεδιασμού και εκτέλεσης.
- Δεδομένου ότι η εφαρμογή ενσωματώνει πολλαπλές υπηρεσίες, οι δοκιμές ασφαλείας έχουν τα δικά τους προβλήματα. Η επικύρωση του ελέγχου ταυτότητας και της εξουσιοδότησης είναι δύσκολη.
Εργαλεία δοκιμών SOA
Υπάρχουν πολλά εργαλεία δοκιμών SOA διαθέσιμα στην αγορά για να βοηθήσουν τους δοκιμαστές στη δοκιμή εφαρμογών SOA. Ακολουθούν μερικά από τα δημοφιλή εργαλεία δοκιμών SOA.
1) SoapUI
SoapUI είναι ένα εργαλείο λειτουργικού ελέγχου ανοιχτού κώδικα για υπηρεσίες και Δοκιμή API.
- Επιτραπέζια εφαρμογή
- Υποστηρίζει πολλαπλά πρωτόκολλα — SOAP, REST, HTTP, JMS, AMF, JDBC
- Οι διαδικτυακές υπηρεσίες μπορούν να αναπτυχθούν, να ελεγχθούν και να κληθούν.
- Μπορεί επίσης να χρησιμοποιηθεί για δοκιμές φορτίου, Δοκιμές Αυτοματισμούκαι δοκιμές ασφαλείας
- Τα Stubs μπορούν να δημιουργηθούν από την MockServices
- Τα αιτήματα και οι δοκιμές για διαδικτυακές υπηρεσίες μπορούν να δημιουργηθούν αυτόματα μέσω του προγράμματος-πελάτη διαδικτυακών υπηρεσιών.
- Διαθέτει ενσωματωμένα εργαλεία αναφοράς
- Αναπτύχθηκε από την SmartBear, η οποία διαθέτει και τα δύο ανοικτού κώδικα SoapUI διανομή και το εμπορικό ReadyAPI έκδοση
2) Εικονικοποίηση Υπηρεσιών Broadcom (πρώην iTKO LISA)
Το LISA είναι μια σουίτα προϊόντων που παρέχει μια λύση λειτουργικού ελέγχου για κατανεμημένα συστήματα όπως το SOA. Το προϊόν πέρασε από την iTKO στην CA Technologies και πωλείται σήμερα ως Broadcom Service Virtualization.
- Μπορεί επίσης να χρησιμοποιηθεί για παλινδρόμηση, ολοκλήρωση, φόρτωση και δοκιμή απόδοσης.
- Μπορεί να χρησιμοποιηθεί για το σχεδιασμό και την εκτέλεση δοκιμών.
3) UFT Ένα (πρώην Δοκιμή σέρβις HP)
Το Service Test είναι ένα εργαλείο λειτουργικών δοκιμών που υποστηρίζει τόσο τις δοκιμές UI όσο και τις δοκιμές κοινόχρηστων υπηρεσιών. Η δυνατότητα δοκιμών API που διαθέτει ενσωματώθηκε στο Unified Functional Testing, το οποίο πωλείται πλέον από OpenText as UFT One.
- Τόσο οι λειτουργικές όσο και οι επιδόσεις των υπηρεσιών μπορούν να πραγματοποιηθούν με ένα μόνο σενάριο.
- Ενσωματωμένο με το Κέντρο Ποιότητας, τώρα πωλείται ως OpenText ALM / Κέντρο Ποιότητας.
- Μπορεί να διαχειριστεί ένας τεράστιος όγκος υπηρεσιών και δεδομένων.
- Υποστηρίζει δοκιμές διαλειτουργικότητας με προσομοίωση περιβαλλόντων πελάτη JEE, AXIS και DotNet.
4) Parasoft SOAtest
Το Parasoft SOAtest είναι μια σουίτα εργαλείων δοκιμών και ανάλυσης που αναπτύχθηκε για δοκιμές API και εφαρμογών που βασίζονται σε API.
- Υποστηρίζει υπηρεσίες ιστού, τεχνολογίες REST, JSON, MQ, JMS, TIBCO, HTTP και XML.
- Είναι δυνατές οι δοκιμές λειτουργικότητας, μονάδας, ολοκλήρωσης, παλινδρόμησης, ασφάλειας, διαλειτουργικότητας, συμμόρφωσης και απόδοσης.
- Τα stubs μπορούν να δημιουργηθούν χρησιμοποιώντας Parasoft Virtualize, τα οποία είναι πιο ικανά από SoapUI Ψεύτικες Υπηρεσίες.
Περιπτώσεις χρήσης δοκιμών SOA
Το παρακάτω παράδειγμα εφαρμόζει την παραπάνω στρατηγική, τις μεθόδους και τα εργαλεία σε έναν μόνο ιστότοπο ηλεκτρονικού εμπορίου, βήμα προς βήμα.
Σκεφτείτε έναν ιστότοπο ηλεκτρονικού εμπορίου που περιέχει τις παρακάτω λειτουργίες και υπολειτουργίες.
Επεξεργασία παραγγελίας
Το παρακάτω διάγραμμα αναλύει την επεξεργασία παραγγελιών στις υπολειτουργίες που γίνονται υπηρεσίες.
ΦΑΣΗ 1
Στην πρώτη φάση των δοκιμών SOA, τη φάση της στρατηγικής δοκιμών, η εφαρμογή χωρίζεται σε υπηρεσίες και επιχειρηματικές λειτουργίες.
Ας εξετάσουμε τις παρακάτω υπηρεσίες στην εφαρμογή.
- Δημιουργήστε παραγγελία
- Ελέγξτε την κατάσταση του πελάτη
- Αλλαγή κατάστασης παραγγελίας
- Ελέγξτε την κατάσταση της παραγγελίας
- Ελέγξτε το απόθεμα
Οι επιχειρηματικές λειτουργίες είναι οι ίδιες με τις λειτουργίες του ιστότοπου.
Σημείωση: Το έγγραφο στρατηγικής δοκιμών θα περιέχει τη λίστα των υπηρεσιών και των λειτουργιών που πρέπει να ελεγχθούν.
ΦΑΣΗ 2
Αυτή είναι η φάση σχεδιασμού των δοκιμών. Δοκιμαστικές περιπτώσεις γράφονται για κάθε επίπεδο.
Επίπεδο από άκρο σε άκρο. Οι δοκιμαστικές περιπτώσεις έχουν γραφτεί για κάθε επιχειρηματική περίπτωση χρήσης και ροή. Παρακάτω παρατίθενται παραδείγματα δοκιμαστικών περιπτώσεων.
- Δημιουργήστε μια παραγγελία με έναν ενεργό χρήστη.
- Δημιουργήστε μια παραγγελία με έναν ανενεργό χρήστη.
- Δημιουργήστε μια παραγγελία με ένα διαθέσιμο προϊόν με ποσότητα παραγγελίας < διαθέσιμη ποσότητα.
- Δημιουργήστε μια παραγγελία με ένα διαθέσιμο προϊόν με ποσότητα παραγγελίας > διαθέσιμη ποσότητα.
- Δημιουργήστε μια παραγγελία με πολλά είδη.
- Ακυρώστε εντελώς μια παραγγελία.
- Ακύρωση μερικής παραγγελίας.
Επίπεδο ολοκλήρωσης. Οι δοκιμαστικές περιπτώσεις γράφονται για την ενσωμάτωση της βάσης δεδομένων και του περιβάλλοντος εργασίας χρήστη. Παρακάτω παρατίθενται παραδείγματα δοκιμαστικών περιπτώσεων.
- Δημιουργήστε μια νέα παραγγελία με ένα μόνο στοιχείο. Βεβαιωθείτε ότι η παραγγελία έχει δημιουργηθεί στη βάση δεδομένων.
- Δημιουργήστε μια νέα παραγγελία με ένα μόνο στοιχείο. Βεβαιωθείτε ότι η τιμή που υπολογίστηκε για την παραγγελία είναι σωστή.
- Δημιουργήστε μια νέα παραγγελία με ένα μόνο είδος. Επαληθεύστε ότι η ποσότητα του διαθέσιμου προϊόντος μειώνεται κατά το ποσό της παραγγελίας.
- Επαληθεύστε ότι η κατάσταση της παραγγελίας που εμφανίζεται στο περιβάλλον χρήστη είναι η ίδια με αυτήν στη βάση δεδομένων.
- Ακυρώστε την παραγγελία και επαληθεύστε ότι η κατάσταση της παραγγελίας έχει τροποποιηθεί στη βάση δεδομένων.
- Για μια πρώτη πληρωμή, επαληθεύστε ότι τα στοιχεία πληρωμής που καταχωρίστηκαν στο περιβάλλον χρήστη είναι αποθηκευμένα στη βάση δεδομένων.
- Για επιστροφή πληρωμών, βεβαιωθείτε ότι τα στοιχεία πληρωμής στη βάση δεδομένων εμφανίζονται στη διεπαφή χρήστη.
Επίπεδο εξυπηρέτησης. Κάθε υπηρεσία δοκιμάζεται για όλες τις συνθήκες δεδομένων. Παρακάτω παρατίθενται μερικά παραδείγματα.
| Όχι. | Λεπτομέρειες Παραγγελίας | Κατάσταση παραγγελίας |
|---|---|---|
| 1 | Δημιουργία παραγγελίας. Αριθμός ειδών = 1 | Ποσότητα κατά παραγγελία < Ποσότητα στη βάση δεδομένων |
| 2 | Δημιουργία παραγγελίας. Αριθμός ειδών > 1 | Ποσότητα στην παραγγελία < Ποσότητα στη βάση δεδομένων |
| 3 | Δημιουργία παραγγελίας. Αριθμός ειδών = 1 | Ποσότητα κατά παραγγελία > Ποσότητα στη βάση δεδομένων |
| 4 | Ελέγξτε την κατάσταση παραγγελίας | Κατάσταση στη βάση δεδομένων = Ενεργό |
| 5 | Ελέγξτε την κατάσταση παραγγελίας | Κατάσταση στη βάση δεδομένων = Αποστολή |
| 6 | Ελέγξτε την κατάσταση παραγγελίας | Κατάσταση στη βάση δεδομένων = Ακυρώθηκε |
| 7 | Ελέγξτε την κατάσταση παραγγελίας | Αναγνωριστικό παραγγελίας = Μη έγκυρο |
| 8 | Ελέγξτε τη διαθεσιμότητα του προϊόντος | Ποσότητα προϊόντος >0 |
| 9 | Ελέγξτε τη διαθεσιμότητα του προϊόντος | Ποσότητα προϊόντος =0 |
| 10 | Ελέγξτε τη διαθεσιμότητα του προϊόντος | Αναγνωριστικό προϊόντος = μη έγκυρο |
ΦΑΣΗ 3 — Εκτέλεση δοκιμής
Η εκτέλεση των δοκιμών χρησιμοποιεί μια προσέγγιση από κάτω προς τα πάνω: πρώτα γίνεται δοκιμή σε επίπεδο υπηρεσίας, έπειτα σε επίπεδο ολοκλήρωσης και τέλος δοκιμή από άκρο σε άκρο.
1) Επίπεδο εξυπηρέτησης
Ας θεωρήσουμε ότι το SoapUI το εργαλείο χρησιμοποιείται για τον έλεγχο της εφαρμογής. Το WSDL και URL περιηγούνται στο παράθυρο δοκιμής του SoapUIκαι το αίτημα για κάθε υπηρεσία εμφανίζεται στο παράθυρο αιτήματος. Τροποποιώντας τα δεδομένα σύμφωνα με τις δοκιμαστικές περιπτώσεις επιπέδου υπηρεσίας, δημιουργούνται αιτήματα για κάθε δοκιμαστική περίπτωση.
| Δοκιμαστική θήκη | Αίτημα | Αναμενόμενη ανταπόκριση |
|---|---|---|
| Δημιουργία παραγγελίας. Αριθμός ειδών = 1, Ποσότητα στην παραγγελία < Ποσότητα στη βάση δεδομένων | x2 2 | o3251 Επιτυχής |
| Δημιουργία Παραγγελίας. Αριθμός Ειδών > 1, Ποσότητα στην Παραγγελία < Ποσότητα στη βάση δεδομένων | y1 1 y2 3 | o3251 Επιτυχής |
| Δημιουργία παραγγελίας. Αριθμός ειδών = 1, Ποσότητα στην παραγγελία > Ποσότητα στη βάση δεδομένων | x23 200 | μηδενικό Ανεπιτυχής |
| Ελέγξτε την κατάσταση της παραγγελίας. Κατάσταση στη βάση δεδομένων = Ενεργή | o9876 | Ενεργός Επιτυχής |
| Ελέγξτε την κατάσταση της παραγγελίας. Κατάσταση στη βάση δεδομένων = Απεστάλη | o9656 | Αποστέλλεται Επιτυχής |
| Ελέγξτε την κατάσταση της παραγγελίας. Αναγνωριστικό παραγγελίας = Μη έγκυρο | y5686 | άκυρος Ανεπιτυχής |
| Ελέγξτε τη διαθεσιμότητα του προϊόντος. Ποσότητα προϊόντος >0 | d34 | 34 Ναί Επιτυχής |
| Ελέγξτε τη διαθεσιμότητα του προϊόντος. Ποσότητα προϊόντος =0 | y34 | 0 όχι Επιτυχής |
| Ελέγξτε τη διαθεσιμότητα του προϊόντος. Αναγνωριστικό προϊόντος = μη έγκυρο | sder | Ανεπιτυχής |
2) Επίπεδο ολοκλήρωσης
Οι δοκιμαστικές περιπτώσεις επιπέδου ολοκλήρωσης εκτελούνται στη διεπαφή χρήστη και στη βάση δεδομένων. Δημιουργήστε μια παραγγελία με ένα μόνο στοιχείο:
- Ένας χρήστης ανοίγει τον ιστότοπο.
- Ο χρήστης πηγαίνει να κάνει μια παραγγελία.
- Ο χρήστης επιλέγει ένα έγκυρο προϊόν και ποσότητα και αποθηκεύει την παραγγελία.
- Θα πρέπει να εμφανιστεί ένα μήνυμα που να αναφέρει ότι η παραγγελία υποβλήθηκε με επιτυχία.
- Ο χρήστης ανοίγει τη βάση δεδομένων και ελέγχει εάν τα στοιχεία της παραγγελίας είναι τα ίδια με αυτά που έχουν καταχωρηθεί στον ιστότοπο.
3) Επίπεδο από άκρη σε άκρη
Οι επιχειρηματικές ροές και οι περιπτώσεις χρήσης εκτελούνται στο περιβάλλον χρήστη. Δημιουργήστε μια παραγγελία με πολλά είδη:
- Ένας χρήστης ανοίγει τον ιστότοπο.
- Ο χρήστης πηγαίνει να κάνει μια παραγγελία.
- Ο χρήστης ρωτάει για ένα έγκυρο προϊόν και ποσότητα και τα προσθέτει στο καλάθι αγορών.
- Προστίθενται άλλα έγκυρα προϊόντα με έγκυρες ποσότητες και η παραγγελία αποθηκεύεται. Η πληρωμή γίνεται μέσω νέας μεθόδου πληρωμής και η παραγγελία υποβάλλεται.
- Θα πρέπει να εμφανιστεί ένα μήνυμα που λέει "Η παραγγελία πραγματοποιήθηκε με επιτυχία".
- Ένας δοκιμαστής θα πρέπει να επικυρώσει ότι ολόκληρη η ροή ολοκληρώνεται χωρίς παραμόρφωση των δεδομένων.







