Michael Bolton s-a aflat în Cluj-Napoca în perioada 17-20 noiembrie pentru a susține cursurile Rapid Software Testing și Critical Thinking. Înainte de a-și continua călătoria prin lume, echipa Altom l-a oprit pentru un interviu, pentru a afla câteva din perspectivele lui în legătură cu testarea software și educația în testare, legătura între testare și procesul de descoperire științifică, precum și părerea lui despre comunitățile de tester-i și rolul lor în potențiale revoluții în testare.
[Ramona] Care sunt temele principale abordate în cursul RST?
[Michael] Sunt foarte multe… cel mai important lucru este să descoperim care este esența testării. Ne concentrăm atenția asupra setului de abilități și a modului de gândire al tester-ului ca individ.
Vorbim mult despre euristici - metode non-infailibile de rezolvare a unei probleme. Vorbim mult despre oracole - metode care ne ajută să recunoaștem o problemă. Vorbim și despre test coverage - cum să ne uităm la un program dintr-o diversitate de perspective, ca demersul nostru să descopere o varietate de probleme relevante.
Acestea sunt cele mai importante lucruri care îmi vin în minte: dezvoltarea setului de abilități și a modului de gândire al tester-ului.
Cum evoluează conținutul cursului? Crește în continuare?
[Michael] E îngrozitor! În prezent avem material pentru aproximativ șapte zile, iar cursul durează trei zile. De fapt, dacă am vrea să facem toate exercițiile pe care le-am dezvoltat de-a lungul anilor, pe toate temele care ne-ar plăcea să fie acoperite, chiar nu am idee cât de mult ar dura cursul… 2-3 săptămâni? Poate patru?
Un alt proiect care s-a conturat de-a lungul anilor a fost cursul de Rapid Testing for Managers. Iar anul acesta James a lansat un curs de două zile pentru programatori sau pentru oameni care scriu cod (Rapid Software Testing for Programmers - http://www.ministryoftesting.com/training-events/rapid-software-testing-programmers/). E foarte interesant! Majoritatea exercițiilor din acel curs sunt gândite în jurul informației care poate fi obținută prin folosirea programelor și a scripting-ului. Astfel de aspecte sunt greu de încorporat în cursul obișnuit.
Între timp, există o constantă evoluție a materialului, prin căutarea de aspecte din lumea reală pe care le includem în curs. Cea mai presantă problemă pentru moment este să ne dăm seama cum să evidențiem mai mult aspectele legate de cunoașterea explicită și tacită. Pentru moment ele se află în materialul cursului într-un mod implicit, sau tacit, dacă vrei. Aș vrea să rezervăm timpul necesar să discutăm mai mult despre asta și poate să facem câteva exerciții legate de cum se aplică conceptele în testare.
Aș vrea să fac și mai multe exerciții de raportare, să le dăm participanților șansa să încerce ceva și să greșească. Apoi să exerseze de câteva ori, pentru a-și îmbunătăți modul de raportare.
Deci materialul evoluează încontinuu, întotdeauna descoperim ceva nou. De exemplu, James a început să lucreze cu R în ultima vreme - un limbaj care îți permite să vizualizezi date și să le modelezi în feluri foarte interesante.
Testarea se schimbă, prin urmare cursul se schimbă și asta e un lucru bun.
Cum ai descrie persoana care ar beneficia de cursul de Rapid Software Testing sau cursul Critical thinking? De ce sunt aceste cursuri valoroase și pentru cine?
[Michael] Spunem de multă vreme că RST se potrivește pentru tester-i de orice nivel, pentru că am conceput exercițiile inspirați de munca lui Jerry Weinberg. Și eu și James am fost studenții lui în acest mod informal în care poți fi student al lui Jerry. Am participat la multe dintre workshop-urile lui, la multe dintre cursurile lui, din care am învățat enorm despre cum să structuram cursul.
Jerry este de mult timp un susținător al workshop-urilor experiențiale și odată ne-a dezvăluit unul din secretele lui, despre care vorbește și în cărțile lui, de altfel. Secretul este că dintr-un exercițiu rezonabil, toți învață ce au nevoie să învețe, indiferent de nivelul lor de cunoștințe sau abilități.
Deci unii oameni vor învăța lucruri de bază din exercițiile noastre, pentru că ei sunt la un nivel de bază. Alți oameni, care sunt mai avansați, poate vor observa altceva, sau vor descoperi ceva în comportamentul oamenilor mai puțin experimentați și vor înțelege cum să îi ghideze. Uneori oamenii înțeleg mai bine cum să observe. Aspectul frumos în abordarea lui Jerry este că depinde de fiecare ce va învăța. Asta e destul de relaxant pentru noi în sensul că deși avem câteva lucruri pe care am vrea ca oamenii să le învețe și despre care vorbim, nu e obligatoriu să învețe exact acele lucruri. Ca o consecință, participanții învață lucruri diferite. Noi îi observăm făcând asta și astfel adunăm subiecte despre care am putea vorbi, pentru că înțelegem mai bine ce au nevoie oamenii să învețe, cu ce rămân din exerciții, ce obțin din experiența oferită.
Așa că ambele cursuri, și RST și Critical Thinking, pot fi folositoare pentru oricine la orice nivel. E un proces cu caracter dual: sunt în jur de 24 de oameni în sală, iar noi nu putem să învățam 24 de persoane diferite în același fel. Așa că e nevoie să le oferim spațiul să învețe. Noi le dăm oamenilor o oportunitate să învețe, în loc să încercam să îi învățam noi ceva anume, mai ales când procesul lor de învățare pare promițător.
Ce sfat ai da cuiva care face testare și ar vrea să găsească pasiune în ceea ce face, dar încă nu a ajuns acolo?
[Michael] Am un răspuns standard pentru această problemă legată de cum insufli pasiune oamenilor: nu cred că e nevoie să faci asta. Testarea implică curiozitate, iar oamenii sunt curioși prin natura lor. Sunt întrebat adesea: “Cum motivezi testerii?”. Răspunsul meu e că nu e nevoie să faci altceva decât să te oprești din a-i demotiva! Asta e o mare problemă în domeniul nostru. O dată ce le iei responsabilitatea oamenilor și îi transformi în executanți pentru munca altor oameni, ei renunță la implicare și își pierd interesul. Dacă le încredințezi oamenilor o misiune de a descoperi ceva, ei vor merge să descopere acel ceva de unii singuri.
Ce carte ai citit recent și ai recomanda-o unui tester?
[Michael] Acum citesc o carte care se cheamă ”The organized mind” de David Levithan, dar tot întrerup lectura ei.
În ultima vreme am citit câteva cărți despre probabilitate, risc și statistică, dar aceste lecturi fac parte din aria mea personală de interes. Însă nu aș putea spune că am avut o revelație recentă în legătură cu o carte, cu excepția anului petrecut citind cărțile lui Harry Collins. Fiecare dintre cărțile lui mi se pare valoroasă. E un scriitor foarte prolific, care abordează o diversitate minunată de teme, pe lângă sociologia științei, care e tema lui centrală.
Aș recomanda testerilor să citească o serie de cărți numită “The Golem” - golemul este o creatură din mitologia evreiască, un uriaș neîndemânatic, care se mișcă greoi, iar această metaforă a inspirat eseurile lui Harry Collins, Trevor Pinch și ale altor colegi de-ai lor incluse în cele două cărți.
Una dintre cărți se numește “The golem and what everyone needs to know about science”, iar cealaltă “The golem at large - what everyone needs to know about technology”. Ambele sunt foarte interesante pentru tester-i, pentru că vorbesc despre natura sinuoasă a descoperirii, despre faptul că descoperirile nu se întâmplă așa cum ni le imaginăm de obicei.
Cărțile includ mici studii de caz și investigații legate de ce s-a întâmplat cu adevărat în studii științifice. De exemplu, experimentul Michaelson-Moorley, unul dintre cele mai cunoscute experimente din istoria științei, nu a fost niciodată finalizat. Dar despre asta nu prea se vorbește când se discută despre experiment, ci dimpotrivă, el apare ca o unitate completă. Asta ilustrează faptul că știința e haotică și derutantă. De asemenea, e nevoie de timp pentru a discerne “știința bună” de “știința rea” sau de a diferenția un om de știință “bun” de unul “rau”. Mai ales că atunci când are loc o descoperire revoluționară, reacția naturală a comunității este: “Nu poate fi corectă! Acest om e incompetent!”. Galileo a fost în mod evident un geniu, despre care contemporanii lui credeau că e nebun!
Singura excepție la istoria lungă a acestui comportament a fost Einstein. El a fost excepțional din punctul acesta de vedere, dar și multe din elementele teoriilor lui au fost controversate până în anii ‘60. Abia după aproape 60 de ani de la descoperirile lui, ultimele obiecții au fost înlăturate.
Felul în care Harry a descris în mai multe locuri imaginea noastră asupra procesului științific, e ca o corabie într-o sticlă. Noi o vedem ca pe un lucru gata făcut. El spune că nu vedem dezordinea, nu vedem lipiciul vărsat, catargul rupt, încercările care nu au funcționat, părțile care nu s-au potrivit, și altele. În schimb, vedem proiectul terminat. Cred că acesta este un aspect foarte interesant în legătură cu modul în care știința este percepută de către publicul larg. Autorul prezintă o imagine diferită de cea a unui geniu singuratic undeva într-o mansardă, care a avut subit o revelație miraculoasă, iar lumea din jur a acceptat instant acea idee că fiind un lucru normal și minunat. De fapt, știința e presărată cu aceleași tipuri de controverse cu care se confruntă și testeri-ii zi de zi atunci când există dubii în legătură cu gravitatea unei probleme sau cu existența efectivă a unei probleme într-un anumit context.
Cu fiecare proiect ne place să ne gândim “Gata, am terminat!”. Dar nu există certitudine absolută în legătură cu acest gen de concluzii. Jerry Weinberg spune că un singur bit e de ajuns pentru a pulveriza valoarea unui program, un singur bit. Mai mult, până când nu se întâmplă asta, nu putem ști exact care este acel bit.
Sunt niște cărți fantastice! Sunt foarte plăcute și sunt scrise într-un mod captivant și distractiv. Și raportul numărului de revelații pe pagină e foarte mare.
Cum vezi rolul comunităților de tester-i? Se mai pot declanșa revoluții în testare?
[Michael] Am participat în mai multe comunități. Am început una în Toronto (Toronto workshops in software testing), am fost la formarea unei alte comunități în Olanda, numită DEWT (Dutch Exploratory Workshops on Testing) care a fost în mare parte inspirată de LEWT, London Exploratory Workshops on Testing, înființată de James Lyndsay. Am fost la toate acestea trei, și cred că de fapt de aici începe REVOLUȚIA!
Începe cu un număr mic de oameni, ca orice altă revoluție. Începe cu un grup mic de oameni care se adună și vorbesc despre interesele lor, își împărtășesc experiențele și experimentează idei împreună. Mă simt foarte privilegiat să fiu parte din aceste grupuri! Sunt invitat din când în când la astfel de evenimente, sau uneori sunt într-un loc în care cineva organizează o astfel de întâlnire spontană, ceea ce e mereu minunat. Este minunat, pentru că așa începem să punem testeri-i în centrul testării, prin faptul că împărtășim fiecare experiențele noastre, în loc să stăm să ascultăm un material care ni se recită de către o singură persoană. Pe cât de mult îmi plac cărțile, nu cred că putem obține totul din cărți. Avem nevoie de discuții între noi, de a învăța unul de la celălalt, de a interacționa unul cu celălalt, de a ne ajuta reciproc să rezolvăm problemele cu care ne confruntăm.
La o scară mai mare, conferințele sunt foarte bune într-un anumit sens, pentru că ne dau ocazia să întâlnim mulți oameni noi. Mie îmi plac întâlnirile mici, care încep cu un grup de oameni care se întâlnesc să bea cafea sau bere. Una din cele mai interesante de acest fel e probabil Weekend Testers din India, creată de Ajay Balamurugadas. Am văzut o prezentare a lui Ajay despre acest subiect. A fost atât de captivant! A descris evoluția acestei comunități. După o perioadă de 15 săptămâni în care în fiecare week-end s-au întâlnit mai întâi în persoană, după care online, au creat o comunitate de tester-i cu abilități remarcabile în India. Totul a început cu patru prieteni și mentorul lor, după care s-a răspândit la alți patru prieteni, și destul de curând oameni din Mumbay și Chenai, după ce au auzit despre întâlniri prin zvonuri, întrebau “Hei! am putea să ne implicăm și noi în această inițiativă?”
Așa cresc comunitățile, așa încep revoluțiile, așa sunt inițiate schimbările mari. Marile schimbări încep mereu cu schimbări mici.
Concept și brainstorming de întrebări: Echipa Altom
Selecția întrebărilor: Alexandra Casapu
Reporter: Ramona Tripa
Sunet: Alexandra Casapu
Transcript: Levente Balint
Traducere: Ramona Tripa, Levente Balint și Alexandra Casapu
Editare: Oana Casapu