Testujeme software Testujeme software
  • Úvod
  • Blog
  • Nástroje
  • Slovníček
Testujeme software Testujeme software
Testujeme software Testujeme software
  • Úvod
  • Blog
  • Nástroje
  • Slovníček
  • Blog

Jak jsem automatizoval testy, až mě to přestalo bavit – cesta k TestComplete

  • 9. 3. 2023
  • Štěpán Černoch
Total
0
Shares
0
0
0

Jako vývojář jsem bral jako samozřejmost, že k mojí práci patří i testování. Popravdě je ale testování věc, která mě opravdu nebaví. Když už si myslím, že jsem něco objevil, obvykle se ukáže, že to vlastně bug není. I přes to jsem se ale na jednom z projektů dostal k automatickému testování uživatelského rozhraní. Zpětně můžu říct, že někdy je potřeba dělat i věci, které vás nebaví, abyste mohli věci posunout někam dál.

V tomto případě automatické testování začalo vytvořením modelu všech prvků UI, se kterými jsme v testech chtěli pracovat. K modelování prvků je možné využívat i knihovny třetích stran, ale přesto je nutné některé prvky a všechny modely oken vytvářet ručně. Například pokud v rámci jednoho testu mělo dojít k zobrazením čtyř různých oken, časová náročnost samotného vytváření testu se tím násobila. Tímto způsobem jsme se bohužel dostali do stavu, kdy vytváření samotného automatického testu zabralo developerovi více času než vývoj celé nové feature.

Jelikož jsem v té době byl jeden z mála, kdo tyto automatické testy uměl vytvářet, dostal jsem se do stavu, že jsem dělal prakticky každý test. Nebavilo mě to, a proto jsem se rozhodl udělat průzkum trhu a zjistit, jakými nástroji řeší problém automatických UI testů v ostatních firmách a jaké jsou případně dostupné nástroje. Podmínkou bylo i to, aby UI testy nemuseli dělat programátoři, ale aby si je mohli vytvářet sami testeři.

Po průzkumu trhu jsem vytipoval tři nástroje, které by nám mohly pomoci: Telerik Studio, Ranorex Studio a TestComplete. Telerik Studio jsem vyškrtnul asi po hodině používání, neboť jenom za tu dobu aplikace asi 4× spadla. V Ranorex Studiu se mi prakticky nepodařilo spustit test a vytváření jednotlivých kroků testu bylo dosti neintuitivní. Zůstal tedy TestComplete, který byl kupodivu stabilní i intuitivní. Navíc ze stránek výrobce jsem se dočetl, že nástroj využívá i společnost Pfizer, což bylo v době zuřícího covidu sázkou na jistotu.

TestComplete

Pro ukázku, jak vypadá práce s testem, si v následujících odstavcích uděláme jednoduchý test kalkulačky ve Windows.

Samotné vytvoření nového projektu v TestComplete (verze 15.48) je velmi jednoduché. Mezi prvními kroky při založení projektu je nastavení cesty k aplikaci, která se má na začátku každého testu spustit.

TestComplete – Vytvoření nového projektu

Po vytvoření nového projektu vypadá prostředí v TestComplete následovně:

TEstComplete – Prostředí

Na levé straně je vidět struktura celého projektu. Zde jsou zobrazeny jednotlivé testy, případně skripty. Dále je zde položka exekuční plán (Execution Plan) , do kterého se následně umisťují jednotlivé testy. V exekučním plánu je možné testy libovolně zanořovat do složek. Následně je pak možné spustit buď kompletní exekuční plán, nebo třeba jen jeho vybranou část.

V prostředním sloupci jsou uvedeny kroky, které je možno použít v testu (Operations). A nakonec pravá největší část slouží k zobrazení jednotlivých kroků v testu.

Aby bylo možné v testu přistupovat k prvkům a ovládat jejich aplikace, je nutné si tyto prvky nejprve označit a pojmenovat. Tomuto procesu se říká mapování. Na obrázku níže je vidět, jak takové mapování může vypadat. V levém sloupci je seznam již přidaných objektů. V našem případě se jedná o ovládací tlačítka kalkulačky a zobrazení výsledku. Ve spodní části levého sloupce jsou k jednotlivým objektům přiřazeny tzv. aliasy, se kterými se následně pracuje v jednotlivých testech. Díky těmto aliasům je možné v případě změny UI testované aplikace pouze namapovat nové objekty a přiřadit je starým aliasům. Díky tomu pak není potřeba jakkoliv měnit testy.

V pravé části jsou zobrazeny podmínky, podle kterých TestComplete hledá mapovaný objekt. Tyto podmínky si buď určuje TestComplete sám, nebo je možné si podmínky upravit. Ve spodní části je pak vidět screenshot testované aplikace. V červeném rámečku je zobrazeno, o který objekt se jedná.

TestComplete – Mapování objektů

Nyní už přistoupíme k samotnému testu. Na obrázku níže je test, který kontroluje, zda se při zadání čísel 99 + 1 zobrazí jako výsledek číslo 100. V našem případě je zde sekvence kliků na jednotlivé prvky v aplikaci. Jako poslední krok je kontrola, zda prvek pro zobrazení výsledku obsahuje hodnotu 100. Aby test prošel, musí být tato kontrola splněna. V případě, že tomu tak není, test se ukončí a označí jako Failed.

Jednotlivé kroky testu je možné přidávat buď ručně výběrem z levého sloupce, kde jsou všechny dostupné kroky, nebo je možné pomocí tlačítka Record jednotlivé kroky nahrát automaticky. Při nahrávání kroků může tester jednoduše klikat testovací scénář přímo v aplikaci. Po ukončení nahrávání se nahrané kroky zobrazí a je možné je upravovat, přidávat kontroly mezi jednotlivé kroky apod.

Ve spodní části okna je vizualizace kroků. Tuto vizualizaci je možné v případě potřeby vypnout.

TestComplete – Vizualizace kroků

Na následujícím obrázku je výsledek testu po spuštění. U každého kroku ve výsledku je vidět ve spodní části očekávaný a aktuální screenshot aplikace. Díky tomu je možné v případě opravy testu rychleji najít chybu.

TestComplete – Výsledky testu

Testování pomocí skriptu

Testy v TestComplete je možné psát i pomocí skriptů. K dispozici jsou jazyky JavaScript, Python a VBScript. V následující a zároveň poslední části se podíváme na skript v jazyce Python, který bude provádět stejný test, jako byl proveden výše.

Zde na obrázku vidíme, jak může vypadat test v jazyce Python, který testuje stejnou věc. Na dalším obrázku je pak vidět, jak vypadá spuštění takového testu.

TestComplete – Test napsaný v Pythonu
TestComplete – Výsledek testu napsaného v Pythonu

Výsledek testu je shodný jako při předchozí ukázce s tím rozdílem, že u jednotlivých kroků není k dispozici očekávaný screenshot aplikace, který je tam zobrazen, pouze pokud se test vytváří pomocí nahrávání kroků.

Tolik tedy o automatickém testování v programu TestComplete. Pokud vás těchto pár řádků motivovalo k vyzkoušení, je možné stáhnout trial verzi na 30 dnů. Tento článek bych rád zakončil následujícím heslem: Práci strojům a testerům klid.
Automatickému testování NAZDAR – ZDAR!

Total
0
Shares
Sdílet 0
Tweetnout 0
Sdílet 0
Související témata
  • Automatizace
  • Python
  • TestComplete
Štěpán Černoch

Člověk, který má rád klid a čistý kód. A ostatní o něm říkají, že je programátor.

Předchozí článek
  • Blog

Software testing očima nováčka, díl I.

  • 24. 2. 2023
  • Vojtěch Camfrla
Zobrazit článek
Další článek
  • Blog

Přes noc testerkou – Lucka Korená

  • 23. 3. 2023
  • Lucie Korená
Zobrazit článek
Mohlo by se vám také líbit
Zobrazit článek
  • Blog

Automatické spouštění testů během buildu v GitLabu

  • Aleš Tichý
  • 1. 6. 2023
Zobrazit článek
  • Blog

Automatizované testování Windows aplikací s Robot Frameworkem a RPA.Windows 

  • Jan Zatloukal
  • 18. 5. 2023
Zobrazit článek
  • Blog

Perfomance monitoring pomocí Telegrafu a Grafany (1. díl)

  • Radek Vavřín
  • 4. 5. 2023
Zobrazit článek
  • Blog

Jak nastartovat projekt v Pythonu

  • Jan Zatloukal
  • 6. 4. 2023
Zobrazit článek
  • Blog

Přes noc testerkou – Lucka Korená

  • Lucie Korená
  • 23. 3. 2023
Zobrazit článek
  • Blog

Software testing očima nováčka, díl I.

  • Vojtěch Camfrla
  • 24. 2. 2023
Zobrazit článek
  • Blog

Git pro testery – nastavení a první krůčky

  • Jan Zatloukal
  • 9. 2. 2023
Zobrazit článek
  • Blog

Obsidian – vytěžte maximum ze svých poznámek

  • Jan Zatloukal
  • 26. 1. 2023

Napsat komentář Zrušit odpověď na komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Doporučené příspěvky
  • 1
    Automatické spouštění testů během buildu v GitLabu
    • 1. 6. 2023
  • 2
    Automatizované testování Windows aplikací s Robot Frameworkem a RPA.Windows 
    • 18. 5. 2023
  • 3
    Perfomance monitoring pomocí Telegrafu a Grafany (1. díl)
    • 4. 5. 2023
  • 4
    Jak nastartovat projekt v Pythonu
    • 6. 4. 2023
  • 5
    Přes noc testerkou – Lucka Korená
    • 23. 3. 2023
Poslední příspěvky
  • Software testing očima nováčka, díl I.
    • 24. 2. 2023
  • Git pro testery – nastavení a první krůčky
    • 9. 2. 2023
  • Obsidian – vytěžte maximum ze svých poznámek
    • 26. 1. 2023
Rubriky
  • Blog (20)
Testujeme software Testujeme software
  • Edhouse.cz
  • Vyšíváme software
  • Zásady cookies (EU)
Testujeme software – vše o testování software | Všechna práva vyhrazena © 2022

Zadejte klíčové slovo a stiskněte Enter.

Spravovat Souhlas s cookies
Abychom poskytli co nejlepší služby, používáme k ukládání a/nebo přístupu k informacím o zařízení, technologie jako jsou soubory cookies. Souhlas s těmito technologiemi nám umožní zpracovávat údaje, jako je chování při procházení nebo jedinečná ID na tomto webu. Nesouhlas nebo odvolání souhlasu může nepříznivě ovlivnit určité vlastnosti a funkce.
Funkční Vždy aktivní
Technické uložení nebo přístup je nezbytně nutný pro legitimní účel umožnění použití konkrétní služby, kterou si odběratel nebo uživatel výslovně vyžádal, nebo pouze za účelem provedení přenosu sdělení prostřednictvím sítě elektronických komunikací.
Předvolby
Technické uložení nebo přístup je nezbytný pro legitimní účel ukládání preferencí, které nejsou požadovány odběratelem nebo uživatelem.
Statistické
Technické uložení nebo přístup, který se používá výhradně pro statistické účely. Technické uložení nebo přístup, který se používá výhradně pro anonymní statistické účely. Bez předvolání, dobrovolného plnění ze strany vašeho Poskytovatele internetových služeb nebo dalších záznamů od třetí strany nelze informace, uložené nebo získané pouze pro tento účel, obvykle použít k vaší identifikaci.
Marketingové
Technické uložení nebo přístup je nutný k vytvoření uživatelských profilů za účelem zasílání reklamy nebo sledování uživatele na webových stránkách nebo několika webových stránkách pro podobné marketingové účely.
Spravovat možnosti Spravovat služby Spravovat dodavatele Přečtěte si více o těchto účelech
Zobrazit předvolby
{title} {title} {title}