Pro složitější automatizaci se vyplatí naučit základy regulárních výrazů (modul re) pro práci s textem a knihovnu argparse pro zpracování argumentů z příkazové řádky. Užitečné je také plánování spuštění – na Windows použijete Plánovač úloh, na Linuxu cron. Ale pozor: pokud automatizujete práci s e-maily, dávejte pozor na bezpečnost – nepoužívejte svůj hlavní e-mail, vytvořte si pro testy speciální účet.
Když projekt roste, testovací pyramida se často začne bortit. Nejprve převažují rychlé unit testy, ale jakmile přibývají závislosti a integrace, tlak na pokrytí scénářů napříč komponentami roste. Výsledkem bývá změť integračních testů, které jsou pomalé, křehké a vyžadují složité nastavení. Základní pravidlo zní: unit testy mají tvořit většinu, integrační testy jen doplňkovou vrstvu. Pokud toto rozložení začne být opačné, je čas zasáhnout, než se údržba testů stane noční můrou.
Když se řekne Docker, mnoho začátečníků si představí černou skříňku plnou příkazů. Přitom jde o nástroj, který řeší jednoduchý problém: jak spustit aplikaci na jakémkoli počítači stejně. Místo instalace závislostí do systému si vytvoříte izolované prostředí – kontejner – které obsahuje vše potřebné. Tento článek vám ukáže, jak začít, na co si dát pozor a jakým chybám se vyhnout.
Hranice, kdy pokrytí ztrácí smysl, není univerzální. Obecně platí, že pod 60 % je kód pravděpodobně nedostatečně otestovaný, ale nad 90 % už začínáte platit daň v podobě údržby testů, které často jen zrcadlí implementaci bez ohledu na chování. Neexistuje žádné magické číslo, které by bylo správné pro všechny projekty. Důležitější než samotné procento je to, co testy skutečně ověřují. Pokud máte 80% pokrytí a testy hlídají klíčové business scénáře, je to lepší než 95% pokrytí bez jediného smysluplného assertu.
Praktický tip: pokud máte problém napsat smysluplnou zprávu, je to často signál, že je změna příliš velká nebo špatně definovaná. Zastavte se, rozdělte práci na menší kroky a každý krok odešlete zvlášť. Pak už psaní zprávy půjde samo – budete přesně vědět, co jste udělali. Až budete za rok listovat historií, poděkujete si za každou jasnou větu, která vám ušetří hodiny pátrání.
Praktický návod: stanovení cíle pokrytí odvoďte od rizikovosti kódu. Pro finanční transakce nebo bezpečnostní funkce chtějte vyšší pokrytí, pro jednoduché CRUD operace nižší. Nezavádějte pokrytí jako týmový KPÍ, pokud nejste schopni rozlišit, jestli testy reálně ověřují požadované chování. Pokud se rozhodnete měřit, dělejte to automaticky v rámci CI pipeline a blokujte merge, jen když pokrytí klesne pod stanovenou hranici. Ale pozor – automatické blokování vede k tomu, že lidé začnou psát testy jen rady pro rekonstrukci splnění limitu, což je přesně ten bod, kdy se z užitečného nástroje stává byrokracie.
Kdy už je pokrytí spíše číslo než užitek Pokrytí přestává být užitečné ve chvíli, kdy začnete psát testy jen proto, aby číslo vzrostlo. Typický příklad je test, který zavolá metodu, ale neověří žádný výstup, nebo dokonce testy, které kontrolují pouze to, If you loved this posting and you would like to get additional details about více detailů kindly stop by our webpage. že se metoda nedostane do výjimky. Takové testy sice zvyšují procento pokrytí, rady pro rekonstrukci ale nedávají žádnou záruku, že kód funguje správně. Dalším varovným signálem je, když se začnete vyhýbat psaní testů rady pro rekonstrukci složité části kódu a místo toho testujete jen triviální gettry a settery. Tím pokrytí roste, ale reálná ochrana před chybami zůstává stejná.
Důležité je také sledovat poměr počtu testů a jejich času. Pokud integrační testy tvoří více než čtvrtinu všech testů, ale zabírají 90 % času běhu, je to signál k revizi. Zkuste u nejpomalejších testů zjistit, zda nepoužívají zbytečně reálné závislosti. Často stačí vyměnit databázi za lehčí variantu (např. embedded) nebo zredukovat počet volání externích služeb pomocí smyček a kombinací vstupů. Nezapomínejte, že každý integrační test by měl být nezávislý a měl by běžet v náhodném pořadí, což mnohé problémy odhalí už při vývoji.
Jakmile máte jasný cíl, přestaňte řešit, co je „nejlepší" a co „nejmodernější". Typická chyba začátečníka je skákat mezi jazyky podle aktuálních trendů. Jeden týden zkoušíte Python, protože je populární, pak JavaScript, protože je všude, a nakonec skončíte u ničeho. Vyberte si jeden jazyk a držte se ho alespoň tři měsíce. Teprve po této době můžete zhodnotit, jestli vám sedí, nebo ne. Neustálé přepínání vás připraví o hlubší pochopení základních principů, které jsou ve všech jazycích podobné.
Výběr prvního programovacího jazyka je častým zdrojem zbytečného stresu. Mnozí začátečníci stráví týdny porovnáváním žebříčků popularity a diskusí o tom, který jazyk je „ten pravý". Pravda je ale mnohem jednodušší: první jazyk by měl především pomoci pochopit základy logiky, proměnných, cyklů a funkcí. Nejde o to vybrat jazyk pro celý život, ale o to, abyste u něj vydrželi prvních pár měsíců a získali solidní základ.