Cursul Test Automation and Quality Assurance

Având în vedere că astăzi testarea este o componentă foarte importantă a dezvoltării de software, cunoașterea tehnologiei de testare este aproape indispensabilă în descrierea jobului unui singur dezvoltator (Test-driven Development). Mai mult, există profiluri pe piață care acoperă exclusiv acest domeniu (Quality Assurance). Acesta este motivul pentru care acest curs abordează diferite modalități de asigurare a calității și verificare ei.

În curs sunt explicate conceptele de testare a unor părți de cod, aplicații și sisteme complete. Toate tipurile standard de testare solicitate în prezent de piață sunt prezentate și explicate în detaliu.

Cursul acoperă mai multe domenii. Prima parte abordează standardele de codificare corespunzătoare, reguli de colaborare diferite și cele mai bune practici de codare. În continuare sunt prezentate diferite variante de testare funcțională, explică conceptul de testare cu conceptul de cutie albă, testarea unității, testarea integrării și alte forme cunoscute de testare funcțională.

Ultima parte abordează automatizarea testării, precum și diferite variante de abordare și testare non-funcțională cu conceptul de black box. Se vorbește de teste de performanță, teste de utilizator și teste de stres și încărcare inevitabile. Pe parcursul cursului, cunoștințele obținute la cursurile anterioare sunt accentuate și sunt analizate în detaliu caracteristicile tehnologice ale diferitelor părți ale sistemului.

Sunt introduse diferite instrumente de testare și biblioteci: Selenium – pentru testarea automată a interfeței web și Apache JMeter – pentru teste diferite de performanță a aplicațiilor web, unit test pentru testarea unică a codului etc.

Sunteţi interesat de acest curs? Îl puteţi parcurge în cadrul acestor programe LINK Academy: Python Development Program.

Descrierea și obiectivele cursului Test Automation and Quality Assurance

Scopul cursului este de a instrui cursantul pentru acces adecvat la asigurarea calității programului. După finalizarea acestui curs și asimilarea materiei, cursantul va putea să scrie codul în mod corespunzător, asigurându-se că toți membrii echipei, precum și el însuși, pot analiza, modifica și continua să lucreze la el.

De asemenea, cursantul se familiarizează cu conceptele de dezvoltare bazată pe test, învață despre teste pe modul, integrări și acceptabilitate și cum să le implementeze, cum își pot versiona programele și ce forme de publicare a programului există în ciclul de publicare, care este versiunea alfa a programului, care beta, care release.

După finalizarea cursului, cursantul va fi familiarizat cu conceptul de testare automată și conceptele de testare la cutie  albă și neagră. El va ști să-și programeze propriile teste în cadrul Selenium pentru testarea automată, precum și să configurează și să folosească unul dintre cele mai faimoase software-uri open source pentru testare – Apache JMeter.

El va cunoaște problemele de performanță ale aplicației web și tehnicile de testare a solicitării și stresului și va putea identifica în mod independent cauzele performanței slabe ale aplicației.

Cursul Test Automation and Quality Assurance vă răspunde la întrebările:

1. De ce testăm un software?

Odată cu dezvoltarea programării ca domeniu și cu înregistrarea unui progres imens în domeniul dezvoltării și complexității soluțiilor software, a apărut nevoia tot mai mare de a verifica corectitudinea, calitatea și viteza de lucru a produsului. Software-ul se testează deoarece multe defecte ale software-ului comandat aduc pierderi mari. Primul test pentru un inginer este să descopere dacă există o problemă la software ca să o rezolve înainte de a livra produsul cumpărătorului. 

Inginerul de testare trebuie să descopere cât mai multe probleme și în special cât mai multe probleme serioase, ale căror consecințe materiale și de securitate ar putea fi catastrofale. De aceea, din toate aspectele, procesul de testare a software-ului trebuie să fie cât mai efficient, iar costurile de testare, dacă este posibil, cât mai mici. Este esențial să separăm cauzele defectelor, pentru care se folosește adesea termenul de eroare (fault sau defect) și efectul nedorit să fie analizat în sistemul livrat pe care îl numit eșec (failure). Testarea unui software poate descoperi failures, dar sunt erorile (bugs) care pot și trebuie rezolvate. 

2. Ce este testarea software?

Testarea nu este o activitate care începe doar după finalizarea etapelor de codare. Testarea software este văzută în prezent ca o activitate care cuprinde întregul proces de dezvoltare și de mentenanță și reprezintă o parte importantă a construcției complete a software-ului. Planificarea testării trebuie să înceapă cu etapa timpurie a procesului de colectare a cererilor; și planurile și procedurile de testare trebuie să fie sistematice, dezvoltate continuu și redefinite la nevoie. 

Atitudinea corectă față de calitate este prevenția – este mult mai bine să evităm probleme decât să le corectăm. Această atitudine se mai numește right the first time. Aplicând aceste abordări, rezultatul activității de testare software este un cod de programare cu fiabilitate ridicată, rezistență mare (robustețe) și stabilitate, aceasta fiind confirmarea faptului că software-ul satisface solicitările utilizatorului final. 

3. Ce este testarea funcțională?

Testarea sistemului începe cu un test de funcționare. Prima etapă neglijează structura sistemului și se concentrează pe funcționalitate. Acum abordarea este mai aproape de cutia închisă, decât de cea deschisă (testele black și white). Nu trebuie să știm care componentă este executată, ci ce ar trebui să facă sistemul. Astfel, testul funcțional se bazează pe cerințele funcționale ale sistemului.

Fiecare funcție poate fi asociată cu componentele sistemului care se execută. Pentru unele funcții, putem să spunem că includ întregul sistem. Setul de activități atașat unei funcții se numește fir (thread), așadar testarea funcțională se mai numește uneori testarea firului. Testarea funcțională oferă răspunsul la întrebarea: „Această funcționalitate merge?”

Test Automation and Quality Assurance

4. Ce este testarea unităților?

Testarea unităților sau unit testing constă în verificarea celor mai mici unități de cod care pot fi testate, denumite unități (engl. units). Testarea unităților este o tehnică de testare white box oriented, unde avem informații despre cod și facem modificări directe în structura programului. Odată un test scris, este folosit pentru a putea controla în etapele dezvoltării ulterioare dacă unitatea funcționează corect. Aceasta reprezintă și o abordare specială la dezvoltarea software-ului denumit test driven development, unde activitatea nu se termină cu funcția scrisă a programului, ci și cu toate testele care verifică corectitudinea sa. 

În limbajul de programare Python, care este unul din cele mai bune limbaje de testare software, avem zeci de biblioteci pentru testarea unit; doi dintre cei mai cunoscuți reprezentanți sunt modul integrat unittest pentru testare și PyTest framework.

5. Ce este testarea integrată?

Când suntem siguri că anumite componente funcționează corect și ne satisfac obiectivele, le introducem în sistemul care funcționează. Integrarea se planifică și se coordonează astfel încât, atunci când apare o problemă, să existe dinainte niște instrucțiuni legată de cauză. 

Pe lângă asta, ordinea în care sunt testate componentele influențează alegerea cazurilor și a instrumentelor. La sistemele mai mari se poate ca unele componente să se afle încă în etapa testării individuale, iar unele grupuri de componente se testează împreună. Strategia influențează nu numai perioada de integrare și ordinea codării, ci și costurile și testarea completă. 

Sistemul este văzut din nou ca o ierarhie de componente, unde fiecare componentă aparține unui strat de design. Se poate începe de sus în jos în timpul testării sau de jos în sus sau se pot combina ambele abordări.

6. Ce este JMeter?

Apache JMeter este un instrument de testare automată load și stress, unde cu acest instrument se poate urmări comportamentul funcțional al programului și se poate măsura cu precizie performanța sa, precum și testarea database. Instrumentul a fost creat cu ajutorul limbajului de programare Java și open source este software. JMeter este independent de platformă, ceea ce înseamnă că poate funcționa pe mai multe platforme – există suport pentru sistemele de operare Windows, macOS și Linux.

Această aplicație Java deschide posibilitatea testării pe un număr mare de software-uri și protocoale, cu toate serverele web până la protocoalele SMTP și TCP. Cu suport pentru toate sistemele de operare și suport extins pentru tehnologiile web, Apache JMeter a devenit rapid un standard industrial în cadrul testării load, stress și database.

7. Ce este Selenium?

Selenium este un software de gestionare a automatizării folosind aplicația – deci, ne oferă o modalitate să simulăm și să automatizăm mișcarea utilizatorului prin aplicația web, ceea ce include și operații precum clic pe linkuri, introducerea unor date, login și acțiuni de înregistrare în browser etc. Cel mai mare avantaj al bibliotecii Selenium este că susține un număr mare de limbaje de programarer; momentan există suport pentru Java, C#, PHP, Python, Perl, JavaScript și Ruby.

Datorită suportului pentru cele mai mari limbaje de programare, aplicarea sa a devenit standard în acest domeniu. Spre deosebire de JMeter, unde avem cea mai mare interacțiune cu interfața programului, după perioada de testare care se face în Selenium, trebuie să folosim un limbaj de programare ca să scriem testele. În cazul lui Python, toate operațiile le punem într-un fișier Python care pornește biblioteca Selenium și browserul WebDriver. 

Planul și programa cursului:

1. Calitatea și testarea programului

  • Standarde în producția de programe
  • Calitatea programului
  • Testarea programelor

2. Asigurarea calității programului

  • Reguli de codificare
  • Testarea unităților
  • Testare de integrare
  • Livrare continuă
  • Postarea automată
  • Programare pereche

3. Controlul calității programului

  • Testările white box și black box
  • Testele de acceptare și rezonabilitate
  • Testele de stres și încărcare

4. Testare automată

  • Utilizarea instrumentului Apache JMeter
  • Utilizarea bibliotecilor și instrumentelor Selenium

Participanți la cursul Test Automation and Quality Assurance

3 moduri de a obține un job bine plătit

Am pregătit un document în care puteţi descoperi trei moduri de a obţine un job bine plătit pentru profesioniştii care lucrează pe calculator. Descărcați raportul aici

Înscrierea pentru generaţia 2021/22 se face aici.

Pentru a afla totul despre înscriere, click aici.