Δοκιμή Λογισμικού

Οδηγός δοκιμής ενσωμάτωσης για αρχάριους

30 Οκτωβρίου 2021

Πίνακας περιεχομένων

Τι είναι το Integration Testing;

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

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

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

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

Έχουμε διαφορετικούς τύπους δοκιμών όπως Δοκιμή μονάδας , Δοκιμή συστήματος , και Δοκιμή αποδοχής .

Έλεγχος ολοκλήρωσης

Γιατί Έλεγχος ολοκλήρωσης;

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

Τι είναι τα Stubs και τα προγράμματα οδήγησης στις δοκιμές ενσωμάτωσης;

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

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

Ποιοι είναι οι τύποι/προσεγγίσεις για τη δοκιμή ενσωμάτωσης;

Δοκιμή ολοκλήρωσης Big Bang:

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

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

Πλεονεκτήματα:

  • Χρήσιμο για μικρά συστήματα.
  • Το κύριο πλεονέκτημα είναι ότι όλα ολοκληρώνονται πριν ξεκινήσει η δοκιμή ενοποίησης.

Μειονεκτήματα:

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

Δοκιμή σταδιακής ολοκλήρωσης

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

Η σταδιακή δοκιμή είναι δύο τύπων.

1. Προσέγγιση από πάνω προς τα κάτω:

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

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

Πλεονεκτήματα:

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

Μειονεκτήματα:

  • Αυτή η προσέγγιση απαιτεί πολλά Stubs.
  • Οι ενότητες σε χαμηλότερο επίπεδο ελέγχονται αναποτελεσματικά.
  • Παρέχει περιορισμένη κάλυψη στις πρώτες φάσεις.
  • Οι προγραμματιστές ενδέχεται να χρειαστεί να αναπτύξουν προσαρμοσμένους προσαρμογείς σε πρώιμο στάδιο.
  • Το κόστος υλοποίησης είναι πιθανό να είναι υψηλότερο.

2. Προσέγγιση από κάτω προς τα πάνω:

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

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

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

Πλεονεκτήματα:

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

Μειονεκτήματα

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

Σάντουιτς / Υβριδικές δοκιμές

Το Sandwich Testing είναι μια ένωση της προσέγγισης από κάτω προς τα πάνω και από πάνω προς τα κάτω, επομένως εκμεταλλεύεται το πλεονέκτημα τόσο της προσέγγισης από κάτω προς τα πάνω όσο και της προσέγγισης από πάνω προς τα κάτω.

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

Πλεονεκτήματα:

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

Μειονεκτήματα:

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

Πώς να κάνετε τη δοκιμή ενσωμάτωσης;

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

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

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

Τα καλύτερα εργαλεία για τη δοκιμή ενσωμάτωσης:

Το VectorCAST/C++ είναι μια αυτοματοποιημένη λύση δοκιμών μονάδας και ενοποίησης που χρησιμοποιείται για την επικύρωση των ενσωματωμένων συστημάτων ασφάλειας και κρίσιμων για την αγορά. Αυτή η δυναμική λύση δοκιμών χρησιμοποιείται εκτενώς σε βιομηχανίες όπως η αεροηλεκτρονική, οι ιατρικές συσκευές, η αυτοκινητοβιομηχανία, οι βιομηχανικοί έλεγχοι, οι σιδηρόδρομοι και οι χρηματοοικονομικοί τομείς.

Το Citrus είναι ένα πλαίσιο ανοιχτού κώδικα που μπορεί να βοηθήσει τους προγραμματιστές να αυτοματοποιήσουν τις δοκιμές ενοποίησης για οποιοδήποτε πρωτόκολλο ανταλλαγής μηνυμάτων ή μορφή δεδομένων. Το Citrus είναι το πλαίσιο επιλογής για να δοκιμάσετε τις ενσωματώσεις ανταλλαγής μηνυμάτων της εφαρμογής σας., Εάν χρησιμοποιείτε μια μεταφορά μηνυμάτων όπως HTTP, REST, SOAP ή JMS.

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

Αυτές τις μέρες, αρκετές επιχειρήσεις προωθούν την αρχιτεκτονική με προσανατολισμό τις επιχειρήσεις. Η παραδοσιακή μέθοδος δοκιμής ολοκλήρωσης, όπως η προσέγγιση από κάτω προς τα πάνω, απαιτεί σημαντικές προσπάθειες για τη δημιουργία δεδομένων δοκιμής. Το Smart Integration Test Accelerator (SITA) της Wipro βοηθά τους προγραμματιστές να ξεπεράσουν αυτές τις προκλήσεις. Αυτό το πλαίσιο επιτρέπει στους προγραμματιστές να επιταχύνουν τη δημιουργία δεδομένων δοκιμής και σχεδίασης δοκιμών.

Το Rational Integration Tester (RIT) είναι ένα εργαλείο δοκιμής ενσωμάτωσης που παλαιότερα ήταν γνωστό ως Green Hat. Η IBM απέκτησε την Green Hat το 2012. Με το Rational Integration Tester της IBM, οι προγραμματιστές μπορούν να αποκτήσουν ένα περιβάλλον χωρίς δέσμες ενεργειών και είναι δυνατή η ανάπτυξη για δοκιμές ανταλλαγής μηνυμάτων SOA και έργα ενοποίησης. Το Rational Integration Tester εμποδίζει τα προβλήματα ολοκλήρωσης με τη βοήθεια επαναληπτικών και ευέλικτων μεθόδων ανάπτυξης. Το εργαλείο είναι πλέον μέρος του Rational Test Workbench.

Συμβουλές για τη δοκιμή ενσωμάτωσης:

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

Σχετικά Άρθρα

Δοκιμή μονάδας Δοκιμή συστήματος Δοκιμή αποδοχής