Zpět
6 min čtení

Testujeme, tedy jsme

Testování by mělo být neodmyslitelnou součástí procesu vývoje každého produktu. Někde je obcházeno, někde je bráno jen jako nutné zlo k tomu, abychom námi vymyšlenou věc dostali mezi lidi. Jinde zase může být testování docela radost a díky vhodně nastaveným procesům o něm ani nemusíme vědět. A to je zrovna náš případ.
Od
Robin Vysloužil
| 7. 1. 2020

Proč a jak?

Naše aplikace má nyní více než 60 000 řádků kódu. To už je docela velký objem řádků na to, abychom mohli něco pokazit neopatrnou změnou jedné řádky. Naší hlavní předností je automatizace. A rozhodli jsme se automatizovat nejen tvorbu reklam (což je primární záměr aplikace), ale i vnitřní vývojové procesy, jako například právě testování. Díky tomu se nemusíme bát toho, že jedna řádka zničí svět. Vše prochází důkladným a několikanásobným testováním během fází vývoje, až po dodání kódu do aplikace. A i po nasazení kódu v aplikaci se testuje dále.

Po každém commitu na github se aktivuje automatizovaná sada testů, které by měla odhalit chyby v kódu. Dá se vlastně říct, že s každým “odevzdáním kusu kódu” se začne testovat, jestli právě tento kousek nijak nerozbíjí naši aplikaci. Pokud se stane, že se náhodou něco pokazí (a to se stává - je to běžná součást procesu), tak se k nám dostane zpráva o tom, co se kde pokazilo. Pro tyto účely používáme CircleCI, díky kterému nemusíme neustále bezhlavě manuálně testovat, ale necháme to na něm a můžeme s klidem spát. Jo a taky nám to šetří moře času. Je vlastně úplně jedno, jakou formu CI kdo používá. Nám však vyhovuje konkrétně právě CircleCI a průběh testování vypadá cca podle obrázku níže.

https://blogadmin.ppcbee.com/rails/active_storage/representations/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbFVFIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--8b99ad10d6bafd58c77489bad80d22eddda1a3a2/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCam9VY21WemFYcGxYM1J2WDJ4cGJXbDBXd2RwQWxnQ2FRT2doZ0U9IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--b1b529f8dfa4cfc5545b605b986d2f12cc3d32fa/pasted%20image%200.pnghttps://blogadmin.ppcbee.com/rails/active_storage/representations/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbFVFIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--8b99ad10d6bafd58c77489bad80d22eddda1a3a2/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCam9VY21WemFYcGxYM1J2WDJ4cGJXbDBXd2RwQXJBRWFRT2doZ0U9IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--21b5f9fec4a1a26d9fca8e4bc575ac97c48ec932/pasted%20image%200.png
Nezávisle na tomto nám běží další sada testů vždycky v noci, abychom měli více a více jistoty, že i když nesaháme do kódu, vše funguje. Možností, jak by se aplikace mohla rozbít bez našeho zásahu je hromada, např. porucha hardwaru, změna API reklamních systémů. Spolu s těmito “nočními testy” (nightly builds) běží vizuální regresní testy na našem sandboxu, kde jsou uloženy všechny naše vizuální prvky v aplikaci, ale o tom už více níže.

Cypress a Percy jsou kámoši jak hrom

Testování můžeme rozdělit na backendové a frontendové, manuální a automatizované a všelijaké jiné další kombinace. U nás je nejvíce testů backendových, kterými vývojáři ověřují funkčnost drobných částí kódu, ale o těch dneska psát nebudeme. Následně je pak nejvíce frontendových testů, které pracují s aplikací jako s celkem a prakticky simulují chování uživatele a kontrolují, jestli při používání je vše validní tak, jakým způsobem to bylo navrženo. K takovému testování používáme Cypress, který se ukázal jako neocenitelný pomocník v boji proti bugům. Cypress testuje všechny “happy paths” v aplikaci - kompletní cesty od vytvoření datového zdroje, přes vytváření různých typů kampaní, až po testování rozličných variant nastavení generátorů klíčových slov a reklamních textů, finální synchronizaci a akce v tuneru. Jak může vypadat testování v Cypress:

https://blogadmin.ppcbee.com/rails/active_storage/representations/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbFlFIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--f49d5fc53a18d409795fdc0882266ea4a00edc22/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCam9VY21WemFYcGxYM1J2WDJ4cGJXbDBXd2RwQWxnQ2FRT2doZ0U9IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--b1b529f8dfa4cfc5545b605b986d2f12cc3d32fa/cypress.gifhttps://blogadmin.ppcbee.com/rails/active_storage/representations/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbFlFIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--f49d5fc53a18d409795fdc0882266ea4a00edc22/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaDdCam9VY21WemFYcGxYM1J2WDJ4cGJXbDBXd2RwQXJBRWFRT2doZ0U9IiwiZXhwIjpudWxsLCJwdXIiOiJ2YXJpYXRpb24ifX0=--21b5f9fec4a1a26d9fca8e4bc575ac97c48ec932/cypress.gif

Druhým takovým neocenitelným nástrojem, který používáme, je Percy, kterého využíváme právě na vizuální regresní testy. V praxi to znamená, že si označíme místa/stránky/části aplikace, které má Percy “vyfotit” a uložit jako referenční snímky. Jakmile se někde změní obsah stránky, např. změní se obsah některé komponenty, mění se textace, něco se nevyrenderuje, nebo se toho naopak vyrenderuje moc, Percy nás na toto upozorní a ukáže nám stavy před a po. My pak můžeme jednoduše vidět, kde se jaké komponenty změnily a jestli je tato změna správná, případně špatná. Pokud je správná, tak jen označíme nové snímky jako referenční a jedeme dál. Pokud je špatná, tak víme (nebo bychom aspoň měli vědět), co a kde přesně musíme opravit. Právě tento nástroj používáme také pro náš sandbox, kde je tento způsob testování více než na místě. Krásný příklad (i s vysvětlením) je k vidění zde.

Testujte taky!

Hodně lidí se bojí nových výzev, zejména těch, které si vezmou mnoho času při realizaci. Důkladné vytvoření testovacího prostředí a testovacích scénářů může být jedna z nich. Nicméně testování a všechny procesy s ním spojené jsou více než vhodně investovaný čas, který nám šetří nervy, čas a množství šedých vlasů v budoucnu. Rozhodně se toho nebojte a vynaložte na to svoje prostředky. Stojí to za to!

TL;DR

  • Testujeme, vy byste měli taky
  • Používáme CircleCI, Cypress a Percy, dále pak hromadu backendových testů
  • Testujeme, vy byste měli taky



Robin Vysloužil
Editor PPC Bee
Zkuste trial na 30 dní zdarma
Zrušit lze kdykoliv. Platební karta není potřeba.
Registrace pomocí Google účtu
Jste již přihlášení
Přejít do PPC Bee

Související články

Další články

K čemu je firmě vlastní psycholog?

E-commerce je prostředí, které se hýbe kupředu mílovými kroky. Potřeba být agilní tu má své fixní místo. Covid celou situaci ještě umocnil. Na všechny jsou kladeny obrovské nároky v kontextu pracovního výkonu, osobního nasazení a rozvoje. Do toho je potřeba tak nějak žít, věnovat se rodině, osobním zájmům, pečovat o svoje zdraví a občas taky najít čas na odpočinek a regeneraci.

Od Hanka Habermannová 8. 4. 2021 | 8 min čtení

Další články

Google Digital Marketing Transformation 2021: Situační leadership

Další rok pod hlavičkou Google Digital Marketing Transformation 2021 odstartoval workshopem na téma Situační leadership v podání psychologa a lektora Martina Konečného. Živá diskuse, praktická doporučení, spousta příkladů z praxe, sdílení s ostatními účastníky workshopu z řad CZ/SK agentur, hromada inspirace pro naši každodenní práci s týmem, ale i v osobním životě. To byl kick off Googe DMT 2021!

Od Hanka Habermannová25. 3. 2021 | 9 min čtení

Další články

Vzdělávání v roce 2020 aneb když udeří Covid

Témata spojená s epidemií Covid 19 nás provází téměř celým rokem 2020 a není divu, že jich máme občas už plné zuby. Proto se v dnešním článku nechceme zaměřit na výčet situací, v nichž nám nastalá situace ublížila. Naopak bychom se s vámi rádi podělili o to, jak nás nepříznivé okolnosti donutily přemýšlet nad věcmi jinak, podívat se na ně z jiného úhlu a začít s aktivitami, k nimž bychom se v běžném režimu zřejmě nedostali, ale které nám toho tolik daly. Možná, že i vy najdete v následujících řádcích nějakou inspiraci.

Od Marie Majerová29. 12. 2020 | 4 min čtení