TSM - Despre testability

Claudiu Draghia - Quality Manager @Capgemini


Să începem cu un grafic:

Datele au fost extrase folosind Google Trends cu următoarele filtre Worldwide, 2004 Present, All Categories, Web Search.

Ceea ce ne arată acest grafic în legătură cu căutarea pe internet pentru Agile şi SCRUM este o creștere considerabilă, ducând la momentul 2013 când DevOps a început să fie investigat. Pe lângă acest aspect, aţi mai putea observa că: linia pentru Testability este foarte greu de văzut. Se pare că mai nimeni nu este interesat şi de ceea ce este testabil.. De ce situaţia asta? Dacă vorbim despre DevOps, de exemplu, pe lângă schimbarea imperativă culturală, vorbim despre unelte, livrări automate sau scripturi. Dar e important să analizăm și modul cum testăm aceste unelte. Un script de livrare trebuie testat la fel ca orice aplicație software. SCRUM şi Agile vorbesc despre bucle rapide de feedback, testare automatizată. Dacă vrei să automatizezi ceva, sistemul trebuie să îţi permită să o faci.

Dar ce este conceptul de testability? Am ales într-o primă etapă o variantă mai schematizată de răspuns, și mai uşor de înţeles de cine lucrează în dezvoltarea de soft:

Apoi, putem apela la cea mai simplă definiţie din Wikipedia.

Testabilitatea software este gradul în care un soft … poate fi testat în contextual dat

Deci primul aspect pe care trebuie să îl luăm în calcul când vorbim despre Testability este contextul. Contextul înseamnă orice începând de la tehnologie până la oameni. Din punctul meu de vedere, este esențial să ia în considerare şi factorul uman. Pentru început, vom analiza acest concept din perspectiva tehnică. Acestea sunt componentele principale care ajută în evaluarea a ceea ce este testabil într-un soft:

Așa arată un bug de Testabilitaty

În primul rând este camuflat. Camuflajul lui este ignoranţa sau indiferenţa. Până la urmă, noi suntem cei care îl facem greu de găsit. Seamănă cu oricare alt bug pentru că este înşelător. Când apare un bug în producţie de cele mai mute ori, credem că am uitat un caz de testare când de fapt nu am luat în considerare dimensiunea de a fi testabil. De foarte puţine ori, testability este găsit drept cauză a bug-urilor sau problemelor. Are picioare lungi pentru că este rapid. Ajunge foarte uşor în producţie mai ales dacă ce ai de testat este plictisitor sau repetitiv şi nu poate fi automatizat.

Ar mai fi multe de spus despre testability: în ce măsură impactează durata testarii, cum îi îmbunătăţeşte precizia. Dacă vrei să afli mai multe, îţi recomand ca punct de plecare Heuristics of Software Testability by James Bach.

Testability este un principiul al testării, şi cine nu are principii are bug-uri în producţie.