Jednotkové a integrační testy: co pokrývá které a proč to nestačí
Jak začít a co si pohlídat, aby pipeline fungoval Začněte s jedním jednoduchým workflow, které spustíte při každém pushi do hlavní větve. Do něj dejte jen tři kroky: checkout kódu, instalaci závislostí a spuštění testů. Teprve když běží stabilně a rychle, přidávejte další fáze, jako je statická analýza, build kontejneru nebo nahrání artefaktů. Důležité je, aby každý rekonstrukce koupelny krok za krokem měl jasný účel a byl snadno odstranitelný. Pokud si nejste jistí, jestli něco potřebujete, raději to vynechejte.
Nejdřív si rozmyslete, co má test dokázat Než začnete psát první test, napište si na papír, jak zařídit malou kuchynié chování očekáváte. Nezačínejte od implementace, ale od vstupu a výstupu. Dejme tomu, že máte funkci pro výpočet slevy. Vstupem je cena a typ zákazníka, výstupem je cena po slevě. Co se stane, když je cena nula? Co když je typ neznámý? Co když je cena záporná? Tyto hraniční případy jsou to, co unit test skutečně testuje. Pokud je ignorujete, test projde i v případě, If you liked this post and you would like to acquire much more info pertaining to dokončení interiéru kindly take a look at our web site. že funkce vrací nesmysl.
Pokud tyto zásady dodržíte, dostanete pipeline, který šetří čas a snižuje riziko chyb v produkci. Naopak zanedbání testů v pipeline se dřív nebo později projeví. Buď selže nasazení v nejméně vhodnou chvíli, nebo se do produkce dostane chyba, která se mohla snadno zachytit. Automatizace tedy není cíl, ale prostředek k tomu, aby váš tým mohl dodávat rychleji a spolehlivěji. Začněte malými kroky a postupně pipeline vylepšujte podle skutečných potřeb projektu.
Když tým poprvé zavede Scrum, většina lidí čeká, že se vše magicky zrychlí. Místo toho přijdou první sprinty, https://Feywild.Thirdrealm.org/ které připomínají spíš chaos než řízený proces. Nejčastější chyba není v tom, že by tým neznal role nebo ceremonie, ale že je bere jako papírové povinnosti. Denní stand-up se promění v hlášení stavu šéfovi, retrospektiva se odbude za pět minut a sprint backlog je kopie všeho, co vás napadne. Výsledek? Tým je unavený, management nespokojený a Scrum dostane nálepku zbytečné byrokracie.
Když už test máte, zkuste ho rozbít. Ne tím, že ho smažete, ale tím, že záměrně vložíte do testované metody chybu. Změňte slevu z 10 % na 20 % a spusťte test. Pokud projde, test nehlídá to, co má. Pokud spadne, je to dobře – ale teprve teď jste zjistili, že test dělá to, co má. Tento postup je často rychlejší než psát testy od začátku. Píšete-li první test, udělejte si čas na tento experiment. Naučíte se tak odhalit testy, které jen dělají parádu.
Při tvorbě workflow se vyhněte dvěma typickým chybám. První je používání příliš otevřených nebo naopak příliš úzkých triggerů. Například spouštět pipeline při každém komentáři v issue je zbytečné, ale omezit se jen na hlavní větev zase riskujete, že chyby odhalíte až po sloučení pull requestu. Ideální je kombinace událostí: push na hlavní větev a pull requesty. Druhou častou chybou je spoléhat se na dlouhé sekvenční kroky místo paralelizace. Pokud testy nezávisí na sobě, rozdělte je do více jobů. Ušetříte tím čas i peníze, protože běh pipeline bude rychlejší.
Největší úskalí prvního testu je ale často prostředí. Mnoho lidí začne testovat kód, který komunikuje s databází, se soubory nebo s externí službou. Výsledkem je test, který je pomalý, nestabilní a vyžaduje konfiguraci. Pro unit test platí jednoduché pravidlo: žádný vnější zdroj. Pokud funkce čte z disku, vytvořte si dočasný soubor v testu a smažte ho po testu. Pokud volá API, nahraďte ho falešným objektem, který vrací pevně dané hodnoty. Jinak nejde o unit test, ale o integrační test, a ten píšete příliš brzy.
Než začnete psát první workflow, ujasněte si, co má pipeline skutečně řešit. GitHub Actions je jen nástroj, který spouští skripty, ale hodnotu mu dáte až správně zvolenými kroky. Nejčastější chybou bývá snaha o automatizaci všeho najednou – od buildu přes testy až po nasazení na produkci. Výsledkem je pak pipeline, který je pomalý, křehký a jeho údržba zabere víc času než samotný vývoj.
Další častou pastí je role Scrum Mastera. Pokud ji přidělíte někomu, kdo zároveň píše kód, dříve nebo později se začne věnovat úkolům a na facilitaci nezbude čas. Scrum Master by měl být především ochránce procesu, ne další vývojář. Pro české prostředí platí, že se lidé často stydí říct, že něčemu nerozumí. Proto je důležité, aby Scrum Master vytvářel bezpečné prostředí, kde je otázka normální a kde se chyby řeší jako příležitost k učení, ne jako důvod k trestu.
Až získáte první zkušenosti, zkuste upravit délku sprintu. Kratší sprint (jeden týden) vám dá rychlejší zpětnou vazbu, ale vyžaduje disciplínu. Delší sprint (čtyři týdny) zase dává více času na velké úkoly, ale zvyšuje riziko změn požadavků. Rozhodujte se podle povahy projektu, ne podle módy. Pamatujte: Scrum je framework, ne hotové řešení. Přizpůsobte si ho tak, aby vám pomáhal, ne aby vám komplikoval život. A pokud tým přestane dodržovat pravidla, vraťte se k principům – otevřenosti, odvaze a úctě.