Γλώσσα Gherkin: Σύνταξη, Μορφή & Παραδείγματα

⚡ Έξυπνη Σύνοψη

Το Gherkin είναι μια γλώσσα αναγνώσιμη από επιχειρήσεις που περιγράφει τη συμπεριφορά του λογισμικού χωρίς λεπτομέρειες υλοποίησης. Χρησιμοποιεί τις λέξεις-κλειδιά Given, When και Then για να ορίσει Cucumber σενάρια δοκιμών σε απλή γλώσσα, που χρησιμεύουν ως ζωντανή τεκμηρίωση και ο σκελετός των αυτοματοποιημένων δοκιμών BDD.

  • 📝 Απλή γλώσσα: Ο Gherkin περιγράφει τη συμπεριφορά έτσι ώστε οι μη προγραμματιστές να μπορούν να διαβάζουν και να γράφουν δοκιμές.
  • 🥒 Cucumber: Cucumber διαβάζει αρχεία .feature και εκτελεί τα βήματα Gherkin ως δοκιμές.
  • 🔑 Δεδομένου-Όταν-Τότε: Δεδομένου του πλαισίου, το When ενεργοποιεί μια ενέργεια, το Then δηλώνει το αποτέλεσμα.
  • 🧱 Λέξεις-κλειδιά: Τα Χαρακτηριστικό, Ιστορικό, Σενάριο, Και και Αλλά δομούν κάθε σενάριο.
  • καλύτερη πρακτική: Διατηρήστε κάθε σενάριο ανεξάρτητο και περιγράψτε τι, όχι πώς.
  • 🤖 Βοήθεια AI: Τα εργαλεία τεχνητής νοημοσύνης σχεδιάζουν σενάρια "Δεδομένου-Όταν-Τότε" από απλές απαιτήσεις.

Γλώσσα Gherkin σε Cucumber

Τι είναι η γλώσσα Gherkin;

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

Το κείμενο στο Gherkin λειτουργεί ως τεκμηρίωση και ως ο σκελετός των αυτοματοποιημένων δοκιμών σας. Η μορφή Gherkin βασίζεται στο TreeTop Grammar, το οποίο υπάρχει σε περισσότερες από 37 γλώσσες, επομένως μπορείτε να γράψετε Gherkin σε πάνω από 37 ομιλούμενες γλώσσες. Το σενάριο εξυπηρετεί δύο κύριους σκοπούς: καταγράφει σενάρια χρηστών και παρέχει τη βάση για τη σύνταξη αυτοματοποιημένων δοκιμών BDD.

Γιατί αγγουράκι;

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

Σύνταξη Gherkin

Η Gherkin είναι μια γλώσσα γραμμικού προσανατολισμού, όπως ακριβώς η YAML και η PythonΚάθε γραμμή ονομάζεται βήμα και ξεκινά με μια λέξη-κλειδί. Χρησιμοποιούνται στηλοθέτες ή κενά για εσοχή. Ένα σχόλιο μπορεί να προστεθεί οπουδήποτε, αλλά πρέπει να ξεκινά με το σύμβολο #. Ο διερμηνέας διαβάζει κάθε γραμμή αφού αφαιρέσει λέξεις-κλειδιά Gherkin όπως Δεδομένα, Πότε και Τότε.

Feature: Title of the Scenario
  Given [Preconditions or Initial Context]
  When [Event or Trigger]
  Then [Expected output]

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

Σημαντικοί όροι που χρησιμοποιούνται στο Gherkin

Οι κύριες λέξεις-κλειδιά είναι το Χαρακτηριστικό, το Υπόβαθρο, το Σενάριο, το Δεδομένου, το Πότε, Τότε, Και, Αλλά και το Περίγραμμα Σεναρίου. Cucumber δεν έχει αυστηρούς κανόνες ονομασίας, αλλά μια σαφής σύμβαση ονομασίας βοηθάει.

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

Το αρχείο θα πρέπει να έχει την επέκταση .feature και κάθε αρχείο feature θα πρέπει να περιγράφει μόνο ένα feature. Η λέξη-κλειδί Feature ξεκινά με Χαρακτηριστικό: ακολουθούμενο από ένα κενό και το όνομα του χαρακτηριστικού.

σενάριο

Κάθε αρχείο χαρακτηριστικών μπορεί να έχει πολλά σενάρια και κάθε σενάριο ξεκινά με Σενάριο: ακολουθούμενο από το όνομα του σεναρίου.

Ιστορικό

Η λέξη-κλειδί Background προσθέτει περιεχόμενο στο σενάριο. Μπορεί να περιέχει βήματα που είναι κοινά σε κάθε σενάριο. Η διαφορά είναι ότι αυτά τα βήματα εκτελούνται πριν από κάθε σενάριο.

Δεδομένου

Η λέξη-κλειδί Given τοποθετεί το σύστημα σε μια γνωστή κατάσταση πριν ο χρήστης αρχίσει να αλληλεπιδρά με αυτό. Ορίζει την προϋπόθεση ή το πλαίσιο:

Given I am on "/."

Κατά τη

Η λέξη-κλειδί When ορίζει την ενέργεια που εκτελείται από τον χρήστη:

When I perform "Sign In."

Τότε

Η λέξη-κλειδί Then ορίζει το αποτέλεσμα που παρατηρείται μετά την ενέργεια στο βήμα When. Θα πρέπει να επαληθεύετε μόνο τις αισθητές αλλαγές:

Then I should see "Welcome Tom."

Και & Αλλά

Μπορεί να έχετε πολλά βήματα Δεδομένου, Όταν ή Τότε. Οι λέξεις-κλειδιά Και και Αλλά προσθέτουν επιπλέον βήματα για ευανάγνωστο:

And I enter "EmailAddress" with "tomjohn@gmail.com."
But I should see "Welcome Tom."

Τα Δεδομένα, Όταν, Τότε, Και και Αλλά είναι όλα βήματα δοκιμής. Ο διερμηνέας δεν εμφανίζει σφάλμα αν τα αντικαταστήσετε, αλλά το σενάριο δεν θα διαβαστεί λογικά, επομένως χρησιμοποιήστε κάθε λέξη-κλειδί για τον επιδιωκόμενο σκοπό της.

Παραδείγματα αγγουριών

Παράδειγμα 1: Μια λειτουργία σύνδεσης για έναν ιστότοπο κοινωνικής δικτύωσης.

Feature: Login functionality of a social networking site
  Given I am a registered user
  When I enter my username
  And I enter my password
  Then I should be redirected to the home page

Το Gherkin αναλύει κάθε βήμα που είναι γραμμένο στο αρχείο χαρακτηριστικών και τα βήματα στο αρχείο χαρακτηριστικών πρέπει να ταιριάζουν με αυτά στο αρχείο ορισμού βημάτων.

Παράδειγμα 2: Ένα σενάριο ελέγχου ταυτότητας χρήστη με φόντο.

Feature: User Authentication

Background:
  Given the user is already registered on the website

Scenario: Successful login
  Given the user is on the login page
  When the user inputs the correct email address
  And the user inputs the correct password
  And the user clicks the Login button
  Then the user should be authenticated
  And the user should be redirected to their dashboard

καλυτερα Practices of Using Gherkin

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

Πλεονεκτήματα του αγγουριού

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

Μειονεκτήματα του αγγουριού

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

Συχνές Ερωτήσεις

Το BDD είναι μια ευέλικτη πρακτική όπου οι ομάδες περιγράφουν την αναμενόμενη συμπεριφορά σε απλή γλώσσα πριν από τον προγραμματισμό. Τα σενάρια Gherkin καταγράφουν αυτή τη συμπεριφορά, ώστε τα μέλη της επιχείρησης και τα τεχνικά μέλη να μοιράζονται την ίδια κατανόηση.

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

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

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

Οι τρεις φίλοι είναι ένας κάτοχος προϊόντος, ένας προγραμματιστής και ένας δοκιμαστής που αξιολογούν μαζί μια λειτουργία. Η συνδυασμένη τους άποψη παράγει πιο σαφή και ολοκληρωμένα σενάρια Gherkin από οποιονδήποτε μεμονωμένο ρόλο.

Εκτός Cucumber, Το Gherkin υποστηρίζεται από SpecFlow για .NET και Συμπεριφορά για Python, μεταξύ άλλων πλαισίων BDD.

Ναι. Οι βοηθοί τεχνητής νοημοσύνης μετατρέπουν μια ιστορία χρήστη σε προσχέδια σεναρίων "Δεδομένου-Όταν-Τότε", προτείνουν ακραίες περιπτώσεις και διατηρούν τη διατύπωση συνεπή, αν και ένας δοκιμαστής θα πρέπει να τις ελέγξει για ακρίβεια.

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

Συνοψίστε αυτήν την ανάρτηση με: