Když vyvíjíte mobilní aplikaci, dřív nebo později narazíte na otázku, jak ji otestovat. Ruční testování je sice pracné, ale nezastupitelné pro kontrolu uživatelského komfortu. Automatizace zase šetří čas při opakovaných regresních testech. Než se rozhodnete, zvažte, co je pro váš produkt důležitější – rychlost nasazení, nebo bezchybný první dojem. V praxi se osvědčuje kombinace obou přístupů, ale klíčové je vědět, kde která metoda dává smysl.<br>
<br>
<br>
<br>
Další častý problém je testování na nesprávném zařízení. Ne každý má nejnovější model, takže otestujte aplikaci na starším zařízení s menším rozlišením a pomalejším procesorem. Zkuste také změnit velikost písma v systémovém nastavení nebo zapnout režim úspory baterie. Tyto faktory dokážou rozbít layout, který na vývojářském zařízení vypadá perfektně. Pozor i na orientaci obrazovky – přepnutí z portrétu na šířku by nemělo resetovat stav aplikace nebo ztratit data z formuláře.<br>
<br>
<br>
<br>
Nakonec se zaměřte na to, co se děje při samotném zobrazování stránky. Pokud používáte hodně externích skriptů, které blokují vykreslení, prohlížeč čeká, až se načtou, a teprve poté ukáže stránku. To je nejhorší scénář. Řešením je načítat tyto skripty asynchronně, aby vykreslení neblokovaly. Typickým příkladem jsou chaty, widgety nebo mapy. Zkuste si srovnat, co je pro vaše návštěvníky skutečně důležité, a co je jen nadbytečná dekorace. Po každém odstranění jednoho zbytečného prvku znovu změřte rychlost. Nárůst rychlosti v řádu desetin sekundy je vidět i v uživatelských statistikách – okamžitě se projeví na nižším počtu opuštěných stránek.<br>
<br>
<br>
<br>
Začněte u manuálního testování. Vezměte si reálné zařízení, ne jen emulátor. Emulátor neodhalí problémy s výkonem, které způsobí slabší hardware, ani neověří chování při přepínání mezi aplikacemi. Při ručním testu si napište scénáře, které pokrývají hlavní uživatelské cesty: registrace, přihlášení, platba, synchronizace dat. Typická chyba je testovat jen „šťastnou cestu" – tedy bez chybových stavů. Zkuste zadat špatné heslo, přerušit připojení nebo odejít z obrazovky uprostřed operace. To je místo, kde se většina chyb skutečně schovává.<br>
<br>
<br>
<br>
Na závěr si osvojte používání plánovačů úloh, ať už jde o Cron v Linuxu nebo Plánovač úloh ve Windows. Skript, který běží ručně, je jen poloviční řešení. Naplánujte si ho na dobu, kdy nepotřebujete počítač, a ověřte, že logy obsahují dostatek informací k tomu, abyste po probuzení poznali, co skript dělal. Typická chyba je ignorovat výstup skriptu a spoléhat, že se nic nepokazí. Když se ale něco pokazí a vy nemáte žádný záznam, budete muset celý proces ladit od začátku. S trochou disciplíny se z vás stane někdo, kdo místo klikání myší píše pár řádků kódu a nechá práci běžet sám.<br>
<br>
<br>
<br>
Prakticky začněte exportem dat. Použijte nástroje, které umí zapsat data do formátu SQL nebo CSV. U CSV si dejte pozor na oddělovače, kódování a na to, jak jsou reprezentovány binární hodnoty. U SQL dumpu zase na to, zda exportujete strukturu a data odděleně. Před importem do PostgreSQL vypněte kontroly cizích klíčů a indexy – urychlíte tím nahrávání. Indexy a constrainty pak vytvořte až po dokončení importu.<br>
<br>
<br>
<br>
Typickou chybou juniorů je, že se na pohovoru snaží odpovědět na všechno, i když netuší. Mnohem lepší je říct „tohle jsem zatím nepoužil, ale na základě principů bych to řešil takhle". Ukážeš tím, že umíš přemýšlet, a to je cennější než dokonalá znalost syntaxe. Stejně tak se vyhni tomu, abys na pohovoru kritizoval technologie, které neznáš. Každá firma má své preferované nástroje a pokud ti nevyhovují, je lepší to probrat férově, ale bez zbytečného negativismu.<br>
<br>
<br>
<br>
Jak na typy dat a automatické číslování Největší rozdíl je v auto-increment. MySQL používá AUTO_INCREMENT, PostgreSQL sekvence. Při migraci proto nahraďte všechny sloupce typu int s AUTO_INCREMENT za typ serial nebo bigserial. Dále pozor na booleovské hodnoty: PostgreSQL používá TRUE/FALSE, zatímco MySQL 1/0. Datum a čas se také liší – timestamp v PostgreSQL má přesnost na mikrosekundy, ale bez časového pásma se snadno dopustíte chyby. Pro peněžní hodnoty nepoužívejte float, ale numeric s definovanou přesností.<br>
<br>
<br>
<br>
Automatizace jen tam, kde dává smysl Automatizované testy jsou skvělé pro opakované kontroly, ale nevyplatí se je psát na všechno. Základní pravidlo: automatizujte to, co je stabilní a co se často mění jen v detailech. Například testování přihlašovacího formuláře, validace polí nebo načítání seznamů. Naopak nespouštějte automatizaci na složité gesta, animace nebo testy závislé na aktuální poloze zařízení. Tyto scénáře jsou náchylné k falešným výsledkům a jejich údržba stojí víc času, než ušetří. Při psaní automatizovaných testů se vyhněte závislosti na konkrétních texturách nebo barvách – stačí drobná změna designu a test spadne, i když funkcionalita funguje.