Idei pentru licenta ce implica testarea software
Odata cu venirea lunii octombrie si inceperea noului an universitar, incepe si acea perioada pentru studentii din anii terminali in care cauta sa isi aleaga o tema pentru lucrarea de licenta (sau disertatie la master), pe care sa lucreze astfel incat sa isi poata finaliza studiile cu succes.
Un aspect inedit care poate spori partea de originalitate a lucrarii de licenta pentru cei care studiaza Informatica, Automatica sau domeniile legate de Computer Science este implicarea testarii software. In continuare vom discuta cateva idei orientative pentru lucrarea de licenta care sa implice partea de testare software.
Ce reprezinta lucrarea de licenta?
La finalul primului ciclu de studii universitare reprezentat de studiile de licenta, de regula se impune un examen final care sa ateste ca studentii si-au insusit cunostintele si abilitatile generale din domeniul respectiv. In cele mai multe cazuri acest examen final consta in 2 probe: un examen de verificare a cunostintelor (scris / oral / teoretic / practic) si sustinerea lucrarii de licenta.
Aceasta din urma este de regula o lucrare de aproximativ 50-70 pagini (depinde de cerintele impuse), in care studentii isi aleg un subiect (de pe o lista data sau la liber) si in care incearca sa aplice ceea ce au invatat la facultate. Mai concret, sa dezvolte o aplicatie software sau sa foloseasca anumite tool-uri prin care sa aduca ceva nou, o contributie cat mai originala fata de domeniul Computer Science.
Cerintele minime de compunere si redactare sunt stabilite de fiecare facultate in parte, deci consultarea site-ului acestora este necesara. De asemenea, trebuie ales un profesor coordonator care sa ghideze studentul in redactarea respectivei lucrari si sa dea sfaturi utile, nu doar un simplu ”OK” la final.
Idei pentru lucrarea de licenta de implica testarea software
Ideile urmatoare sunt legate de domeniul de studii al Informaticii, si implica intr-o proportie mai mare sau mai mica componenta de testare software in cadrul partii practice a lucrarii de licenta.
Ele sunt orientative, nu trebuie luate neaparat ca atare, si pot servi ca baza de pornire pentru cei care sunt pasionati de testare si ar dori sa lucreze pe viitor la un subiect legat de asta (si poate chiar in domeniu).
1. Construirea unei aplicatii si testarea ei cu un framework de testare
O prima idee interesanta ce poate imbina intr-un mod destul de armonios atat partea de development cat si partea de testare este data de construirea unei aplicatii de orice tip (web / mobile) care poate reprezenta aproape orice (magazin online / platforma de e-learning / generator AI etc.) si testarea ei ulterioara.
Astfel, criteriul originalitate este acoperit destul de bine atat prin partea de dezvoltare a unei aplicatii personale, cat si prin partea de efectuare a testarii. Pentru aceasta din urma ar trebui ales un framework de testare potrivit pentru tipul aplicatiei dezvoltate, iar aici plaja de optiuni e destul de mare, de la Cypress, JUnit, Selenium, Playwright, Appium etc.
Se pot testa atat positive flows (cazurile principale pe care le-ar urma un end user), cat si other flows (cazuri mai rare si mai putin urmate) sau chiar negative flows (cazuri de atacuri ale platformei) prin teste automatizate. Ulterior, un capitol al licentei poate prezenta rezultatele testarii.
2. Compararea a doua tool-uri de testare diferite
O a doua idee pentru lucrarea de finalizare a studiilor ce implica partea de software testing o reprezinta realizarea unei analize comparative a doua instrumente de testare diferite, dar care sa fie raportate la acelasi obiect al testarii (adica sa comparam de exemplu 2 tool-uri de testare a aplicatiilor web, ca sa nu riscam sa comparam mere cu pere).
Compararea se poate traduce de exemplu in elaborarea a doua proiecte de teste automate cu cele 2 tool-uri (daca sunt pentru testare automata) pe aceeasi aplicatie si apoi sa se prezinte trasaturile fiecaruia: cu care se pot scrie mai rapid teste automate, care e mai fiabil si versatil, avantaje si limitari pentru fiecare si asa mai departe.
Pentru analiza comparativa pot fi luate spre comparatie si alte tool-uri de testare, nu neaparat din sfera testarii automate. De exemplu, pot fi alese 2 instrumente din sfera de accessibility testing care ofera iarasi o gama larga de optiuni.
Aici putem regasi tool-uri care sa analizeze sa zicem website-urile si sa le gaseasca vulnerabilitatile de accesibilitate (butoane ce nu pot fi accesate de la tastatura, contraste slabe etc.). Pentru mai multe detalii, am scris in trecut un articol dedicat testarii de accesibilitate aici pe blog.
3. Realizarea unei strategii practice de testare pe o aplicatie reala
O alta idee generala dar care merita a fi luata in seama pentru o lucrare de licenta ce implica si partea de testare software este realizarea unei strategii mai ample de testare a unui produs software real.
Aceasta idee vizeaza gandirea de ansamblu pe partea de QA, modul in care poate fi organizat un proces cat mai eficient si relevant de verificare si validare a unui produs, ce flow-uri trebuie prioritizate, ce suita de teste automate ar trebui dezvoltate, care ar fi potentialele vulnerabilitati si puncte slabe din cadrul aplicatiei, precum si cu ce imbunatatiri se pot veni, deoarece rolul unui QA nu e doar sa gaseasca bug-uri, ci sa fie proactiv si sa vina si cu idei de improvements.
Modelul strategiei de testare poate fi gandit cat mai original, astfel incat sa fie punctat maxim la evaluarea lucrarii de licenta, dar exista ca sursa initiala si modele pe internet.
4. Testarea unei aplicatii AI
Urmatoarea idee se inscrie in trendul general arhicunoscut si explorat din ultimii 2 ani, si anume e legat de Inteligenta Artificiala (AI). Concret, o idee de la care se poate porni construirea tezei de licenta este testarea efectiva a unei aplicatii ce are la baza AI-ul.
Aplicatia AI poate sa fie una deja existenta sau construita de student, deci asemanator cu ce am discutat la punctul 1. Originalitatea aici este data de faptul ca o aplicatie AI ar particularitatile sale, implicit si cand vine vorba de testarea ei. De exemplu, un chatbot AI are particularitatile sale si cazurile sale de test specifice, la care trebuie sa avem grija cand testam.
Mai mult, gasirea unor bug-uri intr-o aplicatie AI se poate dovedi o provocare interesanta, dar satisfacatoare pe termen lung, deoarece aceasta tehnologie devine incet incet parte din viata noastra si e bine sa o cunoastem.
5. Efectuarea unei testari pe o anumita ramura de testare
Ultima idee prezentat aici se refera la crearea unui proiect de testare pe o aplicatie software dar care sa fie axat pe o anumita ramura specifica testarii software. Ca exemple concrete, aici putem vorbi fie de testarea de performanta (Performance testing) sau cea de securitate (Security testing).
Acestea reprezinta doua tipuri de testare non-functionala axate pe elemente fundamentale ale aplicatiei pentru folosirea acesteia de catre userii finali. Daca aplicatia e inceata si nu are performante cel putin decente, userii se vor indeparta de ea spre altele mai eficiente. Iar daca nu e sigura si prezinta riscuri de a fi atacata de hackeri, cu atat mai mult.
Fiecare dintre cele doua tipuri prezinta instrumentele sale specifice de testare, bug-uri caracteristice si reprezinta o oportunitate extrem de buna de a descoperi cate o latura esentiala a testarii, intr-un mod aplicat, intr-o lucrare de absolvire a studiilor universitare.
Concluzii
In incheiere, lucrarea de licenta reprezinta un punct important in parcurgerea si finalizarea primului ciclu de studii universitare. Gandirea si gasirea unei idei de licenta, daca nu este oferita de la sine de catre un profesor coordonator, este o provocare destul de mare, mai ales in lipsa unei experiente anterioare.
Includerea testarii software pentru o lucrare din domeniul Informaticii este un fapt ce sporeste originalitatea lucrarii si ofera oportunitati de invatare fantastice pentru cei interesati de acest domeniu si care isi doresc poate o cariera de QA.
Surse suplimentare
Pentru mai multe idei legate de lucrarea de finalizare a studiilor cu testare software, las aici si aici inca doua resurse cu idei interesante.