Redmine

A Redmine egy open source, Ruby nyelvet használó, web alapú projektmenedzsment eszköz (http://www.redmine.org/). Egyszerű, könnyen átlátható, jól testre szabható rendszer. A tesztelésben a nagyon átgondolt issue-track részét tudjuk hasznosítani hibajegykezelőként.

Telepítés

A telepítésben az okozhat nehézséget, hogy Ruby nyelven írt alkalmazásról van szó, és parancssorból kell sok mindent elvégezni. Ennek ellenére a mellékelt dokumentáció alapján a telepítés közben nem ütköztem akadályba. Aki ki szeretné próbálni, de elrettentené a parancssoros babrálás, annak a Bitnami megoldását javasolnám (http://bitnami.org). Innen le lehet tölteni egy Redmine csomagot, ami előtelepített Apache webszervert, MySQL adatbázisszervert, Rubyt és Redmine-t tartalmaz. Ennek a telepítésénél csak néhány (angolul feltett) kérdésre (elérési utak, a port számok, a jelszavak, a Redmine fő adminisztrátorának a neve, e-mail címe és jelszava) kell válaszolnunk és pár perc múlva már ki is próbálhatjuk a Redmine-t. A Bitnami-s telepítő elérhető Windowsra, Linuxra, és Mac-re is. Ez a Bitnami-s környezet finomhangolások és biztonsági beállítások után akár belső hálózaton is működőképes.

Első indítás

A programot a webböngészőbe beírt elérési úttal lehet indítani. (Például lokális gépen: http://localhost/redmine). A telepítéskor megadott admin felhasználónévvel és jelszóval vehetjük birtokba a rendszert. A Redmine több nyelven is képes kommunikálni a felhasználókkal. Minden felhasználóval olyan nyelven, ahogy a felhasználó azt magának beállítja. Az első induláskor a felület angolul kommunikál velünk. A magyarra váltást két lépésben érhetjük el:

  • A My account menüpont alól tudjuk a saját felhasználónk nyelvét magyarra változtatni.
  • Az Adminisztráció/Beállítások/Megjelenés menüpont alól az alapértelmezett nyelvet is magyarra tudjuk állítani.
Ezek után a Redmine alapértelmezetten magyarul kommunikál velünk és minden új felhasználóval is.

Testreszabás

Projektek - szerepkörök - felhasználók

A Redmine párhuzamosan több, egymástól elszeparált projektet képes kezelni. A projektek hierarchiába szervezhetőek tetszőleges mélységben, tehát van lehetőség alprojektek kialakítására.

Projektenként állítható:
  • Milyen feladattípusok (issue típusok) legyenek az adott projektben? (A feladattípusok teljesen testreszabhatóak. Alapesetben: hiba, fejlesztési igény, support.)
  • Milyen modulok legyenek bekapcsolva adott projektnél?
  • (Feladat követés (issue track), Idő rögzítés, Hírek, Dokumentumtár, Fájlok, Wiki, SVN tár, Fórum.) Plug-inokkal bővíthetők az alapmodulok.
  • Résztvevők: Felhasználó - jogosultság páros megadásával vehetők fel a projekthez hozzáférő felhasználók.
  • Verziók (lista)
  • Feladat kategóriák – felelős páros (lista)
  • Alprojekt hozható létre.

A munka elkezdéséhez mindenképpen létre kell hozni egy projektet (Adminisztráció/Projektek).

A projektekhez rendelhetünk felhasználókat, meghatározott szerepkörrel. A szerepkörök határozzák meg, hogy mihez van létrehozási, szerkesztési, módosítási, törlési, hozzászólási jog. Az alap szerepköröket bővíthetjük, módosíthatjuk (Adminisztráció/Szerepkörök és jogosultságok). A szerepkörök beállítása jogosultsági mátrixszal történik, azaz modul szinten állíthatók (ki-be kapcsolhatók) a hozzáférési jogok (pl. Projekt modulhoz: projektek szerkesztése, projekt kezelése, tagok kezelése, verziók kezelése).

Publikus vagy privát projekteket hozhatunk létre. Publikus projektre bárkinek rálátása van, a privát projektekhez csak a projektre felvett felhasználóknak. A rendszerben állítható, hogy bárki regisztrálhat-e, vagy csak az adminisztrátornak legyen joga létrehozni felhasználókat.

Felhasználókat manuálisan is létrehozhatunk, LDAP-ból is lehet importálni, vagy megengedhetjük a regisztrációt is. A felhasználók projekthez csatolása a felhasználók felől is elvégezhető, azaz egy felhasználónál megmondhatjuk, hogy milyen szerepkörben, melyik projektekhez csatlakozik.



Miután létrehoztunk egy projektet és felvettünk rá felhasználókat, akár el is kezdhetjük a munkát a Redmine alapbeállításaival. Azt kell még tudnunk, hogy az issue-kat a Redmine magyarosítása Feladatoknak nevezi. (Jobban szeretem a “bejegyzés”-t használni. Aki szintén így van vele, az a config/locales/hu.yml állomány szerkesztésével könnyen megteheti. Innentől a cikkben is bejegyzésként fogok rá hivatkozni.) A bejegyzéseket típus szerint lehet külön kezelni. Bejegyzés típus lehet például: hiba, módosítási kérelem, feladat, dokumentum hiba, kérdés. A bejegyzés típusokat könnyen tudjuk módosítani (Adminisztráció/Bejegyzés típusok)

Workflow

A workflow-val szabályozhatjuk, hogy a különböző típusú bejegyzéseink (hiba, módosítási kérelem, support, task...) milyen életutakat járhatnak be. Minden bejegyzéstípushoz szerepkörönként adhatjuk meg, melyik státuszból melyik státuszba állítható egy bejegyzés. A workflow meghatározásánál, szerepkörön belül megkülönböztethetjük a “szerző” és a “hozzárendelt” felhasználókat is. (Szerző az, aki az adott bejegyzést létrehozta. Hozzárendelt felhasználó pedig az, aki aktuálisan felelősnek van beállítva az adott bejegyzéshez.)



Mielőtt beállítanánk a workflow-t, előbb gondosan tervezzük meg papíron.

  • A rajz alapján előbb felvesszük az állapotok listáját (Adminisztráció/Bejegyzés státuszok). Meg kell határozni, melyik a kezdő, melyik a végstátusz (végstátuszból több is lehet).
  • A következő lépésként szerepkörönként és bejegyzés típusonként beállíthatjuk, mely státuszból mely státuszba lehessen állítani. (Adminisztráció/Workflow).
Egyéni mezők:
Egyéni mezőket nem csak bejegyzésekhez készíthetünk. Lehet egyéni mezője:
  • Bejegyzés: Projektenként és bejegyzés típusonként vehetünk fel egyéni mezőt
  • Projektek: A projektek beállítása oldalán jelenik meg az általunk felvett plusz mező
  • Verziók: A verziók tulajdonságait bővíthetjük új mezővel
  • Felhasználók: Tetszőleges adatokat tárolhatunk a felhasználóknál
  • Csoportok: A felhasználókat a könnyebb kezelés érdekében csoportokba szervezhetjük. Ezekhez a csoportokhoz is felvehetünk plusz mezőt

  • Bejegyzés prioritások: A bejegyzés prioritások alapesetben egy prioritás lista, de a lista elemeihez így plusz tulajdonságokat csatolhatunk

  • Dokumentum kategóriák: Ha dokumentumkezelésre is használjuk a Redmine-t, akkor a dokumentumkategóriák attribútumait bővíthetjük itt egyéni mezővel

Egy egyéni mezőnél meghatározhatjuk, hogy kötelező legyen-e, használható-e szűrőfeltételben, értéke kereshető-e. Az egyéni mező lehet: szöveg, hosszú szöveg, egész, lebegőpontos, lista, dátum, logikai, felhasználó, verzió.


Felsorolások

Három “előregyártott” felsorolás áll rendelkezésre: tevékenységek, feladatprioritások, dokumentum kategóriák. Ezeket globális szinten használják a projektek (tehát nem lehet projektenként különbözőket használni, viszont a listaelemeket tetszés szerint módosíthatjuk, bővíthetjük, törölhetjük.



Plug-inek

Viszonylag sok plug-in létezik Redmine-hoz, amivel lehet bővíteni a tudását. A plug-ineket leírás szerint kell telepíteni, általában parancssori utasításokkal.

Használat

Beállítani sem nehéz a Redmine-t, de használni még könnyebb.

Belépéskor egy összegző képernyőt kapunk, ahol az aktuális projektek láthatóak, amikben valamilyen szerepkörben tagok vagyunk. Ha azokra a feladatokra vagyunk kíváncsiak, amikhez közünk van, (tehát vagy mi vettük fel, vagy felelősnek vagyunk jelölve, vagy megfigyelőként vagyunk ráiratkozva) akkor a “Saját kezdőlapom” menüpontot kell kiválasztani. A jobb felső sarokban találjuk a projektek listáját. Ha itt kiválasztunk egy projektet, akkor annak az “Áttekintés” oldalára jutunk.



A projekteken belül menünként látjuk azokat a modulokat (wiki, fórum, dokumentumtár, bejegyzések...), amik a projekten be vannak kapcsolva, és amihez a projekten belül van jogunk. Új bejegyzés felvitelére is külön menüpontot kapunk. Mivel a hiba egy bejegyzés típus, ezért a hibákat is ezzel a menüponttal kell felvenni.



A hiba felvétele ugyan úgy történik, mint más hasonló rendszerekben. Ki kell tölteni a kötelező mezőket és meg kell nyomni a “Létrehoz” gombot. Sajnos az alapértelmezett mezők nem kapcsolhatóak ki-be és nem adhatjuk meg ezeknél, hogy milyen esetekben legyenek kötelezőek és mikor nem. Zavaró lehet, hogy a leírás mező nem kötelező új hiba felvitelekor.



Sajnos nem találtam meg, hogy hol lehet ezt felületről állítani. Remélem ezt későbbi verzióban megoldják. Egy kis buherálással azért megoldható (ez az open source előnye és hátránya is egyben):

A Redmine telepítési mappájában az app/models/issue.rb állományban meg kell keresni a

validates_presence_of :subject, :priority, :project, :tracker, :author, :status


sort, és le kell cserélni erre:

validates_presence_of :subject, :description, :priority, :project, :tracker, :author, :status

Még meg kell oldani, hogy a kis piros csillag is megjelenjen.
Az app/views/issues/_form.rhtml állományban kell a következős sorokat megkeresni:

<p><%= f.text_field :subject, :size => 80, :required => true %></p>
<p><%= f.text_area :description,
                   :cols => 60,
                   :rows => (@issue.description.blank? ? 10 : [[10, @issue.description.length / 50].max, 100].min),
                   :accesskey => accesskey(:edit),
                   :class => ‘wiki-edit’ %></p>


és a végén a %></p> elé (, közvetlenül a ‘wiki-edit’ után) be kell szúrni:
,
:required => true

A kód módosítása után újra kell indítani a kiszolgáló szervereket.

A már felvitt hibákat a bejegyzések menüpont alól érhetjük el. Itt lehetőségünk van viszonylag összetett szűrések létrehozására is. Bármelyik mezőre szűrhetünk többféle relációban. Listaértékek esetén választhatunk, hogy egy vagy több érték közös megadásával szűrünk. Az Opciók részt ha lenyitjuk, megadhatjuk, hogy melyik mezőket és milyen sorrendben szeretnénk látni az eredményben. A szűréseket elmenthetjük és ha van hozzá jogunk, akkor nyilvánossá tehetjük. (Természetesen nem a szűrés eredményét mentjük el ilyenkor, hanem a szűrésfeltételek összességét.) A mentett szűréseket jobb oldalt linkként látjuk.

A szűrt találati listát exportálhatjuk CSV vagy PDF formátumba.

A találati listában a Tárgy vagy ID mezőkre klikkelve az adott hiba részletezésébe jutunk, ahol tovább kezelhetjük a hibajegyet.

A Redmine képes előállítani alapvető riport táblázatokat. A bejegyzéseknél jobboldalt láthatunk egy “Összegzés” linket. Itt a következő áttekintő táblázatokat kapjuk:



Mindegyik táblázat a nyitott és lezárt (és összes) bejegyzésszámot mutatja meg az adott attribútum bontásában. Ha bármelyik táblázatnál a nagyítóra kattintunk, akkor a nyitott és lezárt gyűjtőállapotok helyett a státuszok szerinti bontást tudjuk megnézni.

Sajnos ez kevés szokott lenni, hiszen általában ezeknek a táblázatoknak valamilyen kevert formájára van szükségünk. Például hibatípusú bejegyzésen belül vagyunk kíváncsiak a prioritás-állapot bontásra.

Amiket tehetünk:

  • találunk ehhez plug-ineket,
  • megírjuk magunk (esetünkben Ruby nyelven) a hiányzó riportot,
  • adatbázisból készítünk megfelelő lekérdezéseket,
  • a szűrt bejegyzés listát táblázatba exportáljuk és egy táblázatkezelő segítségével készítjük el a számunkra szükséges riportot.

Ha nincs plug-in, akkor leggyorsabb és legkönnyebb megoldásnak a táblázatos módszert tartom. (A szűrt lista Excel táblázatba exportálása után kimutatás adatlap(ok) segítségével, lényegében bármilyen riportot el tudunk könnyen készíteni. Ez a “trükk” más hasonló eszközöknél is hatékonyan alkalmazható.)

(A tapasztalatom az, hogy néhány plug-in és egy táblázatkezelő volt a megoldás erre. Ezeket a plug-ineket telepítettem:

  • extra query operators,
  • issue history,
  • show descriptions,
  • traceability,
  • user status,
  • xls export.

Ezekkel a plug-inekkel a szűréseket lehet okosítani. Az xls exporttal nem kell a CSV formátumot használni, hanem XLS formátumba tudunk közvetlenül exportálni.)

A Redmine az általam ismert ingyenes hibakezelők közül a legrugalmasabb, legkönnyebben testreszabható, legkönnyebben használható eszköz.
 
A könnyű átláthatóság miatt a felhasználók hamar megszokják a használatát. Tud magyarul és ez szintén előnye lehet több vetélytársával szemben. Egy kis CSS tudással tetszőlegesen testre szabható (céghez igazítható) a kinézete is.

Ha nem csak hibát akarunk kezelni, akkor össze tudjuk kötni a TestLink nevű (szintén ingyenes) eszközzel, ami a követelményeket, a teszteseteket és a futtatásokat kezeli.

Az eszköz tudása plug-inekkel bővíthető. Már most is sok található hozzá, és ezek között van tesztmenedzsment kezdemény is. Későbbiekben ezzel együtt is érdemes lesz kipróbálni.

Ami mindenképpen az előnye, hogy nem csak a tesztelőket szolgálja ki a hibakezeléssel, hanem a programozókat is képes támogatni. Hiszen minden projekten lehet verzió-kezelten kódot tárolni benne, feladatokat kiosztani, dokumentumokat tárolni, Wiki-alapú tudásbázist kialakítani.

Két negatívumot tudok említeni. Az egyik a telepítése, de azt csak egyszer kell megfelelően elvégezni a leírások alapján és aztán csak használni. A másik a riportolási képessége, ami elég szegényes.

Szerző:
Szőke Ármin

<< Vissza