Ma egy vendégszerzőt üdvözlünk, aki kicsit talán jobban ért a teszteléshez és a minőségbiztosításhoz mint jó magam. SzánDor írása következik.
Üdvözlet minden kedves Olvasónak!
Kaptam egy páratlan lehetőséget a blog Háziasszonyától, hogy egy cikk erejéig bepofátlankodhassak az elektronikus naplójába. Nem is szaporítanám a szót, jöjjön egy rövid bemutatkozás, aztán csapjunk is a virtuális lecsóba!
Még az ókorban az egyetemen én is programtervező informatikusként kezdtem a karrieremet. És bár döcögve, néhol gyorsabban, néhol lassabban, de végül felértem a hegymenet tetejére, és megszereztem én is a BSC-seknek járó díszes papírfecnit, amivel rögtön bele is vetettem magam a multinacionális cégek kubikrendszerének sötét dzsungelébe.
Világéletemben tesztelői beállítottságú voltam, bár a fejlesztés is vonzott kicsit, hosszabb távon nem szerettem volna élvezni a programozás alkotói örömeit. Már az egyetem alatt jobban el kezdett érdekelni a szoftvertesztelés, melyhez sajnos egyetlen tantárgy nyújtott szilárd talajt, a rendszerfejlesztés és technológia. (Érdekesség: a debreceni egyetemen ezt a tárgyat semelyik más informatikai szakon nem tanítják, pedig nagyon sokat adott a világszemléletemhez.)
De SzánDóóór, hogy lehet az, hogy Téged nem vonzanak a kódolás örömei? Miért nem hoznak lázba a bonyolult kódok létrehozásának, karbantartásának és refaktorálásának csodálatos élményei?
Már az egyetem alatt sikerült diákmunkásként (rögtön a húsüzemi ipari besegítő után) egy irodai munkában elhelyezkednem, egy azóta már jobb létre szenderült szoftverfejlesztő cégnél. Felvettek szoftvertesztelőnek részmunka időbe, és a tesztelőkkel viszonylag gyorsan szoros, baráti kapcsolatot tudtam kialakítani. Utána pedig egy félig fejlesztő, félig tesztelő munkakörbe kerültem egy internacionális céghez, jelenleg pedig teljesen felhagyva ezekkel a technikai szupporttal foglalkozom, szorosan együttműködve a kód új fejlesztőivel.
Talán ez is hozzájárult később abban a szemléletemben, hogy a programozók nagy része kicsit túlértékeli a fejlesztés és hegesztés sokszínűségét és feljebbvalóságát. Na de SzánDóóór, hogy mondhatsz ilyet? Semmiből létrehozni egy gyönyörűen architektúrával és mindenre kitérő kivételkezeléssel rendelkező, olvasható kódot, az neked smafu? Mit tesztelnél okostojás, ha nem lenne valaki, aki létrehozza? (A: ezt én is kérdezhettem volna, de azt hiszem nem én voltam)
Sajnos személyes tapasztalatból tudom, hogy az összes fejlesztő (még én is) sokszor hoz létre olyan kódot, amit bár ő maga tesztelt, sajnos mindig hajlamos eltekinteni olyan hibáktól, amik mindenki számára nyilvánvaló. A teremtő mindig elfogult a gyermekével kapcsolatban, és gyakran védelmezi dühös páviánmamaként a kicsinyét (A: kerestem a páviántámadásról videót, hogy legen összehasonlítási alapunk), ha egy csúnya-csúnya tesztelő rávilágít a gondjaira… Volt rá példa, hogy egy tester egy automatikus teszt során valami elképesztő blődséget talált a kódban, és mikor óvatosan rámutatott, a kód készítője hetekig nem szólt hozzá. Német cégeknél (ahogy én hallottam), a tesztelők beszólásait egyáltalán nem tolerálják, inkább a fejlesztő ír saját magának automatizált teszteket, de még code review-ra sem hajlandó odaadni másnak a kódot. Fura, de azért kicsit érthető, ha a 6 hónapig fúrt-faragott eljárásomat vagy függvényemet egy tollvonással valaki, aki “mégis-honnan-jött-mit-képzel-magáról” dilettáns tesztelő (“aki mégcsak nem is fejleszt”) át akarja húzni… (A: Csapatmunka? Esetleg?)
A tesztelésnek mindig két oldala van, és néha érdemes oldalakat cserélgetni, hogy tanuljunk a másiktól is 🙂
Elterjedt tévhit, hogy a szoftvertesztelők lusták, egész nap csak “játszanak”, és abban lelik örömüket, hogy más kódját kritizálják. Ezzel szemben természetesen ott vannak a sztereotípiák a fejlesztőkről is, akik önzők, bunkók, és fennhéjázóak. Mindegyiknek van pici alapja, de én a mai napig hiszek egy barátságos, virágos mezőn kéz a kézben futkorászós fejlesztői-tesztelői heteró kapcsolatról, és személyes tapasztalataim azt mutatják, hogy megfelelő etikai módszerekkel gond nélkül el lehet érni egy hasonló, euforikus állapotot. Ehhez szeretnék nyújtani egy 5 + 5 pontos listát, mit NE csinálj, ha fejlesztő vagy, és mit NE, ha tesztelő…
5 dolog, amit ne csinálj fejlesztőként egy tesztelővel:
1) A szoftvertesztelőneknek is joga van a kávéhoz, és ugyanolyan értékes tagja a cégnek, mint Te, vagy Bözsi néni, aki kitakarítja utánad a budit. Becsüld meg!
2) Nem kell 5 percenként hangosan dicsekedni az aznap lefejlesztett feature-ödről, előbb-utóbb ő is látni fogja. Néha többször, mint Te.
3) Néha kérdezd meg a tesztelőt, akár a fejlesztés kezdeti szakaszában, mik lehetnek a potenciális hibás részek a kódodban. Hívd meg őket a nagy meetingekre. (A: és igyatok együtt kávét :))
4) Attól még, hogy szerinted unalmas, ne fikázd a tesztelő munkáját és hitbeli meggyőződését a munkájának fontosságáról.
5) Ne ugorj a tesztelő torkának, ha talált egy hibát a szépséges alkotásodban. Te sem lehetsz tökéletes.
5 dolog, amit ne csinálj tesztelőként egy fejlesztővel:
1) SOHA, azaz SOHA ne írj bele, töröld, vagy módosítsd a kódját. Szólj neki udvariasan, de a Jáva/C# tudásodat ne más kódjában villogtasd, ki tudja, mekkora beláthatatlan hibát okozol benne.
2) Ne tarts kiselőadást minden nap a tesztelés fontosságáról, inkább mutasd meg neki tényekkel és a lefuttatott eredményekkel, hasznos tagja vagy a csapatnak.
3) Ne cseszegesd határidőkkel a fejlesztőt, ezzel csak magadnak ásod a vermet.
4) Ne rugdosd meg stoplis cipővel a fejlesztőt, ha a kódja mordori nyelven íródott és csak ő tudja értelmezni. Próbáld meg udvariasan rávezetni a dokumentálás hasznosságára és az emberiség szebbik oldalára.
5) Ha szeretnél fejlődni a programozási tudásoddal, ne csesztesd állandóan ingyen oktatásért a kódolókat. Csak akkor zavard őket fejlesztési kérdésekkel, ha a válaszodra sem a Google, sem az útmutatók nem tudják a választ.
Remélem tudtam adni hasznos tanácsokat. És ne feledjétek, attól még, hogy unalmasak, a regressziós teszteknek nagyon nagy a hozzáadott értéke a kódhoz!
És most visszavenném a billentyűzetet. Köszönjük SzánDornak a hasznos írást, úgy gondolom, hogy neki sokkal jobban sikerült összeszednie ezeket a gondolatokat, mint nekem valaha is. Végszóként annyit tennék hozzá, hogy nem számít, hogy valaki fejlesztő vagy tesztelő, amíg hisz abban, hogy a munkájával értéket teremt hisz a célunk közös: egy jó terméket akarunk előállítani.