O testování a chybách
Nechápu jak je možné, že ve stavu absolutního myšlenkového vyčerpání jsem schopen ještě něco tady psát. Asi setrvačnost. V poslední době jsem si osvojil jednu praktiku známou hlavně na open-source projektech a rád bych se o ni podělil.
Test Driven přístup diktující psát první testy a pak kód je sice skvělý, ale zatím se mi této mety nepodařilo dosáhnout na sto procent. Nicméně se tomu snažím maximálně přibližovat. Dnes ale chci psát o něčem jiném. Stará dobrá programnátorská mýlka říká, že z toho že máme testy vyplývá, že naše aplikace funguje dobře. Vedle jak ta jedle, testy testují jenom to co se po nich chce a vždy (ano vždy) se najde škvírka, kterou testy nepokryly a objeví se chyba.
Murphyho zákon o bezchybném programu:Každý program obsahuje chybu.
Chybou prázdného programu je, že nic nedělá.
Postup, který jsem na začátku slíbil je jednoduchý. Nejlepší dokumentací chyby je test, který chybu odhalí. Najdu-li v kódu chybu, první co dělám je, že píšu test, při kterém se chyba projevuje. V dalším kroku se chyba odstraní a je po problému.
Celé se to dá rozepsat ještě dále:
- Je objevena chyba
- Napíšu test, který díky chybě padá
- Commituju, kontiuální build padá protože neprošly testy
- Implementuju opravu pro chybu
- Commituju, kontinuální build prochází
Bod 3 je velmi zajímavý okamžik procesu. Někomu by se mohlo zdát zlé, že build spadl, ale je to naopak velmi dobré. Od toho máme kontinuální buildy, abychom byli upozorněni když se objeví chyba.