Automatizált felület tesztelés saját script nyelv megvalósításával

OData támogatás
Konzulens:
Benedek Zoltán
Automatizálási és Alkalmazott Informatikai Tanszék

Ahogy egy szoftver kódbázisa nő úgy nő vele a komplexitása, a lehetséges hibák száma és a karbantartásra fordított költség. A megírt kód közös átnézése (Code Review) vagy egyéb bevett megoldások (Clean Code, SOLID alapelvek követése, stb.) ezek jelentősen csökkenthetők, de a szoftvert még így is tesztelni kell minden kiadás előtt. Sok szoftverprojektnél ezt figyelmen kívül hagyják vagy manuálisan végzik el.

A szakdolgozat első része röviden ismerteti a szoftvertesztelési alapelveket: miért hasznos a tesztek automatizálása, milyen típusú teszteket különböztetünk meg és hol helyezkednek el ezek között a UI tesztek. Még mielőtt bemutatnám a saját programomat, megemlítek néhány alternatív megoldást is a felhasználói felületek tesztelésére.

Ezt követően bemutatom a tesztelendő Windows alkalmazást és leírom a tesztelő eszköz elvárt működését, mindezt példakóddal szemléltetve.

A következő rész a szkriptnyelv elemzőjével foglalkozik, amely C# nyelven íródott. Röviden ismertetem az ehhez használt szoftver könyvtárat és a lehetséges alternatíváit. Bár nem a fő témája a dolgozatnak, mégis ki fogok térni az egységtesztelésre, ugyanis az elemző implementálása során nagyon sokat segített a használata. Emellett szót ejtek még más szoftvertechnikákról is amelyek hasznosak voltak a kód karbantarthatósága szempontjából.

A szkriptnyelv elemzője mellett még szükség van egy olyan komponensre amely a felhasználónak a grafikus felülettel való interakcióját szimulálja. Ebből a célból a Windows UI Automation SDK-t használtam, amelyet részletesen ismertetek, valamint azt is hogy a tesztelendő alkalmazást hogyan kell módosítani hogy használható legyen vele.

Az implementáció utolsó részeként a teszelő eszköz parancssori használatáról és a teszt eredmények elemzéséről lesz szó.

Legvégül ismertetem a UI tesztelés hatásait a konkrét Windows alkalmazás projekten, valamint a tesztelés jelenlegi nehézségeit és továbbfejlesztési lehetőségeit.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.