Szoftvertesztelői szakmai körökben általános vélemény, hogy a szoftvertesztelő mint szakma nem kellőképpen megbecsült diszciplína. Legalábbis, az infokommunikációs technológiák egyéb területeihez viszonyítva. Vegyük például azt, hogy számos olyan vállalattal találkozhatunk, amelyben a szoftvertesztelő munkahelyi pozíció alacsonyabb rangú (mind erkölcsi, mind anyagi megbecsülésben), mint például a szoftverfejlesztő, hasonló mértékű tapasztalatot alapul véve. „Ha nem vált be mint fejlesztő, jó lesz majd tesztelőnek" - vallják sokan. Nyugodtan állíthatjuk továbbá, hogy jelenleg lényegében fejlesztőket képzünk a felsőoktatási formákban csakúgy, mint a különböző piaci képzési programok keretén belül, és nagyságrendekkel kevesebb figyelem fordítódik a tesztelés oktatására.
Jó tesztelőnek lenni azonban komplex, kihívásokkal teli, ugyanakkor megtisztelő és sok szakmai örömöt magában hordozó feladat. Tesztelni nem csak annyit jelent, hogy a kérdéses szoftverrendszert sok ezerféle módon „próbálgatjuk" valamilyen soha véget nem érő specifikáció szerint, mindezt rendkívül unalmas és morálromboló módon. A szakmában dolgozók nagyon jól tudják, hogy számos tesztelési fázis és feladatkör kreatív munkát rejt magában. További tévhit, hogy a tesztelő egyfajta destruktív munkát végez, és a fejlesztőknek mint „alkotóknak" az ellensége. Ez ellen megfelelő kommunikációval lehet védekezni, de számos egyéb tulajdonsággal is rendelkeznie kell egy jó tesztelőnek, mint például odafigyelés a részletekre, jó intuíció és természetesen komplex szakismeret. Mindezekhez először is rátermettség kell, de éppen ennyire fontos a megfelelő képzés biztosítása is.
Az, hogy egy adott szoftverfejlesztési vagy karbantartási projektben megfelelő tesztelési módszerek legyenek alkalmazva megfelelő tesztelő szakemberek által, mindenkinek érdeke. A legtöbb projekt esetében a szoftveréletciklus teljes idejének, illetve költségének jelentős része - akár fele vagy még több is, a kritikusságtól függően - tesztelésre, szoftverminőség-biztosításra fordítódik. De nincs ez az arány kissé ellentmondásban azzal, amennyit áldozunk a fejlesztési kontra tesztelési kapacitások létrehozására, fenntartására? Jelenleg azokban a felsőoktatási programokban, amelyek valamilyen módon szoftverfejlesztéshez kötődnek, nem ritka, hogy mindössze néhány órányit foglalkoznak a teszteléssel, szemben a több szemeszteren és különböző tárgyakon átívelő programozó-, programtervező-, fejlesztőképzéssel.
Hogy az ipar a fentiekről hogyan vélekedik? Sokszor a felsőoktatási rendszert és a képzési programokat hibáztatja, tőlük várja el mindazt, amire szüksége van. Vagyis, naprakész tudást és tapasztalatot szinte a munkába állás első napján, és mindezekről valamiféle bizonyítékot is. Mindezt nem könnyű biztosítani, de nézzük meg, mit tehetünk az ügy érdekében mi, a felsőoktatás és az ipar közösen!
A jelenlegi helyzet
Szoftvertesztelő szakembereink jelenlegi képzettsége vegyes. Vannak magasan képzett, gyakorlattal és tapasztalattal rendelkező „guruk", sok a lelkes, de nem különösebben képzett kezdő, illetve fáradságos munkával és költségesen képzett, cégek által kinevelt, egyes szakterületekhez jól értő tesztelők. A képzési színtér jelenleg lényegében a felsőoktatást és a szabványos piaci képesítési rendszereket jelenti (ezek közül legfontosabb az ISTQB-konform képzési forma, ld. keretes írás). Jelenleg elvétve beszélhetünk az egyéb szintű képzési lehetőségekről, vagyis különleges középfokú képzésről vagy OKJ-s programokról.
Az ISTQB képzési struktúra
Szinte minden hazai felsőoktatási intézményben, amely valamilyen formában szoftverfejlesztési programmal rendelkezik, találkozhatunk általános szoftverfejlesztési (software engineering) tárgyakkal. Ezek keretén belül jellemzően megemlítik a szoftverminőség-biztosítást és a tesztelést. Kissé differenciáltabb képzési móddal találkozhatunk néhány nagyobb egyetemünkön, de ki is emelhetünk néhány intézményt, amely már elindította szoftvertesztelés-képzéseinek jelentősebb átalakítását. A BME-n több elméleti és gyakorlati tárgy is foglalkozik a teszteléssel, például a Szoftvertesztelés, a Tesztelés és minőség laboratórium a mesterképzésben, valamint a Szoftververifikáció és -validáció című, doktori képzésben adott tárgy. Az ELTE is több tárgyat tart fenn a tesztelés oktatásának: a Szoftverfejlesztés minőségi aspektusai és a Tesztautomatizálást támogató eszközök a gyakorlatban. Mindkettő mesterképzési tárgy, míg a doktori képzésben a Szoftvertesztelés áll rendelkezésre. A Széchenyi István Egyetemen az Információs Rendszerek fejlesztése, valamint a Szoftverminőség-biztosítás tárgyak foglalkoznak a teszteléssel. Végül, a Szegedi Tudományegyetemen a két speciálkollégium, a Szoftvertesztelés alapjain és a Szoftvertesztelés gyakorlatán kívül a Tesztelési módszerek mesterszakos tárgy foglalkozik behatóbban a tesztelés elméleti és gyakorlati aspektusaival. Közös jellemzőjük a fenti tárgyaknak, hogy tematikáikat az ISTQB ajánlásai szerint állították össze. [További részletek a témával kapcsolatban megtalálhatók az Informatika a felsőoktatásban 2011 konferencia kiadványában, 1096-1103 oldalak (Debreceni Egyetem, Informatikai Kar, 2011)].
Ami az ipari gyakorlatot illeti, jellemzően külön tanfolyamok keretén belül készítik fel a vállalatok alkalmazottjaikat a munkavégzésre. Ez tipikusan ad hoc jellegű egyedi képzéseket, különböző eszközökről, technológiákról szóló speciális kurzusokat jelent. A vállalatok nagy része azonban nagyon fontosnak tartja a szabványos, nemzetközi ajánlásokat, hiszen így megbízható, ellenőrizhető tudáshoz juthatnak hozzá dolgozóik. Természetesen itt is az ISTQB emelhető ki követett módszertanként.
A felsorolt, szervezett képzéseken kívül természetesen más fórumokon is elsajátíthatják, elmélyíthetik a szakmát a tesztelők, például különböző konferenciákon, szakmai vásárokon, illetve egyéb médiumok, például folyóiratok és internetes közösségek segítségével.
Hova akarunk eljutni?
Az elmondottak természetesen fontos elemei a hazai szakemberképzésnek, azonban még sok téren van fejlesztenivaló, de ehhez azt kell látni, hogy a probléma rendkívül sokrétű. Fontos a felsőoktatási képzés harmonizálása, továbbfejlesztése, de ugyanúgy az ipari képzéseket is tovább kell fejleszteni, szervezettebb mederbe terelni, esetleg egyéb kapcsolódó területekkel együtt, mint például a követelménykezelés és projektmenedzsment.
Elsődlegesen a felsőoktatásban lenne szükség jelentősebb fejlesztésekre, ugyanis a fentiek értelmében még eléggé kezdeti fázisban vagyunk, illetve jelenleg még viszonylag nagy a rés a kimeneti tudás és az ipari elvárás között. Természetesen az intézményektől nem várható el, hogy minden hallgatót naprakész tudással lássanak el, de a jelenleginél azért sokkal szervezettebben, összehangoltabban lehetne megtervezni a programokat. A jelenleg vezető intézmények kínálatát elemezve az alábbi fejlettségi szintek, illetve fázisok tapasztalhatók:
- kezdeti fejlettség - ez 1-2 általános törzstárgy keretén belül kínált néhány órás külön foglalkozást jelent a témával
- fejlődő fázis - 1-2 speciális kurzus, például speciálkollégium meghirdetését jelenti bizonyos szakokon, választható tárgyként. A tárgyak sokszor meghívott előadókkal tarkítottak
- tervezett képzés, amelyben már tudatosan összeállított képzési program keretében legalább 2-3 tárgy foglalkozik a teszteléssel, közöttük törzstárgy is van
- speciális szakirány
- szoftvertesztelő szak (országosan akkreditált).
Mint látható, jelenleg legjobb esetben is csak a 2. szinten helyezkednek el az intézményeink, míg a külön szakirány és szak egyelőre még csak távoli vízió. Azonban már most elkezdhetünk gondolkodni egy ilyen jövőbeli szak struktúrájáról azért, hogy ha a megfelelő feltételek rendelkezésre állnak, elkezdődhessenek az előkészületek. Egy lehetséges kompetencialista (amely a tapasztalat és az ajánlások alapján levezethető) az alábbiakat tartalmazhatná:
- programozási alapok, nyelvek
- operációs rendszerek
- szoftverfejlesztési ismeretek, software engineering
- követelmények kezelése, requirements engineering
- szoftverminőség általános megközelítése, ISO, egyéb szabványok, software quality
- folyamatmenedzsment, modellek, IT-menedzsment: COBIT, ITIL, ...
- eszközhasználat: konfigurációmenedzsment, eseménykezelés, egyéb eszközök
- üzleti aspektusok, projektmenedzsment, gazdasági ismeretek, költségbecslés
- végül, de nem utolsósorban nemzetközi ajánlások alapján történő tesztelői képzés, legalább ISTQB Foundation és Advanced szintek.
A fentiek kiegészülnek a speciális, teszteléssel foglalkozó doktori képzéssel, valamint a tudományos kutatási programokkal.
Nagyon fontos a gyakorlati tudás megszerzése, amihez hozzájárulhat az ipari kapcsolatok erősítése, ipari résztvevők bevonása a képzésbe. Ez elképzelhető lenne például kötelező szakmai gyakorlat keretében.
Az előbbiekben vázoltak mind szükségesek kompetens szoftvertesztelő szakemberek „előállításához", és látható, hogy ezek teljes megvalósítása több, egymásra épülő kurzus elvégzését jelenti. Kidolgozásuk sok erőfeszítést és időt igényel, de talán hamarosan külön, fejlesztőkkel egyenértékű szakon képezhetjük tesztelőinket...
Rövid távú realitás, és amit tehetünk
De maradva a realitás talaján, először is fontos megteremteni és elmélyíteni a felsőoktatás és az ipar kommunikációját és együttműködését a témában. Az egyetemektől nem várható el, hogy naprakész szakembereket képezzenek, akik minden környezetben kis ráfordítással, szinte azonnal bevethetők. Az egyetemek és főiskolák képzési programjai természetüknél fogva nagy tehetetlenséggel bírnak, amit tudomásul kell venni, és amihez igazodni kell. Ugyanakkor alapvető kötelességük ezen intézményeknek a stabil alap biztosítása, megfelelő általános alapismeretek elmélyítése. A technológiai különlegességek később pótolhatók az adott munkakör ellátásához szükséges mértékben.
Ennek egy lehetséges módja az, hogy az iparral konzultálva a felsőoktatási intézmények kidolgozzák az általános képzési programokat, ideális esetben egymással intenzíven együttműködve, így esetleg csereszabatos tematikákat eredményezve. Ezenfelül létre kell hozni a különböző szakterületekre vonatkozó speciális kurzusokat, amelyeket a hallgatók az igényeknek megfelelően választhatnának. E speciális képzéseknek viszont nagyon flexibiliseknek kell lenniük, az ipari igényekre való gyors reagálási móddal.
Ezt azonban csak az iparral szoros együttműködésben lehet megvalósítani, ami áldozatokkal jár mindkét fél részéről. Az egyetemi oktatóktól nem várható el az a fajta gyors tanulás, amit a képzések ellátása igényelne, ezért az ipar segítsége megkerülhetetlen. Szerencsére több lehetőség is adódik erre.
Az ipari képviselők támogathatják például a különböző laborok kiépítését, képzési anyagok előállítását, vendégoktatók biztosítását, különböző szakmai gyakorlatok szervezését, szakdolgozattémákat stb.
Rövid távon is több dolgot tehetünk a cél érdekében. Először is, fontos lenne a nemzetközi ajánlások minél elszántabb követése, például az ISTQB rendszer beépítése a felsőoktatási képzésekbe. Másodszor, az egyes intézmények már most elkezdhetik saját tematikáik összehangolását és szorosabb kapcsolatok kiépítését. Ez jelentheti például az oktatók és diákok cserefoglalkoztatását, vendégelőadók meghívását, közös szakdolgozati és doktori témák meghirdetését, záróvizsga tételsorok közös kidolgozását stb.
Végül, de nem utolsósorban, rendkívül fontos a szakmai közösségek felélesztése és életben tartása, amely különböző rendezvények szervezésében, internetes fórumok üzemeltetésében és egyéb médiumok, hírlevelek, folyóiratok kiadásában nyilvánulhat meg. Ebben nagy segítség lehet az olyan szervezetek közreműködése, mint a HTB vagy az IDG.