(Acest articol a fost publicat pentru prima dată pe Jakub :: Sobolewskiși a contribuit cu drag la R-Bloggers). (Puteți raporta problema despre conținutul de pe această pagină aici)
Doriți să vă împărtășiți conținutul pe R-Bloggers? Faceți clic aici dacă aveți un blog sau aici dacă nu.
Când scrieți specificații, este ușor să fiți prinși în detaliile implementării, mai ales atunci când adăugați specificații după construirea software -ului.
Să vedem cum putem adăuga specificații pentru codul existent și să obținem specificații de castraveți care reflectă conceptele de afaceri, mai degrabă decât specificul UI care facilitează extensia și întreținerea.
Configurarea
Să ne imaginăm o aplicație cu un flux de lucru după cum urmează:
- Aplicația se deschide pe o pagină „date”, cu un pas pentru: încărcare → filtrare → mapare → previzualizare.
- Utilizatorii încărcă sau selectează un set de date implicit, apoi procedează pas cu pas.
- După trimiterea mapării variabile, apare o previzualizare a datelor.
- Odată ce acest lucru este complet, o caracteristică „vizualizare” devine disponibilă pentru vizualizarea parcelelor.
Acest flux de lucru este destul de simplu, dar și destul de complex.
Scrierea de specificații robuste și executabile pentru aceasta cere să ne exprimăm logica fără a expune detaliile UI care stau la baza.
1. Definiți comportamentul, nu implementarea
Deplasați-vă de UI sau de limbajul specific implementării. De exemplu:
- Evita:
Given the user starts on the Data page - Prefera:
Given the user begins a new data preparation session
Această abstractizare asigură că scenariile rămân stabile indiferent de modificările aduse UI sau Stack Technology. Scenariul ar trebui să se aplice la fel de bine dacă sistemul este o aplicație web, o interfață de linie de comandă sau altceva în întregime.
2. Capturați fluxul în Gherkin
Descompuneți curgerea utilizatorului în pași de afaceri de bază:
- Începeți o nouă sesiune de pregătire a datelor
- Furnizați un set de date (personalizat sau implicit)
- Aplicațional aplicați filtre
- Trimiteți mapări variabile
- Vizualizați o previzualizare a datelor
- Obțineți acces la vizualizare
- Vizualizați un complot
Proiecte de scenarii folosind Dat – când – atunci Cadența să se concentreze pe rezultate și intenții utilizatorilor, mai degrabă decât pe pași tehnici specifici. Această cadență este cea mai bună practică BDD fundamentală, îmbunătățind claritatea și întreținerea.
Exemplu
Feature: Data visualization
This feature describes the core user flow for preparing a dataset
and accessing visualizations. The workflow includes optional and
required steps before plots can be viewed.
Background:
Given the user begins a new data preparation session
Scenario: User completes the workflow using a custom dataset
Given the user provides a dataset
When the user proceeds to the Filtering step
And the user skips filtering
And the user proceeds to the Mapping step
And the user accepts the default variable mapping
When the user submits the mapping
Then the user reaches the Preview step
And the dataset is available for inspection
And the Visualization feature becomes available
Scenario: User completes the workflow using a default dataset
Given the user chooses to use a default dataset
When the user proceeds through the Filtering step without applying filters
And the user accepts the default variable mapping
And the user submits the mapping
Then the user reaches the Preview step
And the dataset is available for inspection
And the Visualization feature becomes available
Scenario: Visualization is not available before data preparation
Given the Visualization feature is not accessible
When the user provides a dataset
And the user skips filtering
And the user accepts the default variable mapping
And the user submits the mapping
Then the Visualization feature becomes accessible
Scenario: User views a plot after completing data preparation
Given the user has completed the data preparation workflow
When the user accesses the Visualization section
And the user chooses to inspect Individual Plots
Then the user sees a visualization of the dataset
3. Examinați -vă specificațiile
- Evitați exprimarea tehnică sau UI: Scrieți pași ca acțiuni de afaceri, nu Faceți clicuri sau Navigare UI. De exemplu, utilizați „Trimiteți maparea” în loc de „Faceți clic pe trimitere”.
- Utilizați structura corectă a scenariului: Reduceți întotdeauna la Dat – când – atunci Cadența pentru claritate și consecvență. Nu amestecați comanda. Pentru a menține scenariile lizibile, puteți utiliza fraze alternative de pași precum „și” sau „dar”.
- Favorizează pași reutilizabili, la nivel înalt: Pași ca
the user provides a datasetsauthe user submits the mappingsunt platforme-agnostice și extensibile. Acest lucru face ca fișierele de caracteristici să fie mai ușor de citit, actualizat și automatizat.
Iterați cu AI
Folosiți acest prompt pentru a vă ajuta să scrieți scenarii Gherkin:
I'm adding Cucumber tests to an app. You're a BDD expert helping me discover business concepts and user flows. I will provide a description of how I interact with the app. Your task is to help me write executable specifications for given description. When writing specifications: - Don't reveal implementation details (like UI elements). - Imagine at least 3 different ways this system could be implemented, e.g. CLI, API, mind control. Those specifications need to be true no matter how the system is implemented. - Always use the Given–When–Then cadence. If something is not clear, ask me questions.
Începând cu acest prompt, puteți urma procesul:
- Oferiți descrierea a ceea ce puteți face cu aplicația.
- AI va sugera pașii lui Gherkin.
- Examinați pașii și cereți AI să construiască scenarii.
- Examinați scenariile și iterați -vă după cum este necesar.
Acest lucru vă poate ajuta să vă perfecționați specificațiile și să vă asigurați că captează cu exactitate comportamentul dorit al utilizatorului.
Când lucrați cu AI, acordați atenție pentru a nu dezvălui în mod accidental informații confidențiale. Scrieți -vă cu atenție descrierea aplicației.
Rezumarea de la detaliile de implementare, mai ales dacă există deja, este dificilă.
Dar este crucial pentru scrierea specificațiilor de întreținere și extensibile. Concentrându -vă pe comportamentul și rezultatele utilizatorului, puteți crea specificații care rămân relevante chiar și pe măsură ce tehnologia de bază evoluează.
Și cu ajutorul AI, obțineți o perspectivă nouă asupra aplicației dvs., ceea ce poate duce la crearea de specificații mai bune.
