Kombinatorikus tesztelés

Mostanában megint kicsit aktívabban foglalkozom a szoftver tesztelés témájával, főleg a Szoftverellenőrzési technikák tárgyunk kapcsán. Csomó érdekes téma előkerült, aminek eddig kevesebb időm volt utánanézni, az egyik ilyen a kombinatorikus teszttesztelési technikák.

Az alap probléma az, hogy adott a tesztelendő rendszerünk / modulunk, aminek sok bemeneti paramétere van. Ezek nagy értéktartománnyal rendelkeznek, a paraméterek összefügghetnek, kizárhatják egymást, és tipikusan valami speciális kombinációjuk az, ami hibát okoz. A kérdés az, hogy a rengeteg lehetséges kombinációból hogyan válasszam ki azokat, amiket még végig tudok próbálni, és remélhetőleg elég nagy lesz a hibafedésük.

Az egyik javasolt technika, hogy készítsek olyan tesztkészletet, ami garantálja az n-szeres fedést (n-way coverage, n-wise coverage). Azaz, az m darab paraméteremből tetszőleges n-et kiválasztva, azok minden lehetséges kombinációját végigpróbáltam már egyszer.

Nézzünk egy egyszerű példát (a példa forrása ez a cikk: Combinatorial Software Testing). Adottak a következő konfigurációs lehetőségek:

  • OS: Windows, Linux
  • CPU: Intel, AMD,
  • Protocol: IPv4, IPv6

Összesen 8 féle kombinációt kéne végignézni, ha mindent végig akarnék próbálni. Ehelyett, ha megelégszem azzal, hogy tetszőleges kettő lehetséges kombinációját akarom csak végignézni (2-wise testing, ismertebb nevén pair-wise testing), akkor elég csak ez a tesztkészlet:

  • 1: Windows, Intel, IPv4
  • 2: Windows, AMD, IPv6
  • 3: Linux, Intel, IPv6
  • 4: Linux, AMD, IPv4

Ennyit az alapjairól, természetesen, mint minden tesztelési technikánál, a kulcs az, hogy hogyan tudja valaki alkalmazni, és, hogy meg tudja ítélni, hogy mikor érdemes használni.

Jó leírások a témáról:

  1. How We Test Software at Microsoft könyv, 5. fejezet. Ezt a könyvet egyébként csak ajánlani tudom, nagyon sok “best practice” jellegű dolgot és tapasztalatot leírnak benne.
  2. Bj Rollison blog postjai: Ő a fenti könyv tesztelési technikákkal foglalkozó fejezetének szerzője.
  3. Pairwise Independent Combinatorial Testing (PICT) eszköz: az MS-en belül ezt használják.
  4. NIST Combinatorial Testing oldala: Ők is elég komolyan foglalkoznak a témával, a technical report leírásuk (NIST Special Publication 800-142 – PRACTICAL COMBINATORIAL TESTING) az egyik legjobb leírás, amit a témáról találtam.
  5. A NIST-nek van egy nagyon jól használható eszköze is: Advanced Combinatorial Testing Suite (ACTS). Az ACTS-nek van egy pofonegyszerű, de jól használható GUI-ja, ideális volt arra, hogy az egyetemen órai gyakorlaton használjuk.
Advertisements
Kategória: Tech
Címke:
Közvetlen link a könyvjelzőhöz.

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s