Algoritmus a vazba na program
Je důležité si uvědomit, že dosud počítače nejsou schopné zcela samostatného myšlení. Pro provádění výpočtů a obecně zpracování dat je třeba vytvořit jasné postupy - algoritmy zpracování.
1. Algoritmus a vazba na program
1.12. Odladění a ověření programu
Co produkuje výsledky, nemusí být správné, je třeba proto provést test na vhodné množině zkušebních dat. Stanovení vhodné množiny dat nemusí být jednoduché. Je třeba testovat obvyklá data, data mimo meze platnosti, hraniční data i náhodná data. Testy je třeba plánovat a dokumentovat. V případě oprav v programech je vhodné testy zopakovat se stejnými data. U složitějších programů je exaktní testování problematické.
Musíme si především uvědomit, že testováním můžeme nalézt chyby a pak je následně eventuálně opravit. V tomto případě se uvádí paradoxní věta o úplné indukci v programování:
„V každém dostatečně velkém programu se vždy vyskytuje alespoň jedna chyba.“
To
můžeme vidět v praxi na vývoji operačních systémů, standardních programů i
uživatelsky zaměřených programů (např. informační systémy řízení výroby). Jak
tedy postupovat? Je třeba přijmout určitá konstruktivní opatření pří
tvorbě algoritmů a programového kódu. Mezi tato konstruktivní opatření patří
různé směrnice, jak psát programy, doporučené a nedoporučené programové
konstrukce a metody dekompozice. V etapě testování potom jde o výběr
vhodných metod testování a vhodných testovacích dat, personální oddělení
kódovačů a ladičů, dvojí nezávislé kódování atd.
Metody testování programů lze rozdělit na dvě základní skupiny:
- Funkční testy (černá schránka) - při testování se nezkoumá kód programu, nýbrž reakce programu na testovací data
- Strukturní testy (bílá schránka) - při testování je znám kód programu a pomocí vhodných dat se prověřuje funkčnost jednotlivých jeho částí

Obrázek 1: Funguje to správně?
Skutečně spolehlivé
programy, jako jsou bankovní transakce, řízení zdravotnických přístrojů pro
zajištění životních funkcí pacienta, řízení zbraňových systémů a jaderných
elektráren vyžadují důmyslné konstruktivní opatření a testování. Takové
programy jsou nesmírně drahé a programátorská produktivita je nízká.