Jeden bug, ktorý ma naučil viac než celý rok kurzov.
Bankový klient, payment flow. Test prešiel zelene 14× v rade. Code review v poriadku. Deploy na staging — všetko OK. Posledný regression run pred produkciou: zelený. Tím šiel domov.
Pondelok ráno: 3 zákaznícke ticety. Platba sa odpočítala dvakrát.
Test bol „správny“ — len kontroloval že payment endpoint vrátil 200 OK. Nikdy nekontroloval či sa DB zapísala
raz. Race condition v retry logike — pri pomalej odpovedi backendu sa request poslal dvakrát.
Spent 2 days writing the test that would have caught it. Single assertion: payment_attempts = 1 na DB úrovni,
nie na HTTP. Bug discovered v dev environment 3 týždne neskôr keď niekto refactoroval retry mechanizmus.
Production-saved.
Ponaučenie: „test prešiel“ nie je rovnaké ako „funguje to“. Test je len taký dobrý, akú silnú má assertion. Pri fintech-e platí: ak nemerieš to čo má skutočný impact na užívateľa, tvoja zelená farba klame.