Μονάδες
1. Εισαγωγή στην Τεχνητή Νοημοσύνη σε Δοκιμές Λογισμικού και Διασφάλιση Ποιότητας: Ρόλοι, Όρια, Κίνδυνος Απομιμήσεων και Επικύρωση 2. Σενάριο δοκιμής και δημιουργία υπόθεσης δοκιμής: Από την απαίτηση στον ολοκληρωμένο έλεγχο 3. Διερευνητική δοκιμή και δημιουργία ιδεών δοκιμής: Δημιουργικό κυνήγι σφαλμάτων με AI 4. Αυτοματισμός δοκιμής διεπαφής χρήστη: Δημιουργία κώδικα σεληνίου, θεατρικού συγγραφέα και κυπαρισσιού με AI 5. Αυτοματισμός δοκιμής API: Συμβόλαιο, σχήμα και επικύρωση από άκρο σε άκρο με AI 6. Παραγωγή δοκιμής μονάδας και δυνατότητα δοκιμής: ισχυρή δοκιμή με ai 7. Σύνταξη Αναφοράς Σφάλματος και Προτεραιοποίηση: Σαφείς, Αναπαραγώγιμες Εγγραφές με AI 8. Ανάλυση κάλυψης δοκιμών και δοκιμές βάσει κινδύνου: Στόχευση σωστά με AI 9. Δοκιμή παλινδρόμησης, συντήρηση δοκιμών και καταπολέμηση εύθραυστων δοκιμών 10. Κίνδυνος ψευδούς εμπιστοσύνης, έλεγχος ποιότητας και μετάλλαξης: Δοκιμές δοκιμών 11. Ροή εργασιών από άκρο σε άκρο, ενσωμάτωση CI/CD, Δεοντολογία και ασφάλεια: Υπεύθυνη χρήση AI
Μονάδα 4 / 11

Αυτοματισμός δοκιμής διεπαφής χρήστη: Δημιουργία κώδικα σεληνίου, θεατρικού συγγραφέα και κυπαρισσιού με AI

Κέρδη:

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

Κάθε κλικ, κάθε συμπλήρωση φόρμας, κάθε μετάβαση σελίδας που κάνει ένας χρήστης σε ένα πρόγραμμα περιήγησης δεν μπορεί να ελεγχθεί ξανά και ξανά με το χέρι — γι' αυτό υπάρχει η αυτοματοποίηση δοκιμής διεπαφής χρήστη (διεπαφή χρήστη, αυτά τα τεστ μιμούνται τη συμπεριφορά του χρήστη οδηγώντας μέσω προγραμματισμού ένα πραγματικό πρόγραμμα περιήγησης). Το σελήνιο, ο θεατρικός συγγραφέας και το κυπαρίσσι είναι τα πιο κοινά εργαλεία για αυτή τη δουλειά. Η τεχνητή νοημοσύνη (AI) είναι πολύ εξειδικευμένη στη σύνταξη του κώδικα για αυτά τα εργαλεία: περιγράφετε μια δοκιμαστική περίπτωση, η τεχνητή νοημοσύνη σας δίνει ένα προσχέδιο ενός λειτουργικού σεναρίου αυτοματισμού. Αλλά εδώ η κεντρική προειδοποίηση αυτής της ενότητας μπαίνει ξανά στο παιχνίδι: Ο κώδικας δοκιμής διεπαφής χρήστη που παράγει το AI μπορεί συχνά να είναι εύθραυστα τεστ που «ανάβουν πράσινο, αλλά επαληθεύουν το λάθος πράγμα» ή χτυπούν στον αέρα. Η δουλειά σας δεν είναι να εκτελέσετε αυτόν τον κώδικα, αλλά να βεβαιωθείτε ότι επαληθεύει πραγματικά το σωστό.

Σε αυτή τη μονάδα, στοχεύουμε να παράγουμε ισχυρές, διατηρούμενες και πραγματικά επικυρωμένες δοκιμές διεπαφής χρήστη με AI. Θα μάθετε να αποφεύγετε τις εύθραυστες δοκιμές.

Οι τρεις πυλώνες της δοκιμής σταθερού UI

1. Σωστός εντοπιστής στοιχείων. Μια δοκιμή χρησιμοποιεί έναν επιλογέα για να βρει το στοιχείο στη σελίδα. Η τεχνητή νοημοσύνη παράγει συχνά εύθραυστους επιλογείς: μεγάλες διαδρομές XPath (η διεύθυνση εξαρτάται υπερβολικά από τη δομή της σελίδας), επιλογείς που βασίζονται σε ονόματα κλάσεων CSS (διακοπή όταν αλλάζει η σχεδίαση). Ο ισχυρός τρόπος είναι τα σταθερά χαρακτηριστικά, όπως το data-testid που πρόσθεσε ο προγραμματιστής για δοκιμή. Επιβάλετε ρητά αυτό στο AI.

2. Ρητή αναμονή. Η νούμερο ένα πηγή ευπάθειας στις δοκιμές διεπαφής χρήστη είναι ο συγχρονισμός. Ο συνεχής ύπνος(3) (τυφλή αναμονή) είναι κακή πρακτική: μερικές φορές δεν αρκεί, μερικές φορές χάνει χρόνο. Ο σωστός τρόπος είναι να χρησιμοποιήσετε ρητή αναμονή, που λέει "περιμένετε μέχρι να εμφανιστεί αυτό το στοιχείο". Ο θεατρικός συγγραφέας το κάνει αυτό σε μεγάλο βαθμό αυτόματα. Στο Selenium πρέπει να το ζητήσετε ρητά.

3. Σημαντικός ισχυρισμός. Η δοκιμή θα πρέπει να επαληθεύει το αποτέλεσμα που θα δει ο χρήστης — όπως "ο αριθμός παραγγελίας εμφανίστηκε στην οθόνη", όχι απλώς "η σελίδα φορτώθηκε". Εάν το τεστ που παράγεται από το AI δεν έχει ισχυρισμό ή είναι ασήμαντο, αυτό το τεστ παράγει ψευδο-πάσο (1η μονάδα).

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

Μοντέλο αντικειμένου σελίδας

Καθώς οι δοκιμές μεγαλώνουν, η εγγραφή επιλογέων μέσα σε κάθε δοκιμή γίνεται εφιάλτης συντήρησης. Page Object Model (POM — μοτίβο σχεδίασης που συλλέγει επιλογείς και ενέργειες για κάθε σελίδα/οθόνη σε μία κλάση) διατηρεί τον επιλογέα σε ένα μέρος. Όταν αλλάξει η διεπαφή, την ενημερώνετε σε ένα μόνο αρχείο. Ζητήστε από το AI να παράγει τις δοκιμές σε μια δομή POM, και όχι απευθείας. Αυτό κάνει τη συντήρηση ριζικά πιο εύκολη.

Αδύναμη προτροπή / Ισχυρή προτροπή

Αδύναμο: "Γράψτε μια δοκιμή σεληνίου για τη σελίδα σύνδεσης."
Ισχυρό: "Γράψτε μια δοκιμή ροής σύνδεσης με το Playwright (TypeScript). Οι επιλογείς χρησιμοποιούν μόνο τεστ δεδομένων, δεν χρησιμοποιούν τον έλεγχο του τι βλέπει ο χρήστης, όχι τον τίτλο της σελίδας."

Ισχυρή προτροπή. Το εργαλείο δίνει τη γλώσσα, την πολιτική επιλογής, τη στρατηγική αναμονής, την αρχιτεκτονική (POM) και την εκφραστική προσδοκία βεβαίωσης.

Δεδομένα δοκιμής και ανεξαρτησία περιβάλλοντος

Μια σταθερή δοκιμή διεπαφής χρήστη όχι μόνο γράφεται σωστά, αλλά δημιουργεί και καθαρίζει τα δικά της δεδομένα δοκιμής. Οι δοκιμές που δημιουργούνται από την τεχνητή νοημοσύνη συχνά συνδέονται με έναν χρήστη ή μια εγγραφή που υποτίθεται ότι υπάρχει ήδη στο περιβάλλον («συνδεθείτε ως διαχειριστής χρήστης»). Αυτή η υπόθεση διακόπτεται όταν η δοκιμή εκτελείται σε άλλο περιβάλλον ή μετά από άλλη δοκιμή (πρόβλημα εξάρτησης παραγγελίας στην ενότητα 9). Η αλήθεια είναι ότι κάθε δοκιμή δημιουργεί τα δεδομένα που χρειάζεται στην αρχή του τεστ (ή τα προετοιμάζει με μια κλήση API) και τα καθαρίζει στο τέλος. Δώστε ρητή εντολή στην τεχνητή νοημοσύνη να "ρυθμίσει τυχόν δεδομένα από τα οποία εξαρτάται αυτή η δοκιμή εντός της δοκιμής, μην υποθέτετε έτοιμα δεδομένα από το εξωτερικό."

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

Συμβουλή: Διατηρήστε όσο το δυνατόν λιγότερες δοκιμές διεπαφής χρήστη. Αφήστε την πραγματική επαλήθευση στις δοκιμές API και μονάδας, οι οποίες είναι γρήγορες και σταθερές. Η δοκιμή διεπαφής χρήστη είναι δαπανηρή και εύθραυστη — χρησιμοποιήστε την μόνο για να επικυρώσετε τη ροή του χρήστη από άκρο σε άκρο (λογική πυραμίδας δοκιμής).

Σύγκριση οχημάτων

χαρακτηριστικό

σελήνιο

θεατρικός συγγραφέας

κυπαρίσσι

γλώσσες

Java, C#, Python, JS

JS/TS, Python, .NET, Java

JavaScript/TypeScript

αυτόματη αναμονή

Όχι (με το χέρι)

Ναι (δυνατό)

Ναι

Πολλαπλοί φυλλομετρητές

φαρδιά

Chromium/Firefox/WebKit

Κυρίαρχο χρώμιο

τάση για ευθραυστότητα

Υψηλό (χειροκίνητη αναμονή)

χαμηλά

χαμηλά

Ευκολία μάθησης

μεσαίο

εύκολο

εύκολο

παράλληλη λειτουργία

Απαιτείται πλέγμα

ενσωματωμένο

Κάτοικος/αμειβόμενος

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

Τέσσερα πρότυπα με δυνατότητα αντιγραφής

1) Δημιουργία δοκιμής συμπαγούς διεπαφής χρήστη:

Ο ρόλος σας: ανώτερος μηχανικός αυτοματισμού δοκιμών. Γράψτε δοκιμές με [εργαλείο + γλώσσα] για την ακόλουθη ροή: [ροή]. Κανόνες: - Επιλογείς δεδομένων μόνο για δοκιμή. Χρήση XPath/CSS-class. - Όχι τυφλός ύπνος. Χρησιμοποιήστε ρητή/αυτόματη αναμονή. - Εφαρμογή μοντέλου αντικειμένου σελίδας. - Αφήστε κάθε ισχυρισμό να επαληθεύσει το πραγματικό αποτέλεσμα χρήστη. Σχολιάστε στην αρχή κάθε δοκιμής ποια κριτήρια αποδοχής επικυρώνετε.

2) Έλεγχος ευθραυστότητας:

Εξετάστε την ακόλουθη δοκιμή διεπαφής χρήστη για ευθραυστότητα: - Υπάρχει ασταθής επιλογέας (μακρ

3) Μετατροπή σε αντικείμενο σελίδας:

Μετατρέψτε τον ακόλουθο απλό κώδικα δοκιμής σε δομή μοντέλου αντικειμένου σελίδας. Μετακίνηση επιλογέων και ενεργειών σε κατηγορίες σελίδων. Αφήστε το δοκιμαστικό αρχείο να διαβάζει μόνο τη ροή του σεναρίου. [Εργαλείο/γλώσσα]. Κωδικός: [επικόλληση κωδικού]

4) Απόδειξη ψευδομετάβασης:

Αποδείξτε ότι αυτή η δοκιμή διεπαφής χρήστη επικυρώνει πραγματικά: Ποια αλλαγή κάνω στον κωδικό εφαρμογής που θα κάνει αυτήν τη δοκιμή ΚΟΚΚΙΝΗ; Εάν δεν μπορείτε να βρείτε μια αλλαγή που θα σπάσει το τεστ, το τεστ είναι ανεπαρκές. προσθήκη ισχυρισμών που λείπουν.Δοκιμή: [δοκιμή επικόλλησης]

τρεις μίνι θήκες

Περίπτωση 1 — Απελευθέρωση από τον εύθραυστο επιλογέα. Από τις 40 δοκιμές που παρήγαγε μια ομάδα με τεχνητή νοημοσύνη, το 70% έσπασε μετά από μια ενημέρωση διεπαφής. κανένα από αυτά δεν ήταν πραγματικά σφάλματα, ήταν όλοι εύθραυστοι επιλογείς XPath. Η ομάδα μετέτρεψε τα τεστ σε μια βάση δοκιμών δεδομένων με το πρότυπο «έλεγχος ευθραυστότητας». Στις επόμενες τρεις ενημερώσεις διεπαφής, ο αριθμός των ψευδών διακοπών μειώθηκε στο μηδέν. Ο χρόνος συντήρησης μειώθηκε από 6 ώρες σε 30 λεπτά την εβδομάδα.

Περίπτωση 2 — Δοκιμή διεπαφής χρήστη ψευδούς επιτυχίας. Η τεχνητή νοημοσύνη παρήγαγε μια δοκιμή "προσθήκη στο καλάθι". το τεστ ήταν πράσινο. Όταν εκτελέστηκε το πρότυπο "ψευδής απόδειξη διέλευσης", η δοκιμή φάνηκε να ελέγχει μόνο το κλικ του κουμπιού και τον τίτλο της σελίδας, χωρίς ποτέ να επαληθεύει εάν ο μετρητής καλαθιού αγορών είχε αυξηθεί ή όχι. Ακόμα κι αν η λογική του καροτσιού ήταν εντελώς σπασμένη, το τεστ πέρασε. Προστέθηκε αληθινός ισχυρισμός (το σήμα του καλαθιού είναι "1").

Περίπτωση 3 — Τυφλή παγίδα αναμονής. Στη δοκιμή σεληνίου που παρήχθη από AI, υπήρχε ύπνος(2) μετά από κάθε βήμα. 60 δοκιμές χρειάστηκαν 14 λεπτά και εξακολουθούσαν να σπάζουν περιστασιακά. Μετά τη μετάβαση σε ανοιχτό, περιμένετε (περιμένετε να γίνει κλικ στο στοιχείο) ο χρόνος μειώθηκε στα 5 λεπτά και η ευθραυστότητα εξαφανίστηκε. Η τυφλή αναμονή ήταν τόσο αργή όσο και αναξιόπιστη.

Συνήθη λάθη

  • Συμφωνία σε εύθραυστους επιλογείς. Χρησιμοποιώντας τα μεγάλα XPaths που δημιουργούνται από το AI ως έχουν. Οι δοκιμές διακόπτονται κατά την πρώτη αλλαγή διεπαφής.
  • Αφήνοντας τυφλό «ύπνο». "Επίλυση" του χρονισμού με σταθερή αναμονή. τόσο αργό όσο και αναποφάσιστο.
  • Ασήμαντο ισχυρισμό. Απλώς βεβαιωθείτε ότι η σελίδα έχει φορτωθεί. μη έλεγχος του πραγματικού αποτελέσματος χρήστη (ψεύτικο πάσο).
  • Αναπτύξτε χωρίς POM. Κατανείμετε τους επιλογείς σε κάθε δοκιμή. Μη αυτόματη ενημέρωση δεκάδων αρχείων όταν αλλάζει η διεπαφή.
  • Δεν προσδιορίζεται το εργαλείο. Δεν λέτε στην τεχνητή νοημοσύνη ποιο εργαλείο/γλώσσα θέλετε. γίνεται ακατάστατος, μη λειτουργικός κώδικας.
  • Εμπιστοσύνη όταν εκτελείτε τον κώδικα που δημιουργείται και περνάτε. Δεν δοκιμάζεται σπάζοντας τον κώδικα.

Συνοπτικά

Η αυτοματοποίηση δοκιμών διεπαφής χρήστη επαληθεύει τη συμπεριφορά των χρηστών οδηγώντας το πραγματικό πρόγραμμα περιήγησης με το πρόγραμμα. Η τεχνητή νοημοσύνη δημιουργεί αυτόν τον κώδικα γρήγορα, αλλά υπάρχουν δύο μεγάλες παγίδες: εύθραυστα τεστ (κακός επιλογέας, τυφλή αναμονή) και πλαστές δοκιμές επιτυχίας (ελλιπής/τετριμμένη δήλωση). Οι τρεις πυλώνες της δοκιμής σταθερής διεπαφής χρήστη είναι ο επιλογέας δέσμευσης (data-testid), η ρητή αναμονή και ο ισχυρισμός που επαληθεύει το πραγματικό αποτέλεσμα χρήστη. Η δημιουργία δοκιμών στο μοντέλο αντικειμένου σελίδας απλοποιεί ριζικά τη συντήρηση. Δοκιμάστε κάθε τεστ που δημιουργείται με την ερώτηση "ποια αλλαγή θα το σπάσει;"

Εργασία εφαρμογής

Επιλέξτε μια ροή χρήστη από το δικό σας έργο (π.χ. σύνδεση ή αναζήτηση). Κάντε τις δοκιμές εγγραφής του AI με το πρότυπο "robust UI test Generation". Στη συνέχεια: (1) ελέγξτε και διορθώστε τους επιλογείς και περιμένει με έναν "έλεγχο ευθραυστότητας", (2) αποδείξτε ότι κάθε δοκιμή επικυρώνεται πραγματικά με "ψευδή επιτυχία", (3) σπάστε τον κωδικό και παρατηρήστε ότι το τεστ γίνεται κόκκινο. Αναφέρετε τον αριθμό των δοκιμών που παρασκευάστηκαν και διορθώθηκαν, καθώς και τον αριθμό των τρωτών σημείων και των ψευδοπερασιών που βρήκατε.

λίστα ελέγχου

  • [ ] Έδωσα στο AI το εργαλείο, τη γλώσσα, την πολιτική επιλογής και την αρχιτεκτονική (POM) με σαφήνεια.
  • [ ] Επιβεβαίωσα ότι οι επιλογείς έχουν δοκιμαστεί με δεδομένα.
  • [ ] Φρόντισα να χρησιμοποιήσω ρητή/αυτόματη αναμονή αντί για τυφλό ύπνο.
  • [ ] Έλεγξα ότι κάθε ισχυρισμός επαληθεύει το πραγματικό αποτέλεσμα χρήστη.
  • [ ] Δοκίμασα κάθε δοκιμή σπάζοντας τον κωδικό. Το είδα να κοκκινίζει.
  • [ ] Συγκέντρωσα τις δοκιμές στη δομή του μοντέλου αντικειμένου σελίδας.