ABONAMENTE VIDEO REDACȚIA
RO
EN
NOU
Numărul 147
Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 81
Abonament PDF

Aplicații practice în testarea automată pentru Behavioral-Driven Development

Radu Cristian Pop
QA Team Lead @ Cognizant Softvision



TESTARE


BDD sau behaviour-driven development (dezvoltare bazată pe comportament), este o metodă de dezvoltare software bazată pe TDD (test-driven development sau dezvoltare bazată pe testare). Se concentrează în principal pe gestionarea procesului de dezvoltare software atât din perspectiva business cât și cea tehnică. BDD încearcă să elimine ceea ce se numește "costul traducerii" - ceea ce spune partea de business și ceea ce înțelege persoana tehnică. Cu BDD, acest lucru ar trebui să fie mult mai clar. BDD este implementat printr-un DSL (domain-specific language) simplu, folosind propoziții clare și concise în limba engleză care exprimă comportamentul și rezultatul așteptat. Inițiatorul BDD este Dan North în 2006.

Exemplu:

Cucumber și Gherkin

Cucumber oferă un limbaj ușor de folosit numit Gherkin. Gherkin folosește o sintaxă simplă foarte asemănătoare cu limba engleză, cu posibilitatea de a utiliza variabile. Fiecare afirmație din Gherkin este precedată de cuvintele-cheie Given-When-Then. Acestea sunt acolo mai ales din punct de vedere gramatical, indicând totodată modul în care urmează să fie utilizat acest pas:

Există, de asemenea, And (si) si But(dar); acestea sunt doar pentru a defini precondiții / acțiuni / așteptări mai complexe. Toate aceste cuvinte cheie sunt, din punct de vedere tehnic, interschimbabile. Odată ce un pas este definit cu unul dintre acestea, poate fi refolosit cu oricare altul și va face același lucru. O altă caracteristică foarte utilă a limbajului Gherkin este faptul că suportă variabilele.

De exemplu:

Când mă conectez cu utilizatorul "johnsmith@someemail.com"
Și introduc parola "secretPassword";

Numele de utilizator și parola sunt variabile aici. Când reutilizăm pasul, putem trimite în orice altă valoare dorim.

Toate cele de mai sus sunt doar fraze în limba engleză, nu fac nimic de la sine. Toate trebuie să fie implementate folosind un limbaj de programare și, probabil, anumite librării, în funcție de ceea ce doriți să faceți.

Testare automată

Ușurința în utilizare și înțelegere

Paradigma BDD este mult mai complexă decât felul în care am utilizat-o noi, dar am valorificat-o în modul în care ne-a avantajat cel mai mult. Cea mai importantă caracteristică a BDD este sintaxa ei asemănătoare englezei, pe care oricine o poate înțelege. Oamenii mai puțin tehnici au apreciat-o pentru că își puteau scrie testele în limba engleză utilizând dicționarul nostru de pași, baza de date și aplicația pe care am dezvoltat-o. De fiecare dată când au fost adăugate funcționalități noi în aplicație, am făcut pași noi pentru acestea, reușind de cele mai multe ori să refolosim pașii vechi cu foarte puțin cod nou. Același lucru a fost și în cazul oricăror solicitări venite din partea unor persoane non-tehnice: "Aș vrea să fac asta. Nu văd niciun pas care să se ocupe de asta. L-ați putea crea? "

Funcționalitate comună între diferiți clienți

Unul dintre lucrurile pe care frameworkul nostru a vrut să le facă este să aibă abilitatea de a scrie teste care să fie agnostice de platformă. În cazul nostru, cei trei clienți - web, android și iOS. Am vrut să oferim utilizatorilor posibilitatea de a scrie un test și de a le rula pe toți cei trei clienți, dacă acel scenariu testează o funcționalitate comună celor trei clienți.

Să presupunem că facem niște teste negative privind autentificarea în aplicație. Toți trei clienții au funcția de autentificare, am scris pașii astfel încât să fie utilizabili pe orice platformă. Desigur, acest lucru nu este atât de ușor de făcut în spatele cortinei, când trebuia să implementăm acești pași, iOS utilizează o librărie, Android alta, iar platforma web, o a treia librărie pentru a interacționa cu fiecare client în parte. În plus, au fost scrise în diferite limbaje de programare - Java și Ruby. Deci, nivelul de integrare dintre acești trei clienți era la nivelul de sus, unde toți trei aveau un singur lucru în comun - limbajul Gherkin. În Gherkin, totul arată la fel, indiferent de limbajul pe care îl avem în spatele lui sau de ce librării folosim. "Given I am logged in", de exemplu, nu face nici o mențiune despre un limbaj de programare și nici o cerință specifică a librăriei folosite, ci doar loghează utilizatorul în aplicație.

Avantaje

Timpul necesar dezvoltării unui framework de la acest nivel

Acest lucru este greu de estimat și variază în funcție de fiecare proiect. Ceea ce putem spune este ca, indiferent de cât de mult ține, acest timp va fi recuperat mai târziu când vine vorba de mentenanță și scalabilitate. În cazul nostru, am avut nevoie de un an și jumătate pentru a automatiza cam tot ce avea sens în proiectul nostru, dar aici ar trebui menționat că am avut de a face cu un proiect extrem de complex.

Îmbunătățiri viitoare

De-a lungul dezvoltării proiectului am observat câteva lucruri care ne-ar putea fi utile pe viitor. Unul dintre acestea se referă la testarea vizuală: facem o poză la un anumit moment în aplicație și o comparăm cu o altă poză de referință, despre care știm sigur că arată exact cum ar trebui să arate aplicația în acel punct.

Conferință TSM

NUMĂRUL 147 - Automotive

Sponsori

  • Accenture
  • BT Code Crafters
  • Accesa
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • Colors in projects