Testarea e mult mai complexă decât pare dacă o faci bine.
Trebuie să faci matrici de teste, să evaluezi mereu cum poți testa cât mai mult cu cât mai puțin. Câteodată ai cross-browser testing sau ai mai multe dispozitive pe mobile.
Trebuie sa știi să scrii test case-uri, să creezi test plan-uri, să faci o suită cât mai stabilă, să creezi conținutul/datele.
Un tester bun e și proxy product owner pentru programator, adică poate explica ce și cum trebuie să funcționeze, arate și de ce. Se asigură și că fiecare task/story e destul de clar din punct de vedere al utilizatorului.
Un tester prost poate raporta ca și bug lucruri care n-au fost cerute sau nu estimează în sprint bine cât durează testarea. (cel mai dificil e când se livrează un feature la sfârșitul sprint-ului)
La anumite proiecte se rulează un așa numit regression testing manual, care înseamnă că înainte de un release testerii iau fiecare test case, se uită cam ce a fost afectat de schimbările recente și le pun intr-un test run si rulează testele.
Când se găsesc bug-uri (defecte față de cerințele din task/story/design) se descrie bug-ul cu pasii de reprodus, care ar fi expected resultul si care e actual resultul.
Unele bug-uri sunt foarte dificil de reprodus și poate fi foarte stresant să descrii exact pașii pentru reprodus.
Testerii creează și environment-urile de testare și staging, întrețin datele pentru teste.
Un tester care face automation e deja programator, poate fi foarte dificil la anumite proiecte. Câteodată fiecare programator scrie și teste automate. Dar sunt și cazuri în care pur și șimplu înregistrezi pașii din test case-ul manual cu un program. Sunt și teste de performanta, API testing sau chiar contract testing între microservicii , care sunt iarăși 100% programare și implica chiar multă matematică.
Sunt așa numitele smoke test-uri, care se rulează preferabil automat, deci nu e acceptabil să fie teste flaky, aici e mult de muncă de obicei fiindcă implica tot de la pipeline pana la test data.
În general te ajută mult să știi să testezi la ce lucrezi, te ajută să înțelegi mai bine task/story-urile.
Testarea manuală pe mine cel puțin m-ar omora psihic pe termen lung, trebuie să ai intuiție și experiență chiar mai multă ca programatorul în anumite cazuri. De exemplu un tester bun știe de SQL injection, de regex poisoning, de buffer overflow, de XSS, încearcă lucruri aiurea sistematic dar rațional, precum 30 februarie la data nasterii … Dacă sunt probleme în producție în post-mortem primii care vor fi luați la rost sunt testerii. (Un singur incident îți garanteaza probleme la performance review)
Dacă automation-ul e în definition of done o să fie criminal proiectul, în special dacă nu e trivial de automatizat.
La noi sunt cazuri de trecere de pe testare manuală pe testare automată, dar a luat 2-3 ani cu 5-10 ani experiență pe testare manuală. E mai ușor dacă te specializezi pe automatizare de teste când deja ești programator. De multe ori e chiar mai bine plătit fiindcă puțini știu cu ce se mănâncă.
Nu cred că cineva poate scăpa ușor de automatizare și să devină front-end de exemplu. E nevoie de o cerere clară, în majoritatea locurilor e mult mai greu să găsești pe cineva pe automatizare decât un dev.