Qa platforma blog - 4 modalități gratuite de a automatiza gui-testarea qt-aplicații sub ferestre

4 modalități gratuite de automatizare a testării GUI a aplicațiilor QT în Windows

Tema automatizării testării interfețelor utilizator devine mai relevantă ca niciodată. Multe companii dezvoltă produse care nu se schimbă foarte mult de la versiune la versiune. La fiecare iterație, se adaugă mai multe funcții noi, se remediază un număr de defecțiuni descoperite anterior. Dar când eliberează următoarea versiune, ei se confruntă cu o problemă importantă - funcțiile de aplicație care au fost întotdeauna stabile încetează să funcționeze.








În prezent, tema automatizării testării interfețelor utilizator devine mai relevantă ca niciodată. Multe companii dezvoltă produse care nu se schimbă foarte mult de la versiune la versiune. La fiecare iterație, se adaugă mai multe funcții noi, se remediază un număr de defecțiuni descoperite anterior. Dar când eliberează următoarea versiune, ei se confruntă cu o problemă importantă - funcțiile de aplicație care au fost întotdeauna stabile încetează să funcționeze. Deoarece efectuarea unui test manual complet la fiecare iterație este o sarcină foarte consumatoare de timp, este pentru aceste companii cea mai bună opțiune este de a automatiza testarea interfeței cu utilizatorul.

În acest articol, vom examina instrumente gratuite pentru automatizarea testelor aplicațiilor Windows dezvoltate utilizând bibliotecile QT. Mai jos este o listă cu instrumentele posibile care vă vor ajuta să îmbunătățiți calitatea produsului dvs.

I. Cadrul QTestLib

În primul rând, să examinăm cadrul QTestLib, care este responsabil pentru testarea unității în QT. Din nefericire, pentru testarea interfeței cu utilizatorul, acesta oferă mult mai puține caracteristici decât pentru testarea unităților de scriere. Singura funcție pentru testarea GUI în QTestLib este simularea mouse-ului și a tastaturii.

Din punctul de vedere al testării automatizării, această opțiune este departe de cea mai optimă. Când este folosit, există un amestec de teste unitare (dezvoltate de programatori) și teste GUI (dezvoltate de testeri). În plus, este important nu doar să faceți clic pe una sau altă coordonată a ferestrei, ci și să obțineți proprietățile controalelor și să executați modelele implementate de acest control. Prin urmare, nu ne vom ocupa de ea, ci să trecem la instrumentele mai funcționale. Cei care doresc să afle mai multe despre cadrul QTestLib pot afla mai multe despre Capitolele 3 și 4 ale tutorialului QTestLib.







II. UI Automation

UI Automation este o tehnologie care utilizează mecanismul Microsoft Active Accessibility (MSAA) pentru a accesa controalele de interfață. A apărut cu mult timp în urmă, împreună cu lansarea Windows Presentation Foundation. Multe soluții plătite (de exemplu, Ranorex) utilizează UI Automation pentru a accesa controalele.

Fiecare element este reprezentat ca un obiect AutomationElement, în care sunt definite identificatorii de bază ai acestuia. Unele comenzi pot implementa așa-numitele modele. De exemplu, modelul ExpandCollapsePattern este utilizat pentru a restrânge și extinde un element de meniu. Pentru a obține modele acceptate, utilizați metoda GetSupportedPatterns. Pentru a căuta un control cu ​​o anumită valoare a proprietății, utilizați clasa PropertyCondition.

La scrierea testelor, ID-urile comenzilor, proprietățile lor și modelele posibile sunt vizualizate în mod convenabil utilizând utilitarul UISpy.

Deci, cum să folosiți UI Automation în aplicațiile QT. Trebuie să construiți o aplicație care să accepte accesibilitatea - să adăugați pluginul QT_dirpluginsaccessible. Mai multe detalii despre această operațiune pot fi citite aici. După aceasta, puteți utiliza UI Automation.
Pentru o înțelegere mai bună, să luăm un exemplu de test simplu care lansează o aplicație, dezvăluie meniul "Fișier" și dă clic pe "Ieșire":

În mod separat, merită menționat faptul că, dacă folosiți Visual Studio Professional, Premium sau Ultimate pentru dezvoltare, veți obține un instrument cum ar fi Testul codificat al UI. Acesta include testul de înregistrare, care înregistrează acțiunile utilizatorului și generează automat teste folosind UI Automation. Dar, deoarece versiunile de mai sus ale Visual Studio sunt în valoare de o mulțime de bani, apoi în detaliu în cadrul acestui articol, nu vom lua în considerare testul codificat UI.

III. Cadrul alb

Cadrul alb este o extensie a UI Automation, ceea ce face accesul la controale și proprietățile lor mai convenabil. O puteți găsi aici. Toate caracteristicile listate pentru UI Automation sunt legate de White.
Pentru a înțelege beneficiile utilizării acesteia, vom redesigna exemplul original utilizând acest cadru.

După cum puteți vedea din exemplu, accesarea controalelor și efectuarea de acțiuni asupra lor a devenit mult mai ușor de citit, iar schimbarea testelor este mai ușoară.

IV. Extensii PowerShell

Automatizarea automată a testelor este disponibilă cu ajutorul instrumentelor integrate Windows: powershell și UI Automation PowerShell Extensions. Găsiți extensiile aici. Acest instrument vă permite să faceți mai flexibil și independent de testare în ceea ce privește mediul de execuție. De exemplu, în testarea configurației, trebuie doar să copiați scripturile pe mașinile virtuale, unde vor fi executate. Nu trebuie instalat niciun program suplimentar (cu excepția UIAutomation.dll).

Cum arata un script simplu de automatizare QT pentru aplicatii pe Powershell:

Fiecare proiect este unic și nu există nici o modalitate "cea mai bună" de a automatiza testarea interfeței cu utilizatorul. Atunci când alegeți, este necesar să porniți de la parametri precum bugetul proiectului, abilitățile echipei de testeri, instrumentele deja folosite. De asemenea, nu trebuie să abandonați imediat instrumentele de automatizare plătite - probabil că ROI de la achiziționarea lor va depăși așteptările inițiale.

Un comentariu







Trimiteți-le prietenilor: