Odhad času v agile týmu: chyba, která rozpočet nenávratně ničí
Dalším praktickým tipem je testování výjimek. Místo Assert.Throws zkuste novější Assert.ThrowsAsync pro asynchronní metody. Nezapomeňte ale ověřit i konkrétní typ výjimky, ne jen to, že nějaká vznikla. Také se vyplatí testovat hraniční hodnoty a prázdné vstupy – právě tam se skrývá nejvíc chyb. Když testujete metody pracující s datem a časem, nepoužívejte aktuální datum přímo v testu. Místo toho si vytvořte rozhraní pro poskytování času a v testu ho nahraďte falešnou implementací. Tím zajistíte, že test bude deterministický a nebude závislý na tom, kdy ho spustíte.
Nejčastější příčinou pomalých dotazů je chybějící nebo nevhodně zvolený index. Když dotaz používá ve WHERE sloupec, na kterém není index, databáze musí projít celou tabulku. Přitom stačí vytvořit jednoduchý index, ale pozor na pořadí sloupců ve složeném indexu. Pokud máte podmínku na sloupec A a sloupec B, index (A, B) pomůže, ale index (B, A) už tolik ne. Také si dejte pozor na použití funkcí v podmínce – WHERE funkce(sloupec) = hodnota je téměř vždy důvod, proč se index nepoužije.
Nejčastější chybou, kterou u začátečníků i pokročilých vidím, je použití jednoho velkého testovacího případu, který ověřuje několik aspektů najednou. Místo toho rozdělte testy na malé, jednoúčelové metody. Pokud test selže, okamžitě víte, která část kódu je problémová. Nazvěte testy podle toho, co ověřují – třeba VratíNuluKdyžJeVstupPrázdný. Takový název je samovysvětlující a usnadňuje orientaci v testovací sadě. Vyhněte se obecným názvům typu Test1 nebo KontrolaFunkce.
Pamatujte, že optimalizace je iterativní proces. Nejdřív změříte, pak změníte, a znovu změříte. Někdy se stane, že navrhnete index, který se zdá ideální, ale databázový plánovač ho stejně nepoužije. Důvodem může být to, že data nejsou dostatečně selektivní. Pokud sloupec obsahuje jen pár různých hodnot, index nepomůže. V takovém případě je lepší zaměřit se na jinou část dotazu nebo na změnu datového typu. Až budete mít pocit, že je dotaz rychlý, porovnejte jeho výkon před a po úpravě, abyste měli jistotu, že jste skutečně dosáhli zlepšení.
Nejlepší přístup je kombinovat pokrytí s testováním chování – ptejte se, zda testy pokrývají požadavky, ne jen řádky. Pokud máte test, který ověřuje, že se po uložení formuláře zobrazí potvrzení, je užitečnější než deset testů, které jen volají gettery. Když začnete pokrytí vnímat jako jeden z mnoha nástrojů, ne jako cíl sám o sobě, přestanete se honit za čísly a začnete psát testy, které skutečně chrání váš kód. Až budete příště přemýšlet, zda přidat další test jen kvůli pokrytí, zeptejte se sami sebe, jakou chybu by mohl odhalit – pokud žádnou, If you enjoyed this information and you would certainly such as to obtain more details relating to dokončEní interiéru kindly visit our web site. je lepší čas věnovat něčemu jinému.
Na závěr si osvojte práci se soubory, když potřebujete odeslat data ve formátu JSON. Ruční přepisování těla požadavku je zbytečné, stačí použít proměnnou, do které načtete obsah souboru. Tento postup je méně náchylný na překlepy. Až budete mít kolekci hotovou, vyzkoušejte si spuštění z příkazové řádky. Tím získáte možnost zapojit testy do automatického buildu aplikace. Výsledkem je, že se o chybách dozvíte dřív, než je objeví uživatel.
Rozkládání odhadů na analytické fáze a implementaci patří k nejčastějším zdrojům chyb v agile týmech. Většina týmů si myslí, že stačí rozdělit práci na dvě části a odhadnout každou zvlášť. Jenže právě tento zdánlivě logický přístup vede k podcenění návazností, https://feswiki.Com přepisování kódu a nekonečným diskusím. Klíčem není jen rozdělit odhad, ale pochopit, kde vzniká nepřesnost.
Poslední rada: pravidelně spouštějte celou testovací sadu, ideálně po každé změně kódu. Použijte nástroj pro měření pokrytí, abyste zjistili, které části kódu nejsou testovány. Ale nesnažte se dosáhnout stoprocentního pokrytí za každou cenu. Mnohem důležitější je, aby testy testovaly správné věci a byly udržovatelné. Když narazíte na chybu, nejdřív napište test, který ji reprodukuje, a teprve potom opravujte kód. Tímto postupem nejenže opravíte chybu, ale také zabráníte jejímu návratu v budoucnu.
Jak poznat, že je odhad rozpadlý? Když se tým ptá na hodiny místo na rozsah Typickou chybou je snaha o přesné hodinové rozlišení. Agile tým nepotřebuje vědět, že analýza zabere 8 hodin a implementace 16. Potřebuje znát relativní složitost a závislosti. Používejte proto story pointy nebo ideální dny, ale vždy ve vztahu k celému příběhu. Rozdělte odhad na tři části – analýzu, implementaci a testování – ale každou z nich ohodnoťte jako součást celku. Když analytická část zabere 30 % odhadu, zeptejte se, proč. Často zjistíte, že analýza je nadhodnocená kvůli nejasným požadavkům.
등록된 댓글이 없습니다.