what is automation testing
Kompletní průvodce zahájením testování automatizace vašeho projektu:
Co je to Automation Testing?
Automatizační testování je technika testování softwaru, která slouží k testování a porovnání skutečného výsledku s očekávaným výsledkem. Toho lze dosáhnout psaním testovacích skriptů nebo použitím libovolného nástroje pro testování automatizace. Automatizace testů se používá k automatizaci opakovaných úloh a dalších testovacích úloh, které je obtížné provádět ručně.
Chcete zahájit test automatizace svého projektu, ale potýkáte se s nejzákladnějšími kroky, jak je uvedeno níže:
- Jak zavést automatizaci do vašeho projektu?
- Jak vybrat nejlepší a správný automatizační nástroj?
- Jak efektivně vyvíjet skripty?
- Jak spouštět a udržovat testovací skripty?
- A nakonec, jaké jsou osvědčené postupy, které musíte dodržovat pro úspěšné testování automatizace?
Dnes jsme plánovali obohatit vaše znalosti sérií tutoriálů na téma „ Začínáme s automatizačním testováním “. Tato řada výukových programů pro automatizaci zodpoví všechny výše uvedené otázky krok za krokem s jednoduchými příklady.
Pojďme se podívat na sérii tutoriálů o zahájení automatizace vašeho projektu !!
Proces end-to-end automatizace:
Výukový program č. 1 : Nejlepší průvodce zahájením automatizace vašeho projektu
Výukový program č. 2: Typy automatizovaných testů a některé mylné představy
Výukový program č. 3: 10 kroků k zavedení automatizace ve vašem projektu
Výukový program č. 4: Průvodce A až Z při výběru nejlepšího automatizačního nástroje
Výukový program č. 5: Rámečky pro vývoj a automatizaci skriptů
Výukový program č. 6: Provádění a vykazování automatizace
Výukový program č. 7: Osvědčené postupy a strategie automatizace testů
Tipy pro automatizaci:
Výukový program č. 8: 10 tipů, které byste si měli přečíst před automatizací testovacích prací
Výukový program č. 9: Jak se liší plánování testování pro ruční a automatizované projekty
Výukový program č. 10: Kdy zvolit automatizaci?
Výukový program č. 11: Výzvy k testování automatizace
Výukový program č. 12: Průvodce implementací Proof of Concept (POC) v automatizaci
Výukový program č. 13: Jak vybrat správné testovací případy pro automatizaci
Výukový program č. 14: Jak převést ruční testovací případy do automatizačních skriptů
Kariéra v automatizaci:
Výukový program č. 15: Tipy, jak se stát lepším automatizačním testerem
Výukový program č. 16: Automatizace testů - je to specializovaná kariéra? Mohou normální testeři provádět také automatizaci?
Populární automatizační nástroje:
Výukový program č. 17: Výukové programy selenu 31+ Nejlepší výukové kurzy selenu zdarma
Výukový program č. 18: Výukové programy QTP
Výukový program č. 19: Nástroj pro testování webových služeb SoapUI
Výukový program č. 20: HP LoadRunner pro testování výkonu
Automatizační rámce:
Výukový program č. 21: Proč potřebujeme rámec pro automatizaci
Výukový program č. 22: Nejoblíbenější automatizační rámce
Automatizace v agile:
Výukový program č. 23: Jak implementovat efektivní automatizaci v agilním světě
otestovat můj web v různých prohlížečích
Další automatizační nástroje:
Výukový program č. 24: Nejlepší automatizační testovací nástroje
Výukový program č. 25: Nástroj pro automatizaci grafického uživatelského rozhraní Sikuli
Výukový program č. 26: PowerShell: Automatizace uživatelského rozhraní desktopových aplikací s PowerShell
Výukový program č. 27: Catalon Automation Recorder (alternativa Selen IDE)
Výukový program č. 28: Geb Tool: Automatizace prohlížeče pomocí nástroje Geb
Výukový program č. 29: AutoIt: Jak zacházet s automaticky otevíranými okny systému Windows pomocí funkce AutoIt
Výukový program č. 30: Okurka: Automatizace pomocí nástroje Okurka a selenu
Výukový program č. 31: Nástroj pro testování úhloměru pro end-to-end testování aplikací AngularJS
Testování mobilní automatizace:
Výukový program č. 32: Výukový program pro Appium Studio
Výukový program č. 33: Appium Tutorial pro začátečníky
Výukový program č. 34: Výukový program Selendroid: Android Mobile Automation Framework
Výukový program č. 35: Výukový program Ranorex: Výkonný nástroj pro testování počítačů, webů a mobilních zařízení
Příklady automatizace specifické pro doménu:
Výukový program č. 36: Automatizace aplikací JAVA / J2EE
Příprava pohovoru na automatizační úlohy:
Výukový program č. 37: Dotazy na rozhovor s automatizačním testováním
Výukový program č. 38: Selenium Interview Otázky
Prozkoumáme první výukový program ze série „The Ultimate Guide to Automation Testing“ !!
Co se naučíte:
- Co je to Automation Testing?
- Automatizace - nákladově efektivní metoda pro regresní testování
- Scénáře, které vyžadují automatizaci
- Správné testy pro automatizaci
- Co NENÍ automatizovat?
- Jednoduchý příklad automatizace testů
- Co jsou tvrzení?
- Závěr
- Doporučené čtení
Co je to Automation Testing?
Pokud tedy software dokáže cokoli, proč nemůže software otestovat software?
Zní vám toto tvrzení logicky?
Pokud ano, pak vám gratulujeme, nyní přemýšlíte o Test Automation, což je ústřední bod, o kterém budeme diskutovat v této sérii informativních výukových programů.
Představte si sebe první den ve své práci jako SQA. Zobrazí se vám aplikace, která má být testována. Je to aplikace ERP obsahující 100 formulářů a tisíce zpráv. Průzkumné testování zahájíte otevřením formuláře, který obsahuje přibližně 50 různých polí.
Pokoušíte se zadat náhodná data v tomto formuláři, což trvalo asi 20 minut. Poté stisknete Odeslat. Wolla !! Zobrazí se chybová zpráva, která vypadá jako neošetřená výjimka. Stanete se velmi šťastnými. Hrdě si poznamenáte kroky a nahlásíte chybu ve vašem systému správy chyb. Velké úsilí, cítíte se opravdu sebevědomě a energicky. Pokračujete v testování, dokud den neskončí, a najdete další chyby. 'Úžasný první den', pomysleli jste si.
Nyní přichází následující den, vývojář problém vyřešil a vydal novou verzi sestavení. Vyzkoušíte stejný formulář se stejnými kroky a zjistíte, že chyba je opravena. Označíte to pevně. Velké úsilí. Přispěli jste ke kvalitě produktu tím, že jste tuto chybu identifikovali, a protože je tato chyba opravena, kvalita se zlepšuje.
Nyní přichází třetí den, vývojář znovu vydal novější verzi. Nyní musíte tento formulář znovu otestovat, abyste se ujistili, že není nalezen žádný problém s regresí. Stejných 20 minut. Nyní se cítíte trochu znuděně.
Představte si nyní 1 měsíc od nynějška, novější verze se neustále vydávají a při každém vydání musíte otestovat tuto zdlouhavou formu plus 100 dalších podobných forem, abyste se ujistili, že tam není regrese.
Nyní se cítíte naštvaný. Cítíte se unavení . Začnete přeskakovat kroky. Vyplníte zhruba jen 50% z celkového počtu polí. Vaše přesnost není stejná, vaše energie není stejná a rozhodně vaše kroky nejsou stejné.
A jednoho dne klient nahlásí stejnou chybu ve stejné podobě. Cítíte se pateticky. Cítíte se teď nejistě. Myslíte si, že nejste dostatečně kompetentní. Manažeři zpochybňují vaše schopnosti.
Mám pro vás novinku; toto je příběh 90% ručních testerů. Nejsi jiný.
Problémy s regresí jsou nejbolestivějšími problémy. Jsme lidé. A nemůžeme dělat to samé se stejnou energií, rychlostí a přesností každý den. To je to, co dělají stroje. K tomu je nutná automatizace, aby se opakovaly stejné kroky se stejnou rychlostí, přesností a energií, jaké se opakovaly poprvé.
Doufám, že to pochopíte !!
Kdykoli taková situace nastane, měli byste automatizovat svůj testovací případ. Automatizace testů je váš přítel . Pomůže vám zaměřit se na nové funkce a současně se postarat o regrese. Díky automatizaci můžete tento formulář vyplnit za méně než 3 minuty.
Skript vyplní všechna pole a sdělí vám výsledek spolu se snímky obrazovky. V případě selhání může určit místo, kde testovací případ selhal, což vám pomůže snadno jej reprodukovat.
Automatizace - nákladově efektivní metoda pro regresní testování
Náklady na automatizaci jsou zpočátku opravdu vyšší. Zahrnuje náklady na nástroj, poté náklady na zdroj pro testování automatizace a jeho školení.
Když jsou však skripty připraveny, lze je spustit stokrát opakovaně se stejnou přesností a poměrně rychle. To ušetří mnoho hodin manuálního testování. Takže cena se postupně snižuje a nakonec se stává nákladově efektivní metodou Regresní testování .
Scénáře, které vyžadují automatizaci
Výše uvedený scénář není jediným případem, kdy budete potřebovat testování automatizace. Existuje několik situací, které nelze ručně otestovat.
Například ,
- Porovnání dvou obrázků pixel po pixelu.
- Porovnání dvou tabulek obsahujících tisíce řádků a sloupců.
- Testování aplikace pod zátěží 100 000 uživatelů.
- Výkonnostní měřítka.
- Testování aplikace v různých prohlížečích a na různých operačních systémech paralelně.
Tyto situace vyžadují a měly by být testovány nástroji.
Kdy tedy automatizovat?
Toto je doba agilní metodologie v SDLC, kde bude vývoj a testování probíhat téměř paralelně a je velmi obtížné rozhodnout, kdy se má automatizovat.
Než vstoupíte do automatizace, zvažte následující situace
- Produkt může být v primitivních fázích, kdy produkt nemá ani uživatelské rozhraní, v těchto fázích musíme mít jasnou představu o tom, co chceme automatizovat. Měli byste si pamatovat následující body.
- Testy by neměly být zastaralé.
- Jak se produkt vyvíjí, mělo by být snadné skripty vybrat a přidat k nim.
- Je velmi důležité nenechat se unést a zajistit snadné ladění skriptů.
- Nepokoušejte se automatizaci uživatelského rozhraní ve velmi počátečních fázích, protože uživatelské rozhraní podléhá častým změnám, což povede k selhání skriptů. Pokud je to možné, rozhodněte se pro automatizaci na úrovni API / na úrovni jiné než UI, dokud se produkt nestabilizuje. Automatizaci API lze snadno opravit a ladit.
Jak rozhodnout o nejlepších případech automatizace:
Automatizace je nedílnou součástí testovacího cyklu a je velmi důležité se rozhodnout, čeho chceme automatizací dosáhnout, než se rozhodneme pro automatizaci.
Výhody, které automatizace zřejmě poskytuje, jsou velmi atraktivní, ale zároveň může špatně organizovaná automatizační sada pokazit celou hru. Testeři mohou většinu času skončit s laděním a opravou skriptů, což má za následek ztrátu testovacího času.
Tato řada vysvětluje, jak lze automatizační sadu zefektivnit natolik, aby zachytila správné testovací případy a přinesla správné výsledky pomocí automatizačních skriptů, které máme.
Také jsem se zabýval odpověďmi na otázky jako Kdy se automatizovat, Co automatizovat, Co se automatizovat a Jak strategizovat automatizaci.
Správné testy pro automatizaci
Nejlepší způsob, jak tento problém vyřešit, je rychle přijít s „automatizační strategií“, která vyhovuje našemu produktu.
Myšlenkou je seskupit testovací případy tak, aby nám každá skupina poskytla jiný druh výsledku. Ilustrace níže ukazuje, jak bychom mohli seskupit naše podobné testovací případy v závislosti na produktu / řešení, které testujeme.
Pojďme se nyní ponořit do hloubky a pochopit, čeho nám každá skupina může pomoci dosáhnout:
# 1) Vytvořte testovací sadu všech základních funkcí Pozitivní testy . Tato sada by měla být automatizována a když je tato sada spuštěna proti libovolnému sestavení, výsledky se zobrazí okamžitě. Jakýkoli skript selhávající v této sadě vede k defektu S1 nebo S2 a toto sestavení specifické může být diskvalifikováno. Takže jsme zde ušetřili spoustu času.
Jako další krok můžeme přidat tuto automatizovanou testovací sadu jako součást BVT (Build Verifikačních testů) a zkontrolovat automatizační skripty QA do procesu vytváření produktu. Až bude sestavení připraveno, mohou testeři zkontrolovat výsledky testu automatizace a rozhodnout, zda je sestavení vhodné či nikoli pro instalaci a další testovací proces.
Tím se jasně dosahuje cílů automatizace, které jsou:
- Snižte úsilí při testování.
- Najděte chyby v dřívějších fázích.
#dva) Dále máme skupinu End-to-end testy .
V rámci velkých řešení je klíčem testování funkčnosti typu end to end, zejména v kritických fázích projektu. Měli bychom mít několik automatizačních skriptů, které se budou také dotýkat testů komplexního řešení. Když je tato sada spuštěna, výsledek by měl indikovat, zda produkt jako celek funguje tak, jak se očekává, nebo ne.
Testovací sada Automation by měla být označena, pokud dojde k poškození některého z integračních prvků. Tato sada nemusí pokrývat každou malou vlastnost / funkčnost řešení, ale měla by pokrývat fungování produktu jako celku. Kdykoli máme verzi alfa nebo beta nebo jakékoli jiné mezilehlé verze, pak se takové skripty hodí a dodávají zákazníkovi určitou úroveň důvěry.
Abychom lépe porozuměli, předpokládejme, že testujeme online nákupní portál jako součást komplexních testů bychom měli pokrýt pouze klíčové příslušné kroky.
Jak je uvedeno níže:
- Uživatelské přihlášení.
- Procházejte a vybírejte položky.
- Možnost platby - pokrývá front-end testy.
- Správa objednávek v back-endu (zahrnuje komunikaci s více integrovanými partnery, kontrolu skladových zásob, zasílání e-mailů uživateli atd.) - to pomůže testovací integraci jednotlivých kusů a také podstaty produktu.
Když je tedy spuštěn jeden takový skript, dává jistotu, že řešení jako celek funguje dobře.!
jak přidat prvky pole
# 3) Třetí sada je Testy založené na vlastnostech / funkčnosti .
Pro příklad „Můžeme mít funkce pro procházení a výběr souboru, takže když to automatizujeme, můžeme automatizovat případy tak, aby zahrnovaly výběr různých typů souborů, velikostí souborů atd., Aby bylo provedeno testování funkcí. Pokud dojde k jakýmkoli změnám / doplnění této funkce, může tato sada sloužit jako regresní sada.
# 4) Další na seznamu bude Testy založené na uživatelském rozhraní. Můžeme mít další sadu, která bude testovat funkce založené výhradně na uživatelském rozhraní, jako je stránkování, omezení znaků v textovém poli, tlačítko kalendáře, rozevírací seznamy, grafy, obrázky a mnoho dalších funkcí zaměřených pouze na uživatelské rozhraní. Selhání těchto skriptů obvykle není příliš kritické, pokud není uživatelské rozhraní úplně vypnuté nebo se určité stránky nezobrazují podle očekávání!
# 5) Můžeme mít ještě další sadu testů, které lze snadno, ale velmi pracně provádět ručně. Zdlouhavé, ale jednoduché testy jsou ideálními kandidáty na automatizaci, například zadávání údajů o 1000 zákaznících do databáze má jednoduchou funkčnost, ale je extrémně zdlouhavé provádět je ručně, tyto testy by měly být automatizovány. Pokud ne, většinou je ignorují a netestují.
Co NENÍ automatizovat?
Níže je uvedeno několik testů, které by neměly být automatizovány.
# 1) Negativní testy / testy převzetí služeb při selhání
Neměli bychom se pokoušet o automatizaci negativní nebo failover testy „Pokud jde o tyto testy, musí testeři myslet analyticky a negativní testy nejsou opravdu jednoduché, aby poskytli výsledek vyhovění nebo neúspěchu, který nám může pomoci.
Negativní testy budou vyžadovat hodně manuálního zásahu, aby se simuloval skutečný scénář zotavení po katastrofě. Pouze pro ilustraci testujeme funkce, jako je spolehlivost webových služeb - abychom to zde zobecnili, hlavním cílem takových testů by bylo způsobit úmyslné selhání a zjistit, jak dobře produkt dokáže být spolehlivý.
Simulace výše uvedených selhání není přímočará, může zahrnovat injekci některých útržků nebo použít nějaké nástroje mezi nimi a automatizace zde není nejlepší způsob.
# 2) Ad hoc testy
Tyto testy nemusí být pro produkt vždy relevantní, a to může být dokonce něco, na co může tester myslet v této fázi zahájení projektu, a také snaha o automatizaci testu ad-hoc musí být ověřena podle kritičnosti funkce, které se testy dotknou.
Například „Tester, který testuje funkci zabývající se kompresí / šifrováním dat, mohl provést intenzivní ad-hoc testy s různými daty, typy souborů, velikostí souborů, poškozenými daty, kombinací dat pomocí různých algoritmů, napříč několika platformy atd.
Když plánujeme automatizace možná budeme chtít upřednostnit a neprovádět vyčerpávající automatizaci všech ad hoc testů pouze pro tuto funkci a skončit s trochou času na automatizaci dalších klíčových funkcí.
# 3) Testy s masivním přednastavením
Existují testy, které vyžadují některé obrovské předpoklady.
Například, Pro některé funkce můžeme mít produkt, který se integruje se softwarem třetí strany, protože se produkt integruje s jakýmkoli systémem front zpráv, který vyžaduje instalaci v systému, nastavování front, vytváření front atd.
3rdsoftware pro party může být cokoli a nastavení může mít složitou povahu, a pokud jsou takové skripty automatizovány, budou navždy záviset na funkci / nastavení daného softwaru třetí strany.
Předpoklady zahrnují:
V současné době to může vypadat jednoduše a čistě, protože se provádí nastavení obou stran a vše je v pořádku. Při mnoha příležitostech jsme viděli, že když projekt vstoupí do fáze údržby, je projekt přesunut do jiného týmu a nakonec skončí laděním takových skriptů, kde je skutečný test velmi jednoduchý, ale skript selže kvůli 3rdparty software problém.
Výše uvedené je pouze příkladem, obecně dávejte pozor na testy, které mají pracné přednastavení pro jednoduchý následující test.
Jednoduchý příklad automatizace testů
Když testujete software (na webu nebo na ploše), obvykle k provedení vašich kroků používáte myš a klávesnici. Automatizační nástroj napodobuje stejné kroky pomocí skriptování nebo programovacího jazyka.
Například , pokud testujete kalkulačku a testovacím případem je, že musíte přidat dvě čísla a zobrazit výsledek. Skript provede stejné kroky pomocí myši a klávesnice.
Příklad je uveden níže.
Kroky ručního testovacího případu:
- Spusťte kalkulačku
- Stiskněte 2
- Stiskněte +
- Stiskněte 3
- Stiskněte =
- Na obrazovce by se mělo zobrazit 5.
- Zavřít kalkulačku.
Automatizační skript:
//the example is written in MS Coded UI using c# language. (TestMethod) public void TestCalculator() { //launch the application var app = ApplicationUnderTest.Launch('C:\Windows\System32\calc.exe'); //do all the operations Mouse.Click(button2); Mouse.Click(buttonAdd); Mouse.Click(button3); Mouse.Click(buttonEqual); //evaluate the results Assert.AreEqual('5', txtResult.DisplayText,”Calculator is not showing 5); //close the application app.Close(); }
Výše uvedený skript je pouze duplikací vašich manuálních kroků. Skript se snadno vytváří a je snadno pochopitelný.
aplikace, která vám umožní špehovat jiný telefon
Co jsou tvrzení?
Druhý poslední řádek skriptu vyžaduje další vysvětlení.
Assert.AreEqual („5“, txtResult.DisplayText, „kalkulačka nezobrazuje 5);
V každém testovacím případě máme na konci nějaký očekávaný nebo předvídaný výsledek. Ve výše uvedeném skriptu očekáváme, že by se na obrazovce měla zobrazit „5“. Skutečný výsledek je výsledek, který se zobrazí na obrazovce. V každém testovacím případě porovnáme očekávaný výsledek se skutečným výsledkem.
Totéž platí i pro testování automatizace. Jediný rozdíl je v tom, že když provedeme toto srovnání v automatizaci testů, pak se v každém nástroji nazývá něco jiného.
Některé nástroje tomu říkají „ Tvrzení “, Někteří to nazývají„ kontrolní bod “A někteří jej nazývají„ validace “. Ale v zásadě jde jen o srovnání. Pokud toto srovnání selže, pro Např. obrazovka zobrazuje 15 místo 5, pak toto tvrzení / kontrolní bod / ověření selže a váš testovací případ je označen jako neúspěšný.
Pokud testovací případ selhává kvůli tvrzení, znamená to, že jste detekovali chybu automatizací testu. Musíte to nahlásit do svého systému pro správu chyb stejně, jako to obvykle děláte při ručním testování.
Ve výše uvedeném skriptu jsme provedli tvrzení ve druhém posledním řádku. 5 je očekávaný výsledek, txtResult . DisplayText je skutečný výsledek a pokud se nerovnají, zobrazí se nám zpráva „Kalkulačka nezobrazuje 5“.
Závěr
Testeři často narážejí na termíny a pověření projektu k automatizaci všech případů za účelem zlepšení odhadů testování.
O automatizaci existují některé běžné „nesprávné“ vnímání.
Oni jsou:
- Můžeme automatizovat každý testovací případ.
- Automatizace testů enormně zkrátí dobu testování.
- Pokud automatizační skripty běží hladce, nejsou zavedeny žádné chyby.
Mělo by nám být jasné, že automatizace může zkrátit dobu testování pouze u určitých typů testů. Automatizace všech testů bez jakéhokoli plánu nebo sekvence povede k masivním skriptům, které jsou náročné na údržbu, často selhávají a také vyžadují hodně manuálního zásahu. V neustále se vyvíjejících produktech mohou automatizační skripty zastarávat a vyžadovat neustálé kontroly.
Seskupení a automatizace správných kandidátů ušetří spoustu času a poskytne všechny výhody automatizace.
Tento vynikající tutoriál lze shrnout do pouhých 7 bodů.
Testování automatizace:
- Je testování prováděno programově.
- Používá nástroj k řízení provádění testů.
- Porovnává očekávané výsledky se skutečnými výsledky (tvrzení).
- Dokáže automatizovat některé opakující se, ale nezbytné úkoly ( Např. Vaše případy regresního testu).
- Dokáže automatizovat některé úkoly, které je obtížné provést ručně (Např.Scénáře testování zátěže).
- Skripty mohou běžet rychle a opakovaně.
- Je dlouhodobě efektivní z hlediska nákladů.
Zde je automatizace vysvětlena jednoduše, ale to neznamená, že je vždy snadné ji provést. Jsou v tom výzvy, rizika a mnoho dalších překážek. Existuje mnoho způsobů, jakými se automatizace testů může pokazit, ale pokud vše půjde dobře, pak jsou výhody automatizace testů opravdu obrovské.
Připravované v této sérii:
V našich připravovaných tutoriálech probereme několik aspektů souvisejících s automatizací.
Tyto zahrnují:
- Typy automatizovaných testů a některé mylné představy.
- Jak zavést automatizaci do vaší organizace a vyhnout se běžným nástrahám při provádění automatizace testů.
- Proces výběru nástrojů a srovnání různých automatizačních nástrojů.
- Rámečky pro vývoj a automatizaci skriptů s příklady.
- Provádění a podávání zpráv o automatizaci testů.
- Osvědčené postupy a strategie automatizace testů.
Chcete vědět více o každém konceptu Automation Testing? Dávejte pozor a sledujte náš seznam nadcházejících tutoriálů v této sérii a své myšlenky můžete vyjádřit v sekci komentáře níže.
Doporučené čtení
- Proces automatizace testování v 10 krocích: Jak spustit testování automatizace ve vaší organizaci
- Výukový program Geb - Testování automatizace prohlížeče pomocí nástroje Geb
- Nástroj pro testování automatizace grafického uživatelského rozhraní Sikuli - Průvodce pro začátečníky Část 2
- Průvodce krok za krokem k implementaci Proof of Concept (POC) v automatizovaném testování
- Nejlepší nástroje pro testování softwaru 2021 (QA Test Automation Tools)
- Ztrácejí testeři kvůli automatizaci přilnavost?
- Výzvy pro ruční a automatizované testování
- 10 tipů, které byste si měli přečíst před automatizací testovací práce