Annyira fontos dolog a szoftvertesztelés,
hogy az International Software Testing Qualifications Board (ISTQB) nemzetközi
tesztelési szervezet már meg is faragta erre vonatkozó kőtábláit.
1. Bármily
hihetetlenül hangzik is, a tesztelés a szoftverhibák felfedezésére szolgál. A
tesztelést úgy kell megtervezni, hogy a lehető legtöbb hibát lefülelhessük.
Nagyon fontos: ha keveset találunk, az önmagában még nem jelenti, hogy a
szoftver megfelelő. Sőt, használhatatlan is lehet, ha köszönő viszonyban sincs
a felhasználók igényeivel, elvárásaival.
2. A triviális
eseteket leszámítva, még ha meggebedünk, sem lehet teljes, azaz mindenre
kiterjedő tesztelést végezni. Végkimerülés helyett inkább elemezzük a
kockázatokat, és állítsunk fel fontossági sorrendet. Ezzel talán még hatékonyak
is leszünk.
3. Ki korán kel,
aranyat lel, így a korai tesztelés is nagyon fontos. Lehetőleg a szoftver vagy
a rendszerfejlesztés legelején kezdjük el, és előre meghatározott célokra
összpontosítsunk.
4. A hibák
eloszlása nem egyenletes a programban. A 20/80-as, Pareto-elv szerint a
szoftverhibák nagy része (80 százaléka) bizonyos, hibára hajlamosabb modulokban
(20 százalék) található. A derék talján közgazdász ezt már 1906-ban megmondta,
bár ő ezt az arányt még úgy értette, hogy a megtermelt javak 80 százaléka a
társadalom 20 százalékához kerül a társadalmi vagyonelosztás során.
5. Nem csak a jó nőket
(pasikat), a teszteket is karban kell tartani. Azaz a fejlesztés alatt a teszteseteket
folyamatosan a változó igényekhez kell igazítani. Ugyanakkor a tesztelés nem
csak abból áll, hogy lefuttatjuk, aztán csá. Ez a fejlesztéssel párhuzamos
folyamat, vegyük rá a fáradságot!
6. Az sem mindegy,
milyen környezetben tesztelgetünk, ugyanis eltérő módszereket kell bevetni. Meg
kell nézni, milyen alkalmazásról van szó (desktop, webes, elosztott rendszer),
milyen architektúrája van a tesztelő eszköznek, illetve milyen nyelven
implementálták azt. Kérdés az is, milyen típusú tesztelést szeretnénk végezni.
Lehet szó funkcionális, terheléses biztonsági, integrációs vagy regressziós
tesztelésről.
7. Ne higgyük, hogy
az automatikus teszteket ingyen megússzuk, ezeknek is van karbantartási
költségük!
8. A teszteléssel a
terméket minősítsük, ne a készítőit anyázzuk!
9. A független
tesztelés hatékonyabb, de akkor vastagabban fog a tesztelő ceruzája.
10. Kerüljük el a
féregirtó paradoxonát: ha mindig ugyanazokat a teszteket hajtjuk végre, akkor
azok egy idő után, ha megfeszülünk sem fognak új hibákat találni. A „féregirtó
paradoxon” megjelenése ellen eltérő teszteseteket kell írni azért, hogy a
szoftver vagy a rendszer különböző részeit futtassuk és ezzel további
programhibákat piszkálhassunk elő.
A fenti alapszintű ajánlásokra egyébként Gyimóthy
Tibor, a Szegedi Tudományegyetem szoftverfejlesztési
tanszékének vezetője hívta fel a figyelmünket.