Abordări pentru automatizarea de testare software
Testarea automata software - este un set de practici, abordări și metode care împreună vă permit să automatizeze (folosind terț în raport cu utilitarele de sistem, sau software, inclusiv mediul de dezvoltare), activități care vizează testarea software-urilor performante.
Automatizați de testare functionala - un proces care vizează economii de costuri pentru a efectua teste funcționale prin crearea unor programe speciale pentru a „înlocui“ testerii la efectuarea testării.
Principalele obiective ale introducerii funcționalității automat de testare ar trebui să includă:
• Reducerea costurilor pentru testarea prin automatizarea rulării testului;
• Economisiți timp pentru testare, deoarece, de regulă, testele automate alerga mai repede decât efectuarea manuală aceleași teste. Acest factor face posibilă creșterea numărului de teste efectuate într-o singură sesiune de testare;
• Fiabilitate - teste automate destinate pentru a exclude factorul uman.
Obiectivul procesului de automatizare de testare este de a oferi o beneficii financiare directe prin economisirea resurselor și îmbunătățirea calității lucrărilor efectuate pe testarea software-ului.
Dezavantajele testării funcționale automate în comparație cu testarea manuală trebuie să includă următoarele:
• rigid de pre-programare - automat de testare nu este în măsură să detecteze defectele pentru care nu este programat;
• teste automate, precum și orice sistem software, trebuie să fie susținute, ceea ce conduce la costuri suplimentare pentru toate stadiul cererilor de dezvoltare și testare;
• Script-uri pentru testarea automatizate, precum și orice program, pot conține erori. Acest lucru conduce la necesitatea de validare ulterioară a rezultatelor automate testul.
Următoarele abordări pentru testarea software-ului avtomtaizatsii:
• Testarea la nivel de cod;
• Testați aplicația prin intermediul GUI.
Testarea la nivel de cod.
Această abordare este folosită în principal într-o testare modulară și regresie. Unitatea de testare verifică funcționalitatea și caută defecte în părțile aplicației care sunt disponibile și pot fi testate separat (module de program, obiecte, clase, funcții, etc.).
Avantajele unitate de testare includ:
• încurajarea schimbărilor. Unitatea de testare mai târziu permite programatorilor să refactor, fiind sigur că modulul încă funcționează corect (testarea de regresie);
• Simplificarea integrării. Unitatea de testare ajută la eliminarea îndoieli cu privire la modulele individuale și pot fi utilizate pentru testarea abordare „bottom-up“: testat mai întâi părțile individuale ale programului, atunci programul ca întreg. Această abordare simplifică foarte mult testarea integrării;
• Separarea interfeței de implementare. Deoarece unele clase se pot folosi alte clase, testarea unei anumite clase de multe ori se extinde la clasele asociate cu ea. De exemplu, clasa utilizează baza de date în curs de a scrie programator de test descoperă că testul trebuie să interacționeze cu baza de date. Aceasta este o greșeală, deoarece testul nu depășește limita de clasă.
Desigur, atunci când testarea la nivel de cod există și dezavantaje:
• Nu detecta toate erorile. Acest lucru rezultă din imposibilitatea practică de a se identifica toate căile posibile program, cu excepția în cazurile cele mai simple. Mai mult decât atât, un test al fiecăruia dintre modulele separat. Acest lucru înseamnă că erorile de integrare, funcții la nivel de sistem executate în mai multe module, nu sunt definite;
• O cantitate mare de cod de test. Testarea software - problema combinatorie. De exemplu, fiecare valoare posibilă a unei variabile booleene necesită două teste, o opțiune pentru TRUE, cealaltă - în varianta FALSE. Ca rezultat, fiecare linie de sursă este necesară linii de cod de testare 3-5;
• Respectarea strictă a tehnologiilor de testare. Este necesar pentru a stoca nu numai o înregistrare a tuturor testelor efectuate, dar, de asemenea, cu privire la toate modificările codului sursă pentru toate modulele. În acest scop, ar trebui să utilizați sistemul de control al versiunii de software. Astfel, dacă o versiune a software-ului nu trece testul, care a fost trecut cu succes mai devreme, ar fi simplu pentru a verifica versiunile codului sursă și a remedia eroarea.
Instrumente pentru a facilita punerea în aplicare a testului de unitate este proiectat pentru o gamă largă de limbi. În limbile D și Cobra unitate de testare este integrată în însăși gramatica limbii și este disponibilă fără nici o biblioteci suplimentare.
Pentru Java: JUnit, TestNG, JavaTESK și altele.
Pentru C ++: CppUnit, Boost de testare, cadru de testare Google C ++ și altele.
Pentru PHP: SimpleTest, PHPUnit și colab.
Testarea aplicatiei printr-o interfață grafică.
Popularitatea acestui tip de test este explicată de doi factori:
• Aplicația este testată în același mod în care se va folosi poporul;
• Puteți testa aplicația fără a avea acces la codul sursă.
UI-automatizare a dezvoltat peste 4 generații de instrumente și tehnici:
• Înregistrarea și redarea de utilitate înregistrează acțiunile tester în timpul testării manuale. Acestea vă permit să efectueze teste fără intervenție umană directă pentru o lungă perioadă de timp, a crescut foarte mult productivitatea și eliminarea acțiunilor repetitive de repetiție „plictisitoare“ în timpul testării manuale. În același timp, orice mică schimbare în software-ul testat necesită o rescriere de teste manuale;
• Scripts (script-uri) - o formă de limbaj de programare, concepute special pentru testarea automată a software-ului. Angajate în dezvoltarea de programatori la nivel înalt care lucrează separat de testere, trebuie doar să rulați testele. În plus, script-urile sunt mai potrivite pentru testarea GUI și nu poate fi încorporat, sau un pachet general, în orice mod integrat în sistem. În cele din urmă, modificările în software-ul de testare necesită modificări complexe în script-urile respective;
• pe bază de date de testare - metodologie pentru a fi utilizate în test de automatizare. O caracteristică specială este faptul că scripturile de testare sunt executate și verificate pe baza datelor care sunt stocate într-un depozit de date centrală sau de baze de date. Rolul bazei de date poate executa ODBC-resurse, CSV sau XLS fișiere, etc. Testarea bazate pe date - o asociere de mai multe scenarii de testare care interacționează și sursele de date în cadrul utilizat în metodologia. În acest cadru, variabilele sunt folosite pentru valorile de intrare și de ieșire a valorilor de test: în script de test este de obicei codificat aplicația de navigare, citirea surselor de date, efectuează jurnalele de testare. Astfel, logica care urmează să fie executate în scenariu, de asemenea, depinde de datele;
• Automatizarea bazate pe cuvinte cheie implică separarea procesului de creare a cazurilor de testare în 2 faze: Faza de planificare și implementare.
Programe populare pentru acest tip de testare includ:
O HP LoadRunner, HP QuickTest Professional, HP Quality Center
o IBM Rational FunctionalTester, IBM Rational PerformanceTester, IBM Rational TestStudio
o AutomatedQA TestComplete
• Un open-source:
Pe baza descrierii de mai sus, prin utilizarea de testare prin intermediul GUI acoperă mai multe scenarii pentru utilizarea produsului. Mai mult decât atât, testarea la nivel de cod pentru a renunța la anumite teste de testere functionale, dar sarcina pentru dezvoltatori va fi mai mult.
În cazul în care tehnica de testare printr-o interfață aleasă grafică, este necesar de a alege instrumentele care pot ajuta la automatizarea procesului de testare, din moment ce alte tehnici necesare pentru a utiliza automator-tester. Automator-tester va atrage după sine costuri suplimentare chiar în companii. Utilitate este ușor de utilizat, există o disponibile pe scară largă, nu necesită abilități de programare suplimentare de la testeri funcționale.
Dacă selectați automatizarea procesului de testare cu ajutorul unor instrumente speciale, automatizarea de testare va avea loc prin introducerea la activitatea de testeri scanere speciale, dintre care majoritatea lucrează la nivelul paginii de cod care urmează să fie pe deplin informat cu privire la obiectul de test. Prin transmiterea valorilor speciale la serverul de aplicații și scanați răspunsul primit cu privire la încălcările de protocol de siguranță. Marele avantaj al utilizării unor astfel de scanere este că controalele lor poate fi rulat pe timp de noapte, reducând astfel incomodeze tester la un nivel minim. De asemenea, utilizarea de scanere permite mai multor inspecții pe unitatea de timp decât sistemele de securitate tester. În acest caz, fiecare rezultat de scanare primit ar trebui să fie reverificate pentru a confirma prezența vulnerabilitate.
Acesta este acum utilizat pe scară largă de software pentru automatizare de testare, care oferă o gamă largă de servicii de diferite vulnerabilități de testare. În special:
• Wapiti. Acesta vă permite să efectueze un audit de securitate pentru aplicații web. Aplicația realizează poziția de scanare atacator. Aceasta este, aplicația va scana paginile de aplicații Web pentru script-uri sau forme prin care pot efectua hacking.
• Netsparker Community Edition. Este un scanner pentru SQL Injection. Aceasta este o versiune gratuită de vulnerabilitate web scanerului, astfel încât utilizatorii pot începe scanarea site-ul imediat. Scanerul este foarte ușor de utilizat, rapid și ușor de utilizat, utilizatorul nu va trebui să vă faceți griji cu privire la alarme false.
• N-Stalker Free Versiune. Acesta oferă pentru a efectua un număr limitat de controale de evaluare de securitate Web, ceea ce va contribui la îmbunătățirea infrastructurii de securitate web de servicii globale. Instrumentul utilizează baza de date cea mai cuprinzătoare de semnături de atac web, este disponibil în prezent - «N-Stealth Web Attack Semnătură Baza de date».
• Websecurify - este un instrument avansat de testare, concepute special pentru detectarea rapidă și exactă a vulnerabilităților într-o aplicație web.
• OWASP Zed atac Proxy proiect - instrument pentru testarea de securitate la nivelul de bază, permite o verificare a vulnerabilității la atacuri XSS, efectuate verificări de bază cu privire la posibilitatea de injectare SQL, permite utilizatorului să scaneze porturile de aplicații, fuzzing, și, de asemenea vă permite să controlați protocoalele folosite în timpul testării. Acest instrument va fi deosebit de util pentru testeri de siguranță, precum și dezvoltatori. Scanerul oferă posibilitatea de a funcționa în modul pasiv și activ. Security Scanner este o distribuție gratuită.
La alegerea din scaner cu condiția este evident că disponibilitatea scanerului disponibile pe scară largă este unul dintre cele mai importante criterii de decizie. Cu toate acestea, ca un important sistem de a lucra cu mai multe tipuri de vulnerabilități Web, și a fost ușor de utilizat.
Bazat pe introducerea de alternative la scaner OWASP Zed Atac Proxy proiect va fi cea mai bună opțiune.