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