Model Based Testing (MBT) este un mod nou de testare eficient pentru metodele moderne de dezvoltare software. Comparat cu alte metode de testare acest mod de testare are mai multe avantaje. Rezultatele sunt dependente de modul cum este organizat procesul de testare și care este rolul testerului în proiect. Este nevoie ca testerul să presupună orbește un model prestabilit sau ar trebui ca testerul să fie responsabil de pregatirea modelului de testare. În acest articol, aducem un răspuns acestei întrebări.
Din ce în ce mai mult se vede că Model Based Testing (MBT) este folosită ca metodologie pentru testare software. Ca tester nu mai este posibil să testezi folosind modelele tradiționale, impuse de metodele tradiționale de dezvoltare software. Luând în considerare procesele contemporane de dezvoltare agile, testerul trebuie să anticipeze noi moduri de a lucra și testa. Proprietățile proiectelor, care de multe ori se rezumă la interactivitate, iterativitate, dezvoltare incrementală și multidisciplinaritate, trebuie să fie în consistență cu modul de testare curent. MBT se descurcă bine în astfel de situații, dar este condiționat de o aplicare corectă.
Beneficiile aplicării MBT sunt cunoscute, de aceea printr-o utilizare riguroasă și adecvată, MBT se adresează oricăror ambiguități, inconsistențe și erori în cerințele de funcționalitate semnalate într-un stadiu incipient al proiectului. Acest lucru va scurta durata proiectului și va imbunătăți calitatea software-ului. Un alt avantaj al MBT-ului este flexibilitatea și adaptabilitatea la orice set de testare. Dacă apar schimbări în funcționalități, modelul poate fi ușor ajustat și se poate genera un nou set de testare într-un mod automat. Generarea automată a setului de testare este un alt beneficiu pe care MBT îl are.
MBT este un nou mod de testare a proiectelor software care devine avantajos față de alte metode de testare, prin modul în care se organizează procesul de testare și prin instrumentul folosit.
Dacă se iau în considerare metodele tradiționale de dezvoltare software, se poate vedea că testerul este independent față de procesul de dezvoltare. Testarea tehnică și dezvoltarea sunt considerate designul tehnic, și testerul va folosi designul funcțional în aranjarea setului de teste pentru testarea funcțională. Mai precis acest lucru va rezulta într-o viziune independentă a testerului față de interpretarea erorilor în cerințele pe proiect. Testerul nu poate face presupuneri și toată informația cerută pentru stabilirea a unui set de testare complet este colectat de tester în persoană.
Dar cum funcționează MBT? Poate un tester să o viziune independentă? Și oare are testerul o viziune clară să completeze baza de teste, fără să facă presupuneri? Răspunsul este da, atât timp cât testerul poate să dezvolte modelele de testare de el însuși.
De prea multe ori se poate vedea că în MBT modelele care sunt folosite pentru generarea seturilor de testare, sunt foarte tehnice, statice și greu de interpretat și aceste modele nu sunt produse de însuși testerul. Cine poate garanta că autorul acestor modele nu a gresit interpretarea? Cine are grijă de actualizarea modelelor după o actualizare a cerințelor? Oare toți cei implicați, spre exemplu testerul, managerul de proiect etc. înțeleg aceste modele? Sunt toate situațiile de testare capturate în aceste modele? Și poate mai important, sunt aceste modele aranjate în scopul generarii setului de testare, sau ce algoritm de testare se folosește, bazat pe aria de testare ce se dorește acoperită?
Soluția pentru problema descrisă mai sus este simplă. În MBT, testerul funcțional trebuie să creeze și să deseneze modelele de testare. Testerul ar trebui să se implice în evaluarea acestor modele și restul echipei de dezvoltare, precum și echipa de business pentru a detecta unde este nevoie să adapteze modelul. Exact ca și testerul funcțional care compune setul de testare în procesul de dezvoltare tradițional. Astfel, testerul funcțional protejează o perspectivă independentă, aceste modele fiind ușor de citit și interpretat, de ajustat de către tester, bazându-se pe modele reale de testare. Dintre aceste modele, setul de testare poate fi generat automat având la baza algoritmul de testare, și luând în considerare acoperirea de testare dorită. Instrumentul, care este folosit, trebuie să fie adaptat la aceasta. Testerul trebuie să fie capabil să deseneze modelele de testare cu instrumentul respectiv, iar această unealtă trebuie să genereze automat setul de testare pe baza diferiților algoritmi (acoperire de testare).
Concluzia este că pentru testarea funcțională, MBT se mulează perfect in procesele de dezvoltare moderne, unde testerul funcțional are o responsabilitate și valoare mare.
Pornind de la această metodologie am dezvoltat un instrument de testare numitDTM Tool, care ajută testerii funcționali să-și genereze automat scenariile de testare.