Αρνητικές δοκιμές
Το Negative Testing είναι ένας τύπος δοκιμής λογισμικού που χρησιμοποιείται για τον έλεγχο της εφαρμογής λογισμικού για μη αναμενόμενα δεδομένα εισόδου και συνθήκες. Τα απροσδόκητα δεδομένα ή οι συνθήκες μπορεί να είναι οτιδήποτε, από λάθος τύπο δεδομένων έως ισχυρή επίθεση εισβολής. Ο σκοπός των αρνητικών δοκιμών είναι να αποφευχθεί η κατάρρευση της εφαρμογής λογισμικού λόγω αρνητικών εισόδων και η βελτίωση της ποιότητας και της σταθερότητας.
Κάνοντας απλώς θετικές δοκιμές μπορούμε μόνο να βεβαιωθούμε ότι το σύστημά μας λειτουργεί σε κανονικές συνθήκες. Πρέπει να διασφαλίσουμε ότι το σύστημά μας μπορεί να χειριστεί απρόσμενες συνθήκες για να διασφαλίσει ένα 100% σύστημα χωρίς σφάλματα.
Σε αυτό το σεμινάριο, θα μάθετε-
- Τι είναι ο αρνητικός έλεγχος;
- Παράδειγμα αρνητικών δοκιμών
- Γιατί οι αρνητικές δοκιμές;
- Πώς να κάνετε αρνητικές δοκιμές
- Πλεονεκτήματα των αρνητικών δοκιμών
- Μειονεκτήματα των αρνητικών δοκιμών
Παράδειγμα αρνητικών δοκιμών
Εξετάστε την περίπτωση ενός ανελκυστήρα που αποτελεί ένα κοινό παράδειγμα αρνητικών δοκιμών.
Όλοι γνωρίζουμε τη λειτουργικότητα ενός ανελκυστήρα. Αυτές θα θεωρηθούν ως οι απαιτήσεις ενός ανελκυστήρα, όπως το πάτημα του αριθμού δαπέδου που κάνει τον ανελκυστήρα να πάει στο συγκεκριμένο πάτωμα.
Η πόρτα ανοίγει αυτόματα μόλις ο ανελκυστήρας φτάσει στο καθορισμένο πάτωμα και ούτω καθεξής.
Τώρα ας εξετάσουμε μερικά αρνητικά σενάρια για αύξηση. Κάποιοι από αυτούς είναι,
Αρνητικές δοκιμές | Θετική δοκιμή |
---|---|
|
|
|
|
|
|
Όλες αυτές οι περιπτώσεις θα υποβληθούν σε αρνητικές δοκιμές. Η σημασία αυτού είναι ότι δεν μπορούμε να βεβαιωθούμε ότι δεν θα συμβούν όλα τα παραπάνω, γι 'αυτό τα χρειαζόμαστε.
Εξετάστε την περίπτωση που η κατάσταση υπέρβαρου ελέγχεται και κατά την εφαρμογή, ο ανελκυστήρας λειτουργεί ανώμαλος όταν υπάρχει κατάσταση υπέρβαρου. Αυτό θα έχει πιθανό αντίκτυπο στην αξιοπιστία του συστήματος και μπορεί ακόμη και να προκαλέσει κίνδυνο για τη ζωή. Αυτό εξηγεί τι είναι αρνητική δοκιμή και τη σημασία της.
Η ίδια περίπτωση εφαρμόζεται και στο λογισμικό. Για αρνητικές δοκιμές, έχουμε αποκλίνει από μια κανονική επιχειρησιακή διαδικασία. Ας δούμε μερικά παραδείγματα.
Εξετάστε για παράδειγμα μια φόρμα εγγραφής.
Αρνητικές δοκιμές | Θετική δοκιμή |
---|---|
|
|
|
|
|
|
|
|
Όπως είπαμε νωρίτερα, πρέπει να διασφαλίσουμε σε όλες αυτές τις αρνητικές περιπτώσεις το σύστημά μας θα λειτουργεί σωστά. Εξετάστε την περίπτωση εάν κάποιος προσπαθήσει να εισαγάγει έναν χαρακτήρα στο πεδίο αριθμών και το σύστημα δεν μπορεί να επεξεργαστεί τα απροσδόκητα δεδομένα δεδομένου ότι αναμένει έναν αριθμό και, τέλος, το σύστημα διακόπτεται. Ή τι γίνεται αν κάποιος προσπαθήσει να κάνει μια ένεση SQL και να διαγράψει όλα τα δεδομένα μας από τη βάση δεδομένων. Δεν αντέχουμε τέτοιες πιθανές απώλειες. Επομένως, οι αρνητικές δοκιμές είναι σημαντικές.
Γιατί οι αρνητικές δοκιμές;
Δεδομένου ότι η δοκιμή είναι χρονοβόρα και δαπανηρή εργασία, ο καθορισμός «τι», «πώς» και «πόσο» για δοκιμή είναι πραγματικά σημαντικό. Πρέπει να επιλέξουμε με σύνεση αν πρέπει να κάνουμε αρνητικές δοκιμές στο σύστημά μας ή όχι. Ας ρίξουμε μια ματιά στη σημασία των αρνητικών δοκιμών.
Προοπτική οργάνωσης
Είναι ευθύνη του οργανισμού να παρέχει ένα προϊόν καλής ποιότητας στον πελάτη του. Για να επιτευχθεί αυτό, πρέπει να κάνουμε αρνητικές δοκιμές.
Ως μέρος της επιβεβαίωσης για αποτυχία, ένας οργανισμός πρέπει να κάνει αρνητικές δοκιμές.
Ίσως δεν μπορούμε να οικοδομήσουμε ένα σύστημα χωρίς σφάλματα 100%, αλλά πρέπει να διασφαλίσουμε ότι έχουμε κάνει τα πάντα για να αποτρέψουμε μια αποτυχία, προκειμένου να το επιτύχουμε ότι πρέπει να κάνουμε αρνητικές δοκιμές.
Ο αντίκτυπος είναι ένας παράγοντας που πρέπει να λάβουμε υπόψη. Σκεφτείτε ότι έχουμε κάνει θετικές δοκιμές σε έναν ιστότοπο ηλεκτρονικού εμπορίου και βεβαιωθείτε ότι όλα είναι καλά. Αλλά τι γίνεται αν υπάρχει ένα κενό στο σύστημά μας ότι κάποιος μπορεί να κάνει SQL injection και να διαγράψει όλα τα δεδομένα μας. Αυτό θα είναι μια μεγάλη παραβίαση ασφάλειας. Για να αποφύγετε αυτόν τον τύπο περιπτώσεων, πρέπει να κάνετε και αρνητικές δοκιμές.
Για εφαρμογές ανοιχτές για το κοινό, κυρίως ιστότοπους, πρέπει πάντα να έχουμε κατά νου ότι δεν έχουμε πολύ έλεγχο της διαδικασίας χρήσης της εφαρμογής, οπότε πρέπει να κάνουμε αρνητικές δοκιμές για να βεβαιωθούμε ότι όλες αυτές οι περιπτώσεις καλύπτονται και περιέχονται.
Ένα άλλο πράγμα που πρέπει να προσέξουμε είναι ότι υπάρχουν πολλοί μαύροι χάκερ εκεί έξω που αναζητούν μια ευκαιρία να καταστρέψουν το σύστημα. Η εισβολή είναι μια σημαντική περίπτωση που καλύπτεται από αρνητικές δοκιμές
Προοπτική πελάτη
Οι πελάτες αναμένουν πάντα προϊόντα μηδενικής ευπάθειας, προκειμένου να διασφαλιστεί ότι η αρνητική δοκιμή είναι απαραίτητη
Εάν είναι ένα ευαίσθητο προϊόν όπως το ηλεκτρονικό εμπόριο, το ηλεκτρονικό απόθεμα κ.λπ., τότε η ασφάλεια και οι αρνητικές δοκιμές είναι απαραίτητες.
Η μόνη ανησυχία για τον πελάτη σχετικά με τις αρνητικές δοκιμές είναι ότι το κόστος. Αλλά μόλις αναλυθεί ο αντίκτυπος, εναπόκειται στον πελάτη να αποφασίσει αν θα κάνει ή όχι αρνητικό έλεγχο.
Πώς να κάνετε αρνητικές δοκιμές
Για να κάνουμε αρνητικές δοκιμές πρέπει να εξετάσουμε όλες τις πιθανές περιπτώσεις. Αυτό είναι αν είναι δυνατόν να το εξετάσουμε στην υπόθεση δοκιμής, ανεξάρτητα από το αν δεν είναι ο σωστός τρόπος να το χρησιμοποιήσουμε. Για παράδειγμα, εάν δούμε ένα πεδίο email σκεφτείτε όλες τις πιθανές εισόδους, μπορούμε να βάλουμε εκεί εκτός από τη σωστή μορφή email. Με τον ίδιο τρόπο όταν βλέπουμε μια επιλογή μεταφόρτωσης εικόνας, πρέπει να τη δοκιμάσουμε με όλα τα πιθανά αρχεία.
Κατά τη δημιουργία αρνητικών δοκιμαστικών περιπτώσεων, πρέπει να δώσουμε προτεραιότητα στις εισόδους διαφορετικά, θα υπάρξουν πολλές πιθανές περιπτώσεις. Για παράδειγμα, για ένα πεδίο εικόνας όπου υποτίθεται ότι εισέρχονται μόνο αρχεία ".png.webp", μπορούμε να έχουμε πολλές επιλογές για μεταφόρτωση, όπως "jpeg.webp", "xml", "xls", κλπ ... Επομένως, πρέπει να δώσουμε προτεραιότητα στις επιλογές όπως Το XML και το SQL μπορούν να έχουν μεγαλύτερο αντίκτυπο από εκείνο του jpeg.webp και του xls, οπότε πρέπει πρώτα να φροντίσουμε τις περιπτώσεις SQL και XML. Έτσι, πρέπει να δώσουμε προτεραιότητα στις περιπτώσεις πριν από την εκτέλεση για να εξοικονομήσουμε χρόνο και να δοκιμάσουμε το κόστος.
Πλεονεκτήματα και μειονεκτήματα των αρνητικών δοκιμών
Όπως όλες οι άλλες τεχνικές δοκιμών, υπάρχουν πλεονεκτήματα και μειονεκτήματα για αρνητικές δοκιμές που βασίζονται κυρίως στο «πού», «πότε» και «πώς» να χρησιμοποιηθούν. Ας ρίξουμε μια ματιά σε αυτό.
Πλεονεκτήματα των αρνητικών δοκιμών
- Όπως όλοι γνωρίζουμε ότι οι αρνητικές δοκιμές είναι πολύ σημαντικές για τη διασφάλιση της ποιότητας ενός προϊόντος. Ένα προϊόν καλής ποιότητας είναι ένα προϊόν μηδενικής ευπάθειας, για να διασφαλιστεί ότι οι αρνητικές δοκιμές είναι πολύ σημαντικές.
- Η αρνητική δοκιμή διασφαλίζει ότι καλύπτονται όλες οι πιθανές περιπτώσεις. Εσκεμμένα ή ακούσια υπάρχει πιθανότητα εμφάνισης αρνητικών δοκιμαστικών περιπτώσεων. Έτσι, για να βεβαιωθούμε ότι καλύπτονται όλες οι περιπτώσεις, πρέπει να κάνουμε αρνητικές δοκιμές και θετικές δοκιμές.
- Οι αρνητικές δοκιμές θα κάνουν περισσότερη αυτοπεποίθηση στον πελάτη πριν ξεκινήσει τη μετάδοση.
Μειονεκτήματα των αρνητικών δοκιμών
- Στη Μηχανική Λογισμικού, οι αρνητικές δοκιμές σε ορισμένες περιπτώσεις γίνονται σπατάλη χρόνου και ενέργειας. Σε πολλές περιπτώσεις, δεν υπάρχει ανάγκη υπερβολικών αρνητικών δοκιμών. Για παράδειγμα, εάν μια εφαρμογή έχει δημιουργηθεί για χρήση ενός ατόμου, δεν χρειάζεται να λάβουμε υπόψη την περίπτωση που 100 χρήστες χρησιμοποιούν το σύστημα κάθε φορά. Επομένως, οι αποφάσεις για τις αρνητικές δοκιμαστικές περιπτώσεις είναι πολύ σημαντικές. Θα υπάρξουν στιγμές όπου δεν χρειάζεται να κάνουμε αρνητικές δοκιμές σε ένα συγκεκριμένο σύστημα.
- Απαιτήστε ειδικευμένους και έμπειρους ανθρώπους για να δημιουργήσετε αρνητικές δοκιμαστικές περιπτώσεις
- Για τον πελάτη, η αρνητική δοκιμή είναι ένα άλλο πράγμα που προκαλεί περιττή καθυστέρηση στην απελευθέρωση και στο κόστος.
- Μια πιθανότητα ότι μια ομάδα ξοδεύει περισσότερο χρόνο και ενέργεια σε αρνητικές δοκιμές. Υπάρχει πιθανότητα οι δοκιμαστές να ξοδεύουν πολύ χρόνο και ενέργεια σε αρνητικές δοκιμές που οδηγούν σε χαμηλότερη συγκέντρωση σε θετικές δοκιμές.