Πρέπει οι δοκιμαστές να γράφουν; CodeΟδηγός Δεξιοτήτων & Καριέρας
⚡ Έξυπνη Σύνοψη
Οι δοκιμαστές δεν χρειάζεται πάντα να γράφουν κώδικα, αλλά η γνώση κωδικοποίησης καθορίζει πόσο μακριά μπορεί να φτάσει μια καριέρα στις δοκιμές. Οι χειροκίνητοι ρόλοι δεν χρειάζονται, ενώ οι ρόλοι αυτοματισμού και SDET απαιτούν πραγματικές δεξιότητες προγραμματισμού.

Πρέπει οι δοκιμαστές να μάθουν να Code?
Μια πολύ συνηθισμένη ερώτηση ότι ένα λογισμικό Δοκιμές Το ερώτημα που έχει ο υποψήφιος είναι — πρέπει οι δοκιμαστές να γράφουν κώδικα; Πριν απαντήσουν σε αυτό, είναι απαραίτητη μια πλήρης εικόνα των διαφόρων ρόλων δοκιμών λογισμικού.
Η διασφάλιση ποιότητας λογισμικού συνήθως χωρίζεται σε δύο κατηγορίες:
- Αναλυτής ποιότητας: Ένας Αναλυτής Ποιότητας επαληθεύει τη λειτουργικότητα και την πληρότητα της δοκιμής. Ο Αναλυτής Ποιότητας επαληθεύει το λογισμικό μόνο μετά τη φάση ανάπτυξης. Ο ρόλος δεν είναι τόσο τεχνικός όσο ένας ρόλος προγραμματιστή και ενδέχεται να μην απαιτεί κωδικοποίηση.
- SDET (Μηχανικός Ανάπτυξης Λογισμικού σε Δοκιμές): Ένας SDET, από την άλλη πλευρά, είναι κάποιος που κατανοεί την εσωτερική λειτουργία του προϊόντος. Οι SDET κατανοούν έννοιες βάσεων δεδομένων και γλώσσες προγραμματισμού και συμμετέχουν επίσης στο σχεδιασμό προϊόντων, στο σχεδιασμό δεδομένων και στις διεπαφές χρήστη. Οι SDET λειτουργούν κατά τη φάση ανάπτυξης και απαιτούν γνώσεις κωδικοποίησης. Ο ρόλος ενός SDET είναι επομένως πιο απαιτητικός, επειδή συνδυάζει την εργασία ενός προγραμματιστή με την εργασία ενός δοκιμαστή. Οι δοκιμαστές αυτοματισμού (που χρησιμοποιούν εργαλεία όπως QTP και Selenium) μπορούν επίσης να ταξινομηθούν ως SDETs.
Το παρακάτω διάγραμμα αντιπαραβάλλει αυτά τα δύο tracks, δείχνοντας τη θέση του καθενός σε σχέση με τη φάση ανάπτυξης.
Έτσι, με βάση τον ρόλο του δοκιμαστή, μπορείτε να προσδιορίσετε εάν απαιτούνται γνώσεις προγραμματισμού. Ας απαντήσουμε σε μερικές ακόμη ερωτήσεις που σχετίζονται με αυτό.
Χαρακτηριστικά ενός καλού δοκιμαστή
Η μεθοδολογία δοκιμών λογισμικού ποικίλλει ανάλογα με τις ανάγκες και τις προδιαγραφές του προϊόντος λογισμικού. Ένας καλός QA ή ένας καλός ελεγκτής λογισμικού παίζει σημαντικό ρόλο στην ολοκλήρωση μιας διαδικασίας δοκιμών, όποιο από τα δύο... είδος δοκιμής απαιτεί το έργο.
Τα χαρακτηριστικά των καλών δοκιμαστών είναι:
- Καλή γνώση τομέα
- Καλή λογική σκέψη
- Καλή γνώση προγραμματιστικών δεξιοτήτων
Η γνώση του τομέα και η λογική σκέψη είναι αδιαπραγμάτευτες για κάθε δοκιμαστή. Ωστόσο, η ικανότητα προγραμματισμού ποικίλλει σημαντικά ανά ρόλο, κάτι που εξετάζει η επόμενη ενότητα.
Πόσες γνώσεις προγραμματισμού απαιτεί ένας δοκιμαστής;
Η σύνταξη κώδικα και η διόρθωση σφαλμάτων είναι δουλειά του προγραμματιστή. Τότε προκύπτει το ερώτημα: γιατί είναι απαραίτητη η γνώση προγραμματισμού για τους δοκιμαστές;
Ας δούμε μερικούς από τους λόγους για τους οποίους η γνώση προγραμματισμού καθίσταται απαραίτητη για τους δοκιμαστές. Το παρακάτω παράδειγμα συνοψίζει πού εφαρμόζεται στην πραγματικότητα αυτή η γνώση.
Ο έλεγχος λογισμικού περιλαμβάνει βασικά δύο προσεγγίσεις: Μη αυτόματη δοκιμή και Δοκιμές ΑυτοματισμούΣε προχωρημένο επίπεδο, οι δοκιμές μπορούν να ταξινομηθούν ως δοκιμές λευκού κουτιού, μαύρου κουτιού ή γκρι κουτιού. Διαφορετικές τεχνικές δοκιμών απαιτούν διαφορετικό σύνολο δεξιοτήτων από τους δοκιμαστές.
- Κατά την εκτέλεση Δοκιμή μαύρου κουτιού, ο δοκιμαστής δεν απαιτεί γνώσεις προγραμματισμού. Ο δοκιμαστής απλώς δοκιμάζει το λογισμικό εισάγοντας δεδομένα και στη συνέχεια ελέγχοντας την έξοδο.
- Δοκιμή λευκού κουτιούή οι δοκιμές που βασίζονται σε κώδικα απαιτούν γνώσεις κώδικα. Η γνώση εννοιών προγραμματισμού όπως C, C#, C++και Έννοιες RDBMS μπορεί να είναι χρήσιμο.
- Δοκιμή γκρι κουτιού βρίσκεται ανάμεσα στα δύο: ο δοκιμαστής έχει μερική γνώση της εσωτερικής δομής, επομένως η ανάγνωση κώδικα είναι χρήσιμη παρόλο που η συγγραφή του δεν απαιτείται πάντα.
- Οι δοκιμαστές απαιτούν καλές γνώσεις προγραμματισμού όταν προχωρούν σε δοκιμές αυτοματισμού ή δοκιμές white box. Αυτό συμβαίνει επειδή οι δοκιμές αυτοματισμού περιλαμβάνουν κάλυψη δηλώσεων, κάλυψη κώδικα και κυκλωματική πολυπλοκότητα, και όλες αυτές οι έννοιες απαιτούν καλή γνώση προγραμματισμού και βάσεων δεδομένων.
- SQL (Δομημένη Γλώσσα Ερωτημάτων) — μερικές φορές οι δοκιμές απαιτούν επαλήθευση βάσης δεδομένων. Επομένως, οι δοκιμαστές χρειάζονται βασικές γνώσεις εντολών SQL όπως SELECT, CREATE και UPDATE.
- Έγχυση SQL — SQL injection είναι μια από τις τεχνικές που χρησιμοποιούνται για την παραβίαση βάσεων δεδομένων εισάγοντας ανεπιθύμητες εντολές. Καλή γνώση JavaΓραφή και SQL Οι εντολές είναι χρήσιμες για την αποτροπή τέτοιων απειλών ασφάλειας λογισμικού.
- Ευέλικτη δοκιμή — στις ευέλικτες δοκιμές, ολόκληρη η ομάδα είναι υπεύθυνη για την ποιότητα του λογισμικού. Καθ' όλη τη διάρκεια της ευέλικτης διαδικασίας, ο υπεύθυνος δοκιμών συνεργάζεται με έναν ή περισσότερους προγραμματιστές για να γράψει δοκιμές. Έτσι, για τη δημιουργία μιας αυτοματοποιημένης δοκιμής, είναι επιτακτική ανάγκη οι υπεύθυνοι δοκιμών να γνωρίζουν τον κώδικα.
Σημαντικές συμβουλές για έναν αναλυτή διασφάλισης ποιότητας λογισμικού
- Γνώση χειροκίνητων δοκιμών και γλωσσών scripting όπως JavaΓραφή θα προσθέσει μονάδες στις δεξιότητές σας στις εξετάσεις.
- Ως δοκιμαστής, θα πρέπει να αποκτήσετε βασικές γνώσεις γλωσσών προγραμματισμού, όπως π.χ. Java και VbscriptΔεν είναι υποχρεωτικό, αλλά είναι εξαιρετικά πολύτιμο. Η γνώση των εννοιών SQL και DBMS αποτελεί επίσης καλή πρακτική.
- Μάθετε να διαβάζετε μια στοίβα trace και ένα αρχείο καταγραφής κατασκευής. Η ανάγνωση κώδικα έχει χαμηλότερη τιμή από τη συγγραφή του, και ήδη κάνει περίπτωση δοκιμής αναφορές πολύ πιο ακριβείς.
Εκτός από αυτά, υπάρχουν μερικές γενικές δεξιότητες που βοηθούν κάθε αναλυτή διασφάλισης ποιότητας λογισμικού:
- Δεξιότητα επικοινωνίας
- Αναλυτική νοοτροπία
- Ικανότητα
Η γνώση του κώδικα στις δοκιμές λογισμικού βοηθά έναν αναλυτή διασφάλισης ποιότητας ή έναν δοκιμαστή σε όλη τη διάρκεια της καριέρας του. Η επόμενη ενότητα χαρτογραφεί την απαίτηση ανά ρόλο.
Δοκιμή ρόλων που απαιτούν κωδικοποίηση έναντι ρόλων που δεν απαιτούν
Η ερώτηση «Πρέπει οι δοκιμαστές να προγραμματίζουν;» δεν έχει μία μόνο απάντηση, επειδή ο «δοκιμαστής» δεν είναι μία μόνο δουλειά. Ο παρακάτω πίνακας αντιστοιχίζει τους κοινούς ρόλους δοκιμών με βάση το επίπεδο προγραμματισμού που απαιτεί ρεαλιστικά ο καθένας.
| Ρόλος δοκιμών | Τυπική εργασία | Απαιτούμενο επίπεδο κωδικοποίησης |
|---|---|---|
| Χειροκίνητος / λειτουργικός ελεγκτής | Σχεδιάζει και εκτελεί δοκιμαστικές περιπτώσεις, αναφέρει ελαττώματα | Ν/Α |
| Εξερευνητικός / δοκιμαστής χρηστικότητας | Έρευνα χωρίς σενάριο, σχόλια για την εμπειρία χρήστη | Ν/Α |
| Ελεγκτής τομέα / επιχείρησης | Επικυρώνει τους επιχειρηματικούς κανόνες σε σχέση με τις προδιαγραφές | Ν/Α |
| Ελεγκτής βάσης δεδομένων | Επαληθεύει τα αποθηκευμένα δεδομένα, τις ενώσεις και τους κανόνες ακεραιότητας | Μόνο SQL |
| Ελεγκτής API | Δημιουργεί δηλώσεις αιτημάτων και απαντήσεων μέσω JSON ή XML | Βασικο |
| Ελεγκτής αυτοματισμού | Γράφει και συντηρεί σενάρια σε Selenium, Θεατρικός συγγραφέας ή Cypress | Ενδιάμεσος |
| Δοκιμαστής απόδοσης | Τα σενάρια φορτώνουν σενάρια, συσχετίζουν δυναμικές τιμές | Ενδιάμεσος |
| SDET | Κατασκευάζει πλαίσια, δοκιμαστικές καλωδιώσεις και αγωγούς CI | Επίπεδο προγραμματιστή |
Διαβάστε τον πίνακα ως μια σκάλα σταδιοδρομίας και όχι ως έναν τοίχο. Οι περισσότεροι δοκιμαστές ξεκινούν από μια σειρά που δεν χρειάζεται κώδικα και στη συνέχεια κατεβαίνουν καθώς η αυτοπεποίθησή τους στον προγραμματισμό αυξάνεται. Τίποτα δεν εμποδίζει έναν ισχυρό δοκιμαστή χειρωνακτικής χρήσης να παραμείνει στις κορυφαίες σειρές για μια ολόκληρη καριέρα, αλλά οι χαμηλότερες σειρές είναι εκεί που συνήθως βρίσκονται οι προϋπολογισμοί αυτοματισμού και οι ανώτεροι τίτλοι.
Ποιες γλώσσες προγραμματισμού πρέπει να μάθει ένας δοκιμαστής;
Οι δοκιμαστές δεν χρειάζονται κάθε γλώσσα. Δύο είναι συνήθως αρκετές: μία γλώσσα γενικής χρήσης για αυτοματοποίηση και μία SQL για επαλήθευση δεδομένων. Η παρακάτω σύγκριση δείχνει πού αποδίδει κάθε επιλογή.
| Γλώσσα | Πού βοηθάει έναν δοκιμαστή | Γιατί να το επιλέξετε |
|---|---|---|
| Python | Selenium και σενάρια θεατρικών συγγραφέων, σουίτες PyTest, έλεγχοι δεδομένων | Απλούστερη σύνταξη, ταχύτερη διαδρομή για μια πρώτη λειτουργική δοκιμή |
| Java | Selenium μαζί σου, TestNG or JUnit, Appium, εταιρικά πλαίσια | Η μεγαλύτερη ζήτηση σε μεγάλους οργανισμούς |
| JavaΣενάριο / TypeScript | Cypress, Θεατρικός συγγραφέας, δοκιμές front-end και στοιχείων | Αντιστοιχεί στη γλώσσα που χρησιμοποιεί ήδη η εφαρμογή υπό δοκιμή |
| SQL | Επαλήθευση παρασκηνίου, ρύθμιση δεδομένων δοκιμής και απεγκατάσταση | Χρήσιμο ακόμη και σε ρόλους που δεν αυτοματοποιούν ποτέ ένα πρόγραμμα περιήγησης |
| Σενάριο Shell | Ανάλυση αρχείων καταγραφής, ρύθμιση περιβάλλοντος, βήματα εργασίας CI | Μικρή προσπάθεια, άμεση καθημερινή ανταμοιβή |
Επιλέξτε τη γλώσσα που χρησιμοποιεί ήδη η ομάδα ανάπτυξης σας, όπου είναι δυνατόν. Η κοινή χρήση μιας γλώσσας σημαίνει κοινόχρηστη αναθεώρηση κώδικα, κοινόχρηστες βιβλιοθήκες και προγραμματιστές που μπορούν να βοηθήσουν όταν μια δοκιμή παρουσιάσει σφάλματα. Ένας δοκιμαστής που μιλάει άπταιστα μία γλώσσα και είναι εξοικειωμένος με την SQL καλύπτει τη συντριπτική πλειοψηφία των εργασιών αυτοματισμού.
Πώς να ξεκινήσετε να μαθαίνετε Code ως Δοκιμαστής
Η εκμάθηση προγραμματισμού παράλληλα με ένα πλήρες φόρτο εργασίας δοκιμών είναι θέμα ακολουθίας, όχι ταλέντου. Τα παρακάτω βήματα μεταβαίνουν από τον μηδενικό προγραμματισμό σε μια συντηρούμενη σουίτα αυτοματισμού χωρίς να εγκαταλείπεται η καθημερινή εκτέλεση δοκιμών.
Βήμα 1) Μάθετε τα βασικά της γλώσσας. Οι μεταβλητές, οι υπό όρους, οι βρόχοι, οι συναρτήσεις και οι συλλογές είναι αρκετές για να διαβάσετε και να γράψετε ένα δοκιμαστικό σενάριο. Η αντικειμενοστρεφής θεωρία μπορεί να περιμένει.
Βήμα 2) Προσθέστε SQL νωρίς. Μια χούφτα εντολών SELECT με συνδέσμους και ρήτρες WHERE σάς επιτρέπει να επαληθεύσετε τι πραγματικά αποθήκευσε η εφαρμογή, γεγονός που βελτιώνει άμεσα τις αναφορές ελαττωμάτων.
Βήμα 3) Αυτοματοποιήστε μια βαρετή εργασία. Μετατροπή ενός μόνο επαναλαμβανόμενου οπισθοδρόμηση έλεγχος σε ένα σενάριο. Ένα τεστ που λειτουργεί διδάσκει περισσότερα από ένα μήνα εκπαιδευτικών σεμιναρίων.
Βήμα 4) Μάθετε το πλαίσιο δοκιμών, όχι μόνο το εργαλείο. Οι ισχυρισμοί, οι ρυθμίσεις, η εγκατάσταση και η αποσυναρμολόγηση, καθώς και οι αναφορές έχουν μεγαλύτερη σημασία από το να κάνετε κλικ σε μια συσκευή εγγραφής. Εδώ είναι που τα σενάρια γίνονται μια σουίτα.
Βήμα 5) Χρησιμοποιήστε τον έλεγχο έκδοσης. Υποβάλετε τον κώδικα δοκιμής στο Git με τον τρόπο που το κάνουν οι προγραμματιστές. RevΗ διερεύνηση των διαφορών είναι επίσης ο τρόπος με τον οποίο οι δοκιμαστές μαθαίνουν να διαβάζουν κώδικα παραγωγής.
Βήμα 6) Συνδέστε τη σουίτα με καλώδιο στον αγωγό. Οι δοκιμές που εκτελούνται αυτόματα σε κάθε έκδοση αποδίδουν τιμή. Οι δοκιμές που εκτελούνται μόνο σε φορητό υπολογιστή δεν το κάνουν. Αυτό το βήμα ευθυγραμμίζει τις δοκιμές με το ευρύτερο κύκλος ζωής δοκιμής λογισμικού.
Να περιμένετε τρεις έως έξι μήνες συνεπούς εξάσκησης προτού ο αυτοματισμός γίνει άνετος. Η πρόοδος είναι σκόπιμα σταδιακή, έτσι ώστε κάθε βήμα να προσφέρει χρήσιμα αποτελέσματα πριν ξεκινήσει το επόμενο.


