Nejčastější chybou bývá testování příliš mnoha věcí najednou. Jeden test by měl ověřovat jednu konkrétní věc. Pokud test selže, musíte hned vědět, co je špatně. Vyhněte se také testování vnitřních detailů implementace, jako je pořadí volání metod nebo soukromé proměnné. Testujte pouze veřejné rozhraní. Pokud se později rozhodnete refaktorovat vnitřní kód, test by měl zůstat beze změny. To je klíč k tomu, aby testy skutečně chránily funkčnost, a ne jen aktuální podobu kódu.
Začněte tím, že si rozdělíte testy na unit testy, integrační testy a end-to-end testy. Unit testy ověřují logiku jednotlivých funkcí, integrační testy kontrolují spolupráci mezi komponentami a end-to-end testy procházejí celou uživatelskou cestou. Pro každou vrstvu použijte jiný nástroj, ale dbejte na to, aby se testy daly spouštět automaticky. Ruční testování si nechte až na závěrečnou fázi, kdy potřebujete objevit neočekávané chování, které automatizace nezachytí.
Dalším častým problémem je špatné sloučení větví. Když spojujete větev s hlavní linií, Git může hlásit konflikt. V tu chvíli se nezoufejte, soubory s konfliktem jsou označeny v textu značkami <<<<<>>>>>. Musíte ručně rozhodnout, která verze kódu zůstane. Často se stává, že nováček v panice smaže všechno a commitne prázdný soubor. Před vyřešením konfliktu si vždy zálohujte obsah obou verzí do dočasného souboru.
Jedním z nejčastějších omylů je verzování jen zdrojového kódu a zapomínání na konfigurace, databázové migrace nebo skripty pro sestavení. Webové aplikace často potřebují k běhu i něco dalšího, než je samotný kód – třeba soubory pro stylování nebo JavaScriptové závislosti. Pokud tyto soubory máte v repozitáři, ale ostatní je mají odlišně, vzniká nekonzistence mezi prostředími. Doporučuji proto verzovat i soubor, který definuje verze závislostí, a naopak do repozitáře nedávat složky, které se dají kdykoli znovu vytvořit.
Jak poznáte, že je na vině JavaScript? JavaScript dokáže zablokovat vykreslení celé stránky. Pokud máte v hlavičce několik externích skriptů, prohlížeč čeká, až se každý stáhne a spustí, teprve potom zobrazí obsah. Řešení spočívá v jednoduché změně pořadí: skripty, které nejsou nezbytné pro první obrazovku, přesuňte na konec těla stránky. Když to nejde, použijte atribut defer, který zajistí, že se skript spustí až po zpracování HTML. Vyhněte se ale tomu, abyste na stránku nahrávali deset různých knihoven, když vám stačí dvě. Každý další soubor znamená další požadavek na server a další šanci na zpoždění.
Když už máte nastavený systém, naučte se efektivně využívat historii. Nezůstávejte jen u příkazů pro ukládání změn – osvojte si hledání v historii, porovnávání verzí a vracení jednotlivých souborů. To vám ušetří spoustu času při hledání, kdy se do projektu dostala chyba. Až budete mít tyto základy, můžete přejít k složitějším technikám, jako je rebasing nebo cherry-picking. Ale pamatujte, že tyto operace mění historii – pokud nepracujete sami, měňte ji jen na svých větvích, ne na sdílených.
První unit test obvykle vzniká s nejlepším úmyslem, ale často končí jako test, který testuje špatnou věc, nebo rovnou testuje implementaci místo chování. Než začnete psát, určete si, co přesně chcete ověřit. Vezměte si jednu konkrétní metodu nebo funkci a definujte si vstup, očekávaný výstup a okrajové případy. Pokud nedokážete říct, co má test dokázat, ještě nezačínejte psát kód.
Na závěr si pohlídejte jednu věc: verzování není jen o ukládání změn, ale o tom, aby váš tým měl vždy jistotu, co je aktuální a funkční. Stanovte si, co se stane po commitu – jestli se automaticky spouští testy, nebo se vytváří sestavení. Bez toho se snadno stane, že do hlavní větve pronikne něco, co nikdo nespustil. Až budete mít tento proces pod kontrolou, získáte mnohem větší klid při nasazování a spolupráci, protože každá změna bude sledovatelná a vratná.
Automatizace testů má smysl, ale musí být udržovatelná. Pište testy tak, aby nebyly závislé na konkrétních textových prvcích, které se často mění. Používejte stabilní identifikátory, jako jsou testovací ID nebo jedinečné atributy. Pokud testy začnou častěji selhávat kvůli změnám v UI než kvůli skutečným chybám, je to signál, že jsou testy špatně napsané. Pravidelně je revidujte a odstraňujte ty, které nepřinášejí žádnou hodnotu.
Na co se zaměřit při testování na reálných zařízeních Emulátory jsou užitečné pro rychlé ověření základní funkčnosti, ale nikdy nenahradí reálné zařízení. Problémy s pamětí, baterií nebo teplotou se na emulátoru neprojeví. Pokud testujete na fyzickém telefonu, zapněte si sledování výkonu a sledujte vytížení procesoru, paměti a síťovou aktivitu. Typická chyba je testovat aplikaci pouze na Wi-Fi. Přepněte se na mobilní data a vyzkoušejte, co se stane, když signál ztratíte nebo zeslábne uprostřed požadavku.
Here’s more about Http://86Bbk.com/home.php?mod=space&uid=438033 have a look at our own webpage.
