TestLink

Írásomban egy olyan tesztelést támogató eszköz (TestLink) használatának ismertetését fogom bemutatni - amelyet több éve használok kisebb-nagyobb projekteken. A folyamatos fejlesztés egyre szélesebb teret enged a TestLink eszköz használatának, ugyanakkor folyamatos szakmai kihívások elé állítja azokat, akik módszertani szemléletet visznek bele a tesztelési folyamatok kidolgozásába.

Napjainkban egyre több tesztelést támogató eszköz jelenik meg az IT-piacon, gyártóik különböző marketingfogásokkal ösztönzik az ügyfeleket, szakembereket az ingyenes kipróbálásra, miközben kivétel nélkül azt ígérik, hogy hatékonyabbá válik alkalmazásukkal a tesztelés. Jogos a kérdés; használjuk-e eszközöket a tesztelés támogatására, ha igen, melyiket válasszuk? Hogyan ágyazzuk be fejlesztési folyamatainkba, mikorra fog ez a befektetés megtérülni?

A kilencvenes évek elején a Microsoftnak dolgoztunk itthon és külföldön egyaránt - a tesztelést már akkor eszköztámogatással és módszertan alapján kezdtem elsajátítani. Ez indított el a tesztelés – mint szakma - irányába, mert már akkor megtapasztaltam, hogy van hatékonysága az eszközök használatának, ha biztosítottak a megfelelő körülmények és tesztelési folyamatok.

Rövid áttekintés

A TestLink egy webalapú, nyílt forráskódú tesztmenedzsment rendszer, amely Apache 1.3.x vagy 2.x web szerveren fut MySQL 4.1.x vagy 5.x adatbázissal, Linux és Windows operációs rendszereken. Az eszköz használata Firefox 3+; IE7+; Opera 7+ böngészőkre optimalizált.

A TestLink 2003-ban indult útjának és folyamatosan fejlesztették, a jelenlegi 1.9.2 verzió számos hibajavítást és új funkciót tartalmaz, amely kényelmesebbé, és hatékonyabbá teszi a felhasználók munkáját.

A rendszer telepítése és konfigurálása némi rendszergazdai tapasztalatot azért igényel, azonban a vállalkozó kedvűeknek a telepítés és konfigurálás útmutatója részletesen megtalálható a csomaghoz mellékelt telepítési és konfigurációs leírásban. Szintén itt útmutatást találunk a funkciók értékkészleteinek beállítására vonatkozóan, és válaszokat olyan gyakran feltett kérdésre, mint például a verziófrissítés vagy ékezetes karakterek kezelése.

Bár több nyelvre lefordították, magyarra lokalizált változata még nincs, azonban ez folyamatban van, ha elkészül, nagyobb lehetőség nyílik arra, hogy a rendszert magyar nyelvű projekteken is használni lehessen.

Tapasztalataim alapján a rendszer megbízhatóan működik – megbirkózik a nagyszámú felhasználó kezeléssel is –, így nagyobb projektekre vagy több projekt egyidejű kezelésére is bátran ajánlható.

A TestLink felépítése

A TestLink rendszernek 3 sarokköve van:

  • Tesztprojekt
  • Tesztterv
  • Felhasználó

A többi funkció és adat relációja vagy tulajdonsága e három sarokkőnek. A működés könnyebb megértéséhez szükséges tisztában lenni az alapvető tesztelési terminológiával. A csomag tartalmaz egy rövid angol nyelvű terminológiát, ezt érdemes elolvasni azoknak, akik nem járatosak a tesztelésben, tapasztaltaknak nem sok újdonságot nyújt.

A belépés után a rendszer a Project oldalra navigál, ahol jogosultságtól függően megjelennek az elérhető funkciók. Admin jogosultsággal végezhető a tesztelési folyamatok kialakítása és testre szabása a projekt jellegétől függően.<

A funkciók 7 nagy csoportba vannak szervezve, ezek az alábbiak:

  • Test Project – Tesztelési projektek létrehozása és kezelése
  • User Management – jogosultságok, szerepkörök beállítása
  • Requirement Specification – Követelménykezelés
  • Test Specification – Teszttervezés
  • Documents - Test Plan – Tesztforgatókönyvek létrehozása összerendelése
  • Test Execution – Tesztfuttatások kezelése
  • Test Plan Contents – Tesztforgatókönyvek összeállítása és menedzselése
A vízszintes menüsorból egy ötletes megoldással a főbb funkciók gyorsabb elérése lehetséges. (1. ábra)


1. ábra

Tesztelési folyamatok kialakítása

TestLink-ben a tesztelési folyamat kialakítása az alábbi főbb lépésekből áll, jelen esetben feltételezzük, hogy a tesztcsapat rendelkezik a felsorolt hat szerepkörrel. A TestLink-ben ezek: guest; tester; senior tester; test designer; leader; admin, illetve még beállítható két speciális szerepkör is.

Az adminisztrátor a User Management segítségével létrehozza a felhasználókat.

Ezek után a vezető tesztelő kialakítja az alábbi folyamatlépéseket:

  • Assign User Roles funkcióval - beállítja a tesztprojekt-szerepköröket
  • Define Custom Fields - egyedi mezőket definiálhat
  • Assign Custom Fields - egyedi mezőket célzottan szignálhatja
  • Keyword Management - Kulcsszavakat definiálhat a könnyebb kereshetőség érdekében
  • Platform Management - platformokat hozhat létre a projekt jellegétől függően
  • Inventory – Host eléréseket definiálhat
  • Test Project Management funkció segítségével - létrehozza a tesztprojektet
  • Létrehozza a teszttervet a hozzátartozó build-el – Builds / Releases funkcióval
  • Kialakítja a Követelmény specifikáció struktúráját – Requirement Specification funkcióval
  • Importálja a követelményeket a kialakított struktúrába

Ritkább esetekben van a tesztcsapatban külön teszttervező, a tesztprojektekre inkább az a jellemző, hogy egy személy több szerepkörben dolgozik, ami nem igazán szerencsés.

  • A Teszttervező a Test Specification funkció segítségével kialakítja a tesztesetek struktúráját és definiálja a teszteseteket
  • A Vezető tesztelő az Assign Requirements funkció segítségével összerendeli a követelményeket a tesztesetekkel, a Test Plan Content funkciók segítségével kialakítja tesztforgatókönyvet, kiosztja a teszteseteket.

  • A tesztelő az Execute Tests funkcióval végrehajtja a kapott teszteseteket, és dokumentálja az eredményeket.

  • A Vezető tesztelő a TestReports and Metrics funkcióval összesíti a tesztfuttatások eredményeit, jegyzőkönyveket és riportokat készít.

A következő részben nem célom a funkciók további részletes bemutatása, inkább gyakorlati és szakmai szempontból közelítem meg a TestLink használatát.

Tesztprojektek kezelése

Egy tesztprojekt definiálását rövid idő alatt el lehet végezni, a rendszer lehetőséget biztosít egyszerre több projekt párhuzamos aktiválásához és használatához. A projektek közötti átjárhatóságot a Role Management / Assign Test Project Role biztosítja, ahol beállíthatjuk a Tesztprojektben résztvevők szerepköreit. A beállított jogosultságnak megfelelően egy felhasználó csak a beállításoknak megfelelően láthat és kezelhet tesztprojektet.

Egy külön tesztprojekt kialakítása lehetővé teszi a végfelhasználók részére is – például átadás-átvételi tesztek idején -, hogy a kiosztott teszteseteket a TestLink-ben futtassák. Szerepköröket és jogosultságot nemcsak a projekthez, hanem a teszttervhez is lehet definiálni. Így tesztprojekt és tesztterv szinten is célirányosan konfigurálható, mi az, amit egy felhasználó elérhet a rendszerben.

Követelménykezelés

A Követelményspecifikálás részben sok mindent javítottak, és újdonság, hogy van verziókezelés a követelmények szintjén is.

A tesztelés során mindig nagy kihívás, hogyan tudjuk a követelmény alapú teszttervezést megvalósítani. Lehetséges ez Excel és Word párosítással is, azonban ennek a módszernek hatékonysága messze elmarad a tesztelést támogató eszközök hatékonyságától és lehetőségeitől.

További kérdés - ha szükséges a követelmény alapú tesztelés kialakítása -, milyen stratégia szerint építjük fel a struktúrát, és hogyan kerülnek be a követelmények a kidolgozott struktúrába. (2. ábra)

A TestLinkben erre 3 módon van lehetőség:

  • A követelmények másolása – Ctrl+C & Ctrl+V funkciókkal – ez viszont nem túl hatékony módszer.

  • Követelmény címének és rövid leírásának létrehozása, majd a követelmény leírásának csatolása (Word, Excel, XML) a kialakított struktúrába.

  • Követelmények importálása – a rendszer csak XML formátumot enged, azonban a TestLink-telepítőcsomagban létezik egy olyan, előre definiált sablon - RequirementXLSTOXML.xls -, amelybe strukturáltan feltölthető a teljes követelményleírás.

Az import után összerendelhetőek a követelmények vonatkozásai, szülő-gyerek kapcsolat, összefüggések. Ezután beállíthatjuk a követelmények státuszát – alapesetben ez a Normal és Not testable - további státuszok - (Draft, Review, Rework, Finish stb.) - és típusát (Use Case, Feature, UI, Non functional stb.), valamint azt is, hogy egy adott követelményhez hány tesztesetet kell tervezni. Ez a szám adja majd a követelmények és a tesztesetek összerendelése után a lefedettségmutatót. A lefedettségmutatót befolyásolja, a Not testable státuszú követelményeket a rendszer nem számolja bele a mutatószámokba.


2. ábra

A Navigátor részen szűrési feltételek könnyítik a célzott információ gyors elérését.

Egy követelmény mappa kiválasztása után jobb oldalon megjelennek a mappához tartozó követelmények, ezekből automatikusan teszteseteket generálhatunk – ezek követelményspecifikációhoz hasonló struktúrában jönnek létre, a követelmény neve (Title) és a Scope mező tartalmát másolja át a rendszer a tesztesetbe.

Az importált Követelmény specifikációból riportot is készíthetünk, előtte beállíthatjuk azokat az opciókat, amiket látni szeretnék a generált HTML, Word, és OpenOffice Writer formátumú riportokban. A Word dokumentum generálása Firefox-ban ajánlott, mivel itt működik igazán.

Teszttervezés

A teszttervezést segíti és egyszerűsíti az automatikus teszteset-generálás, amennyiben jól felépített a követelménykezelés, úgy sok szükséges információ átkerül a tesztesetbe, könnyítve a tesztlépések kidolgozását. Az tesztlépések kidolgozását egy szerkesztő felületen keresztül végezhetjük. Ez egy FCKEditor-nak nevezett szerkesztő, amely a konfigurációs fájlokban leírt útmutatás segítségével egyedileg beállítható. A Szerkesztőt tovább fejlesztették, így lehetőség van tesztlépések létrehozására és mentésére, a rendszer minden tesztlépéshez egyedi számot rendel. (3. ábra)

A régebbi verziók egy mezőben kezelték az összes lépést, ezért szükséges volt a lépések és az elvárt eredmények számozása az egyértelműség miatt. További új lehetőség, hogy a teszteset egy vagy több teszttervhez is hozzárendelhető egyidejűleg, illetve a tesztesetnek új verziója is létrehozható.

A teszttervezést tovább segíti, hogy Excel és XML formátumban is importálhatjuk a teszteseteket. A tervezéshez itt is található egy sablon fájl - TestCaseXLSTOXML.xls – amelyben a struktúra is kialakítható. A teszteseteket a Copy és Move funkciókkal könnyen másolhatjuk, mozgathatjuk. A tesztesetek halmazából a Generate Test Specification funkcióval tesztspecifikációt generálhatunk opcionális beállításokkal, attól függően, hogy milyen tartalmat akarunk látni a dokumentumban.

Olyan esetekben, amikor a teszteseteket szeretnénk egy meglévő projektből új projektbe másolni, az Export funkciót használhatjuk, amely XML formátumban generálja a kijelölt tesztesethalmazt. Az új projektbe az Import funkcióval tudjuk azonos struktúrában átmásolni a szükséges teszteseteket.

Itt is a Navigator részen szűrési feltételek könnyítik a célzott információ gyors elérését.


3. ábra

Tesztfuttatás

A tesztfuttatás előfeltétele a tesztesetek kiosztása, továbbá a megfelelő verzió létrehozása. Execute Tests módban nincs lehetőség a tesztesetek módosítására. Alapértelmezettként 4-féle eredmény van konfigurálva, ezt azonban testre szabhatjuk vagy bővíthetjük a tesztelési folyamatainknak megfelelően. Alapesetben a tesztestesek státusza Not run állapotban van – státusz váltás esetén nincs mód a Not run állapot visszaállítására.

A futtatás során talált észrevételeket beírhatjuk a Notes mezőbe, státuszváltás és mentés után azonban eltűnik a mezőből. A Notes leugró mezőben azonban megtekinthető.

Megjegyzés: Ha hozzá akarunk adni további információt az észrevételekhez, státuszváltás és mentés esetén felülírja az eredeti bejegyzésünket!


4. ábra

Riportok készítése

A rendszer többféle riportot képes előállítani, előtte beállíthatjuk azokat az opciókat, amelyeket látni szeretnénk a generált HTML, Word, és OpenOffice Writer formátumú riportokban. A Word dokumentum generálása itt is Firefox-ban ajánlott. A következő riportok széles skálája generálható, ez egészen kellemes egy nyílt forráskódú, ingyenesen elérhető rendszernél.

  • Test Report – tartalmazza a tesztek futtatásának eredményét
  • General Test Plan Metrics – táblázatos formában összesíti a tesztfuttatások eredményeit
  • Results by Tester per Build – személyenként megjeleníthető a tesztfuttatások eredménye
  • Test Case Assignment Overview – tesztesetek kiosztásának áttekintése
  • Query Metrics – van lehetőség feltételek szerinti metrikák lekérdezésére
  • Test result matrix – az utolsó tesztfuttatások eredményeit mutatja meg verziókra
  • Failed Test Cases – hibára futott tesztesetek listája
  • Blocked Test Cases – blokkolt tesztesetek listája
  • Not run Test Cases – nem futtatott tesztesetek listája
  • Test Cases without Tester Assignment – nem szignált tesztesetek megjelenítése
  • Charts – Grafikonok generálása a teszteredmények alapján
  • Requirements based Report – követelmény alapú riport, információt ad a teszteltségi állapotukról
  • Bugs per Test Case – tesztesethez kapcsolt hibalista megjelenítése – integrált hibakezelő eszköz esetén
  • Test Cases not assigned to Any Test Plan – teszttervhez nem rendelt tesztesetek listázása

A TestLlink és a hibakezelő eszközök kapcsolata

A rendszer további előnyére szolgál, hogy több ingyenes és fizetős hibakezelő rendszerrel integrálható. Ilyenek például: Bugzilla, Fogbugz, Jira, Mantis, Trac stb., további részletes információ a csomag - lib\bugtracking könyvtárában található.

A hibakezelés menete: a tesztelés során talált hibát rögzítjük az adott hibakezelő rendszerbe, ezután Execute Tests módban a Bug Management alatti ikonra kattintva megjelenik egy felugró ablak, ahol megadhatjuk a hiba egyedi azonosítóját. Mentés után a rendszer összekapcsolja a hibára futott tesztesetet a hibabejegyzéssel, így a hibabejegyzés a TestLinkből is megnyitható a Bug Management alatti ikonra kattintással. Hibára futott tesztesetek listájának generálása esetén a hibákra utaló linkek a riportban is megjelennek és működnek.

Összegzés

A TestLink egy olyan tesztelést támogató eszköz, amely megfelelő szakmai tudás mellett kiválóan alkalmazható nagyobb és akár komplexebb tesztelési projektek kivitelezéséhez. Írásomban nem volt cél a TestLink fizetős vagy nem fizetős tesztelést támogató rendszerekkel való összehasonlítása, ezért a használhatóság oldaláról igyekeztem a rendszert bemutatni. A hatékony eszközhasználathoz nem elégséges csupán azt megvizsgálni, hogy egy eszköz mennyire felel meg a célnak, hiszen a piacvezető fizetős eszközök esetében a rosszul megtervezett folyamatok kezelése időigényes, így csökkenti a hatékonyságot a minőség rovására. Az eszköz kiválasztás során egyéb tényezőket is szükséges figyelembe venni, például nagy szerepe van a szakértelemnek, és tekintettel kell lenni a projekttényezőkre is. Az ügyfélelégedettség eléréséhez azonban nemcsak az eredményesség szükséges, hanem az eredményhez vezető folyamatok minőségének biztosítása is, amely összhangban van az ügyfelek azon célkitűzéseivel, amelyek érdekében az IT-megoldásaikat fejlesztik.

Szerző:
Keresztes Csaba

<< Vissza