Éles adatokkal való tesztelés kihívásai
A minőségi tesztadat előállítása nem is olyan egyszerű, mint azt elsőre gondolnánk. Pláne akkor nem amikor „érzékeny“, személyes információkat tartalmazó adatbázisokkal dolgozunk. Hogyan lehetséges még is az adatok megfelelő személytelenítése? Milyen eszközök és módszerek állnak rendelkezésünkre?
Sokan komoly kihívásnak találják a használható (éles) tesztadatok megszerzését. A nagy rendszereknek az a problémája, hogy a tesztelők egyesével nem tudnak elegendő mennyiségű és változatos tesztadatot produkálni. Hiába léteznek generáló eszközök, azok nem képesek annyira változatos és szerteágazó adatokat nyújtani, minSokan komoly kihívásnak találják a használható (éles) tesztadatok megszerzését. A nagy rendszereknek az a problémája, hogy a tesztelők egyesével nem tudnak elegendő mennyiségű és változatos tesztadatot produkálni. Hiába léteznek generáló eszközök, azok nem képesek annyira változatos és szerteágazó adatokat nyújtani, mint amilyenek a való életben is előfordulnak. Ezen okból kifolyólag rengeteg ügyfelem fontolgatja, hogy az évek során a különböző verziójú rendszerekben felhalmozódott, nagy mennyiségű éles adatokkal fog tesztelni.
Mindazonáltal nem árt figyelembe venni, hogy az éles adatok gyakran személyes információkat is tartalmaznak, amelyekkel elővigyázatosan kell bánnunk. Azonban tesztelésnél ezen adatok biztonságos kezelése sok nemkívánatos akadályt és kényszerhelyzetet teremt, ezért sok szervezet a tesztelés idejére anonimizálni kívánja az éles adatait.
Ez a fajta személytelenítés azonban további kihívásokhoz vezet, hiszen maga a folyamatnak is biztonságosan kell történnie: visszafordíthatatlanul, nehogy rossz kezekbe kerüljenek a kényes információk.
Például a következő számmal vagy betűvel történő behelyettesítés túlságosan egyértelmű lenne mindenki számára, és megkönnyítené a visszaalakítást – hamar kitalálható, hogy „Kpio Cspxo” valójában „John Brown”.
Arról nem is beszélve, hogy az ilyen”Kpio Cspxo”-féle információ gyenge tesztadatot jelent, mivel nem minősül valósnak. A személytelenítési eljárásnak meg kell őriznie az adat hasznosságát a lokalizációs és a funkcionális tesztekhez, ami gyakran jár az értelmének és jelentésének megőrzésével. Amennyiben az anonimizálási eljárás kicseréli „John Brown”-t „Lester Camden”-re, egy értelmes férfinevet kapunk, ami teljesen jól használható a funkcionális tesztelésben. Ha azonban „John Brown”-t „Charlotte Dostoyevsky”-re cseréljük, egy férfiből máris nő lett, és sérült az információ.
Az adat jelentésének megőrzése azért is fontos, mert képesnek kell lennie arra, hogy a segítségével felépíthessünk olyan lekérdezéseket, nézeteket és kapcsolódásokat, amik megfelelnek az éles adatok lekérdezéseinek, nézeteinek valamint kapcsolódásainak. Tehát ha az éles lekérdezés a „John Brown” kifejezésre 20 adatot eredményez, akkor a „Lester Camden”-nek a módosított adatokkal dolgozva is ki kell dobnia 20 találatot. Ha figyelmen kívül hagyjuk ezeket a követelményeket, bizonyos funkcionális teszteknél komoly hibák felett léphetünk át, csakúgy mint a megbízhatósági vagy teljesítményteszteknél.
Még ennél is nagyobb kihívás az információ hasznosságának megőrzése az integrációs tesztek esetén. Képzeljünk el három különböző alkalmazást, amik éveken át gyűjtik az adatokat ugyanarról a lakosságról. A három adatbázisban tárolt információkon az alkalmazások együttműködve osztoznak, és rajtuk keresztül hozzáférnek az összefüggésekhez. Egyes személyek valós adataihoz létrehozhatnak tényleges idegen kulcsokat, mint pl. társadalombiztosítási szám és hasonlók.
Ha a személytelenítési folyamat úgy keveri össze az adatokat, hogy megtörnek ezek a sérthetetlen kulcsok, kapcsolatok, akkor az anonimizált adat hasznossága is megszakad az integrációs tesztek során, így ebben az esetben lehetetlenné válik egy értelmesen felépített, egymáshoz illesztett, funkcionális, teljesítmény-, megbízhatósági és biztonsági tesztelés. Legtöbb ügyfelünknek az adatok hasznosságának megőrzése jelenti a legnagyobb kihívást a tesztek során.
Továbbá a személytelenítési eljárás nem változtathatja meg az összesített információk minőségét, mivel a legtöbb éles adat nagyszámú hibát tartalmaz. Számítások alapján négy bejegyzésből egy hibás. Ha ragaszkodni szeretnénk az adatok minél hitelesebb mivoltához, ezért ugyanazoknak a bejegyzéseknek hasonlóan hibásnak kell lenniük mindkét adatbázisban: az éles adatokban és a tesztadatokban is.
A jó tesztadat tulajdonsága a karbantarthatóság, vagyis a személytelenített információt is fel kell vele ruházni. Ez annyit jelent, hogy képesek vagyunk módosítani, hozzáadni és törölni belőle. Igaznak kell lennie minden egyes beviteli mezőre, minden rekordra és az adatbázisokon átívelő logikai adatokra is. A karbantarthatóság megőrzése jelenti azt is, hogy az anonimizálási eljárás során ne kerüljenek bele súlyosabb, időigényesebb hibák, mint amik az eredeti éles adatokban szerepelnek.
Két egyéb gyakorlati kihívás merül fel a személytelenítési folyamat során. Az első az elvégzéséhez szükséges idő és erőfeszítés kérdése. Egyik ügyfelem elmondta, hogy ők csak minden 12-18 havonta frissítették a tesztadatokat (az éles rendszerből), mert a frissítési, személytelenítési folyamat 4-6 fő egyhavi munkáját igényelte. Egy olyan cégnél, ahol minden munkatárs ugyanazon a projekten tölti az idejét, a vezetők a költségvetés pazarlásának érzik az ilyesmit.
A másik gyakorlati kihívás az ún. „csendes adatok” kezelése, más szóval a nem cserélhető adatok személytelenítése. Ez nem különösebben összetett folyamat: egyszerű, mint egy adatbázis mentés, de a személytelenített adatok előállításáért felelős szakembernek fokozott óvatossággal kell eljárnia.
Éles adatok személytelenítésére bőséges választékban találunk kereskedelemben kapható és egyedi fejlesztésű eszközt is. Össze kell hívni a csapatot, meghatározni a használni kívánt alkalmazás tulajdonságait, felmérni a kockázatokat és a projekt korlátait, kiértékelni, majd kiválasztani a megfelelő eszközt! Ebben az esetben tipikusan nagyobb projektekben történő számos éles adat személytelenítése, tesztadattá konvertálása a feladat. Tapasztalataink alapján az ilyen projektek gondos tervezést igényelnek, különös tekintettel kell figyelni a személyteleníteni kívánt adatok követelményeire és az anonimizálás menetére. Minden szervezetnek előre fel kell készülni a jelentős idő- és anyagi befektetésre. Megpróbálhatjuk költséghatékonyan is végrehajtani a személytelenítési eljárást, de ebben az esetben számíthatunk a fent említett kihívások hibás eredményeire. Azonban gondos tervezéssel és végrehajtással nyugodtan nekikezdhetünk a anonimizált éles adatok tesztelési felhasználásához.
t amilyenek a való életben is előfordulnak. Ezen okból kifolyólag rengeteg ügyfelem fontolgatja, hogy az évek során a különböző verziójú rendszerekben felhalmozódott, nagy mennyiségű éles adatokkal fog tesztelni.
Mindazonáltal nem árt figyelembe venni, hogy az éles adatok gyakran személyes információkat is tartalmaznak, amelyekkel elővigyázatosan kell bánnunk. Azonban tesztelésnél ezen adatok biztonságos kezelése sok nemkívánatos akadályt és kényszerhelyzetet teremt, ezért sok szervezet a tesztelés idejére anonimizálni kívánja az éles adatait.
Ez a fajta személytelenítés azonban további kihívásokhoz vezet, hiszen maga a folyamatnak is biztonságosan kell történnie: visszafordíthatatlanul, nehogy rossz kezekbe kerüljenek a kényes információk.
Például a következő számmal vagy betűvel történő behelyettesítés túlságosan egyértelmű lenne mindenki számára, és megkönnyítené a visszaalakítást – hamar kitalálható, hogy „Kpio Cspxo” valójában „John Brown”.
Arról nem is beszélve, hogy az ilyen”Kpio Cspxo”-féle információ gyenge tesztadatot jelent, mivel nem minősül valósnak. A személytelenítési eljárásnak meg kell őriznie az adat hasznosságát a lokalizációs és a funkcionális tesztekhez, ami gyakran jár az értelmének és jelentésének megőrzésével. Amennyiben az anonimizálási eljárás kicseréli „John Brown”-t „Lester Camden”-re, egy értelmes férfinevet kapunk, ami teljesen jól használható a funkcionális tesztelésben. Ha azonban „John Brown”-t „Charlotte Dostoyevsky”-re cseréljük, egy férfiből máris nő lett, és sérült az információ.
Az adat jelentésének megőrzése azért is fontos, mert képesnek kell lennie arra, hogy a segítségével felépíthessünk olyan lekérdezéseket, nézeteket és kapcsolódásokat, amik megfelelnek az éles adatok lekérdezéseinek, nézeteinek valamint kapcsolódásainak. Tehát ha az éles lekérdezés a „John Brown” kifejezésre 20 adatot eredményez, akkor a „Lester Camden”-nek a módosított adatokkal dolgozva is ki kell dobnia 20 találatot. Ha figyelmen kívül hagyjuk ezeket a követelményeket, bizonyos funkcionális teszteknél komoly hibák felett léphetünk át, csakúgy mint a megbízhatósági vagy teljesítményteszteknél.
Még ennél is nagyobb kihívás az információ hasznosságának megőrzése az integrációs tesztek esetén. Képzeljünk el három különböző alkalmazást, amik éveken át gyűjtik az adatokat ugyanarról a lakosságról. A három adatbázisban tárolt információkon az alkalmazások együttműködve osztoznak, és rajtuk keresztül hozzáférnek az összefüggésekhez. Egyes személyek valós adataihoz létrehozhatnak tényleges idegen kulcsokat, mint pl. társadalombiztosítási szám és hasonlók.
Ha a személytelenítési folyamat úgy keveri össze az adatokat, hogy megtörnek ezek a sérthetetlen kulcsok, kapcsolatok, akkor az anonimizált adat hasznossága is megszakad az integrációs tesztek során, így ebben az esetben lehetetlenné válik egy értelmesen felépített, egymáshoz illesztett, funkcionális, teljesítmény-, megbízhatósági és biztonsági tesztelés. Legtöbb ügyfelünknek az adatok hasznosságának megőrzése jelenti a legnagyobb kihívást a tesztek során.
Továbbá a személytelenítési eljárás nem változtathatja meg az összesített információk minőségét, mivel a legtöbb éles adat nagyszámú hibát tartalmaz. Számítások alapján négy bejegyzésből egy hibás. Ha ragaszkodni szeretnénk az adatok minél hitelesebb mivoltához, ezért ugyanazoknak a bejegyzéseknek hasonlóan hibásnak kell lenniük mindkét adatbázisban: az éles adatokban és a tesztadatokban is.
A jó tesztadat tulajdonsága a karbantarthatóság, vagyis a személytelenített információt is fel kell vele ruházni. Ez annyit jelent, hogy képesek vagyunk módosítani, hozzáadni és törölni belőle. Igaznak kell lennie minden egyes beviteli mezőre, minden rekordra és az adatbázisokon átívelő logikai adatokra is. A karbantarthatóság megőrzése jelenti azt is, hogy az anonimizálási eljárás során ne kerüljenek bele súlyosabb, időigényesebb hibák, mint amik az eredeti éles adatokban szerepelnek.
Két egyéb gyakorlati kihívás merül fel a személytelenítési folyamat során. Az első az elvégzéséhez szükséges idő és erőfeszítés kérdése. Egyik ügyfelem elmondta, hogy ők csak minden 12-18 havonta frissítették a tesztadatokat (az éles rendszerből), mert a frissítési, személytelenítési folyamat 4-6 fő egyhavi munkáját igényelte. Egy olyan cégnél, ahol minden munkatárs ugyanazon a projekten tölti az idejét, a vezetők a költségvetés pazarlásának érzik az ilyesmit.
A másik gyakorlati kihívás az ún. „csendes adatok” kezelése, más szóval a nem cserélhető adatok személytelenítése. Ez nem különösebben összetett folyamat: egyszerű, mint egy adatbázis mentés, de a személytelenített adatok előállításáért felelős szakembernek fokozott óvatossággal kell eljárnia.
Éles adatok személytelenítésére bőséges választékban találunk kereskedelemben kapható és egyedi fejlesztésű eszközt is. Össze kell hívni a csapatot, meghatározni a használni kívánt alkalmazás tulajdonságait, felmérni a kockázatokat és a projekt korlátait, kiértékelni, majd kiválasztani a megfelelő eszközt! Ebben az esetben tipikusan nagyobb projektekben történő számos éles adat személytelenítése, tesztadattá konvertálása a feladat. Tapasztalataink alapján az ilyen projektek gondos tervezést igényelnek, különös tekintettel kell figyelni a személyteleníteni kívánt adatok követelményeire és az anonimizálás menetére. Minden szervezetnek előre fel kell készülni a jelentős idő- és anyagi befektetésre. Megpróbálhatjuk költséghatékonyan is végrehajtani a személytelenítési eljárást, de ebben az esetben számíthatunk a fent említett kihívások hibás eredményeire. Azonban gondos tervezéssel és végrehajtással nyugodtan nekikezdhetünk a anonimizált éles adatok tesztelési felhasználásához.
Szerző: Rex Black
A szerző
- Negyed százados tapasztalattal a háta mögött Rex Black a szoftver-, hardver- és rendszertesztelésben élen járó RBCS (www.rbcsus.com) elnöke. Több, mint 15 éve biztosítanak tanácsadói, kiközvetítői és képzési szolgáltatásokat sikeres nagyvállalatok vagy éppen induló vállalkozások számára. Rex egyben a volt elnöke is a Nemzetközi Szoftver Tesztelés Minősítő Bizottságnak és az Amerikai Szoftver Tesztelés Minősítő Bizottságnak is. Rex nyolc könyvet publikált, melyekből több, mint 50 000 példány kelt el, japán, magyar, kínai, indiai, héber és orosz nyelven. Több, mint harminc cikket írt, több száz oldalnyi prezentációt, gyakorlatot és szemináriumot tartott, és vagy ötven alkalommal tartott beszédet konferenciákon a világ számos pontján. Rex az alábbi címen érhető el: rex_black@rbcs-us.com