[Java lista] Szoftver-tesztelés

Gábriel Ákos akos.gabriel at i-logic.hu
2010. Sze. 7., K, 07:55:46 CEST


Kedves István,

Egyetemi szinten tökéletes amit írtál. De az élet nagyon sokszor mást
mutat. Ha valaki mint fejlesztő cég elkövette azt a hibát, hogy a külső
rendszerek "mockolását" nem vette bele a projekt scope-jába - márpedig
elköveti, mert másképp nem nyerhet, mert túl drága lesz - akkor ez így
marad. Ilyenkor politikailag egy módszer marad: addig kell mocskolni a
másik rendszer fejlesztőjét (joggal vagy anélkül) amíg a felhasználó
bele nem egyezik, hogy az ő költségére pluszban ki lehesen fejleszteni a
mockolást. Akinek van jobb ötlete, írja meg! :)

Üdv,
Ákos




On Tue, 2010-09-07 at 00:28 +0200, Istvan Verhas wrote:
> Szia Gábor!
> 
> Hosszú leveldből számomra az világli ki, hogy számodra a tesztelés egy összetett és bonyolultan egymáshoz kapcsolódó rendszerek esetén túl nagy falat. Van egy jó hírem, ez a nagy falat is megehető apránként. Persze több idő is kell hozzá mint egy szendvicshez. Konkrétan például a leírásodban folyamatosan keveredik a modul/rendszer szintű funkcionális teszt és az integrációs teszt. Modul/rendszer alatt értem azt amire azt írod, hogy belső vagyis amihez képest külső rendszerek is kapcsolódnak. A modul szintű funkcionális tesztelés során egyetlen külső rendszert sem szabad/célszerű bekapcsolni a tesztbe, hanem azok helyett mockolt külső szolgáltatásokkal kell tesztelni. Ideális esetben a partner(ek) is megteszik ezt és utána az integrációs teszt már csak egy pipa. A valóságban, amikor a partnerek ezt nem teszik meg, akkor is nagyon hasznos ez a szétválasztás mert amikor előjön a hiba az integrációs teszt során, akkor igen jó eséllyel tudsz rámutatni az éppen bekapcsolt külső szolgáltatásra mint hibaforrásra. Igen a külső rendszereket sem egyszerre célszerű bekapcsolni, hanem egyesével. Ha a funkcionális tesztelés automatizáltan futtatható, akkor ez nem okoz plusz költséget vagy elhanyagolható.
> Az integrációs teszt elvégzéséhez természetesen szükség van az integrációs teszt környezetre. Ha ez nem áll rendelkezésre akkor az előbbi ügymenet adott fázisában könnyebben menedzselhető a felelősség kérdése és nincs vagy legalábbis kevesebb az egymásra mutogatás.
> A classpath probléma maven-el is előfordulhat, de azért ahhoz nagyon ügyesnek kell lenni.
> üdv
> vi
>    
> Verhás István
> JIRA szakértő
> Verhás & Verhás Szoftver Manufaktúra Kft.
> istvan at verhas.com
> t: +36(30)3997117
> skype: verhasi
> 
> On Sep 5, 2010, at 10:18 PM, Auth Gábor wrote:
> 
> > Halihó!
> > 
> > 2010. szeptember 5. 21.11.07 dátummal András Csányi az alábbiakat írta:
> >>> Tegye fel a kezét, akinél egy közepesen összetett program a teszt- és az
> >>> éles környezetben azonosan viselkedett... :) 
> >>> Egy kezet se látok...  akkor meg minek annyit tesztelni? :D
> >> Gábor, közepesen összetett programteszt...?
> > 
> >  Mondom közepesen összetett program... :)
> > 
> >> Ha nem tudod megcsinálni azt, hogy a tesztkörnyezetben futó szoftver
> >> és az éles környezetben futó szoftver ugyanúgy viselkedjen, akkor
> >> valamit benéztél. :)
> > 
> >  Vagy nem láttál még közepesen összetett rendszert, ez kb. 5-10 millió 
> > programsortól kezdődik és legalább egy tucat külső rendszerhez kapcsolódik. 
> > Ekkora "saját" rendszert nem kihívás tesztelni, ha viszont SOA elvek mentén 
> > állandóan önmagát hívja keresztül-kasul, akkor az egész működését viszont 
> > igazi művészet - főképp, ha a kódbázis kétharmada a külső rendszerekkel való 
> > kommunikációért felelős... :)
> > 
> >  Ha ehhez hozzávesszük, hogy a külső rendszerek közül van, amelyiknek csak és 
> > kizárólag éles verziója van éles adatokkal, akkor ez eléggé aknamezővé teheti 
> > a teszteket, ilyenkor szokták a félősebb időszakokban azt mondani, hogy majd 
> > kieső órákban éles üzemben teszteljük, legfeljebb visszaállunk. :)
> > 
> >  Van eset, amikor a külső rendszernek van ugyan teszt környezete, de csak 
> > időnként érhető el, és akkor is jelentősen limitált teljesítménnyel. Ennél 
> > csak az rosszabb, amikor közös interfésze van az éles és teszt rendszernek, és 
> > a kérés egy paramétere - jó esetben ez egy flag, rossz esetben 0-y közötti 
> > azonosítóval teszt adatok, x-végtelen között éles azonosítók vannak, s ez 
> > rendelkezik arról, hogy most tesztelünk vagy éles üzemből érkező módosítást  
> > kérünk.
> > 
> >  Van olyan, amikor egy a külső rendszer teszt környezete egyben fejlesztői 
> > környezet (jobb esetben integrációs környezet), ekkor egy hibás válasz esetén 
> > tesztelő legyen a talpán, aki eldönti, hogy mi és hol okozta a hibát. 
> > 
> >  Van olyan, amikor nem a külső rendszer teszt környezete a hibás, hanem a két 
> > helyet összekötő (teszt- vagy backup-)hálózaton tesztelnek vagy javítanak a 
> > hálózatért felelős emberek, az öt évvel ezelőtt megszűnt cég meghalt 
> > fejlesztője által fejlesztett modul pedig misztikus hibaüzenetekkel 
> > szórakoztatja az üzemeltetést, aztán az üzemeltetés a fejlesztést, azok pedig 
> > hosszas tanácstalanság után halkan rákérdeznek, hogy a hálózattal van-e valami 
> > gond, mire kiderül, hogy van azzal gond, de a hálózatosok úgy gondolták, hogy 
> > 50 százalékos csomagvesztés egy teszt környezetben nem ok arra, hogy szóljanak 
> > róla.
> > 
> >  Van olyan, amikor egy-egy szerver költözik karbantartás vagy gépterem 
> > reorganizáció kapcsán, vagy az élesben éppen meghibásodott, ezért a teszt 
> > környezetből pótolták, és amíg megjön a megrendelt dolog, addig fél lábon vagy 
> > ülve kibírja a teszt rendszer az a három hónapocskát. Persze három hónapig 
> > csak álom a teszt és az éles azonos működése.
> > 
> >  Arról nem is beszélnék, amikor ránézésre szinte bitre ugyanaz az alkalmazás 
> > szerver teszt rendszeren gond nélkül működik, éles környezetben pedig az egyik 
> > láb baromságokat csinál - megtörtént eset. Nem kellett végül fekete kakast 
> > áldozni éjfélkor a gépteremben, az ok triviális volt. Volt két azonos - de 
> > eltérő verziójú - jar fájl a classpath-on, és valami fájlrendszerbeli ok miatt 
> > az összes szerver a jót találta meg elsőre, ezért nem próbálkozott meg a rossz 
> > betöltésével, a különc szerveren viszont a rosszat találta meg elsőre, ezért 
> > volt hibás - persze miért ne az éles környezetben történjen ilyen... :)
> > 
> >  További problémák lehetnek a működési paraméterek különbözősége, hiszen a 
> > teszt rendszernek teszt adatbázist kell elérnie, teszt felhasználókkal, és jól 
> > látható módon jeleznie kell minden felhasználóval való kapcsolata esetén, hogy 
> > teszt rendszerről van szó. Ezért az éles üzemhez más paraméterezéssel kell 
> > futnia, mint teszt környezetben, és itt szoktak eltérések mutatkozni, jó 
> > esetben feltűnő módon, esetleg működésképtelenséget okozva (hálózatilag 
> > elszeparált éles és teszt környezet), rossz esetben sunyi módon az éles üzembe 
> > tett modul a teszt környezethez csatlakozik, vagy fordítva.
> > 
> >  Ezen túl gyakori, hogy a teszt környezetben nincs annyi és olyan gép, hogy 
> > terheléses, illetve stressz teszteket lehessen futtatni. Gyakran éles üzemből 
> > levedlett gépek kerülnek a teszt környezetbe, gyakran még ilyen gépek se. 
> > Mostanában divat a virtualizáció, így sok esetben az éles környezet fizikai 
> > hardveren fut, a teszt környezet pedig virtualizálva, ez is jelenthet apró 
> > működésbeli különbségeket.
> > 
> >  Olyan céget igen keveset láttam, ahol sikerült volna elérni a "klasszikus" 
> > éles-, teszt-éles-, stressz-teszt- és/vagy QA-teszt-, felhasználói-teszt- 
> > és/vagy funkcionális-teszt-, illetve integrációs környezeteket. Olyat még 
> > egyet se, ahol ezek mind egyformán működtek volna... :)
> > 
> >  Szóval összefoglalva: egy közepesen összetett program és/vagy rendszer 
> > esetén én még nem láttam azonosan működő teszt és éles környezetet... :)
> > -- 
> > http://www.javaforum.hu -=- http://www.enaplo.hu
> > Auth Gábor -=- http://www.javaforum.hu/web/10/authgabor
> > _______________________________________________
> > Javalist mailing list
> > Javalist at javagrund.hu
> > http://javagrund.hu/mailman/listinfo/javalist
> 
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist


-- 
Üdvözlettel,
Gábriel Ákos



További információk a(z) Javalist levelezőlistáról