Η δοκιμή ad-hoc είναι ένας τύπος δοκιμής λογισμικού που εφαρμόζουν οι προγραμματιστές και οι εταιρείες λογισμικού κατά τον έλεγχο της τρέχουσας επανάληψης του λογισμικού. Αυτή η μορφή δοκιμών παρέχει ένα μεγαλύτερο επίπεδο κατανόησης του προγράμματος, εντοπίζοντας ζητήματα που οι συμβατικές δοκιμές μπορεί να μην είναι σε θέση να αναδείξουν.
Είναι υψίστης σημασίας οι ομάδες δοκιμών να έχουν πλήρη κατανόηση της διαδικασίας δοκιμών ad hoc, ώστε να γνωρίζουν πώς να παρακάμπτουν τις προκλήσεις της και να διασφαλίζουν ότι η ομάδα μπορεί να εφαρμόσει με επιτυχία αυτή την τεχνική.
Η ακριβής γνώση του τρόπου λειτουργίας των ad-hoc δοκιμών και των εργαλείων που μπορούν να διευκολύνουν την εφαρμογή τους, επιτρέπει σε μια επιχείρηση να βελτιώνει συνεχώς τις δικές της διαδικασίες διασφάλισης ποιότητας. Η τυπική διαδικασία δοκιμών ακολουθεί πολύ συγκεκριμένους κανόνες, οι οποίοι θα μπορούσαν να οδηγήσουν την ομάδα να χάσει ορισμένα σφάλματα – οι ad-hoc έλεγχοι μπορούν να παρακάμψουν αυτά τα τυφλά σημεία και να ελέγξουν γρήγορα κάθε χαρακτηριστικό του λογισμικού.
Σε αυτό το άρθρο, εξετάζουμε προσεκτικά τις δοκιμές ad-hoc και πώς μπορείτε να τις χρησιμοποιήσετε προς όφελός σας κατά την ανάπτυξη ενός προϊόντος λογισμικού.
Ad-Hoc δοκιμή Σημασία: Τι είναι η δοκιμή Ad-Hoc;
Η δοκιμή ad-hoc είναι μια διαδικασία διασφάλισης ποιότητας που αποφεύγει τους επίσημους κανόνες και την τεκμηρίωση – βοηθώντας τους ελεγκτές να βρουν σφάλματα στην εφαρμογή τους που οι συμβατικές προσεγγίσεις δεν μπορούν να εντοπίσουν. Αυτό συνήθως απαιτεί ολοκληρωμένη γνώση του λογισμικού πριν από την έναρξη των δοκιμών – συμπεριλαμβανομένης της κατανόησης των εσωτερικών λειτουργιών του προγράμματος. Αυτοί οι ad-hoc έλεγχοι έχουν ως στόχο να σπάσουν την εφαρμογή με τρόπους που να αντικατοπτρίζουν την είσοδο του χρήστη, υπολογίζοντας διάφορες πιθανές καταστάσεις, ώστε οι προγραμματιστές να μπορούν να επιδιορθώσουν τυχόν υπάρχοντα προβλήματα.
Η έλλειψη τεκμηρίωσης είναι κεντρικό στοιχείο αυτής της τεχνικής, η οποία δεν περιλαμβάνει κατάλογο ελέγχου ή περιπτώσεις δοκιμών για να καθοδηγήσει τους ελεγκτές σε όλα τα χαρακτηριστικά μιας εφαρμογής. Η δοκιμή ad-hoc αφορά αποκλειστικά τη δοκιμή του λογισμικού με όποιον τρόπο αποφασίσει η ομάδα ότι είναι αποτελεσματικός τη συγκεκριμένη στιγμή. Αυτό μπορεί να λαμβάνει υπόψη τις προϋπάρχουσες επίσημες δοκιμές, αλλά μπορεί επίσης να περιλαμβάνει απλώς τη διενέργεια όσο το δυνατόν περισσότερων δοκιμών στον (πιθανότατα περιορισμένο) χρόνο που διατίθεται για την τεχνική αυτή.
1. Πότε και γιατί πρέπει να κάνετε δοκιμές Ad-Hoc στη δοκιμή λογισμικού;
Ο κύριος λόγος για τον οποίο οι εταιρείες διεξάγουν ad-hoc δοκιμές είναι η ικανότητά τους να αποκαλύπτουν σφάλματα που οι παραδοσιακές προσεγγίσεις δεν μπορούν να βρουν. Αυτό θα μπορούσε να οφείλεται σε διάφορους λόγους, όπως οι συμβατικές περιπτώσεις δοκιμών που ακολουθούν μια ιδιαίτερα τυποποιημένη διαδικασία η οποία δεν μπορεί να λάβει υπόψη της τις ιδιαιτερότητες μιας εφαρμογής.
Κάθε τύπος δοκιμών μπορεί να προσφέρει νέες προοπτικές και ενδιαφέρουσες προσεγγίσεις στη διασφάλιση της ποιότητας – αυτό δείχνει επίσης ζητήματα με τη συνήθη στρατηγική δοκιμών. Για παράδειγμα, εάν οι δοκιμές ad-hoc μπορούν να εντοπίσουν μια ανησυχία που δεν αντιμετωπίζεται από τις περιπτώσεις δοκιμών της ομάδας, αυτό υποδηλώνει ότι θα μπορούσαν να επωφεληθούν από την αναπροσαρμογή της μεθοδολογίας δοκιμών τους.
Οι ελεγκτές μπορούν να διεξάγουν ad-hoc ελέγχους σε οποιοδήποτε σημείο της διαδικασίας δοκιμής. Αυτό συνήθως λειτουργεί ως συμπλήρωμα της παραδοσιακής (και πιο επίσημης) διασφάλισης ποιότητας και, με αυτό κατά νου, οι ελεγκτές μπορούν να εκτελούν ad-hoc επιθεωρήσεις, ενώ οι συνάδελφοί τους διεξάγουν πιο επίσημες εξετάσεις. Ωστόσο, μπορεί να προτιμούν να διατηρήσουν τους ad-hoc ελέγχους μέχρι να ολοκληρωθεί η επίσημη διαδικασία δοκιμών ως συνέχεια που στοχεύει ειδικά στα πιθανά τυφλά σημεία.
Οι δοκιμές ad-hoc θα μπορούσαν επίσης να είναι χρήσιμες όταν ο χρόνος είναι ιδιαίτερα περιορισμένος λόγω της έλλειψης τεκμηρίωσης – ο σωστός χρόνος εξαρτάται από την εταιρεία και την προτιμώμενη προσέγγισή της.
2. Όταν δεν χρειάζεται να κάνετε δοκιμές Ad-Hoc
Εάν δεν υπάρχει επαρκής χρόνος για την εκτέλεση τόσο των ad-hoc όσο και των επίσημων δοκιμών, είναι σημαντικό η ομάδα να δώσει προτεραιότητα στις τελευταίες, καθώς έτσι εξασφαλίζεται ουσιαστική κάλυψη των δοκιμών – ακόμη και αν εξακολουθούν να υπάρχουν κάποια κενά.
Εάν οι επίσημες δοκιμές της ομάδας βρουν σφάλματα που απαιτούν διόρθωση, είναι γενικά καλύτερο να περιμένετε μέχρι να ολοκληρώσουν οι προγραμματιστές τις απαραίτητες αλλαγές για να θέσετε σε εφαρμογή ad-hoc ελέγχους. Διαφορετικά, τα αποτελέσματα που παρέχουν θα μπορούσαν σύντομα να ξεπεραστούν, ειδικά αν οι δοκιμές αφορούν το στοιχείο που ήδη παρουσιάζει σφάλματα.
Επιπλέον, οι δοκιμές ad-hoc πρέπει να γίνουν πριν από το στάδιο των δοκιμών beta.
3. Ποιος συμμετέχει στις δοκιμές ad-hoc;
Υπάρχουν διάφοροι βασικοί ρόλοι που εμπλέκονται στη διαδικασία Ad-Hoc δοκιμών, όπως:
– Οι δοκιμαστές λογισμικού είναι τα κύρια μέλη της ομάδας που διενεργούν ad hoc ελέγχους. Εάν εφαρμόζετε δοκιμές σε παρέα ή σε ζεύγη, τότε αρκετοί από αυτούς τους δοκιμαστές θα εργαστούν μαζί στα ίδια στοιχεία.
– Οι προγραμματιστές μπορούν ανεξάρτητα να χρησιμοποιούν αυτούς τους ελέγχους πριν από το επίσημο στάδιο διασφάλισης ποιότητας για να επιθεωρούν γρήγορα το δικό τους λογισμικό, αν και αυτό είναι λιγότερο βαθύ από τις ειδικές ad-hoc δοκιμές.
– Οι επικεφαλής των ομάδων ή τμημάτων εγκρίνουν τη συνολική στρατηγική δοκιμών – βοηθώντας τους ελεγκτές να καθορίσουν πότε να ξεκινήσουν τις δοκιμές ad-hoc και πώς να τις εκτελέσουν χωρίς να διαταράξουν άλλους ελέγχους.
Οφέλη των δοκιμών Ad-Hoc
Τα πλεονεκτήματα των δοκιμών ad-hoc στον έλεγχο λογισμικού περιλαμβάνουν:
1. Γρήγορα ψηφίσματα
Καθώς αυτές οι δοκιμές δεν περιλαμβάνουν συχνή τεκμηρίωση πριν, κατά τη διάρκεια ή μετά τους ελέγχους, οι ομάδες μπορούν να εντοπίζουν τα προβλήματα πολύ πιο γρήγορα. Αυτή η απλότητα προσφέρει τεράστια ελευθερία στους δοκιμαστές.
Για παράδειγμα, εάν δοκιμάσουν ένα στοιχείο και δεν μπορούν να εντοπίσουν κανένα σφάλμα, η ομάδα μπορεί απλώς να προχωρήσει στην επόμενη δοκιμή χωρίς να το σημειώσει σε κάποιο έγγραφο.
2. Συμπληρώνει άλλους τύπους δοκιμών
Καμία στρατηγική δοκιμών δεν είναι τέλεια και η κάλυψη 100% είναι συνήθως αδύνατο να επιτευχθεί – ακόμη και με ένα ολοκληρωμένο πρόγραμμα. Πάντα θα υπάρχουν κενά στις συμβατικές δοκιμές, γι’ αυτό είναι σημαντικό οι εταιρείες να ενσωματώνουν πολλαπλές προσεγγίσεις.
Οι ad-hoc δοκιμές στοχεύουν ειδικά στην ανεύρεση των θεμάτων που δεν μπορούν να καλύψουν οι τυπικές δοκιμές, εξασφαλίζοντας ευρύτερη συνολική κάλυψη των δοκιμών.
3. Ευέλικτη εκτέλεση
Οι δοκιμές ad-hoc μπορούν να πραγματοποιηθούν σε οποιοδήποτε σημείο της διαδικασίας διασφάλισης ποιότητας πριν από τη δοκιμή beta, επιτρέποντας στις εταιρείες και τις ομάδες να αποφασίσουν πότε είναι καλύτερο να εκτελέσουν αυτούς τους ελέγχους. Μπορεί να επιλέξουν να εκτελέσουν ad-hoc δοκιμές παράλληλα με τις συμβατικές δοκιμές ή να περιμένουν μέχρι αργότερα – ό,τι και να γίνει, η ομάδα επωφελείται από τις επιλογές που έχει στη διάθεσή της.
4. Μεγαλύτερη συνεργασία
Οι προγραμματιστές εμπλέκονται περισσότερο σε αυτή τη διαδικασία από ό,τι σε πολλές άλλες μορφές δοκιμών – ειδικά αν η εταιρεία χρησιμοποιεί τη δοκιμή φίλων και τη δοκιμή ζεύγους.
Ως αποτέλεσμα, οι προγραμματιστές αποκτούν καλύτερη εικόνα για τις δικές τους εφαρμογές και ίσως είναι σε θέση να αντιμετωπίσουν τα σφάλματα σε υψηλότερο επίπεδο. Αυτό συμβάλλει στην περαιτέρω βελτίωση της συνολικής ποιότητας του λογισμικού.
5. Διαφορετικές προοπτικές
Οι δοκιμές ad-hoc μπορούν να δείξουν την εφαρμογή από νέες οπτικές γωνίες, βοηθώντας τους δοκιμαστές να ασχοληθούν με αυτά τα χαρακτηριστικά με νέους τρόπους. Οι πρόσθετες προοπτικές είναι κρίσιμες καθ’ όλη τη διάρκεια των δοκιμών, καθώς οι επίσημοι έλεγχοι συχνά έχουν τουλάχιστον μικρά κενά.
Εάν οι ad-hoc δοκιμαστές χρησιμοποιούν το λογισμικό με συγκεκριμένη πρόθεση να το παραβιάσουν, θα είναι σε θέση να εντοπίσουν ευκολότερα τα όρια του προγράμματος.
Προκλήσεις των δοκιμών Ad-Hoc
Η διαδικασία ad-hoc δοκιμών έχει επίσης αρκετές προκλήσεις, όπως:
1. Δυσκολία με την υποβολή εκθέσεων
Η έλλειψη τεκμηρίωσης κάνει τις δοκιμές ad-hoc πολύ πιο γρήγορες, αλλά μπορεί επίσης να καταστήσει δύσκολη την υποβολή εκθέσεων για οτιδήποτε άλλο εκτός από ένα σημαντικό ζήτημα.
Για παράδειγμα, ένας προηγούμενος έλεγχος μπορεί να γίνει πιο σημαντικός σε μεταγενέστερη ημερομηνία, παρόλο που αρχικά δεν οδήγησε σε σημαντικά αποτελέσματα. Χωρίς ολοκληρωμένη τεκμηρίωση, η ομάδα μπορεί να μην είναι σε θέση να εξηγήσει αυτές τις δοκιμές.
2. Λιγότερο επαναλαμβανόμενο
Σε παρόμοιο πλαίσιο, οι δοκιμαστές μπορεί να μην έχουν πλήρη επίγνωση της ακριβούς συνθήκης που είναι απαραίτητη για να προκαλέσουν τις αντιδράσεις που παρατηρούν. Για παράδειγμα, ένας ad-hoc έλεγχος που επιστρέφει ένα σφάλμα μπορεί να μην έχει επαρκείς πληροφορίες για να αναλάβει δράση η ομάδα. Μπορεί να μην γνωρίζουν πώς να επαναλάβουν αυτή τη δοκιμή και να έχουν το ίδιο αποτέλεσμα.
3. Απαιτεί εμπειρία στο λογισμικό
Καθώς η ταχύτητα είναι το κλειδί σε όλες τις δοκιμές ad-hoc και συνήθως περιλαμβάνει την προσπάθεια να σπάσει η εφαρμογή, είναι σημαντικό αυτοί οι δοκιμαστές να έχουν μια βαθιά κατανόηση αυτού του προγράμματος.
Η γνώση του τρόπου λειτουργίας του επιτρέπει στους ελεγκτές να παραβιάζουν και να χειρίζονται το λογισμικό με περισσότερους τρόπους, αλλά αυτό θα μπορούσε να αυξήσει σημαντικά τις απαιτήσεις δεξιοτήτων για ad-hoc δοκιμές.
4. Περιορισμένη λογοδοσία
Η έλλειψη τεκμηρίωσης μπορεί να προκαλέσει περισσότερα προβλήματα από την κακή αναφορά- μπορεί επίσης να παρατείνει ακούσια τη διαδικασία δοκιμών, επηρεάζοντας τη χρησιμότητα των γρήγορων μεμονωμένων ad-hoc δοκιμών.
Οι δοκιμαστές μπορεί να δυσκολευτούν να παρακολουθήσουν την πρόοδό τους χωρίς επαρκή τεκμηρίωση σε κάθε στάδιο. Αυτό μπορεί ακόμη και να τους οδηγήσει στην επανάληψη ενός ελέγχου που έχουν ήδη ολοκληρώσει άλλοι ελεγκτές.
5. Μπορεί να μην αντικατοπτρίζει την εμπειρία του χρήστη
Ο στόχος σχεδόν κάθε τύπου δοκιμής είναι να ληφθούν υπόψη σφάλματα που επηρεάζουν τους τελικούς χρήστες με κάποιο τρόπο. Οι δοκιμές ad-hoc βασίζονται κυρίως σε έναν έμπειρο ελεγκτή που προσπαθεί να μιμηθεί έναν άπειρο χρήστη και αυτό θα πρέπει να είναι συνεπές σε κάθε έλεγχο μέχρι και τις προσπάθειές του να σπάσει την εφαρμογή.
Χαρακτηριστικά των δοκιμών Ad-Hoc
Τα κύρια χαρακτηριστικά των επιτυχημένων δοκιμών ad-hoc περιλαμβάνουν:
1. Ερευνητικό
Η κύρια προτεραιότητα των ad-hoc δοκιμών είναι ο εντοπισμός σφαλμάτων της εφαρμογής με τη χρήση τεχνικών που δεν λαμβάνονται υπόψη από τους συμβατικούς ελέγχους. Οι ad-hoc εξετάσεις σαρώνουν αυτό το λογισμικό με ρητό σκοπό να βρουν κενά στη διαδικασία δοκιμών της ομάδας, συμπεριλαμβανομένης της κάλυψης των περιπτώσεων δοκιμών.
2. Μη δομημένο
Οι ad hoc έλεγχοι συνήθως δεν έχουν καθορισμένο σχέδιο πέρα από τη διενέργεια όσο το δυνατόν περισσότερων δοκιμών εκτός των τυπικών ορίων της τυπικής διασφάλισης ποιότητας. Οι ελεγκτές συνήθως ομαδοποιούν τους ελέγχους ανά συστατικό για λόγους ευκολίας, αλλά ακόμη και αυτό δεν είναι απαραίτητο – μπορεί ακόμη και να επινοούν τους ελέγχους κατά την εκτέλεσή τους.
3. Με γνώμονα την εμπειρία
Οι ad-hoc δοκιμαστές χρησιμοποιούν την προϋπάρχουσα εμπειρία τους στο λογισμικό για να αξιολογήσουν ποιες δοκιμές θα αποφέρουν τα περισσότερα οφέλη και να αντιμετωπίσουν τα κοινά τυφλά σημεία των επίσημων δοκιμών.
Αν και η διαδικασία ελέγχου εξακολουθεί να είναι πλήρως αδόμητη, οι ελεγκτές εφαρμόζουν τις γνώσεις τους από προηγούμενους ad-hoc ελέγχους μεταξύ άλλων, ενώ αποφασίζουν τη στρατηγική τους.
4. Ευρείας εμβέλειας
Δεν υπάρχουν ακριβείς οδηγοί για το ποιους ελέγχους θα πρέπει να εκτελεί η ομάδα κατά τη διάρκεια των ad-hoc δοκιμών, αλλά συνήθως καλύπτουν ένα εύρος στοιχείων – ενδεχομένως με μεγαλύτερη έμφαση στις πιο ευαίσθητες πτυχές της εφαρμογής. Αυτό βοηθά τους ελεγκτές να εγγυηθούν ότι οι εξετάσεις τους είναι σε θέση να συμπληρώσουν πλήρως τις επίσημες δοκιμές.
Τι δοκιμάζουμε στις δοκιμές Ad-Hoc;
Οι ομάδες διασφάλισης ποιότητας δοκιμάζουν συνήθως τα ακόλουθα κατά τη διάρκεια ad-hoc δοκιμών:
1. Ποιότητα λογισμικού
Αυτοί οι έλεγχοι αποσκοπούν στον εντοπισμό σφαλμάτων στην εφαρμογή που δεν μπορούν να αποκαλύψουν οι συμβατικές δοκιμές- αυτό σημαίνει ότι η διαδικασία ελέγχει κυρίως τη γενική κατάσταση της εφαρμογής.
Όσο περισσότερα σφάλματα μπορούν να εντοπιστούν με ad-hoc δοκιμές, τόσο περισσότερες βελτιώσεις μπορούν να υλοποιήσουν οι προγραμματιστές πριν από την προθεσμία τους.
2. Περιπτώσεις δοκιμών
Οι ad-hoc δοκιμές γενικά δεν υλοποιούν περιπτώσεις δοκιμών – και αυτό γίνεται ειδικά για να μπορεί η ομάδα να διερευνήσει πόσο αποτελεσματικές είναι στην παροχή άφθονης κάλυψης. Οι περιπτώσεις δοκιμών είναι πιθανότατα ανεπαρκείς εάν οι ad-hoc έλεγχοι μπορούν να βρουν σφάλματα που δεν μπορούν να βρουν οι συμβατικές διαδικασίες δοκιμών.
3. Προσωπικό δοκιμών
Ο στόχος θα μπορούσε επίσης να είναι να ελεγχθούν οι δεξιότητες και οι γνώσεις της ομάδας δοκιμών, ακόμη και αν οι περιπτώσεις δοκιμών είναι επαρκείς. Για παράδειγμα, η μεθοδολογία τους για την υλοποίηση των περιπτώσεων μπορεί να είναι ανεπαρκής και οι ad-hoc δοκιμές μπορεί να είναι κρίσιμες για την αντιμετώπιση των κενών που προκύπτουν στην κάλυψη των δοκιμών.
4. Όρια λογισμικού
Οι δοκιμές ad-hoc αποσκοπούν επίσης στην κατανόηση των ορίων της εφαρμογής – όπως ο τρόπος με τον οποίο ανταποκρίνεται σε απροσδόκητες εισόδους ή σε υψηλά φορτία συστήματος. Οι δοκιμαστές θα μπορούσαν να διερευνήσουν συγκεκριμένα τα μηνύματα σφάλματος του προγράμματος και το πόσο καλά λειτουργεί η εφαρμογή αυτή όταν βρίσκεται υπό σημαντική πίεση.
Ξεκαθαρίζοντας κάποια σύγχυση:
Δοκιμές Ad-Hoc και διερευνητικές δοκιμές
Ορισμένοι θεωρούν ότι οι ad-hoc και οι διερευνητικές δοκιμές είναι συνώνυμες, αν και η αλήθεια είναι πιο περίπλοκη από αυτό.
1. Τι είναι η διερευνητική δοκιμή;
Η διερευνητική δοκιμή αναφέρεται σε διαδικασίες διασφάλισης ποιότητας που διερευνούν το λογισμικό από μια ολιστική άποψη και συγκεκριμένα συνδυάζουν τις διαδικασίες ανακάλυψης και δοκιμής σε μια ενιαία μέθοδο. Πρόκειται συνήθως για μια ενδιάμεση λύση μεταξύ των πλήρως δομημένων δοκιμών και των εντελώς ελεύθερων ad-hoc ελέγχων.
Οι διερευνητικές δοκιμές λειτουργούν καλύτερα σε συγκεκριμένα σενάρια, όπως όταν είναι απαραίτητη η ταχεία ανατροφοδότηση ή όταν η ομάδα πρέπει να αντιμετωπίσει ακραίες περιπτώσεις. Αυτός ο τύπος δοκιμών συνήθως αξιοποιεί πλήρως τις δυνατότητές του όταν η ομάδα χρησιμοποιεί παράλληλα δοκιμές με σενάρια.
2. Διαφορές μεταξύ διερευνητικών δοκιμών
και δοκιμές Ad-Hoc
Η μεγαλύτερη διάκριση μεταξύ ad-hoc και διερευνητικών δοκιμών είναι η χρήση τεκμηρίωσης από την πρώτη για την καταγραφή και τη διευκόλυνση των ελέγχων της, ενώ η ad-hoc δοκιμή το αποφεύγει εντελώς. Οι διερευνητικές δοκιμές δίνουν μεγαλύτερη έμφαση στην ελευθερία των δοκιμών, αλλά ποτέ στο ίδιο επίπεδο με μια ad-hoc προσέγγιση που είναι εντελώς αδόμητη.
Οι διερευνητικές δοκιμές περιλαμβάνουν επίσης τη μάθηση της εφαρμογής και των εσωτερικών λειτουργιών της κατά τη διάρκεια αυτών των ελέγχων – οι ad-hoc δοκιμαστές αντιθέτως συχνά έχουν ολοκληρωμένη γνώση της λειτουργικότητας του λογισμικού πριν ξεκινήσουν.
Τύποι δοκιμών Ad-Hoc
Υπάρχουν τρεις κύριες μορφές δοκιμών ad-hoc στη δοκιμή λογισμικού, μεταξύ των οποίων:
1. Δοκιμές με μαϊμούδες
Ίσως ο πιο δημοφιλής τύπος ad-hoc δοκιμών, οι δοκιμές μαϊμού είναι αυτές που περιλαμβάνουν μια ομάδα που εξετάζει τυχαία διάφορα στοιχεία.
Αυτό συνήθως λαμβάνει χώρα κατά τη διάρκεια της διαδικασίας δοκιμών μονάδας και εκτελεί μια σειρά ελέγχων χωρίς περιπτώσεις δοκιμών. Οι δοκιμαστές διερευνούν ανεξάρτητα τα δεδομένα με εντελώς αδόμητους τρόπους, επιτρέποντάς τους να εξετάσουν το ευρύτερο σύστημα και την ικανότητά του να αντέχει στην έντονη καταπόνηση από τις εισόδους των χρηστών.
Η παρατήρηση της εξόδου αυτών των μη σεναριακών τεχνικών βοηθά την ομάδα δοκιμών να εντοπίσει σφάλματα που άλλες δοκιμές μονάδας δεν έχουν εντοπίσει λόγω ελλείψεων στις συμβατικές μεθόδους δοκιμών.
2. Δοκιμή φίλου
Σε ένα ad-hoc πλαίσιο, οι δοκιμές φίλων χρησιμοποιούν τουλάχιστον δύο μέλη του προσωπικού – συνήθως έναν ελεγκτή και έναν προγραμματιστή – και λαμβάνουν χώρα κυρίως μετά το στάδιο της δοκιμής μονάδας. Τα “φιλαράκια” εργάζονται μαζί στην ίδια ενότητα για να εντοπίσουν τα σφάλματα. Οι ποικίλες δεξιότητές τους και η ολοκληρωμένη εμπειρία τους τους καθιστούν μια πιο αποτελεσματική ομάδα, γεγονός που συμβάλλει στην άμβλυνση πολλών προβλημάτων που προκύπτουν λόγω έλλειψης τεκμηρίωσης.
Ο προγραμματιστής μπορεί ακόμη και να προτείνει ο ίδιος ορισμένες από τις δοκιμές, επιτρέποντάς του να εντοπίσει τα στοιχεία που μπορεί να χρειάζονται περισσότερη προσοχή.
3. Δοκιμή ζεύγους
Η δοκιμή ζεύγους είναι παρόμοια στο ότι περιλαμβάνει δύο μέλη του προσωπικού, αλλά συνήθως πρόκειται για δύο διαφορετικούς ελεγκτές, εκ των οποίων ο ένας εκτελεί τις πραγματικές δοκιμές, ενώ ο άλλος κρατάει σημειώσεις.
Ακόμη και χωρίς επίσημη τεκμηρίωση, η καταγραφή σημειώσεων μπορεί να επιτρέψει στην ομάδα να παρακολουθεί ανεπίσημα τους επιμέρους ad-hoc ελέγχους. Οι ρόλοι του ελεγκτή και του γραφέα μπορούν να αλλάζουν ανάλογα με τη δοκιμή ή το ζεύγος μπορεί να διατηρεί τους ρόλους που του έχουν ανατεθεί καθ’ όλη τη διάρκεια της διαδικασίας.
Ο ελεγκτής που έχει μεγαλύτερη εμπειρία είναι συνήθως αυτός που εκτελεί τους πραγματικούς ελέγχους – αν και πάντα μοιράζονται την εργασία μεταξύ τους.
Χειροκίνητες ή αυτοματοποιημένες δοκιμές Ad-Hoc;
Οι αυτοματοποιημένες δοκιμές μπορούν να βοηθήσουν τις ομάδες να εξοικονομήσουν ακόμη περισσότερο χρόνο σε όλο το στάδιο της διασφάλισης ποιότητας, γεγονός που επιτρέπει στους ελεγκτές να χωρέσουν περισσότερους ελέγχους στο πρόγραμμά τους. Ακόμα και χωρίς συγκεκριμένη δομή, είναι σημαντικό οι ελεγκτές να εργάζονται για τη μεγιστοποίηση της κάλυψης και η αυτοματοποίηση ενθαρρύνει πιο εμπεριστατωμένες επιθεωρήσεις αυτού του λογισμικού.
Οι αυτοματοποιημένοι ad-hoc έλεγχοι είναι γενικά πιο ακριβείς από τις χειροκίνητες δοκιμές, λόγω της ικανότητάς τους να αποφεύγουν το ανθρώπινο λάθος κατά τη διάρκεια εργασιών ρουτίνας – αυτό είναι ιδιαίτερα χρήσιμο όταν οι ίδιες δοκιμές εφαρμόζονται σε διαφορετικές επαναλήψεις. Η επιτυχία αυτής της διαδικασίας εξαρτάται συνήθως από το εργαλείο αυτοματοποιημένων δοκιμών που επιλέγει η ομάδα και τη λειτουργικότητά του.
Ωστόσο, οι αυτοματοποιημένες δοκιμές έχουν ορισμένους περιορισμούς. Για παράδειγμα, το κύριο πλεονέκτημα των ad-hoc δοκιμών είναι η ικανότητά τους να μιμούνται την είσοδο του χρήστη και να θέτουν σε εφαρμογή τυχαίους ελέγχους καθώς ο ελεγκτής τους βρίσκει. Αυτές οι δοκιμές θα μπορούσαν να χάσουν την τυχαιότητά τους εάν το πρόγραμμα δοκιμών του οργανισμού δυσκολεύεται με πολύπλοκους ελέγχους.
Ο χρόνος που απαιτείται για την αυτοματοποίηση αυτών των πολύ συγκεκριμένων εργασιών μπορεί επίσης να περιορίσει την τυπική εξοικονόμηση χρόνου αυτής της διαδικασίας. Είναι σημαντικό οι ομάδες να διερευνήσουν διεξοδικά τα διαθέσιμα εργαλεία αυτοματοποίησης για να βρουν ένα που ταιριάζει στο έργο της εταιρείας τους.
Τι χρειάζεστε για να ξεκινήσετε τις δοκιμές Ad-Hoc;
Ακολουθούν οι κύριες προϋποθέσεις των ad-hoc δοκιμών:
1. Εξειδικευμένο προσωπικό
Καθώς οι ad-hoc δοκιμές είναι γρήγορες, τυχαίες επιθεωρήσεις των εσωτερικών λειτουργιών του λογισμικού, συνήθως βοηθάει να υπάρχουν δοκιμαστές που έχουν εμπειρία με το λογισμικό. Θα πρέπει επίσης να γνωρίζουν τις βασικές αρχές ελέγχου – αυτό τους επιτρέπει να εντοπίζουν εύκολα τους πιο αποτελεσματικούς ελέγχους.
2. Μια μη δομημένη προσέγγιση
Οι ελεγκτές πρέπει να είναι πρόθυμοι να εγκαταλείψουν τις συνήθεις στρατηγικές τους για δοκιμές ad-hoc- αυτή η νοοτροπία είναι εξίσου κρίσιμη με τους ίδιους τους ελέγχους ποιότητας. Αυτή η μέθοδος μπορεί να πετύχει μόνο χωρίς δομή ή τεκμηρίωση και είναι ζωτικής σημασίας να το θυμούνται αυτό οι ελεγκτές σε κάθε στάδιο.
3. Λογισμικό αυτοματισμού
Αν και οι δοκιμές ad-hoc βασίζονται περισσότερο στη δοκιμή τυχαίων εισόδων και συνθηκών, η αυτοματοποίηση εξακολουθεί να είναι μια πολύ αποτελεσματική τεχνική σε οποιοδήποτε πλαίσιο.
Για το λόγο αυτό, οι ad-hoc έλεγχοι θα πρέπει να εφαρμόζουν αυτοματοποιημένα εργαλεία δοκιμών, όπου αυτό είναι δυνατόν, καθώς η κατάλληλη εφαρμογή μπορεί να βελτιώσει σημαντικά τη διαδικασία.
4. Άλλες μορφές δοκιμών
Οι ad-hoc δοκιμές λειτουργούν καλύτερα μαζί με άλλους ελέγχους που ακολουθούν μια πιο επίσημη προσέγγιση – βοηθώντας την ομάδα να εγγυηθεί σημαντική κάλυψη σε όλο το λογισμικό. Είναι ζωτικής σημασίας οι δοκιμαστές να συνδυάζουν διάφορες τεχνικές, αν και αυτό μπορεί να γίνει πριν, κατά τη διάρκεια ή μετά την ολοκλήρωση των δοκιμών ad-hoc.
Διαδικασία δοκιμών Ad-Hoc
Τα συνήθη βήματα που πρέπει να ακολουθούν οι δοκιμαστές όταν εκτελούν ad-hoc δοκιμές στον έλεγχο λογισμικού είναι τα εξής:
1. Καθορισμός στόχων ad-hoc δοκιμών
Αυτό το στάδιο είναι περιορισμένο λόγω της έλλειψης τεκμηρίωσης και δομής, αλλά εξακολουθεί να είναι υψίστης σημασίας η ομάδα να έχει σαφή εστίαση. Οι δοκιμαστές μπορεί να αρχίσουν να μοιράζονται αόριστες ιδέες σχετικά με τις επερχόμενες δοκιμές που θα εκτελέσουν και τα στοιχεία που θα δώσουν προτεραιότητα.
2. Επιλογή της ομάδας ad-hoc δοκιμών
Καθώς η ομάδα συλλογίζεται έναν αριθμό πιθανών ad-hoc ελέγχων, καταλαβαίνει επίσης ποιοι ελεγκτές θα ήταν οι καλύτεροι για αυτόν τον τύπο δοκιμών. Συνήθως επιλέγουν δοκιμαστές που κατανοούν σε βάθος την εφαρμογή και μπορεί επίσης να τους συνδυάσουν με έναν προγραμματιστή.
3. Εκτέλεση ad-hoc δοκιμών
Αφού αποφασίσετε ποιοι ελεγκτές είναι κατάλληλοι για αυτό το στάδιο, αυτά τα μέλη της ομάδας αρχίζουν τους ελέγχους τους σε ένα συμφωνημένο σημείο της δοκιμής. Στόχος τους είναι να εκτελέσουν όσο το δυνατόν περισσότερους από τους ad-hoc ελέγχους – τους οποίους οι ελεγκτές μπορεί να μην επινοήσουν μέχρι αυτό το στάδιο.
4. Αξιολόγηση των αποτελεσμάτων των δοκιμών
Μετά την ολοκλήρωση των δοκιμών (ή ακόμη και μεταξύ των επιμέρους ελέγχων) οι ελεγκτές θα αξιολογήσουν τα αποτελέσματα, χωρίς όμως να τα τεκμηριώσουν επίσημα σε μια περίπτωση δοκιμής. Εάν ανακαλύψουν προβλήματα με την εφαρμογή, τα καταγράφουν ανεπίσημα και συζητούν τα επόμενα βήματα της ομάδας.
5. Αναφορά τυχόν ανακαλυφθέντων σφαλμάτων
Μόλις αξιολογήσουν τα αποτελέσματα, οι ελεγκτές πρέπει να ενημερώσουν τους προγραμματιστές για τα σφάλματα που υπάρχουν στο λογισμικό, ώστε να έχουν αρκετό χρόνο για να τα διορθώσουν πριν από την κυκλοφορία.
Η ομάδα δοκιμών χρησιμοποιεί επίσης τις πληροφορίες για να καθορίσει πώς να βελτιώσει τις επίσημες διαδικασίες δοκιμών της.
6. Επανέλεγχος ανάλογα με τις ανάγκες
Η ομάδα δοκιμών πιθανότατα θα επαναλάβει τη διαδικασία ad-hoc για νέες επαναλήψεις της εφαρμογής για να ελέγξει πόσο καλά χειρίζεται τις ενημερώσεις. Καθώς οι ελεγκτές θα έχουν διορθώσει πολλά από τα κενά που είχαν εντοπιστεί προηγουμένως στις περιπτώσεις δοκιμών τους, οι μελλοντικοί ad-hoc έλεγχοι ενδέχεται να απαιτούν διαφορετική προσέγγιση.
Βέλτιστες πρακτικές για δοκιμές Ad-Hoc
Υπάρχουν ορισμένες πρακτικές που πρέπει να εφαρμόζουν οι ομάδες δοκιμών κατά τη διάρκεια των ad-hoc δοκιμών, όπως:
1. Στόχευση πιθανών κενών δοκιμών
Αν και οι ad-hoc δοκιμές περιλαμβάνουν πολύ λιγότερο σχεδιασμό από άλλους τύπους, η ομάδα εξακολουθεί να στοχεύει στην αντιμετώπιση των ελλείψεων στη διασφάλιση της ποιότητας. Εάν οι ad-hoc ελεγκτές υποψιάζονται συγκεκριμένα προβλήματα με τις περιπτώσεις ελέγχου της ομάδας, θα πρέπει να τα θέσουν σε προτεραιότητα κατά τη διεξαγωγή των ελέγχων τους.
2. Εξετάστε το λογισμικό αυτοματισμού
Οι στρατηγικές αυτοματοποίησης, όπως ο υπεραυτοματισμός, μπορούν να προσφέρουν πολλά οφέλη στις εταιρείες που επιθυμούν να διεξάγουν ad-hoc δοκιμές.
Η επιτυχία αυτού εξαρτάται από διάφορους βασικούς παράγοντες, συμπεριλαμβανομένου του εργαλείου που επιλέγει η επιχείρηση, καθώς και της γενικής πολυπλοκότητας των ad-hoc δοκιμών της.
3. Κρατήστε αναλυτικές σημειώσεις
Η έλλειψη τεκμηρίωσης στις ad-hoc δοκιμές αποσκοπεί κυρίως στον περαιτέρω εξορθολογισμό αυτής της διαδικασίας – η ομάδα θα μπορούσε να ωφεληθεί από το να κάνει ανεπίσημες σημειώσεις καθώς προχωράει. Αυτό παρέχει στους ελεγκτές μια σαφή καταγραφή αυτών των ελέγχων και των αποτελεσμάτων τους, αυξάνοντας τη συνολική επαναληψιμότητά τους.
4. Συνεχής βελτίωση των δοκιμών
Οι ad-hoc δοκιμαστές βελτιώνουν συνεχώς την προσέγγισή τους ώστε να λαμβάνουν υπόψη τις αλλαγές στη στρατηγική δοκιμών της ομάδας. Όταν εξετάζουν νεότερες εκδόσεις του λογισμικού της εταιρείας, για παράδειγμα, μπορεί να προσαρμόσουν αυτούς τους ελέγχους ως απάντηση σε νεότερες και πιο περιεκτικές επίσημες περιπτώσεις δοκιμών.
7 λάθη και παγίδες στην εφαρμογή
Δοκιμές Ad-Hoc
Όπως συμβαίνει με κάθε διαδικασία δοκιμών, υπάρχει ένα ευρύ φάσμα πιθανών λαθών τα οποία η ομάδα θα πρέπει να προσπαθήσει να αποφύγει, όπως:
1. Άπειροι δοκιμαστές
Για να διατηρηθεί ο αναμενόμενος ρυθμός των ad-hoc δοκιμών, ο επικεφαλής της ομάδας πρέπει να αναθέσει τους δοκιμαστές με βάση τις γνώσεις και τις δεξιότητες που διαθέτουν. Ενώ πολλές μορφές δοκιμών μπορούν να φιλοξενήσουν προσωπικό διασφάλισης ποιότητας εισαγωγικού επιπέδου, οι ad-hoc έλεγχοι απαιτούν μέλη της ομάδας που κατανοούν πλήρως το λογισμικό- κατά προτίμηση με εμπειρία στην εκτέλεση αυτών των δοκιμών.
2. Μη εστιασμένοι έλεγχοι
Η δοκιμή ad-hoc μπορεί να βελτιώσει σημαντικά την κάλυψη των δοκιμών λόγω του ταχύτερου ρυθμού της – η ομάδα δεν χρειάζεται να συμπληρώνει εκτενή τεκμηρίωση πριν και μετά από κάθε έλεγχο.
Ωστόσο, οι ad-hoc δοκιμαστές πρέπει να εξακολουθούν να διατηρούν μια ισχυρή εστίαση- για παράδειγμα, μπορεί να αποφασίσουν να δώσουν προτεραιότητα σε ορισμένα εξαρτήματα με μεγαλύτερο κίνδυνο αποτυχίας.
3. Κανένας σχεδιασμός
Η αποφυγή οποιουδήποτε σχεδίου μπορεί να περιορίσει την αποτελεσματικότητα των δοκιμών ad-hoc. Παρά την αδόμητη φύση αυτής της προσέγγισης, είναι σημαντικό η ομάδα να έχει μια γενική ιδέα για το ποιες δοκιμές θα εκτελέσει πριν ξεκινήσει.
Ο χρόνος είναι περιορισμένος κατά τη διάρκεια αυτής της διαδικασίας και η γνώση του τρόπου δράσης μπορεί να προσφέρει πολλά οφέλη.
4. Υπερβολικά δομημένο
Στο αντίθετο άκρο του φάσματος, αυτή η προσέγγιση βασίζεται συνήθως στην έλλειψη σχεδιασμού, καθώς αυτό βοηθά τους ελεγκτές να υπονομεύουν ενεργά τις περιπτώσεις δοκιμών και να βρίσκουν κρυμμένα σφάλματα.
Ο έλεγχος ad hoc είναι επίσης γνωστός ως τυχαίος έλεγχος και η επιβολή μιας δομής σε αυτόν μπορεί να αποτρέψει αυτούς τους ελέγχους από τον εντοπισμό σφαλμάτων.
5. Δεν υπάρχουν μακροπρόθεσμες αλλαγές
Ο σκοπός των ad-hoc δοκιμών είναι να εντοπιστούν τυχόν αδυναμίες στις περιπτώσεις δοκιμών της ομάδας- αυτό εξετάζει τη συνολική στρατηγική της, όσο και το ίδιο το λογισμικό.
Ωστόσο, αυτό σημαίνει ότι οι ad-hoc δοκιμές είναι γενικά αποτελεσματικές μόνο εάν η ομάδα χρησιμοποιεί αυτές τις πληροφορίες για να βελτιώσει τους επίσημους ελέγχους της με την πάροδο του χρόνου.
6. Μη συμβατά σύνολα δεδομένων
Σχεδόν κάθε μορφή δοκιμών απαιτεί μια μορφή προσομοιωμένων δεδομένων για να αξιολογηθεί ο τρόπος με τον οποίο ανταποκρίνεται η εφαρμογή- ορισμένα εργαλεία επιτρέπουν στους δοκιμαστές να συμπληρώσουν αυτόματα ένα πρόγραμμα με εικονικά δεδομένα.
Ωστόσο, αυτό μπορεί να μην αντικατοπτρίζει τον τρόπο με τον οποίο ένας χρήστης θα χρησιμοποιούσε το λογισμικό – οι ad hoc έλεγχοι απαιτούν σύνολα δεδομένων που το λογισμικό πιθανότατα θα συναντήσει.
7. Σιλό πληροφοριών
Είναι απαραίτητο οι ελεγκτές και οι προγραμματιστές να βρίσκονται σε συνεχή επικοινωνία μεταξύ τους, ακόμη και αν ο τελευταίος δεν συμμετέχει στη διαδικασία ad-hoc δοκιμών.
Αυτό βοηθά όλους να καταλάβουν ποιες δοκιμές έχουν διεξαχθεί – δείχνοντας τις επόμενες ενέργειες που πρέπει να γίνουν, ενώ παράλληλα αποτρέπει τους ελεγκτές από την άσκοπη επανάληψη ορισμένων ελέγχων.
Τύποι αποτελεσμάτων από δοκιμές Ad-Hoc
Οι ad-hoc έλεγχοι παράγουν διάφορα ξεχωριστά αποτελέσματα, όπως:
1. Αποτελέσματα δοκιμών
Οι επιμέρους δοκιμές παράγουν διαφορετικά αποτελέσματα ανάλογα με το ακριβές συστατικό και την προσέγγιση που εμπλέκεται – αυτό μπορεί να λάβει πολλές μορφές.
Συνήθως είναι ευθύνη του ελεγκτή να καθορίσει αν τα αποτελέσματα συνιστούν σφάλμα, αν και η έλλειψη τεκμηρίωσης καθιστά δύσκολη τη σύγκριση με τις προσδοκίες του. Η ομάδα διαβιβάζει αυτά τα αποτελέσματα στους προγραμματιστές, εάν παρατηρήσουν προβλήματα.
2. Ημερολόγια δοκιμών
Το ίδιο το λογισμικό χρησιμοποιεί ένα περίπλοκο σύστημα εσωτερικών αρχείων καταγραφής για να παρακολουθεί τις εισόδους του χρήστη και να επισημαίνει διάφορα ζητήματα αρχείων ή βάσεων δεδομένων που ενδέχεται να προκύψουν.
Αυτό μπορεί να υποδεικνύει ένα εσωτερικό σφάλμα, συμπεριλαμβανομένου του συγκεκριμένου τμήματος του λογισμικού που προκαλεί το πρόβλημα. Με αυτές τις πληροφορίες, οι ad-hoc δοκιμαστές και οι προγραμματιστές μπορούν να αντιμετωπίσουν πολύ πιο εύκολα τα προβλήματα που ανακαλύπτουν.
3. Μηνύματα σφάλματος
Πολλοί ad-hoc έλεγχοι στοχεύουν ειδικά στο να σπάσουν το λογισμικό και να αποκαλύψουν τα όριά του, πράγμα που σημαίνει ότι τα μηνύματα σφάλματος της εφαρμογής είναι ένα από τα πιο συνηθισμένα αποτελέσματα αυτών των ελέγχων.
Προκαλώντας σκόπιμα μηνύματα σφάλματος, η ομάδα μπορεί να παρουσιάσει τι βλέπει ο μέσος τελικός χρήστης κάθε φορά που οι απροσδόκητες ενέργειες που κάνει έχουν αρνητικές επιπτώσεις στη λειτουργία του προγράμματος.
Παραδείγματα δοκιμών Ad-Hoc
Ακολουθούν τρία σενάρια δοκιμών ad-hoc που δείχνουν πώς μπορεί μια ομάδα να τις εφαρμόσει για διαφορετικές εφαρμογές:
1. Διαδικτυακή εφαρμογή ηλεκτρονικού εμπορίου
Εάν μια εταιρεία επιθυμεί να δοκιμάσει μια διαδικτυακή εφαρμογή που βασίζεται στο ηλεκτρονικό εμπόριο, θα μπορούσε να χρησιμοποιήσει δοκιμές ad-hoc – συγκεκριμένα δοκιμές με μαϊμούδες – για να δει πόσο καλά η πλατφόρμα χειρίζεται απροσδόκητες αλληλεπιδράσεις του χρήστη.
Οι δοκιμαστές μπορούν να προσπαθήσουν να φτάσουν κάθε λειτουργία στα όριά της, όπως για παράδειγμα προσθέτοντας αντικείμενα στο καλάθι τους σε μη ρεαλιστικές ποσότητες ή προσπαθώντας να αγοράσουν προϊόντα που έχουν εξαντληθεί. Δεν περιορίζονται από τις περιπτώσεις δοκιμών της ομάδας και δεν υπάρχουν πολλά όρια στους ελέγχους που μπορούν να εκτελέσουν.Οι ελεγκτές μπορεί ακόμη και να προσπαθήσουν να ολοκληρώσουν αγορές χρησιμοποιώντας ξεπερασμένες διευθύνσεις URL.
2. Εφαρμογή γραφείου
Οι ad-hoc δοκιμαστές μπορούν επίσης να εφαρμόσουν αυτές τις τεχνικές για εφαρμογές γραφείου με πιθανή εστίαση σε διαφορετικά μηχανήματα και στο πόσο καλά το καθένα από αυτά εξυπηρετεί το πρόγραμμα.
Τα μέλη της ομάδας μπορεί να εκτελούν αυτούς τους ελέγχους επανειλημμένα για να δουν πώς οι αλλαγές στις ρυθμίσεις υλικού ή λογισμικού επηρεάζουν τη συνολική απόδοση μιας εφαρμογής. Για παράδειγμα, μια συγκεκριμένη κάρτα γραφικών μπορεί να δυσκολεύεται να αποδώσει τη διεπαφή.
Εναλλακτικά, αυτοί οι δοκιμαστές θα μπορούσαν απλώς να δώσουν στο πρόγραμμά τους αδύνατες εισόδους και να δουν πώς ανταποκρίνεται, όπως για παράδειγμα αν μπορεί να εμφανίζει σωστά μηνύματα σφάλματος που εξηγούν επαρκώς το πρόβλημα στον τελικό χρήστη.
3. Εφαρμογή για κινητά
Ένας τρόπος με τον οποίο οι ad-hoc ελεγκτές θα μπορούσαν να εξετάσουν μια εφαρμογή κινητής τηλεφωνίας είναι να ελέγξουν τα πρωτόκολλα ασφαλείας της – θα μπορούσαν, για παράδειγμα, να προσπαθήσουν να έχουν άμεση πρόσβαση στα εργαλεία ανάπτυξης της εφαρμογής.
Η ομάδα μπορεί να προσπαθήσει να δει αν είναι σε θέση να εκτελέσει μη εξουσιοδοτημένες ενέργειες βρίσκοντας κοινά κενά και εκμεταλλεύσεις- θα μπορούσε να ζητήσει συγκεκριμένα από μέλη του προσωπικού με εμπειρία στην ασφάλεια εφαρμογών να διευκολύνουν αυτό.
Αυτό μπορεί επίσης να περιλαμβάνει δοκιμές ζεύγους με τους προγραμματιστές λόγω της διορατικότητάς τους στο σχεδιασμό της εφαρμογής, επιτρέποντας σε έναν δοκιμαστή να σπάσει το λογισμικό και να δείξει ακριβώς πού λείπει η ασφάλειά του.
Τύποι σφαλμάτων και σφαλμάτων που εντοπίστηκαν
μέσω Ad-Hoc δοκιμών
Οι ad-hoc έλεγχοι μπορούν να αποκαλύψουν πολλά προβλήματα με ένα πρόγραμμα, όπως:
1. Σφάλματα λειτουργικότητας
Η χρήση ad-hoc δοκιμών για την εξέταση των βασικών χαρακτηριστικών μιας εφαρμογής μπορεί να αποκαλύψει σοβαρά σφάλματα που επηρεάζουν τον τρόπο με τον οποίο οι τελικοί χρήστες μπορούν να ασχοληθούν με αυτήν.
Για παράδειγμα, η δοκιμή των επιλογών πληρωμής ενός ιστότοπου ηλεκτρονικού εμπορίου με μαϊμού θα καταδείξει τις συνθήκες που εμποδίζουν τη συναλλαγή.
2. Θέματα απόδοσης
Οι δοκιμαστές μπορούν να εργαστούν ειδικά για να δημιουργήσουν προβλήματα απόδοσης στο πρόγραμμα – όπως γεμίζοντας τη βάση δεδομένων με διάφορες εισόδους spam.
Αυτό θα μπορούσε να εκδηλωθεί ως σημαντικός χρόνος καθυστέρησης ή ακόμη και ως γενική αστάθεια του λογισμικού, η οποία πιθανότατα θα οδηγήσει σε κατάρρευση (ενδεχομένως σε ολόκληρο το σύστημα).
3. Προβλήματα ευχρηστίας
Αυτοί οι έλεγχοι θα μπορούσαν επίσης να αναδείξουν σφάλματα στη διεπαφή και στη γενική εμπειρία του χρήστη. Το UI μιας εφαρμογής για κινητά, για παράδειγμα, μπορεί να παρουσιάζεται διαφορετικά σε άλλο λειτουργικό σύστημα ή σε άλλη ανάλυση οθόνης. Μια κακή διεπαφή μπορεί να οδηγήσει τους χρήστες να δυσκολεύονται να χειριστούν αυτή την εφαρμογή.
4. Ελαττώματα ασφαλείας
Ο τυχαίος χαρακτήρας των ad-hoc δοκιμών επιτρέπει την κάλυψη ενός εύρους κοινών και σπάνιων προβλημάτων ασφαλείας- ένας ελεγκτής μπορεί να χρησιμοποιήσει αυτούς τους ελέγχους για να βρει τις διοικητικές κερκόπορτες ενός προγράμματος.
Εναλλακτικά, η επιθεώρησή τους μπορεί να δείξει ότι το λογισμικό δεν διαθέτει κρυπτογράφηση δεδομένων.
Κοινές μετρήσεις ad-hoc δοκιμών
Οι δοκιμές ad-hoc χρησιμοποιούν διάφορες μετρήσεις για να διευκολύνουν τα αποτελέσματά τους, όπως:
1. Αποδοτικότητα ανίχνευσης ελαττωμάτων
Αυτή η μέτρηση εξετάζει πόσο αποτελεσματική είναι η διαδικασία δοκιμών στην εύρεση ελαττωμάτων σε κάθε μορφή δοκιμών, συμπεριλαμβανομένων των δοκιμών ad-hoc. Η αποτελεσματικότητα ανίχνευσης ελαττωμάτων είναι το ποσοστό των ελαττωμάτων που ανακαλύφθηκαν διαιρούμενο με το συνολικό αριθμό των ζητημάτων – δείχνει πόσο αποτελεσματικές είναι οι δοκιμές.
2. Ποσοστό κάλυψης δοκιμών
Μια βοηθητική λειτουργία των ad-hoc δοκιμών είναι η αύξηση της κάλυψης με τον έλεγχο συστατικών με τρόπο που οι περιπτώσεις δοκιμών δεν υπολογίζουν. Αυτό σημαίνει ότι οι ελεγκτές θα επιδιώξουν επίσης να αυξήσουν ριζικά την κάλυψη των δοκιμών σε κάθε έλεγχο όσο το δυνατόν περισσότερο.
3. Συνολική διάρκεια δοκιμής
Οι δοκιμές ad-hoc είναι πολύ πιο γρήγορες από άλλες διαδικασίες διασφάλισης ποιότητας – και είναι σημαντικό οι δοκιμαστές να εργάζονται για να διατηρήσουν αυτό το πλεονέκτημα. Οι μετρήσεις διάρκειας δοκιμών δείχνουν στα μέλη της ομάδας πώς μπορούν να εξοικονομήσουν χρόνο και να ενισχύσουν ακόμη περισσότερο τα πλεονεκτήματα των ad-hoc στρατηγικών.
4. Ποσοστό σύγκρουσης
Αυτές οι δοκιμές συχνά αποσκοπούν στο να καταστρέψουν το λογισμικό και να προκαλέσουν συντριβή ή σοβαρό σφάλμα – επιτρέποντάς τους να υπερβούν τις τυπικές στρατηγικές δοκιμών και να βρουν απροσδόκητα ζητήματα. Για το σκοπό αυτό, μπορεί να βοηθήσει να γνωρίζετε πόσο συχνά το λογισμικό καταρρέει και τι προκαλεί αυτά τα προβλήματα.
5 Καλύτερα Εργαλεία Δοκιμών Ad-Hoc
Υπάρχουν πολλά δωρεάν και επί πληρωμή εργαλεία δοκιμών για ad-hoc δοκιμές στον τομέα της δοκιμής λογισμικού – τα πέντε καλύτερα είναι τα εξής:
1. ZAPTEST Free & Enterprise Edition
Το ZAPTEST είναι ένα ολοκληρωμένο πρόγραμμα δοκιμών λογισμικού που παρέχει ένα ισχυρό επίπεδο λειτουργικότητας δοκιμών + RPA τόσο στις δωρεάν όσο και στις εταιρικές εκδόσεις του.
Αυτή η πλήρης αυτοματοποίηση λογισμικού + RPA Suite επιτρέπει τον πλήρη έλεγχο σε διαφορετικές πλατφόρμες γραφείου και κινητής τηλεφωνίας.Η τεχνολογία 1SCRIPT του λογισμικού επιτρέπει επίσης στους χρήστες να εκτελούν τους ίδιους ελέγχους επανειλημμένα με ευκολία. Επιπλέον, το εργαλείο αξιοποιεί την τελευταία λέξη της τεχνολογίας στην όραση υπολογιστών, η οποία καθιστά δυνατή την εκτέλεση ad-hoc δοκιμών από το ZAPTEST από την ανθρώπινη οπτική γωνία.
2. BrowserStack
Το BrowserStack είναι μια πλατφόρμα cloud που μπορεί να διευκολύνει τις δοκιμές σε πάνω από 3.000 διαφορετικές μηχανές, με το πρόσθετο χαρακτηριστικό της αυτοματοποίησης των σεναρίων Selenium. Αν και παρέχει ισχυρή κάλυψη για έργα λογισμικού, λειτουργεί καλύτερα με εφαρμογές περιήγησης και κινητών τηλεφώνων.
Οι λύσεις δοκιμών BrowserStack περιλαμβάνουν επίσης μια δωρεάν δοκιμή με 100 λεπτά αυτοματοποιημένων δοκιμών – αν και η χρήση τους μπορεί να είναι περιορισμένη.
Αν και η προσέγγιση που βασίζεται στο cloud μπορεί να είναι χρήσιμη, επηρεάζει επίσης αρνητικά το χρόνο απόκρισης της πλατφόρμας.
3. LambdaTest
Το LambdaTest χρησιμοποιεί ομοίως τεχνολογία που βασίζεται στο cloud και δίνει μεγάλη έμφαση στη δοκιμή του προγράμματος περιήγησης, γεγονός που μπορεί να περιορίσει την αποτελεσματικότητά του για άλλες εφαρμογές – αν και εξακολουθεί να ταιριάζει καλά με προγράμματα iOS και Android. Πρόκειται για μια χρήσιμη πλατφόρμα όταν η επεκτασιμότητα αποτελεί πρόβλημα και ενσωματώνεται με πολλές άλλες υπηρεσίες φιλοξενίας δοκιμών.
Ωστόσο, ορισμένοι χρήστες έχουν ανάμεικτες αντιδράσεις όσον αφορά την τιμολόγηση της εφαρμογής στις διάφορες μη δοκιμαστικές επιλογές που είναι διαθέσιμες, γεγονός που ενδεχομένως περιορίζει την προσβασιμότητα για μικρότερους οργανισμούς.
4. TestRail
Το TestRail είναι γενικά αρκετά προσαρμόσιμο λόγω του ότι εκτελείται εξ ολοκλήρου στο πρόγραμμα περιήγησης και, παρά την έντονη εστίαση σε αποδοτικές περιπτώσεις δοκιμών, διαθέτει επίσης άμεση ad-hoc λειτουργικότητα. Τα αναλυτικά στοιχεία που παρέχει μετά από κάθε δοκιμή μπορούν επίσης να βοηθήσουν τις ομάδες που αποφεύγουν ενεργά την ανεξάρτητη τεκμηρίωσή τους, ενώ παράλληλα τους επιτρέπουν να επικυρώνουν τη διαδικασία δοκιμών τους.
Ωστόσο, οι μεγαλύτερες σουίτες μπορεί να δυσκολευτούν με τη μορφή που βασίζεται στο πρόγραμμα περιήγησης, η οποία μπορεί να περιορίσει σημαντικά την εξοικονόμηση χρόνου των ad-hoc δοκιμών.
5. Ζέφυρος
Το Zephyr είναι μια πλατφόρμα διαχείρισης δοκιμών της SmartBear που βοηθά τις ομάδες διασφάλισης ποιότητας να βελτιώσουν την ορατότητα των δοκιμών τους, ενώ παράλληλα ενσωματώνεται καλά με άλλα λογισμικά παρακολούθησης σφαλμάτων.
Ωστόσο, αυτή η λειτουργία περιορίζεται σε ορισμένες εφαρμογές, με το Confluence και το Jira να είναι αυτές που επωφελούνται περισσότερο από το Zephyr – αυτές μπορεί να μην είναι οι πιο αποτελεσματικές λύσεις για κάθε επιχείρηση. Υπάρχουν διάφορα κλιμακούμενα προγράμματα που διατίθενται υπό το εμπορικό σήμα Zephyr σε διαφορετικές τιμές.
Λίστα ελέγχου, συμβουλές και κόλπα για δοκιμές Ad-Hoc
Ακολουθούν πρόσθετες συμβουλές για τις ομάδες που πρέπει να λαμβάνουν υπόψη τους κατά τη διεξαγωγή δοκιμών ad-hoc:
1. Ιεράρχηση των ευαίσθητων στοιχείων
Ορισμένα χαρακτηριστικά ή στοιχεία διατρέχουν φυσικά μεγαλύτερο κίνδυνο σφάλματος από άλλα, ειδικά αν είναι σημαντικά για τη συνολική λειτουργία του προγράμματος.
Κάθε προσέγγιση δοκιμών θα πρέπει να προσδιορίζει τα μέρη μιας εφαρμογής που μπορεί να επωφεληθούν από μια πιο ενδελεχή προσοχή. Αυτό είναι ιδιαίτερα χρήσιμο όταν ο συνολικός χρόνος για δοκιμές είναι περιορισμένος.
2. Διερεύνηση διαφορετικών εργαλείων δοκιμών
Το εργαλείο που εφαρμόζει ένας οργανισμός για τη διευκόλυνση των δοκιμών του μπορεί να επηρεάσει την κάλυψη και την αξιοπιστία αυτών των ελέγχων.
Με τις ad-hoc δοκιμές, αξίζει να εξετάσετε όσο το δυνατόν περισσότερα προγράμματα για να βρείτε αυτά που ταιριάζουν με τη χρηστοκεντρική πτυχή του. Το λογισμικό που χρησιμοποιεί τεχνολογία όρασης υπολογιστών, όπως το ZAPTEST, μπορεί να προσεγγίσει τις ad-hoc δοκιμές χρησιμοποιώντας μια στρατηγική που μοιάζει με την ανθρώπινη.
3. Υιοθετήστε μια ad-hoc νοοτροπία
Η δοκιμή ad-hoc προσφέρει τεράστια ελευθερία σε όλο το στάδιο της διασφάλισης ποιότητας, αλλά η ομάδα πρέπει να δεσμευτεί σε αυτήν για να λάβει τα βασικά οφέλη της στρατηγικής.
Για παράδειγμα, οι ad-hoc δοκιμαστές θα πρέπει να αποφύγουν όλα τα συνήθη έγγραφά τους πέρα από τις βασικές σημειώσεις και θα πρέπει να επιθεωρήσουν το λογισμικό από μια εντελώς νέα οπτική γωνία.
4. Εμπιστευτείτε τα ένστικτα των δοκιμών
Η εμπειρία σε ad-hoc δοκιμές ή γενικούς ελέγχους λογισμικού μπορεί να βοηθήσει στην ανάδειξη κοινών σημείων αποτυχίας και αυτό βοηθά τους ελεγκτές να καθορίσουν πώς να εντοπίζουν λάθη όλων των τύπων.
Είναι ζωτικής σημασίας οι ελεγκτές να εμπιστεύονται το ένστικτό τους και να χρησιμοποιούν πάντα αυτή τη γνώση προς όφελός τους – μπορούν να διαισθάνονται ποιοι ad-hoc έλεγχοι θα ήταν πιο χρήσιμοι.
5. Πλήρης καταγραφή των ανακαλυφθέντων σφαλμάτων
Παρόλο που οι δοκιμές ad-hoc δεν έχουν επίσημη τεκμηρίωση και βασίζονται κυρίως σε ανεπίσημες σημειώσεις, εξακολουθεί να είναι σημαντικό η ομάδα να είναι σε θέση να εντοπίσει και να κοινοποιήσει την αιτία ενός σφάλματος λογισμικού.
Πρέπει να καταγράφουν κάθε πληροφορία που παρέχει η δοκιμή και η οποία είναι σχετική με τους προγραμματιστές, όπως οι πιθανές αιτίες αυτών των προβλημάτων.
6. Να λαμβάνετε πάντα υπόψη τον χρήστη
Κάθε μορφή δοκιμής έχει ως στόχο να προσαρμόσει σε κάποιο βαθμό τη συνολική εμπειρία του χρήστη – και η δοκιμή ad-hoc δεν αποτελεί εξαίρεση. Αν και συχνά εξετάζει βαθύτερα τις εσωτερικές λειτουργίες της εφαρμογής, ακόμη και τον εσωτερικό της κώδικα, οι δοκιμαστές ad-hoc θα πρέπει να προσπαθούν να παραβιάσουν αυτό το λογισμικό με τρόπους που οι χρήστες θεωρητικά θα μπορούσαν να παραβιάσουν.
7. Συνεχής βελτίωση της διαδικασίας
Οι ομάδες δοκιμών θα πρέπει να βελτιώσουν την προσέγγισή τους στις δοκιμές ad-hoc μεταξύ πολλαπλών επαναλήψεων του ίδιου λογισμικού και από το ένα έργο στο άλλο.
Μπορούν να συλλέξουν ανατροφοδότηση από τους προγραμματιστές για να δουν πόσο καλά οι ad-hoc δοκιμές τους βοήθησαν το στάδιο της διασφάλισης ποιότητας και αν κατάφεραν να αυξήσουν σημαντικά την κάλυψη των δοκιμών.
Συμπέρασμα
Οι δοκιμές ad-hoc μπορούν να βοηθήσουν οργανισμούς κάθε είδους να πιστοποιήσουν τη στρατηγική τους για τη δοκιμή λογισμικού, αλλά ο τρόπος με τον οποίο εφαρμόζουν αυτή την τεχνική μπορεί να αποτελέσει σημαντικό παράγοντα για την αποτελεσματικότητά της.
Η εξισορρόπηση των διαφορετικών τύπων δοκιμών είναι το κλειδί για να αποκομίσει κανείς τα περισσότερα οφέλη από τους ad-hoc ελέγχους – ειδικά καθώς αυτή η μορφή δοκιμών σκοπεύει να συμπληρώσει τις άλλες καλύπτοντας ένα στρατηγικό κενό.
Με μια εφαρμογή όπως το ZAPTEST, οι ομάδες έχουν τη δυνατότητα να διεξάγουν ad-hoc δοκιμές με μεγαλύτερη εμπιστοσύνη ή ευελιξία, ειδικά αν εφαρμόσουν αυτοματοποίηση. Ανεξάρτητα από τη συγκεκριμένη προσέγγιση της ομάδας, η δέσμευσή της στις δοκιμές ad-hoc θα μπορούσε να φέρει επανάσταση σε ολόκληρο το πρόγραμμα ή το έργο.