Testujeme testery

Kvalitní beta-test je komplikovaný, ale nezbytný proces. I větší studia si často najímají specializované firmy, které nedělají nic jiného než testování. Co můžeš udělat dnes, neodkládej na zítra, platí v případě testování dvojnásob. Proto je dobré testovat hru již od prvních fází vývoje. Šikovný tester umí rozbít cokoliv. Kvalitní tester to umí zdokumentovat.

Bug a debug

Chyba se často i v češtině označuje anglickým výrazem bug. A proces ladění programu pak debugování.

Překlad slova bug znamená štěnice nebo obecně brouk. V angličtině se ve významu chyba (například konstruktérská) používá už velmi dlouho. Použil ho například Thomas Edison v dopise kolegovi Puskásovi roku 1878. S nástupem počítačů pak tento termín pronikl do mnoha dalších jazyků.

Traduje se, že původem tohoto významu je problém způsobený skutečným hmyzem. Známá je třeba historka o molu zachyceném na relé počítače Mark II dne 9. září 1947. Mol byl pečlivě vyproštěn a nalepen do záznamu s poznámkou „první skutečný případ nalezeného bugu“. Je ovšem zřejmé nejen to, že se nejedná o první výskyt termínu, ale také to, že operátoři o konstruktérském použití věděli.

Skutečný BUG

I pojem debug se používal již před počítačovou érou. Oxfordský výkladový slovník uvádí pojem „debugging“ s odkazem na článek o testování leteckých motorů z roku 1945.

I v češtině běžně používáme frázi, že je potřeba ještě vychytat všechny mouchy a že program má ještě nějaké mušky. Entomologové mi odpustí, ale je jasné, že hmyz nemá nikdo rád.

Test kompatibility

Největší peklo je u PC her, protože každý uživatel má jinou sestavu, jiné verze ovladačů a jinou konfiguraci operačního systému. Problém může být v čemkoliv. Naštěstí tento problém z větší části odpadne při použití enginu od třetí strany, protože jeho vývojář se o test kompatibility musí postarat sám. U konzolí je to nejjednodušší část testování, ale jen na první pohled. Všechny konzole jsou stejné, tak se nikdo nemůže vymlouvat na chyby v ovladačích nebo neobvyklou konfiguraci. Právě proto jsou ale od jejich výrobců kladeny v procesu schvalování vyšší nároky. Na tuto fázi testování se nejčastěji najímají specializované firmy.

Test funkčnosti

Pro testera asi nejzábavnější část. Hru hraje a hledá nelogičnosti a nefunkčnosti. Při reportování chyb si ale musí uvědomit, že není game designér, proto by v reportu neměl navrhovat, jak hru změnit nebo vylepšit, ale soustředit se pouze na hledání chyb. Věřte, že ostatní členové týmu mají nápadů, jak hru vylepšit a ještě více zabugovat, mnohem víc sami.


 

Test grafiky

Jak jste již pochopili z minulých článků, s grafiky je to jednoduché. Ptáte se proč? Protože jejich chyby jsou vidět a i kontrola oprav je tedy jednoduchá. A chyby, které nejsou vidět (například špatný formát textur), jdou testovat automatickými testy.

Test lokalizace

Po překladu a korektuře textů následuje implementace do hry. I sebelepší překladatel a korektor nemusí z holých textů správně pochopit kontext, proto je testování důležité i během lokalizačního procesu. Zároveň je nutné otestovat, zda se všechny texty vejdou na místa, kde jsou vypisovány. Rozdíly mezi délkou výsledného textu jsou někdy opravdu veliké a zvláště uživatelské rozhraní často nebývá nafukovací.

Automatický test a log

Pro testování (nejen her, ale všech programů) je vhodné používat automatické testy a co nejdůkladnější systém logování – záznam událostí a výpis stavu programu zpravidla do textového souboru. Analýzou těchto logů je možné chybu odhalit rychleji než zdlouhavým krokováním.

KVÍZ: Proč je ve hře, která se má odehrávat v noci, vidět slunce?

…
dayphase = "night";
if (dayphase = "day") ShowSun(); else ShowMoon(); 
…

 

Řešení (je inverzně): V jazycích založených na C-like syntaxi jsou operátorem pro rovnost dva znaky rovná se, v zápise, který je zde uveden, se místo porovnání obsahu proměnné provede její přiřazení. Takže místo zobrazení měsíce se změní obsah proměnné dayphase a zobrazí se slunce. 

Paradox na závěr

Opravou chyby vzniká chyba nová. Naštěstí tato rovnice neplatí absolutně. 🙂

 

Lukáš (CINEMAX)
Tento článek vyšel v časopise LEVEL č. 227