Proč chcete automatizovat test?

Proč byste automatizovali test? Jaké výhody získáme automatizací testů?

Když se lidé zapojí do automatizovaného testování, dost často se jejich hlavní zaměření přesouvá od navrhování dobrých testů k zajištění toho, aby automatizovaný kód mohl test skutečně spustit a spustit.

Během sprintu, kdy jsou členové týmu pod tlakem, aby doručili příběhy v omezeném časovém rámci, obvykle není dostatek času na testování všech plánovaných scénářů, natož psaní automatických testovacích skriptů pro testování nové funkce.


Můžeme se ponořit do detailů práce, kódování, kontroly, provádění a zapomenout na hlavní důvod proč ve skutečnosti automatizujeme test!



Proč automatizujeme test?

To je jedna z otázek, které se ptám při pohovoru s kandidáty na roli Automatizace testů a ke mému překvapení se zdá, že mnoha kandidátům chybí hlavní a nejdůležitější důvod pro automatizaci testu. Některé z odpovědí, které dostávám od kandidátů, jsou docela důvěryhodné, ale stále ne odpověď, kterou hledám. Některé z odpovědí, které dostanu na výše uvedenou otázku, jsou:


Zvyšte pokrytí testu

Tato odpověď je docela platná, ale jak definujeme pokrytí? Pokud máme 100 testů, jak můžeme měřit procentuální pokrytí?

Díky zavedené praxi automatizace testů byste mohli spustit stovky testů v relativně krátkém časovém období.

Z tohoto důvodu můžeme vytvořit více testovacích případů, více testovacích scénářů a testování s více vstupními daty pro danou funkci, a tak získat větší jistotu, že systém funguje podle očekávání.

V testování a zejména v automatizaci testů však více testů ve skutečnosti neznamená lepší kvalitu nebo větší šanci najít chyby.


V příspěvku Martina Fowlera, kde prozrazuje Pokrytí testu , uvádí

Pokud nastavíte určitou úroveň pokrytí jako cíl, lidé se ho pokusí dosáhnout. Potíž je v tom, že při testování nízké kvality je příliš snadné dosáhnout vysokého počtu pokrytí. Na té nejabsurdnější úrovni, jakou máte AssertionFreeTesting . Ale i bez toho dostanete spoustu testů, které hledají věci, které se málokdy pokazí, což vás odvede od testování věcí, na kterých opravdu záleží.

Ušetřit čas

Tato odpověď je také pravdivá, protože můžete strávit drahocenný čas prováděním zajímavých průzkumných testů, zatímco běží automatické testy. U zcela nové funkce, která byla vyvinuta, by však psaní automatických skriptů mohlo ve skutečnosti trvat déle, než by ji bylo možné otestovat ručně v prvním okamžiku.

Je tedy důležité si uvědomit, že k úspoře času z automatizovaných testů je zapotřebí počáteční zvýšené úsilí při skriptování automatických testů, ujištění se, že jsou zkontrolovány kódem a že při provádění automatických testů nedochází k žádnému škytání.


Najít další chyby

Tato odpověď mě někdy znepokojuje, protože jsem nikdy neviděl žádné metriky, které by naznačovaly, že automatizace našla více chyb než manuální / průzkumné testování. Automatizované testy obecně kontrolují případnou regresi v systému po implementaci nového kódu.

Vždy je větší šance najít chyby v nových funkcích než ve stávajících funkcích. Kromě toho existují i ​​další důvody proč automatizované testy nedokážou najít vady

Vyměňte ruční testery

Toto je pravděpodobně nejhorší odpověď, jakou jsem kdy slyšel, proč automatizujeme test. Existuje jasný rozdíl mezi tím, co ruční tester dělá, a tím, co automatický test kontroluje. Automatické testování netestuje, ale kontroluje fakta.

Abychom mohli automatizovat test, musíme znát očekávaný výsledek, abychom mohli zkontrolovat platný nebo neplatný výsledek. To je to, co nám dává pravdivé nebo nepravdivé, pozitivní nebo negativní, úspěšné nebo neúspěšné.


Testování na druhé straně je vyšetřovací cvičení, kde navrhujeme a provádíme testy současně. Mnoho věcí se může chovat odlišně, kde si toho všimne pouze pozorný tester.

Kvalitní manuální testeři budou vždy potřební kvůli rozdílnému myšlení a schopnosti zpochybňovat systém.



Zlepšit kvalitu

Ačkoli automatizované testy jsou schopny poskytnout nám rychlou zpětnou vazbu a upozornit nás na stav aplikace, abychom mohli vrátit jakoukoli změnu kódu, která narušila systém, automatické testování samo o sobě nezlepší kvalitu. Jen proto, že máme zavedenou vyspělou automatizaci testů, nezaručuje, že do výroby neuniknou žádné chyby.

Můžeme zlepšit kvalitu zajištěním dodržování správných postupů od začátku do konce vývojového cyklu. Kvalita není nápad; mělo by to být pečené hned od začátku. Nestačí spoléhat se na automatické testy, abyste získali obraz o kvalitě produktu.




Jaký je tedy hlavní důvod, proč test automatizujeme?

Krátká odpověď je opakovatelnost . Automatizujeme test, protože musíme provádět stejné testy znovu a znovu. Chcete automatizovat test, pokud byste jej spustili pouze jednou a zapomněli jste na něj? Samozřejmě že ne! Čas a úsilí, které věnujete automatizaci testu, jste mohli provést ručně.

Podle definice nyní automatizujeme opakovatelné testy, tj. Regresní testy, které musíme často provádět.

Až budete příště chtít test automatizovat, udělejte krok zpět a přemýšlejte, jak často tento test pravděpodobně provedete? Opravdu stojí za to automatizovat test?