Proč testovat?
Testy, jednotkové testy
Testy pro ověřování správné funkčnosti programů lze rozdělit do různých kategorii. Mně se nejvíce líbí rozdělení uvedené na následujícím obrázku, které je z knihy Crispin L., Gregory J.: Agile Testing: A Practical Guide for Testers and Agile Teams. ISBN 0321534468..
Jednotkové testy (Unit Tests) slouží pro automatizované testování jednotek kódu, obvykle jednotlivých tříd, jednotlivých metod. Tyto testy by měl psát programátor, který vytváří/upravuje/opravuje konkrétní třídu.
Jiná rozdělení testů můžete najít např. v diplomové práci Anny Borovcové.
JUnit
Standardem pro psaní jednotkových testů v Javě je knihovna JUnit, která je integrovaná do většiny vývojových prostředí pro Javu. Pro tuto knihovnu existuje mnoho rozšíření, je podporována dalšími nástroji. Knihovnu JUnit budeme používat i v kurzech programování.
Existují i jiné knihovny pro jednotkové testování v Javě, nejznámější z nich je TestNG. Někteří programátoři propagují vytváření vlastních testů bez využití testovacích frameworků.
Proč by studenti měli psát jednotkové testy
Důvody, proč by stundenti v kurzu Programování v Javě měli psát testy jsou následují:
- protože psaní jednotkových testů patří mezi základní znalosti každého programátora v současnosti,
- programátor by měl být samostatný a odpovědný za svoji práci; testy mu dodávají větší jistotu, že napsal kvalitní kód,
- protože testy pomáhají odhalit chyby v odevzdávaném programu,
- program s jednotkovými testy obvykle obsahuje méně chyb,
- testy jsou ukázkou použití kódu,
- pokud se píší testy před vlastním třídou (Test Driven Development), pomáhají programátorovi rozmyslet si vlastní kód před vlastním programováním,
Výhody psaní jednotkových testů před programováním vlastního kódu jsou shrnuty např. v článku Twelve Benefits of Writing Unit Tests First.
Následují odkazy na několik českých textů o nejen jednotkovém testování z poslední doby. Všimněte si, že se zabývají hlavně jazyky PHP či JavaScript - u programátorů v Javě či v .NET proběhla diskuse na téma testování již v minulých letech a nyní testování většina bere jako samozřejmost. Kent Beck napsal svoji knihu Test Driven Development: By Example v roce 2002.