• ENG

A Catura Zrt. és a ProofIT Kft. szakemberei által kidolgozott termék egy, a nagy informatikai rendszerek fejlesztésében és tesztelésében szerzett konkrét tapasztalatokon és a legkorszerűbb nemzetközi tesztelési megoldások elveinek felhasználásán alapuló szolgáltatás csomag, mely a műszaki minőségi és megbízhatósági előnyök mellett a legtöbb esetben konkrét költségcsökkentést is eredményezhet. A kulcsa egy kiterjedt tesztautomatizmus illetve a köré épített integrációs fejlesztés és módszertan, az eredménye pedig egy az alkalmazásfejlesztésekhez és üzemeltetéshez (beleértve a CR-ek, verzióváltások során szükséges ellenőrzéseket) kapcsolódó minőségbiztosítási eljárás. Az eljárás többrétegű alkalmazások esetében, a gyakorlatban használt legtöbb technológiai környezetben jól alkalmazható.

 

ACE - Automated Conformance Evaluation

Automatizált tesztelő eszköz és módszertan

Tesztelés

A tesztelés folyamata

A megfelelő minőségű és mélységű tesztelés kiemelkedő jelentőségű az összetett IT alkalmazások üzemeltetése kapcsán, azok életciklusának bármely periódusában:

A specifikációk sohasem tökéletesen pontosak és nincs alkalmazás, amely maradéktalanul kielégíti a specifikációkat. A fejlesztés során használt minőségbiztosítási eszközök nem tudják garantálni az üzleti helyességet, különösen amikor az üzleti elvárások gyorsabban változnak, mint az alkalmazott technológia.

Bármely alkalmazás működtetése során számtalan - előre nem tervezhető és modellezhető - együtthatás/mellékhatás eredőjével kell számolni. Egy már működő alkalmazáson történő változtatáskor nem csak az érintett elemek funkcionalitását szükséges vizsgálni, hanem a „nem mozduló” részeket is fontos újra tesztelni.

Nehézségek és kompromisszumok

  • Minél összetettebb folyamatokat kezel egy szoftver megoldás, annál nagyobb a teljes állapottérre vetített hibalehetőség valószínűsége. Egy-egy tesztmódszer csak szűk értékelésre ad lehetőséget (pl. performancia, integrációs, user acceptance).

  • A hagyományos tesztelés drága és sok erőforrást emészt fel. A projektek általában csúsznak és a végső, legfontosabb tesztelés csökkentésén igyekeznek behozni a lemaradást. Az elégtelen tesztelés a legkritikusabb „Go Live” döntés előtt kényszerít kockázatvállalásra. Később az “éles” rendszerben jelentkező hiba azonban sokszorosan drágább és nehezebben javítható lesz, mint a korábban detektált.

  • A minőség és az üzlethelyes működés elválaszthatatlan fogalmak, amelyeket csak teszteléssel lehet biztosítani Az üzleti elvárások azonban a szükségesnél rövidebbre szabják a fejlesztési ciklus időigényét. Ezzel párosul, hogy a rendszertervezési fázisban nem kellő mélységben határozzák meg az elvégzendő teszteket, illetve az átadás-átvétel pontos feltételeit, amelyek lehetővé tennék az üzleti szempontok egzakt bizonyítását, a megfelelőség mérhetőségét.

  • A nem megfelelő mélységű és minőségű tesztelések, a regressziós tesztek és a hibaágak tesztelésének elhagyása rengeteg rejtett hibát eredményez a produkciós környezetekben.

  • A tesztelők is emberek és hibáznak. A tesztelői hibák gyakran elfedik a rendszer hibáit.

A tesztelés fokozott szerepe harmóniában az üzleti hatékonysággal

  • Magasabb minőségű tesztelés
    Méri a működés és az üzleti helyesség megfelelőségét.
    Nem változtatja meg és nem befolyásolja az alkalmazást.
    Megismételhető, bizonyítható eredményű, determinisztikus.

  • Minél kiterjedtebb, minél nagyobb számú teszteset futtatása
    Teszteli az elvárt hibaágakat is.
    A regressziós teszteket automatikusan újrafuttatja.
    A tesztfeladatok elkészítése nem igényel informatikai képzettséget

  • Csökkentett idő és költség ráfordítás
    Amit felkészített tesztelők elvégezhetnek, automatikusan is végrehajtható.
    A teszteléseket követő teljes dokumentáció automatikusan rendelkezésre áll.
    Tesztesetek generálása is automatizálható, öntanuló folyamatként.

 

Infrastruktúra és módszertan

ACE infrastruktúra

Az ACE nagy informatikai rendszerek fejlesztésében és tesztelésében szerzett konkrét tapasztalatokra és a legkorszerűbb nemzetközi tesztelési eljárások elveinek felhasználására alapul. Kulcsa egy kiterjedt tesztautomatizmus és a köré épített integrációs fejlesztés, amely saját termékelemeket tartalmaz. Az ACE túlmutat a már fellelhető kereskedelmi termékeken, de – adott esetben – ezekkel kombinálva is használható.

A megoldás magját képező legfontosabb elemeket az alábbi ábra szemlélteti:

ACE infrastruktúra

Automatikusan létrehozott tesztesetek

Az ACE fontos eleme a teszteseteket definiáló formalizmus, amely kapcsolódik az üzleti logika specifikációjához, és elősegíti a megvalósítandó funkciók és azok jellemző paramétereinek pontosabb definícióját. Hatása olyan, mint ha sok tesztelő ülne az alkalmazás előtt, és a tesztesetek illetve a paraméterek teljes permutációját végrehajtanák rajta.

A tesztesetek számossága – a hibaágak lefedése esetén – hatalmasra nő, egy ablakban 9 kitöltendő mező alapján például több mint 73 millió variáció lehetséges. Ennyi tesztet nem lehet a gyakorlatban végrehajtani.

A közelmúltban publikált tanulmányok szerint a legtöbb típusú alkalmazás esetében a legalább 4 feltétel együttes előfordulásakor (4-ed rendű kombináció) bekövetkező helytelen viselkedések detektálásával az összes hiba közel 100%-át felderítettnek lehet tekinteni. Ezt kihasználva, megfelelően előállított tesztkombinációkkal a fenti 73 millió esetet az ACE adott algoritmus alapján képes 488 tesztesetre csökkenteni, amely már kezelhető mennyiség.

Módszertan

Az ACE alkalmas Black Box tesztelésre, amikor a tesztesetek készítésekor a specifikáció és a tesztelendő alkalmazás felépítése nem ismert. Az automatizmus támogatja a szabály vagy minta alapú teszteset-előkészítést. A regressziós tesztek mindkét esetben akárhány alkalommal végrehajthatók, a tesztesetek permutációját az automatizmus valósítja meg.
Minta alapú Black Box tesztelés esetén az ACE egy rácsot használ, mely lefedi a tesztelendő alkalmazás kitöltendő mezőit. A mintákat a rácson keresztül szemlélt mezőkben rögzíti, a teszteseteket pedig automatikusan generálja.

Az ACE képes White Box tesztelésre is, amikor a szoftver specifikáció, a felépítés és az üzleti elvárások ismertek. Ez esetben az ismételhető regressziós teszteken és az automatikusan generálható teszteseteken kívül a tesztelési feladatok beépíthetőek a fejlesztési módszertanba. Így a tesztfeladatok előírása és azok maradéktalan teljesítése határozza meg az átvétel feltételrendszerét. Az ACE minőségbiztosítási rendszerként működik: az üzleti funkciók és az elfogadási feltételek pontosan meghatározottak, a megrendelő és szállító közötti kommunikáció javul. Az üzleti helyesség mérhetővé válik.

Az ACE tesztelés erőforrás igénye

A tervezés és tesztesetek definiálása több energiát és időt emészt fel az ACE módszertan alkalmazásakor mint hagyományos esetben. A teszteseteket le kell kódolni az automatikus futtatáshoz. Ezután azonban a tesztek akárhányszor és akármikor futtathatók rendkívül kis költséggel. A teszteket nem befolyásolja az emberi hibák faktora és az emberi erőforrást magasabb minőségű feladatok végzésére lehet fordítani.

Hagyományos tesztelés Hagyományos tesztelés

ACE Automatizált tesztelés ACE Automatzált tesztelés

ACE Case study

A HBO nevű alkalmazásunk 400 - 500 emberhónap fejlesztés után készült el. Jellemző paraméterei: 2.5 TB adatbázis, 4.5 millió sor programkód (a nemzetközi statisztikák szerint minden 1000 sorban van egy hiba), 700+ üzleti funkció, napi 250.000 on-line tranzakció.

2000 tesztesetet készítettük el 100 üzleti funkcióra WHITE BOX módszerrel. Ez két emberhónap ráfordítást igényelt az automatikus teszt generátor nélkül.

A leghatékonyabb tesztelési automatizmus fél óra alatt 1 emberhétnyi tesztelési munkát végez el. A tesztelés tetszés szerinti időpontban és számosságban ismételhető. A tesztdefiníció üzleti alapú, folyamat megközelítésű. A valós eredmények, értékelhető riportok megalapozott döntés-támogatást biztosítanak.

 

Üzleti előnyök

Előnyök az üzleti menedzsment számára

  • Pontosan definiált üzleti elvárások gyorsabban és precízebben teljesülnek.
  • Az üzleti megfelelés mérhetővé válik.
  • A fejlesztői és CR ciklusok időigénye lerövidül, az idő szorításából adódó kockázat csökken.
  • Hatékonyabb, gyorsabb tesztelési folyamat kevesebb erőforrás bevonásával és kevesebb költség mellett.
  • Garancia a fejlesztések, módosítások minőségére és üzleti helyességére.
  • Az alkalmazás öntanuló képessége időt takarít meg az üzleti tesztesetek készítése és újradefiniálása során.

Előnyök az IT üzemeltetés számára

  • Az átfogó és alapos tesztelés növeli az üzembiztonságot, az üzemvitel során előforduló hibák számát csökkenti, a hibakezelést egyszerűsíti.
  • A pontosan definiált elfogadási feltételek és üzleti helyesség követelmények lerövidítik a beüzemelési időt.
  • A teszteredmények automatikusan rögzítésre kerülnek, adott események előfordulásához riasztások vagy cselekvési tervek rendelhetők.
  • Az elkészített regressziós tesztek bármikor újrafuttathatók, a későbbi CR-ekbe beépíthetők.
  • Természetes és jól definiált felelősségi körök az alkalmazás fejlesztése és üzemeltetése kapcsán

Előnyök a fejlesztő számára

  • A megfelelőség követelmény-rendszerének pontosabb definiálása gyorsabbá és hatékonyabbá teszi a fejlesztési és az átvételi fázist és egyszerűbbé a kapcsolódó fizetési ciklust elkerülve a vitákat és késedelmeket.
  • Több, átfogóbb tesztelés jobb minőséget és ügyfél-elégedettséget eredményez.
  • A tesztelésre használt erőforrások és idő csökkenése árelőnyt és/vagy profit növekedést jelent.