[Java lista] Szoftver-tesztelés
Istvan Verhas
istvan at verhas.com
2010. Sze. 7., K, 14:29:51 CEST
Valójában nem is a fejlesztő/szállító cég feladata a User Acceptance Test elvégzése, hanem a User vagyis a vevő feladata és költsége. Ideális esetben ez a tevékenység a minőségbiztosítás része és egy harmadik független (a szállítótól független) fél végzi el.
Azt én is tudom, hogy az elmélet és a gyakorlat csak elméletben azonos.
Azért néha mégsem árt átgondolni, hogy mi az amitől eltérünk és mennyire. Számomra a másik rendszer fejlesztőjének mocskolása nem elfogadható. Már csak azért is érdemes ezzel óvatosnak lenni, mert lehet, hogy ő letesztelte tisztességesen és dokumentálni is tudja. Hosszútávon mindenképp kifizetődő az "egyetemi szintű" tesztelés.
Én mockolok nem mocskolok.
ü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 7, 2010, at 7:55 AM, Gábriel Ákos wrote:
> 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
>
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
--------- következő rész ---------
Egy nem text típusú csatolt állomány át lett konvertálva...
Név: smime.p7s
Típus: application/pkcs7-signature
Méret: 3792 bytes
Leírás: nem elérhető
Url : http://javagrund.hu/pipermail/javalist/attachments/20100907/97de23df/attachment.bin
További információk a(z) Javalist levelezőlistáról