Na ez az ami nincs. A teljes körű tesztelés ugyanolyan mítosz, mint a hibátlan program. Minden programban van hiba, és logikailag ebből levezethető, hogy nincs teljes körű tesztelés. (Ha ugyanis lenne, akkor azt elvégezve megkapnánk a hibátlan programot.)
Mikor használjuk mégis ezt a kifejezést?
Én akkor ha nem figyelek oda, mert egyébként nem szeretem ezt a szófordulatot. Teszt esetek vannak, amelyeket tesztelünk, és az egy külön művészet a tesztelésen belül, hogy elegendően sok és sokrétű tesztesetünk legyen ahhoz, hogy a programunkban ne maradjon lényeges hiba.
Jó esetben. Mert minden igyekezet ellenére is előfordulhat, kis valószínűséggel, hogy mégis marad a programban lényeges hiba. Ebben az esetben persze a hibát kijavítjuk, dokumentáljuk, majd tesztesetet készítünk rá, hogy a későbbiekben, a szoftver egy újabb verziójában ez a hiba már ne jöhessen újra elő, illetve ha előjön, akkor észrevegyük tesztelés során.
Mit garantál akkor a tesztelés? Nos, szigorúan véve nem sokat. Azt, hogy azok a hibák, amelyekre vannak teszt esetek nem fordulnak elő a programban. (Persze ezt is csak akkor, ha a tesztelés megfelelő. Láttam már olyan tesztelést is, ahol átcsúsztak hibák emberi nemtörődömségből, vagy fáradtság miatt. Ezért kell a teszteket, amennyire lehet automatizálni.)
Ha viszont elég sok tesztesetünk van, és nem bután gyártottuk őket, a szoftver funkcióit elég jól lefedik, és akkor már a tesztelés elég sokat tud garantálni. Azt, hogy működik a szoftver.