Otestujte tipy a osvědčené postupy pro automatizaci

Automatizované testování je důležitá testovací aktivita během životního cyklu vývoje softwaru, protože může týmu poskytnout rychlou zpětnou vazbu, když byla vyvinuta nová funkce.

Také odstraňuje zátěž z QA pro opakované spouštění regresních testů, což šetří čas pro QA, aby se soustředil na další testovací aktivity.

Pokud je Automation Test proveden správně, může být pro tým velmi přínosný. Níže uvedené tipy vám pomohou získat maximum z vašeho procesu a aktivity automatizovaného testování a upozorní na úskalí, kterým se musíte vyhnout při zahájení automatizace testů.




Manual vs Automated - Testování vs Kontrola

Vyvarujte se srovnání mezi manuálním a automatizovaným testováním. Oba jsou potřebné, protože každý slouží jinému účelu. Automatizované testy jsou sada pokynů napsaných osobou k provedení konkrétního úkolu. Pokaždé, když je spuštěn automatický test, bude postupovat přesně podle stejných kroků, jak je uvedeno, a bude kontrolovat pouze věci, které jsou ke kontrole vyzvány.

Na druhou stranu, během ručního testování je mozek testeru zapojen a může zjistit další poruchy v systému. Kroky testu nemusí být nutně vždy stejné, protože tester může během testování měnit toky; to platí zejména v případě průzkumného testování.




Automatizujte regresní testy

Hlavním důvodem, proč chcete automatizovat test je, že chcete test provádět opakovaně při každém novém vydání. Pokud je nutné provést test pouze jednou, může snaha o automatizaci testu převážit jeho výhody.

Regresní testy je nutné provádět opakovaně s vývojem testovaného softwaru. To může být pro QA velmi časově náročné a nudný úkol, který musí každý den spouštět regresní testy. Regresní testy jsou dobrými kandidáty na automatizaci testů.



Navrhněte testy před jejich automatizací

Před zahájením automatizace testů je vždy dobré vytvořit testovací případy a scénáře. Je to dobrý design testu, který může pomoci při identifikaci defektů, automatizované testy provádějí pouze design testu.

Nebezpečí při přechodu přímo k automatizaci spočívá v tom, že vás zajímá pouze to, aby skript fungoval, a obvykle automatizujete pouze pozitivní a šťastné scénáře toku, než abyste přemýšleli o dalších možných scénářích, které lze testovat.


Nesnižujte také rozsah testování, aby test fungoval nebo vyhověl.



Odstraňte nejistotu z automatických testů

Jedním z klíčových bodů automatizovaného testování je schopnost poskytovat konzistentní výsledky, abychom si mohli být jisti, že se při selhání testu skutečně něco pokazilo.

Pokud automatický test projde v jednom běhu a selže v příštím spuštění, bez jakýchkoli změn testovaného softwaru, nemůžeme si být jisti, zda je selhání způsobeno aplikací nebo jinými faktory, jako jsou problémy s testovacím prostředím nebo problémy v samotný testovací kód.

Když dojde k selhání, musíme analyzovat výsledky, abychom zjistili, co se pokazilo, a když máme spoustu nekonzistentních nebo falešně pozitivních výsledků, zvyšuje to čas analýzy.


Nebojte se odstranit nestabilní testy z regresních balíčků; místo toho se zaměřte na konzistentní čisté výsledky, na které se můžete spolehnout.



Zkontrolujte platnost automatických testů

Budete znepokojeni velkým počtem automatických testů, které jsou zastaralé, prostě nic nekontrolujte nebo nekontrolujte nejdůležitější ověření!

To by mohl být příznak přechodu přímo k automatizaci, aniž byste předem trávili dostatek času plánováním toho, co je třeba udělat, a návrhem dobrých testovacích scénářů.

Vždy mějte kolegu, který zkontroluje platnost a rozumnost automatických testů. Zkontrolujte, zda jsou testy aktuální.




Neautomatizujte nestabilní funkce

Jak se vyvíjí nová funkce nebo funkce, mnoho věcí se může pokazit a dokonce tato funkce již nemusí být použitelná, protože firma změnila názor.

Pokud jste s vývojem funkce začali automatizovat testy, je třeba testy mnohokrát aktualizovat, jak se funkce vyvíjí, a může být docela skličující při snaze držet krok se všemi změnami. A pokud tato funkce již není použitelná, je veškeré úsilí vynaložené na automatizaci testů zbytečné.

Proto je vždy nejlepší automatizovat funkci, jakmile je stabilizovaná a méně podléhá změnám.



Neočekávejte kouzlo od automatizace testů

Primárním důvodem pro automatizaci testů je uvolnění času QA pro zajímavé průzkumné testování a poskytnutí důvěry týmu, že aplikace je stále v pořádku, protože jsou dodávány nové změny.


Neočekávejte, že automatizace najde spoustu chyb . Ve skutečnosti je počet chyb nalezených automatizací vždy mnohem menší než manuální a průzkumné testování.



Nespoléhejte se pouze na automatizaci - dejte si pozor na úspěšné absolvování testů

Automatizované regresní testy mohou týmu dávat pocit důvěry, protože regresní testy by měly stále projít, jakmile se dodají nové funkce. Tým se začne spoléhat na testy a mít dobrou sadu regresních testů může fungovat jako bezpečnostní síť.

Všimněte si však, že ne všechny testy jsou automatizované nebo je lze automatizovat, proto vždy doprovázejte automatizované testy průzkumným testováním.

Někdy by změna softwaru měla v testu selhat; Pokud však projdou všechny testy, znamená to, že došlo k chybě, a protože nedošlo k žádné výzvě k akci, vada zůstala nepovšimnuta.



Zaměřte se na rychlou zpětnou vazbu

Rychlá zpětná vazba je jedním z cílů automatizovaných testů, protože vývojáři chtějí vědět, jestli to, co vyvinuli, funguje a neporušilo současnou funkčnost.

Aby bylo možné získat tuto smyčku rychlé zpětné vazby, musí být testy automatizovány na vrstvě komponenty nebo API bez spoléhání se na uživatelské rozhraní.

Testy spuštěné v uživatelském rozhraní jsou mnohem pomalejší a náchylnější k chybám kvůli změnám grafického uživatelského rozhraní. Jinými slovy, funkce stále funguje podle očekávání, ale testy selžou kvůli změnám v uživatelském rozhraní. Proto mohou být testy nespolehlivé.



Pochopte kontext

Testy lze automatizovat na jakékoli vrstvě, jednotce, API, službě, GUI. Každá vrstva slouží k testování jiným účelům.
Testy jednotek zajišťují, že kód funguje na úrovni třídy, že se kompiluje a logika je podle očekávání. Testy v této vrstvě slouží spíše k ověření než k ověření.

Testy API nebo testy integrace zajišťují, že sada funkcí a tříd může pracovat společně a data lze předávat z jedné třídy do druhé.

Testy GUI na druhé straně testují toky a cesty uživatelů. Obecně bychom netestovali funkčnost z uživatelského rozhraní. To by mělo být provedeno ve spodních vrstvách.

Hlavním účelem testů uživatelského rozhraní je zajistit, aby celý systém fungoval podle některých běžných uživatelských scénářů a případů použití. Testování v této vrstvě je spíše ověřením než ověřením

Na úrovni uživatelského rozhraní automatizujeme spíše scénáře než příběhy.



Neautomatizovat každý test

100% pokrytí testu není možné, protože mohou existovat miliony kombinací. Vždy provádíme podmnožinu možných testů. Stejný princip platí i pro automatizované testování.

K vytvoření automatizovaného skriptu to vyžaduje čas a úsilí. Zaměření na „Automatizaci každého testu“ vyžaduje spoustu zdrojů a času, což v mnoha případech není možné.

Místo toho použijte přístup založený na rizicích k určení, které testy by měly být automatizovány. Chcete-li z automatizace získat co nejvyšší hodnotu, automatizujte pouze nejdůležitější obchodní případy a scénáře.

Vysoký počet automatizovaných testů také zvyšuje náklady na údržbu a je obtížné jej udržovat.

Je třeba mít na paměti, že ne všechny testy lze automatizovat. Některé testy jsou velmi složité a vyžadují mnoho následných kontrol systému a mohou být nekonzistentní. V těchto případech je nejlepší ponechat tyto kontroly pro ruční testování.



Používejte testovací techniky v automatizaci testů

Testovací techniky, které jste se naučili v ISTQB, neslouží pouze k manuálnímu testování. Jsou také použitelné pro automatizované testování. Techniky, jako je analýza hraničních hodnot, rozdělení ekvivalence, testování přechodu stavu, testování párováním, mohou v automatickém testování poskytnout mnoho výhod.



Neautomatizujte chaos

Aby bylo možné z vašeho automatizovaného testování vytěžit maximum, měl by být zaveden dobrý proces QA. Pokud je proces QA chaotický a k tomuto chaosu přidáme automatizované testování, získáme pouze rychlejší chaos.

Zkuste odpovědět na otázky typu: Co automatizovat, Kdy automatizovat „Kdy provést automatizované testy, kdo má automatizovat testy, jaké nástroje by se měly použít pro automatizaci testů atd…

Tyto tipy jsou shromážděny většinou ze zkušeností jako automatizační tester a některých dobrých postupů, které následují ostatní.

Máte nějaké tipy pro automatizaci testů, které chcete přidat do tohoto seznamu?