Δοκιμή αυτοματοποίησης στρατηγικής για ευέλικτα έργα

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

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

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




Περίληψη των κυριότερων σημείων

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

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


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

Αυτό απαιτεί 'αναστροφή της πυραμίδας αυτοματισμού δοκιμής' πιέζοντας προς τα κάτω τις δοκιμές GUI που χρειάζονται πολύ χρόνο για να εκτελεστούν, σε χαμηλότερα επίπεδα π.χ. Επίπεδο API που μπορεί να εκτελεστεί αμέσως μετά από δοκιμές μονάδας ως μέρος του build για να παρέχει το αρχικό επίπεδο εμπιστοσύνης.

Σχετιζομαι με:



Επισκόπηση στρατηγικής αυτοματισμού δοκιμής

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


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

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

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

Οι δοκιμές μονάδας αποτελούν τα θεμέλια για τον αυτοματισμό δοκιμών σε υψηλότερα επίπεδα.


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



Ορισμός των πακέτων παλινδρόμησης

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

Πακέτο παλινδρόμησης καπνού

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

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


Το πακέτο δοκιμής καπνού λειτουργεί σε κάθε ανάπτυξη και μπορεί να είναι ένα μείγμα δοκιμών API ή / και GUI.

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

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

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


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

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

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

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



Δοκιμή στρατηγικής αυτοματισμού για πολλαπλές ευέλικτες ομάδες

test_automation_strategy_agile

Αυτοματοποιημένες δοκιμές μονάδας

Το Test Automation ξεκινά σε επίπεδο μονάδας. Οι δοκιμές μονάδας πρέπει να γράφονται από προγραμματιστές για οποιαδήποτε νέα δυνατότητα που έχει αναπτυχθεί. Αυτά τα τεστ μονάδας αποτελούν τα θεμέλια μιας μεγαλύτερης πρακτικής αυτοματισμού που εκτείνεται μέχρι τις δοκιμές συστήματος GUI.

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

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

Οι δοκιμές μονάδας εκτελούνται στο μηχάνημα του προγραμματιστή καθώς και στο περιβάλλον CI.

Αυτοματοποιημένες δοκιμές ενοποίησης / API ή υπηρεσίας

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

Οι δοκιμές υπηρεσίας εκτελούνται φυσικά σε επίπεδο API χωρίς την παρέμβαση της διεπαφής Ιστού GUI. Ως εκ τούτου, οι δοκιμές θα μπορούσαν να επαληθεύσουν τη λειτουργικότητα σε καθαρή μορφή και επειδή οι δοκιμές μιλούν απευθείας στα συστατικά, είναι γρήγορες στην εκτέλεση και θα είναι μέρος του build.

Όπου είναι απαραίτητο, χλευάζει όπως wiremock θα χρησιμοποιηθεί για τον προσδιορισμό της εξάρτησης άλλων 3rdσυστήματα πάρτι και όταν τα μεταγενέστερα συστήματα δεν είναι διαθέσιμα για την παροχή των δεδομένων που απαιτούνται για τη δοκιμή.

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

Εργαλεία όπως το SoapUI μπορούν να χρησιμοποιηθούν για δοκιμές σέρβις.

Δοκιμή εφαρμογών

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

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

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

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

Δοκιμές σεναρίου από άκρο σε άκρο

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



Αντιστροφή της πυραμίδας δοκιμής αυτοματισμού

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

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

Εύθραυστος

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

Περιορισμένες δοκιμές

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

Αργός

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

Τουλάχιστον ROI

Λόγω των προαναφερθέντων ζητημάτων, οι αυτόματες δοκιμές GUI παρέχουν το λιγότερο ROI.

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