binarydna.jpgNení nic nebezpečnějšího pro jakoukoliv aplikaci než logická chyba. Většinou se zdá že vše funguje. Nic na ní neupozorňuje. Pak postupem času přidáváte další a další věci a najednou zjistíte, že něco vybočuje z normálu. Ačkoliv nebylo porušeno jediné pravidlo prostě se dostavují výsledky, které jsou na první pohled nemožné a jediné co vás napadne je podvod nebo že vám někdo hacknul váš projekt. Bohužel řešení je daleko jednodušší prostě jste to nedomysleli do konce a důsledkem logické chyby je nesprávné fungování aplikace. Před nějakými 12 dny jsem začal na facebooku hrát hru mafia wars. Celý koncept se mi velice líbil. Prvních 7 dní jsem hrál vždy když byla volná chvilka, takže pro mě nebyl problém nabrat nějakých 50 levlů. Už si přesně nepamatuju kolik to bylo. Pomocí listu hráčů jsem si vybudoval mafii o cca 300 lidech a vše bylo v pohodě. Před třemi dny, kdy jsem si pročítal jednotlivé novinky mě napadlo, že to možná postupem času přehnaly. Začal jsem si u jednotlivých questů (jobů) počítat koeficienty účinnosti. Podobně koeficientu jsem došel k závěru, že pokud seženu 2 lidi na dostatečném levlu a dám si je jako Mastermind (11% do expu) a Wheelman (-11% energie na questy), tak některé questy mají vyšší koeficient (expy/energie) než je potřeba další level (expy/energie). Pak stačilo vždy level zakončit nějakým masitým questem (při přestupu přebývající expy se připíšou a energie se dá na maximum, takže je potřeba méně expů na přestup). Dále jsem u někoho si zajistil, že jsem jeho Mastermins (cca 10% šance na získání 50% víc expů z questu). Když se tohle všechno dalo do pohybu tak jsem byl schopný udělat cca 110 - 120% expů potřebných na level. Takže jsem zbývající energii používal na dokončování lehkých questů za což se mi zvedala maximální eneregie. No než mě to přestalo bavit tak jsem měl 8 miliard cash a lvl cca 150. V současnosti jsem lvl 192 a už se to seklo. Koeficient na přestup je přes 2,05 a nejlepsi quest ma 2,028 takže se dá přestoupit jen když procne mastermind. To už ale není taková sranda. Kámoši co to hrají se mě ptali jsetli jsem cheater nebo sem jim to hacknul. Ne jen jsem si to prostě spočítál. Jedná se o logickou chybu v důsledku přidávaných změn a vylepšení. Tvůrcům by stačlo kdyby jsem si nemohl jako Mastermind a Wheelman dát hráče s levlem větším jak můj levlel + 50 a celý tento trik by nešel provést. Logické chyby jsou ukryté v mnoha aplikacích, které se vylepšují a špatně se hledají. Některé se objeví až postupem času, jiné vzniknou přidáním novinek. Velice špatně se hledají, protože se ve své podstatě nejedná o chybu, ale o určitý postup, který když někdo objeví tak jej může zneužít. Myslím si že u nás (ČR/SR) se velice podceňuje beta testování. Většinou se rozjede beta testování, kde ale nikdo není placený za to, aby hledal chyby. Chce to opravdové odborníky, kteří rozumí jak programování tak mají zkušenosti s hledaním chyb. Spousta systémů by si mohlo ušetřit mnoho starostí. Bouhžel situace u nás je taková, že se něco nechá naprogramovat za co nejméně. Vypustí se to a pak se začně něco dělat až když se chyby objevují jak na běžícím pásu. Takhle lze ale postupovat u věcí, kde nejsou ve hře reálné peníze. Nikoliv ale projekty kde o peníze jde především. Testování u nás je velice podceňováno.