QA tesztautomatizálás mesterséges intelligenciával
Olyan megoldás fejlesztése volt a célunk, amely képes önállóan feltérképezni bármely weboldal felépítését és funkcióit, majd automatikusan végrehajtható tesztszkripteket generálni azokból. A rendszer nem igényel manuális teszttervezést: az ágens önállóan navigál a weboldalon, rögzíti az interakciókat, és ha egy generált teszt hibára fut, automatikusan javítja és újrafuttatja azt addig, amíg sikeresen nem lesz.
The Challenge
Valószínűleg minden tesztelő egyetért abban, hogy a modern weboldalak tesztelése időigényes feladatnak bizonyul. A manuálisan írt tesztek gyorsan elavulnak, a meglévő automatizálási eszközök pedig általában emberi konfigurációt igényelnek: valakinek pontosan meg kell határoznia, hová klikkeljen és milyen adatokat töltsön ki a rendszer. A legnagyobb kihívást három tényező jelentette. Először is, egy weboldal logikai struktúrája nem mindig nyilvánvaló egy gép számára: az ágensnek meg kell értenie, hogy az adott oldal bejelentkezési felület, terméklista vagy esetleg keresőoldal, és ennek megfelelően kell cselekednie. Másodszor, a valós felhasználói munkamenetek számos kivételes helyzetet tartalmaznak: CAPTCHA-kat, többlépcsős biztonsági funkciókat és dinamikusan betöltődő tartalmakat, amelyeket egyetlen merev szkript sem tud megbízhatóan kezelni. Harmadszor, a generált tesztszkriptek könnyen elavulhatnak, ha a dokumentáció nem naprakész.
Our Approach
A megoldás középpontjában egy autonóm webes ágens áll, amely egyszerre navigál a weboldalon és rögzíti az összes interakciót egy strukturált naplófájlba. Ez a napló szolgál alapul minden további lépéshez. Az első fejlesztési fázisban a Microsoft AutoGen keretrendszert használtuk, amelyben egy webes böngésző-ágens és egy emberi proxy ágens váltakozva működik együtt. Egyes esetekben a rendszernek inputra volt szüksége, például akkor ha olyan helyzetbe kerül, amelyet önállóan nem tud kezelni, például egy bejelentkezési oldal esetén. A naplózott interakciókból a rendszer automatikusan Page Object Model osztályokat generál, amelyek az egyes weboldalakat Python osztályként reprezentálják. Ezekből az osztályokból végül futtatható Pytest tesztszkriptek készülnek, amelyek pontosan rekonstruálják az ágens által bejárt felhasználói útvonalat. A második fázisban az AGNO keretrendszerre tértünk át, amelynek eszközkészlete sokkal kiterjedtebb és megbízhatóbbnak bizonyult. Az ágens MCP szervereken keresztül kommunikál a böngészővel, a fájlrendszerrel és a terminállal, míg a Context7 szerver mindig a legfrissebb Playwright dokumentációt biztosítja, így a generált kód naprakész marad. Ha egy teszt hibával fut le, az ágens automatikusan diagnosztizálja a problémát, javítja a szkriptet, majd újrafuttatja azt.
Findings
A projekt legfontosabb tanulsága, hogy egy jól megtervezett többágenses rendszer (részben) képes automatizálni egy emberi teszttervező munkáját, de csak akkor, ha az ágens valóban érti az oldal szemantikáját, és nem csupán mechanikusan rögzíti a kattintásokat. A szemantikus oldalklasszifikáció bevezetése – amely során az ágens LLM segítségével azonosítja az oldal típusát – jelentősen javította a döntéshozatal minőségét, és megalapozta az intelligens, kontextusfüggő navigációt. A két keretrendszer összehasonlítása alapján az AGNO lényegesen megbízhatóbb eszközhívásokat biztosít, mint az AutoGen, különösen hosszabb, többlépéses munkafolyamatok esetén, ahol az AutoGen konverzációs hurokja hajlamos volt az eszközhívások kihagyására. A fejlesztés jelenlegi szakaszában a rendszer sikeresen kezeli a teljes tesztgenerálási folyamatot: a weboldal feltérképezésétől a futtatható és automatikusan javított tesztszkript előállításáig. A következő lépések között szerepel a vizuális tartalmak kezelése, a párhuzamos tesztelési folyamatok támogatása, valamint a rendszer skálázása összetettebb, több oldalból álló alkalmazásokra.
Technologies
Project Details
- Domain
- AI & ML
- Status
- Completed
- Date
- 2024 szeptember
Every success story starts with a first step.
- 1One of our colleagues will contact you once they have processed your message.
- 2The first meeting will be scheduled for a needs assessment.
- 3After the needs assessment, we will prepare and hand over the quote.