În contextul dezvoltării profesionale în domeniul IT, programatorii sunt în general foarte obișnuiți cu ideea că, pentru a avansa în cariera de dezvoltator software și pentru a-și dezvolta abilitățile profesionale, trebuie să participe la diferite cursuri, să obțină diferite certificări pentru anumite tehnologii, să învețe tehnici sau limbaje de programare noi, să participe la ateliere unde să aplice în mod practic aceste tehnici și să fie la zi cu ultimele trenduri software.
Domeniul testării software nu este foarte diferit de cel al dezvoltării, dar spre deosebire de programatori, testerii au mai puține opțiuni când vine vorba de învățarea de abilități noi.
În urma contactului pe care l-am avut la Altom cu tineri absolvenți sau studenți la Politehnică sau Informatică, am observat că, deși facultățile oferă cursuri de testare, studenții nu înțeleg complexitatea problemelor din testarea software și nu pot să aplice conceptele prezentate.
În urma interviurilor avute cu diferite persoane pentru poziția de software tester, am observat că, întrebați ce au citit despre testare și de unde își iau informații noi pe domeniul pe care vor să se specializeze, chiar și candidații cu experiență tind să răspundă că au citit ceva articole online, dar de multe ori nu pot să dea un exemplu clar de articol care li s-a părut interesant sau folositor. Mai rar pot să menționeze o carte despre testare pe care au citit-o.
Se întâmplă ca unii candidați să menționeze că au învățat din syllabus-ul de ISTQB. După o serie de întrebări e ușor de observat că mulți dintre candidații care au trecut testul ISTQB Foundations cunosc doar diferiți termeni din domeniul testării software, dar nu stăpânesc de fapt conceptele în sine și nu știu să le implementeze. Materialele ISTQB tratează aceste concepte doar la nivel de definiție, fără să aprofundeze aplicabilitatea lor în diferite situații.
Certificările ISTQB sunt în schimb foarte promovate și sunt văzute de mulți ca singura opțiune pentru testerii care vor să se specializeze și să își îmbunătățească abilitățile de testare.
Unele dintre firmele care recrutează testeri tind fie să prefere candidați care sunt deja certificați ISTQB, fie să investească în certificarea angajaților. În contextul actual, în care tot mai multe persoane vor să se specializeze pe testarea software, certificările ISTQB axate pe aspecte teoretice creează o nouă problemă: testerii începători nu se simt pregătiți pentru situațiile reale din domeniul dezvoltării software, unde prioritizarea eficientă, abilitățile de comunicare, investigare și explorare și lucrul sub condiții de stres sunt extrem de importante, iar testerii experimentați, care caută să își îmbunătățească abilitățile de testare, se simt demotivați și neapreciați și nu găsesc un context în care să lucreze la îmbunătățirea acestor abilități.
În condițiile în care prestatorii de servicii de testare trebuie să rămână competitivi, crește și riscul ca diferențierea acestor serviciilor să se facă pe baza prețului. Ca urmare, abilitățile testerilor intră pe planul doi și accentul se pune doar pe procesele de testare, pe metodele și pe instrumentele folosite.
Rezultatul unei astfel de situații lasă mult de dorit: testarea se face prost, în grabă, testerii devin demotivați, activitatea de testare este văzută ca o activitate pe care o poate face oricine, oricând, fără să fie nevoie de abilități speciale pentru a aduce valoare.
Este important să ne schimbăm perspectiva și să ne îndreptăm spre un model în care valoarea adusă de serviciile de testare este cea care contează în primul rând. Ca testeri, vrem să fim primii care ne îndreptăm în această direcție și să demonstrăm prin abilitățile noastre de testare și investigare că putem să aducem valoare produsului cu care lucrăm. Nu putem face acest lucru dacă ne concentrăm doar pe procese și metode și dacă ne mulțumim cu un certificat în loc de dezvoltarea unor abilități.
Pentru a deveni niște testeri cu adevărat buni, e nevoie de exercițiu, de practică, de exemple din contexte diferite și de feedback din partea unor oameni care au o experiență vastă.
Din fericire, cursurile ISTQB nu mai sunt singura opțiune. Cursurile BBST® oferă o alternativă practică fiecărui tester care vrea să își îmbunătățească abilitățile necesare în testare.
BBST® este un acronim relativ nou în România în domeniul cursurilor de testare software, dar care s-a dezvoltat semnificativ în ultimii ani, după ce numeroși absolvenți BBST® au descris importanța acestor cursuri și au vorbit despre influența și ajutorul pe care materialele BBST® le-au adus în mod direct și practic în munca lor de zi cu zi.
BBST® (sau Black Box Software Testing) reprezintă o serie de cursuri de testare software online care introduc o abordare practică a testării software, prin care studenții au ocazia să aplice ceea ce învață în mod direct, să testeze diferite aplicații, să scrie planuri de test, să lucreze cu diferite contexte care sunt foarte asemănătoare cu situațiile întâlnite în mod curent la locul de muncă.
Spre deosebire de ISTQB, cursurile BBST® nu predau "cele mai bune practici". În schimb, predau practici care sunt utile în situațiile potrivite, și au în vedere faptul că în contexte diferite se aplică practici diferite. De-a lungul seriei, testarea este prezentată ca investigație. Un investigator bun caută în mod activ informații, nu așteaptă să-i fie date de-a gata. Ideea principală a testării software este de a afla informații despre produs necesare stakeholder-ilor.
Nu există nici o formulă predefinită pentru testare, nici "cea mai bună procedură", nici "cele mai bune practici". Diferite situații cer diferite abordări și competențe diferite, și, spre deosebire de ISTQB, care prezintă doar aspecte teoretice, cursurile BBST® sunt construite în jurul unor teme și assingment-uri în care studenții lucrează efectiv cu diferite situații și contexte și primesc feedback de la instructori și de la colegi, cu o abordare tip "learning by doing". Studenții BBST® învață să utilizeze instrumentele care sunt cele mai eficiente în condițiile date, nu un anumit set numit "cele mai bune instrumente".
La momentul actual, seria de cursuri BBST® include patru cursuri:
Cursurile BBST® sunt organizate online. Dacă vă imaginați ceva similar cu o sesiune gen webinar de mai lungă durată, veți fi surprinși să aflați cât de diferite de această idee și cât de interactive sunt aceste cursuri.
Cursurile durează patru săptămâni și folosesc o platformă online care facilitează interacțiunea directă atât cu ceilalți studenți cât și cu instructorii cursului.
Primele trei săptămâni sunt pentru lecții, teme și laboratoare (câte două lecții pe săptămână) iar ultima săptămână este dedicată examenului final.
Fiecare lecție conține:
Pe lângă acest tip de abordare foarte practică, studenții primesc pentru fiecare temă feedback și comentarii din partea instructorilor cursului, care participă activ la discuții și încearcă să îndrume studenții de-a lungul procesului de învățare.
Studenții primesc și dau feedback de asemenea și colegilor lor de clasă, și mulți dintre absolvenții BBST® spun că au învățat extrem de mult nu doar de la instructorii cursului, dar și de la colegi. Fiecare student contribuie la fiecare lecție, aducând aspecte noi, descriind contexte diferite de cele în care lucrează alți studenți - și această diversitate de opinii face experiența mult mai folositoare.
De la începutul cursului, studenții au acces la un set de întrebări cu răspuns deschis care acoperă temele discutate în fiecare modul. Examenul final conține întotdeauna un subset al acestor întrebări, pentru care studenții pregătesc răspunsuri tip eseu. Pe parcursul cursului și în special în ultima săptămână din curs, când nu mai există alte teme sau laboratoare, studenții pot să discute întrebările împreună, să își revizuiască unul altuia răspunsurile și să le îmbunătățească pe măsură ce aprofundează conceptele.
Examenul final nu va fi deci "o surpriza", ci o finalizare firească a muncii de-a lungul celor patru săptămâni. În urma examenului, studenții primesc feedback fie într-o discuție pe Skype cu unul dintre instructori, fie în scris - la alegerea studenților.
Decizia finală de trecere a cursului este luată de instructori în funcție nu doar de răspunsurile date la examenul final, ci în urma unei evaluări a întregii contribuții de-a lungul cursului și în funcție de performanța studenților la toate activitățile incluse.
Spre deosebire de ISTQB, unde decizia finală este dată de alegerea răspunsurilor corecte dintr-un test grilă, la BBST® instructorii urmăresc în primul rând evoluția individuală a fiecărui student, înțelegerea și în mod special aplicarea conceptelor prezentate. Comunicarea, atenția la detalii, implicarea pe parcursul cursului și interesul arătat pentru a învăța și a deveni un tester mai bun contează și ele în decizia finală.
Materialele din cursurile BBST® au fost dezvoltate ca parte dintr-un studiu de cercetare susținut de Grantul NSF "Improving the Education of Software Testers" (Îmbunătățirea Educației Testerilor de Software) și "Adaptation & Implementation of an Activity-Based Online or Hybrid Course in Software Testing" (Adaptarea și implementarea unui curs on-line sau hibrid bazat pe activități în testarea software").
Autorul principal al materialor prezentate în curs este Cem Kaner - "Profesor de Inginerie Software" la Institutul de Tehnologie din Florida și co-autorul uneia dintre cele mai cunoscute cărți de testare software: Lessons Learned in Software Testing (Cem Kaner, James Bach, Bret Pettichord).
Materialele care se află la baza seriei de cursuri BBST® sunt folosite în cursurile predate de Cem Kaner la Universitatea de Tehnologie din Florida. Acestea au fost adaptate și modificate pentru a putea fi predate unei audiente mai largi, online, de către Rebecca Fiedler, care deține un doctorat în educație de la Universitatea Centrală din Florida.
Vorbind despre cum putem să ne dezvoltăm anumite abilități, Cem Kaner spune:
"Cred că cel mai bun mod pentru o persoană să își dezvolte niște abilități este să facă ceva, să primească feedback despre cum să facă acel ceva mai bine, să îl facă mai bine (sau să facă ceva similar), să primească feedback și să continue să facă același lucru pe probleme care devin progresiv mai grele sau care aplică tehnica într-un mod nou."
Procesul descris sună atât de firesc încât pare evident.
Din experiența personală, într-un domeniu complex și în continuă dezvoltare așa cum e testarea software, e greu să găsim ocaziile de a exersa o tehnică în cadrul proiectelor pe care lucram, e greu să creăm situații progresiv mai complexe. În cazul real al unui produs în dezvoltare, mai ales în contextul Agile, ca testeri, abia avem timp să reacționăm, cu atât mai puțin să exersăm.
Este la fel de greu uneori să găsim mentori care pot să investească timp pentru a ne da un feedback util la munca pe care o facem și care pot să ne ajute să creștem și să ne îmbunătățim abilitățile de testare.
Cursurile BBST® creează un mediu de învățare în care ne putem permite să exersăm tehnici diferite și să le încercăm în diferite situații, să primim și să dăm feedback. E un mediu în care contextul și problemele sunt foarte similare cu cele reale de la locul de muncă, dar în care o greșeală înseamnă cu adevărat doar o nouă oportunitate de învățare. E ca un mediu de test pentru testeri.