30. listopadu 2007

Unit testy - ty přece píše kodér, ne?

Tentokrát spíš chci prodiskutovat jedno téma, než vám něco sdělit. Právě jsem dočetl článek Akshay Sharmi o návrhu, který myslí na testovatelnost kódu (Design to Unit Test). Jediná věc, která mě na tomto článku přímo praštila do očí, je skutečnost, že je psán tak, jako že unit testy píše někdo jiný, než ten, kdo testovaný kód psal.

Já jsem vždy přemýšlel o unit testech jako o věci, kterou si kodér ověřuje, že jeho kód funguje tak, jak má. Navíc si kodér musí již dopředu rozmyslet, jak svůj kód otestuje, což bezesporu vede k jeho větší kvalitě. V neposlaení řadě unit testy vnímám také jako "dokumentaci" ke kódu, což v případě, že je píše někdo jiný opět selhává.

Je pravdou, že psaní testů je trochu jiná káva, než psaní kódu. Je nutné se to naučit. Ale není to zase tak složité. V případě integračních a akceptačních testů je již zřejmé, že je může (nebo má?) implementovat někdo jiný než kodér.

Obávám se, že tento přístup není pro mě. Navíc bych si troufl s ním nesouhlasit.

2 komentáře:

ATom řekl(a)...

Na druhou stranu autor většinou testuje jen to, co očekává že by mělo fungovat a jak by se jeho komponenta měla používat. Což pak v praxi selhává, protože uživatel dané komponenty ji použije jinak než autor čekal a dojde k chybě, Když test píše někdo jiný často se právě na takové věci příjde mnohem dříve.

jira řekl(a)...

No to je jistě zajímavá myšlenka ... ovšem pak je otazka, zda se bavíme o unit testech, což jsou "white-box-testy" a ne už o testech na vyšší úrovni, kdy se již testuje podle kontraktu modulu a jde o "black -box-testy".