Testare automată
Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de
versiunea revizuită la 30 august 2018; verificările necesită
6 modificări .
Testarea automată a software-ului face parte din procesul de testare în faza de control al calității a procesului de dezvoltare software . Folosește instrumente software pentru a rula teste și a verifica rezultatele rulării, ceea ce ajută la reducerea timpului de testare și la simplificarea procesului de testare.
Istorie
Primele încercări de „automatizare” au apărut în epoca sistemelor de operare DOS și CP/M . Apoi a constat în emiterea de comenzi către aplicație prin linia de comandă și analiza rezultatelor. Puțin mai târziu, au fost adăugate apeluri de la distanță prin API pentru a lucra în rețea . Primul Testarea automată este menționată în cartea lui Frederick Brooks The Mythical Man-Month , care vorbește despre perspectivele de utilizare a testării unitare . Dar automatizarea cu adevărat de testare a început să se dezvolte abia în anii 1980.
Abordări
Există două abordări principale pentru automatizarea testelor: testarea la nivel de cod și testarea interfeței cu utilizatorul (în special, testarea GUI). Primul tip include, în special, testarea unitară . În al doilea rând - imitarea acțiunilor utilizatorului - testarea funcțională (folosind cadre speciale de testare .)
Automatizare GUI
Cea mai comună formă de automatizare este testarea aplicației printr-o interfață grafică cu utilizatorul ( GUI ) . Popularitatea acestui tip de testare se datorează a doi factori: în primul rând, aplicația este testată în același mod în care o va folosi o persoană și, în al doilea rând, este posibilă testarea aplicației fără a avea acces la codul sursă.
Automatizarea GUI a evoluat pe parcursul a 4 generații de instrumente și tehnici:
- Instrumentele de captură/ redare înregistrează acțiunile testerului în timpul testării manuale . Acestea vă permit să efectuați teste fără intervenția umană directă pentru o perioadă lungă de timp, crescând semnificativ productivitatea și eliminând repetarea „prostească” a acțiunilor repetitive în timpul testării manuale. În același timp, orice modificare mică a software-ului testat necesită o rescrie a testelor manuale. Prin urmare, această primă generație de instrumente nu este eficientă sau scalabilă.
- Scriptingul , o formă de programare în limbaje special concepute pentru a automatiza testarea software-ului, ameliorează multe dintre problemele instrumentelor de înregistrare și redare. Dar dezvoltarea este realizată de programatori de nivel înalt care lucrează separat de testerii care rulează direct testele. În plus, scripturile sunt cele mai potrivite pentru testarea interfețelor grafice și nu pot fi injectate, împachetate sau combinate într-un sistem în niciun fel. În cele din urmă, modificările aduse software-ului testat necesită modificări complexe ale scripturilor corespunzătoare, iar menținerea unei biblioteci în continuă creștere de scripturi de testare devine o sarcină de netrecut până la urmă.
- Testarea bazată pe date este o metodologie care este utilizată în automatizarea testelor. Particularitatea este că scripturile de testare sunt executate și verificate pe baza datelor care sunt stocate într-un depozit central de date sau într-o bază de date. Rolul bazei de date poate fi îndeplinit de resurse ODBC, fișiere csv sau xls, etc. Testarea bazată pe date este combinația mai multor scripturi de testare care interacționează și sursele lor de date într-un cadru utilizat în metodologie. În acest cadru, variabilele sunt utilizate atât pentru valorile de intrare, cât și pentru valorile de testare de ieșire: într-un script de testare, navigarea prin aplicație, citirea surselor de date și testarea în jurnal sunt de obicei codificate. Deci logica care trebuie executată în script depinde și de date.
- Automatizarea testării bazate pe cuvinte cheie implică împărțirea procesului de creare a cazului în 2 etape: etapa de planificare și etapa de implementare . În acest caz, testul final nu este un cod de program, ci o descriere a unei secvențe de acțiuni cu parametrii acestora (de exemplu, „creați un utilizator în baza de date cu autentificare XXX și parolă YYY”). În acest caz, framework-ul este responsabil pentru implementarea directă a cuvintelor cheie (acțiuni), și este suficient ca designerul de testare să aibă o idee despre întregul set de acțiuni implementate în cadru. Acest lucru face posibilă crearea de teste pentru persoanele care nu au abilități de programare.
Probleme
Una dintre principalele probleme ale testării automate este complexitatea acesteia: în ciuda faptului că vă permite să eliminați unele dintre operațiunile de rutină și să accelerați executarea testelor, resurse mari pot fi cheltuite pentru actualizarea testelor în sine. Acest lucru se aplică ambelor tipuri de automatizare. La refactorizarea , este adesea necesar să se actualizeze și testele unitare, iar schimbarea codului de test poate dura la fel de mult ca și schimbarea codului principal. Pe de altă parte, la schimbarea interfeței aplicației, este necesar să rescrieți toate testele care sunt asociate ferestrelor actualizate, care, cu un număr mare de teste, pot ocupa resurse semnificative.
Aplicații
Există multe aplicații pentru automatizarea testelor. Cele mai populare dintre ele conform rezultatelor din 2007: [1]
Utilizarea acestor instrumente îi ajută pe testeri să automatizeze următoarele sarcini:
- instalarea produsului
- crearea datelor de testare
- Interacțiunea GUI
- definirea problemei
Cu toate acestea, testele automate nu pot înlocui complet testarea manuală. Automatizarea tuturor testelor este un proces foarte costisitor și, prin urmare, testarea automată este doar o completare la testarea manuală. Cel mai bun caz de utilizare pentru testele automate este testarea de regresie .
Trusa de instrumente
Vezi și
Note
- ↑ SoftJournal 'September 2007/ SoftJournal 'September 2007 (link nu este disponibil) . Consultat la 12 aprilie 2010. Arhivat din original pe 23 martie 2010. (nedefinit)
Link -uri