Introducere în testarea software

Testarea software atrage mulți profesioniști tineri care sunt interesați de domeniul IT, precum și experți din alte domenii care decid să se reprofileze și să înceapă o carieră nouă, deoarece este una din cele mai accesibile poziții. Una dintre deciziile principale care trebuie luate, este dacă persoana dorește să facă testare manuală sau automatizată. Deci, care sunt avantajele și dezavantajele acestor două metode din perspectiva carierei.

Testarea manuală vs Testarea Automatizată

În testarea manuală (după cum sugerează și numele), testele sunt executate primordial manual, ceea ce înseamnă – de către oameni. Nu se accentuează suportul din partea instrumentelor speciale sau scripturilor sau scrierea de cod. De aceea, cunoașterea programării nu este necesară la această etapă, în schimb procesul de lucru consumă mai mult timp și uneori poate deveni monoton.

În testarea automatizată, pe de altă parte, cazurile de testare sunt executate cu ajutorul unui software special și a scripturilor. Scopul aici este de a finaliza execuția testului într-un timp mai rapid prin sarcină repetitivă și test de regresie fără intervenția unui tester manual. Dar chiar și în acest caz, sunt necesare eforturi manuale pentru ca scripturile de testare să fie create.

Dacă trebuie să definim care dintre ele este mai bună, nu există un răspuns unic si corect. Ambele tipuri de testare – manuală sau automatizată sunt necesare, importante și aplicabile în cazuri diferite în funcție de diverși factori precum buget, cerințele proiectului, resurse, calendar, cunoștințe, structura proiectului etc.

În ambele metode – manuală și automatizată, sunt acoperite tipuri de testare specifice, cum ar fi testarea de integrare, testarea de sistem, testarea performanței, testarea sarcinii etc. Cu toate acestea, unele dintre aceste tipuri de testare sunt mai bine executate prin abordare manuală, iar altele – prin automatizare.

Acum, după o introducere mai generalizată, haideți să trecem mai detaliat peste testarea manuală și testarea automatizată.

Ce este testarea manuală?

Testarea manuală este testarea software-ului în care testele sunt executate manual de un specialist QA. Se efectuează pentru a descoperi defecte în software-ul în curs de dezvoltare.

În Testarea manuală, testerul verifică toate caracteristicile esențiale ale aplicației sau software-ului dat. În acest proces, se execută cazurile de testare și generează rapoartele de testare fără/cu minimul ajutor din partea instrumentelor de testare automatizate a software-ului.

Ce este testarea automatizată?

În testarea automatizată, testerii folosesc instrumente de automatizare speciale pentru a dezvolta scripturile de testare, deci se bazează în întregime pe testul pre-script care rulează automat pentru a compara rezultatul real cu rezultatele așteptate, astfel validând calitatea produsului software.

Testarea automatizată ne permite să executăm sarcini repetitive și teste de regresie, care cel mai des sunt foarte voluminoase și monotone, fără intervenția sau cu intervenția minimă din partea echipei de testare manuală.

Dar, chiar dacă toate procesele sunt efectuate automat, automatizarea necesită un efort manual pentru a crea scenariile, cazurile de testare și scripturile inițiale de testare.

Acum, odată ce am delimitat aceste două ramuri ale testării, haideți să vedem diferențele dintre acestea două:

  • Testarea manuală este efectuată de către un specialist QA, în timp ce testarea automatizată se face cu utilizarea scripturilor, cod și instrumente de automatizare speciale.
  • Testarea manuală este posibilă fără cunoștințe de programare, în timp ce testarea automată nu este posibilă fără cunoștințe de programare.
  • Procesul de testare manuală nu este precis din cauza posibilităților de erori umane, în timp ce procesul de automatizare este de încredere deoarece se bazează pe cod și script.
  • Testarea manuală este un proces care necesită timp, în timp ce testarea automată este foarte rapidă.
  • Testarea manuală permite testarea aleatorie, în timp ce testarea automatizată oferă doar o testare fixă.
  • Din moment ce am delimitat ce reprezintă fiecare tip de testare, vom discuta despre abilitățile tehnice și non-tehnice necesare pentru a deveni un QA specialist bun, manual și automation.

Abilități non-tehnice necesare

Următoarele abilități sunt esențiale pentru a deveni un bun tester:

  • Abilități analitice: 

Un bun tester de software ar trebui să aibă abilități analitice foarte bune. Abilitățile analitice vor ajuta la împărțirea unui sistem software complex în unități mai mici pentru a obține o mai bună înțelegere și a crea cazuri de testare.

  • Abilități de comunicare: 

Un bun tester de software trebuie să dețină bune abilități de comunicare verbală și scrisă.

  • Gestionarea timpului și abilități de organizare:

Testarea uneori poate fi o muncă solicitantă, mai ales în timpul lansării unui produs sau feature. Un tester de software trebuie să gestioneze eficient volumul de muncă, să aibă o productivitate ridicată, să prezinte un management optim al timpului și abilități de organizare.

  • Atitudine responsabilă: 

Pentru a fi un bun tester de software, trebuie să aveți o atitudine grozavă. O atitudine de a „testa pentru a sparge”, orientare către detalii, disponibilitate de a învăța și de a sugera îmbunătățiri ale procesului. În industria software-ului, tehnologiile evoluează cu o viteză copleșitoare, iar un bun tester de software ar trebui să-și îmbunătățească abilitățile tehnice de testare a software-ului cu tehnologiile în schimbare. Atitudinea dvs. trebuie să reflecte un anumit grad de independență în care vă asumați sarcina alocată și o finalizați fără prea multă supraveghere directă.

Abilități tehnice

  • Cunoștințe de bază despre comenzile Windows/Mac/Linux

  • Cunoașterea instrumentului Browser Developer Tool, Postman, GIT, Charles Proxy etc.

  • Înțelegerea arhitecturii Client-Server.

  • Cunoștințe de bază a bazelor de date/SQL:

  •  Sistemele software au o cantitate mare de date în fundal. Aceste date sunt stocate în diferite tipuri de baze de date precum Oracle, MySQL etc. în back-end. Deci, vor exista situații în care aceste date trebuie validate. În acest caz, interogările SQL simple/complexe pot fi folosite pentru a verifica dacă datele adecvate sunt stocate în bazele de date back-end.

  • Cunoașterea și experiența practică a unui instrument de management al testelor și instrument de urmărire a defectelor: Exemplu: Jira, Testrail, bugzilla etc.

  • Cunoașterea unui limbaj de programare: Java, Javascript, Kotlin, Python etc.

  • Cunoștințe și experiență practică a instrumentului de automatizare: dacă vă vedeți ca un „tester de automatizare” după câțiva ani de lucru la testarea manuală, atunci trebuie să stăpâniți un instrument și să obțineți cunoștințe aprofundate și practice despre instrumentele de automatizare

Deci, din cele expuse anterior este de înțeles că profesia de QA, atât manual cât și automation, nu este ceva simplu, contrar celui mai popular mit, care spune că “Testarea este ceva foarte simplu și ușor!!!”

Mituri din software testing

Din momentul ce am atins subiectul de mituri despre testare, să trecem și prin alte mituri răspândite:

  • Testarea software-ului se plătește mai puțin. Dezvoltatorii sunt mai respectați în comparație cu testerii

Contrar credinței populare, testerii buni de software sunt plătiți la fel de bine și tratați la egalitate cu dezvoltătorii de software din companie. 

  • Testarea software-ului este plictisitoare

Testarea software-ului vă poate „testa” nervii, deoarece trebuie să înțelegeți cerințele de afaceri și să elaborați cazuri de testare pe baza înțelegerii dvs. Testarea software-ului nu este plictisitoare. Ceea ce este plictisitor este să faci același set de sarcini în mod repetat. Cheia este să încerci lucruri noi. 

  • Testarea asigură un produs 100% fără defecte

Testarea încearcă să găsească cât mai multe defecte. Identificarea tuturor defectelor posibile este imposibilă. este un principiu al testarii

  • Testarea automată este mai bună decât testarea manuală

După cum am menționat mai devreme, primul nu este înlocuitorul celui din urmă. Atât testarea manuală, cât și cea automată se completează reciproc. Deși majoritatea soluțiilor de automatizare sunt bine dezvoltate și capabile să efectueze operațiuni complexe, funcționalitatea lor este limitată. Cu alte cuvinte, testele automate pot îndeplini doar sarcinile pentru care sunt concepute. Ele pot detecta defectele existente în cod, dar, în nici un fel nu pot fi folosite ca dovezi concrete împotriva absenței totale a defectelor.

Vor exista întotdeauna teste care vor necesita interferență manuală. De exemplu, testele exploratorii și testele UI necesită logica umană pentru a detecta anomaliile.

  • Toate testele pot și ar trebui să fie automatizate

Automatizarea testelor nu a fost niciodată menită să înlocuiască complet testarea manuală. Atât testarea manuală, cât și cea automată trebuie să meargă mână în mână pentru obținerea rezultatului final pozitiv. În al doilea rând, nu toate testele pot fi automatizate.

Automatizarea testelor este cea mai potrivită pentru testele repetitive. În plus, testele care sunt complicate și au o marjă mai semnificativă de eroare manuală ar trebui, de asemenea, să fie automatizate. De exemplu, testele unitare și testele de regresie sunt alegeri perfecte pentru automatizare. Pe de altă parte, testele UI, testele de accesibilitate și testele de utilizare ar trebui păstrate manuale.

  • Pierderea încrederii în testarea automatizării foarte rapid.

Multe organizații tind să creadă că testarea automatizata va oferi profituri imediate. Deși acest lucru este valabil pentru unele companii, majoritatea trec prin câteva luni sau chiar ani înainte de a vedea profituri tangibile.

Construirea și implementarea testelor automate, în sine, poate dura mult timp. Mai mult, testele greșite pot da rezultate slabe care pot încetini complet procesul de dezvoltare. Dar aceste greșeli apar de obicei din cauza unor strategii de testare greșite și nu din cauza soluției în sine.

Concluzie

În concluzie, testarea este un domeniu imens, iar testarea manuală rămâne încă la fel de importantă ca și automatizarea. Există multe tipuri de testare în care instrumentul de automatizare nu ne poate ajuta și trebuie să alegem Testarea Manuală. Scripturile de instrumente sunt proiectate manual la fel și Instrumentul de testare este proiectat manual. Chiar dacă instrumentele nu necesită intervenție umană, oricum necesită comanda efectuată de un om.

Orice mașină sau software este capabil să facă doar lucrurile care i s-au cerut, aceasta și este limitarea (sau uneori avantaj, deoarece nu poate acționa mai inteligent decât noi). Instrumentele de automatizare au și unele limitări, dar trebuie sa fim conștienți ca în cele din urmă, ele vor evolua și vor deveni mai inteligente.

Atât testarea manuală, cât și testarea automatizată au argumente pro și contra, iar alegerea dintre acestea depinde de cerințele proiectului, de timp și, cel mai important, de buget. În cele din urmă, putem spune că atunci când avem nevoie de testeri calificați, putem merge cu testarea manuală și acolo unde trebuie să automatizăm cazul de testare, ar trebui să alegem Automatizare.