Testovací soubory



Metod pro ověření správnosti programu je celá řada. Jednou z možností je vytvoření dvojic vzorových případů vstupů a jim příslušných výstupů.

Po napsání a odladění programu program spustíme a předáme mu parametry (měli bychom vyzkoušet co nejvíce kombinací testujících různé případy). K těmto parametrům si necháme programem (například) vytisknout výsledky. Výsledky zkontrolujeme a opravíme případné chyby. Pokud je výsledek správný, uložíme ho do souboru a prohlásíme za vzorový výstup příslušný vstupu. Po změně programu potom spustíme testovací dávku, která porovná nový výstup s dříve uloženým vzorovým výstupem a upozorní nás na případné odchylky.

Vzorový výstup vytvoříme například tak, že nejprve vytvoříme soubor se vstupními hodnotami, které uložíme například do souboru s příponou in. K tomuto vstupu vytvoříme výstup spuštěním programu s tímto vstupem a výstup přesměrujeme do souboru (snadněji se v tom orientuje, mají-li k sobě příslušné soubory stejný název):
program.exe <test.in >test.res
znak < značí přesměrování vstupu ze souboru místo z klávesnice
znak > značí přesměrování výstupu do souboru místo na konzolu (monitor)


Program pro test (dávkový soubor Windows, textový skript) může vypadat například takto (červené je komentář). Tento skript se dá do adresáře, ve kterém je příslušný exe soubor a kde jsou vzorové vstupní a výstupní soubory. Spustí se buďto svým názvem (na příkazovém řádku) nebo poklikem (v grafickém rozhraní). Nemá žádné parametry – pro jiné názvy souborů nebo programů se upraví text „uvnitř“.

echo OFF potlačení výpisu (u příkazů u kterých je to možné)
cls smazání obrazovky (aby na obrazovce byly jen výpisy dávky)
call:TestFunc fact_01 1 volání podprogramu pro testování s parametry: základní název souborů, návratová hodnota programu,
call:TestFunc fact_02 1 provede se celá množina testů pro různé typy vstupů
call:TestFunc fact_03 2
call:TestFunc fact_04 2
call:TestFunc fact_05 0
call:TestFunc fact_06 0
call:TestFunc fact_07 0 pro další testovací kombinace se přidá další volání s příslušnými parametry
goto end po provedení testů se přeskočí testovací funkce

:TestFunc hlavička funkce - pro test jednoho případu
program.exe < %~1.in >%~1.out zjištění aktuálního výsledku programu na základě vstupního souboru. Program.exe je testovaný program, %~X je X-tý paramter volání
Při volání programu se do proměnné ERRORLEVEL uloží jeho návratová hodnota (return funkce main).
if NOT %ERRORLEVEL% == %~2 echo Chybny return code %~1 %~2 je %ERRORLEVEL% v případě, že návratová hodnota neodpovídá předpokládané, je vypsáno chybové hlášení s aktuálním a předpokládaným výstupem
fc %~1.out %~1.res >NUL program fc srovnává dva soubory. Jelikož se nedá vypnout jeho výstup na obrazovku, je výstup přesměrován do standardního výstupu NUL aby byla obrazovka „čistá“
if NOT %ERRORLEVEL%==0 echo Chybny vystup %~1 program fc opět nastavuje proměnnou ERRORLEVEL. V případě, že byly soubory odlišné, vypíše se chybové hlášení
goto:eof „return“ pro funkce v dávkovém souboru

:end pro přeskočení definice funkce
echo on zapneme tisk, který jsme na začátku vypli
pause pro případ, že budeme spouštět z grafického rozhraní je nutné počkat na konci na klávesu, jinak se okno zavře a nic neuvidíme











Poslední úpravy 2015-02-13