automatizace testování Tutorial: Začínáme

obsah

co je testování automatizace?

jak název napovídá. automatizační testování provádí testování softwaru a provádí je pomocí sady nástrojů nebo rámce pro automatizaci. Jednoduše řečeno, jedná se o typ testování, při kterém nástroj automaticky provede sadu úkolů v definovaném vzoru.

odstraňuje tlak z ručních testerů a umožňuje jim soustředit se na úkoly s vyšší hodnotou-průzkumné testy, přezkoumání výsledků testů atd. V podstatě stroj přebírá a implementuje, světské, opakující se, časově matoucí úkoly, jako jsou regresní testy. Automatizační testování je nezbytné pro dosažení většího pokrytí testů v kratších časových osách, stejně jako větší přesnost výsledků.

proč je testování automatizace kritické v životním cyklu softwaru?

Představte si to.

první den jako QA musíte otestovat aplikaci, která obsahuje asi 100 polí, která vyžadují vstup. Při provádění průzkumného testování musíte do každého pole vložit vstup ručně. Pokud jste opravdu rychlí, trvá to asi 10 minut.

stisknete tlačítko Odeslat. Zobrazí se chybová zpráva. Vypadá to jako nezpracovaná výjimka. Nahlásíte chybu a cítíte se opravdu dobře z dobře odvedené práce. Postup opakujete, najdete několik dalších chyb a máte obecně produktivní první den.

následující den vývojář vyřeší problémy a musíte otestovat novou verzi softwaru a opakovat stejné kroky jako předchozí den. Opravena chyba. Dobrá práce. Díky vašemu úsilí byla zajištěna dobrá uživatelská zkušenost.

třetí den vývojáři vydali novější verzi s novějšími funkcemi. Chcete-li však zajistit, aby nové funkce neporušily starší pracovní funkce, musíte proces opakovat znovu. Nebyly nalezeny žádné problémy.

za měsíc vývojáři neustále uvolňují novější verze, což znamená, že musíte software neustále testovat a pokaždé opakovat stejný proces(vkládání pole). Jste znuděný a unavený. Vaše přesnost začíná váhat, v důsledku čehož vám nakonec chybí chyba – možná docela zřejmá.

Věřte tomu nebo ne, toto je poměrně běžný scénář pro většinu QAs. Není možné dělat totéž znovu a znovu a být v tom pokaždé dokonalý. Zde přichází automatizační testování.

může software testovat jiný software?

Ano. To je celý smysl testování automatizace. Pokud jde o regresní testování, investování manuálního úsilí je marné a nehospodárné. Místo očekávání, že lidé budou opakovat stejné kroky se stejnou rychlostí, přesnost, a energie, je mnohem logičtější naprogramovat stroj, aby udělal totéž.

jaké testy by měly být automatizovány?

před vytvořením strategie automatizace testů se podívejme, které testy jsou pro automatizaci nejvhodnější:

  • regresní testování: regresní sady se neustále zvyšují a vyžadují, aby byly mnohokrát vyplněny stejné proměnné, aby se zajistilo, že nové funkce nebudou manipulovat se staršími funkcemi. To lze snadno automatizovat.
  • testování komplexních funkcí: Automatizujte všechny testy vyžadující složité výpočty, něco náchylného k lidské chybě.
  • zkoušení kouře: Spusťte automatizované sady pro ověření kvality hlavních funkcí. To šetří čas tím, že nabízí rychlou analýzu toho, zda sestavení vyžaduje podrobnější testování.
  • testování založené na datech: Automatizujte testy k ověření funkcí, které musí být opakovaně testovány pomocí mnoha datových sad.
  • testování výkonu: Automatizujte testy, které monitorují výkon softwaru za různých okolností. Dělat to ručně by bylo velmi pečlivé a časově náročné.
  • funkční testování: Pokaždé, když vývojář předloží PR, musí být funkční testování provedeno rychle a poskytnout okamžitou zpětnou vazbu. To je nemožné dosáhnout bez automatizace, zejména s tím, jak se organizace zvětšují.

Začínáme s automatizačním testováním

při přechodu z ručního na automatizační testování mějte na paměti následující body:

  • nesnažte se o 100% automatizaci testů. Ne všechny testy lze automatizovat. Ani mezi testy, které lze automatizovat, nenastavujte počáteční cíl úplné automatizace.
  • nastavte realistický cíl. Začněte například přesunutím několika testů do automatizace. Napište menší testovací případy, které lze snadno znovu použít v budoucích testech stejného softwaru. Mapové testovací případy s odpovídajícími funkcemi pro lepší pokrytí testů. Označte testovací případy, aby týmy mohly mít jasno v tom, co automatizovat, a také efektivněji podávat zprávy.
  • Prozkoumejte nové oblasti aplikace pomocí automatizace. Při křížení automatizačních strategií zajistěte, aby obchodní požadavky byly brány stejně vážně jako technické úvahy.
  • vědět, co není automatizovat. To pomáhá rozhodnout o rozsahu automatizace na začátku procesu nápadu. Následující testy jsou nejlépe ponechány na ručním pokrytí:
  1. testování uživatelských zkušeností: nástroje nemohou replikovat celou cestu uživatele. Je nemožné, aby algoritmus předpověděl, jak budou jednotliví uživatelé interagovat s aplikací. Chcete-li skutečně posoudit kvalitu uživatelské zkušenosti, držte se lidských testerů. Zkuste použít ruční interaktivní testovací nástroje, jako je BrowserStack Live.
  2. testování přístupnosti: Při testování, jak je aplikace přístupná, neexistuje žádná náhrada za lidské použití. Nástroj nemůže měřit Přístupnost, protože lidé mají často různé názory na to, co se považuje za přístupné. Není možné, aby nástroj rozpoznal, zda pracovní postup softwaru poskytuje snadný přístup skutečným lidem.

  • vyberte správné nástrojeautomatizační testování je zcela závislé na nástrojích. Zde je to, co je třeba zvážit při výběru správného nástroje:
  1. povaha softwaru: je aplikace testována na webu nebo v mobilu?
    Chcete-li otestovat první, použijte nástroj, jako je selen, k automatizaci testů. Pro druhé je Appium jedním z nejlepších možných nástrojů pro automatizaci.
  2. programátor Experience: vyberte rámce, jazyky a nástroje, které odpovídají pohodlí a zkušenosti testerů. Mezi nejoblíbenější jazyky používané pro testování automatizace patří Java, JavaScript, Ruby, C# atd.
  3. Open Source nebo ne: v závislosti na rozpočtových omezeních se člověk může rozhodnout použít nástroje s otevřeným zdrojovým kódem, jako je selen nebo Appium, pro účely automatizace. Je však důležité si uvědomit, že všechny nástroje s otevřeným zdrojovým kódem nejsou horší než jejich komerčně dostupné protějšky. Například Selenium Webdriver je nástroj s otevřeným zdrojovým kódem, který je nejvíce upřednostňován automatizovanými testery po celém světě.
  • vyberte správnou testovací mřížku

testovací mřížka odkazuje na infrastrukturu, na které budou spuštěny všechny automatizované testy. Zahrnuje řadu zařízení, prohlížečů a operačních systémů (více verzí), na kterých má být software testován. Vždy je nejlepší automatizovat testy na skutečných zařízeních a prohlížečích. Tím bude zajištěno, že software je testován v reálných uživatelských podmínkách.

ideální testovací mřížka by navíc měla umožnit paralelní testování. To znamená, že testeři by měli být schopni provádět více testů na více zařízeních současně. To zkracuje dobu testu, urychluje výsledky a nabízí výsledky v kratších termínech.

něco jiného, co se rozhodne, je, zda by testovací mřížka měla být hostována na premise nebo v cloudu. Mějte na paměti, že instalace a údržba infrastruktury na místě je téměř vždy nákladná. Vyžaduje sledování nových zařízení, prohlížečů a operačních systémů, jejich aktualizaci a údržbu. To je výzva, protože každý měsíc je vydáváno více verzí.

naopak testování na cloudové síti je snazší, protože o aktualizaci a údržbu by se postarala organizace nabízející síť. Například BrowserStack nabízí cloudovou selenovou mřížku, která je připojena k 2000+ skutečným zařízením a prohlížečům pro testování. Uživatelé se prostě musí zaregistrovat a začít testovat na robustní selenové mřížce, která je neustále aktualizována pro dosažení nejlepších možných výsledků.

BrowserStack real device cloud poskytuje více než 2000 reálných prohlížečů a zařízení pro okamžité testování na vyžádání. Cloud také poskytuje integrace s populárními nástroji CI / CD, jako jsou Jira, Jenkins, TeamCity, Travis CI a mnoho dalšího. Kromě toho existují vestavěné ladicí nástroje, které testerům umožňují okamžitě identifikovat a vyřešit chyby. BrowserStack také usnadňuje testování Cypress na 30 + verze prohlížeče s okamžitou, bezproblémová paralelizace.

Vyzkoušejte automatizační testování zdarma

příklad automatizace testů

při ručním testování softwaru tester používá k interakci s ním držák a klávesnici. Automatizační skripty a nástroje replikují tuto interakci krok za krokem.

v tomto příkladu se testuje kalkulačka, aby se zjistilo, zda může přidat dvě čísla a zobrazit výsledek. Ručně by kroky k tomu byly následující:

Krok 1: kalkulačka spuštění
Krok 2: Stiskněte 2
Krok 3: Stiskněte +
Krok 4: Stiskněte 3
Krok 5: Stiskněte =
Krok 6: na obrazovce se zobrazí 5
Krok 7: Zavřít kalkulačku

automatizační nástroj může provádět stejné kroky s následujícím skriptem:

//the example is written in MS Coded UI using c# language.public void TestCalculator(){//launch the applicationvar app = ApplicationUnderTest.Launch("C:\Windows\System32\calc.exe");//do all the operationsMouse.Click(button2);Mouse.Click(buttonAdd);Mouse.Click(button3);Mouse.Click(buttonEqual); //evaluate the resultsAssert.AreEqual("5", txtResult.DisplayText,"Calculator is not showing 5");//close the applicationapp.Close();}

při provádění výše uvedeného skriptu se zobrazí přesně stejný výsledek (5). Místo toho, abyste museli projít manuálními kroky, jednoduše napište skript a nechte nástroj postarat se o zbytek.

jak přejít z ručního testování na automatizační

nejprve: položte dvě otázky.

  1. co automatizovat?
  2. jak automatizovat?

Co Automatizovat?

  • Automatizujte testy nezbytné pro cyklus častého uvolňování. To může zahrnovat kouřové testy, regresní testy a podobně. V zásadě automatizujte testy, které urychlují celý testovací cyklus. Pamatujte, že nižší ruční zásah se rovná rychlejším výsledkům.
  • Automatizujte testy na základě technické a obchodní priority. Přemýšlejte takto: pomohla by automatizace tohoto testu podnikání? Pomohla by automatizace tohoto testu zjednodušit technické složitosti? Pokud je odpověď na kteroukoli otázku ano, automatizujte.
  • automatizovat na základě použitelnosti. Některé testy, například testy kompatibility mezi prohlížeči, jednoduše fungují lépe, když jsou prováděny ručně. Závislost na nástroji může také omezit potenciál automatizace pro určitý testovací tým nebo organizaci.

Přečtěte si více: 10 osvědčených postupů automatizace testů, které je třeba dodržovat

jak automatizovat?

nejprve mějte na paměti, že ne všechny testy lze automatizovat. Dodržováním tří strategií v předchozí části je snazší zahájit automatizované testování praktickým způsobem.

  • začněte malý. 100% automatizace není cílem a také není možné. Napište menší testovací případy, protože se snáze udržují a znovu používají. Přesuňte malý počet testů na automatizační platformu, spusťte testy, analyzujte výsledky a rozhodněte, zda se tento proces ukázal jako prospěšný pro proces vývoje softwaru.
  • pokud z operace plynou významné výhody, přesuňte více testů do automatizace. Začněte pohybovat testy nejen v objemu, ale také zvyšte Typ automatizovaných testů. Nezapomeňte, že je to stále experimentální fáze. Je možné, že některé testy se ukáží jako neefektivní v automatizaci a musí být přesunuty zpět k ručnímu testování.
  • Mapujte testovací případy s každou metodou nebo funkcí, abyste získali lepší pokrytí testu. Označte své testovací případy pro snadnější identifikaci, aby tým mohl rychle vědět, které testy automatizovat. To také pomáhá implementovat lepší reporting.
  • při spuštění testování automatizace začněte zkoumáním nových oblastí aplikace ručně. Poté vytvořte plán rizik, který podrobně popisuje, co je třeba automatizovat, na základě obchodních a technických priorit.
  • použijte analytiku k určení preferencí koncového uživatele. Vytvořte seznam prohlížečů a zařízení, se kterými budou uživatelé s největší pravděpodobností přistupovat k softwaru. To pomáhá testování automatizace pokrýt správná rozhraní a optimalizuje výkon softwaru na správných uživatelských cestách.

zkuste automatizované testování v reálném cloudu zařízení

Test Automation Maintenance

jakmile je vytvořeno, musí být udržovány sady automatizačních testů. Jak se software vyvíjí a kódová základna se rozšiřuje, automatizační skripty musí být upraveny a aktualizovány tak, aby obsahovaly nové funkce a funkce. Dokonce i nepatrné změny v uživatelském rozhraní mohou narušit testy a způsobit jejich selhání. Při navrhování testovacích případů musí testeři automatizace zohledňovat úsilí a náklady na údržbu.

přístup k údržbě automatizace testů funguje ze dvou hlavních perspektiv:

  • selhání testu: při ladění neúspěšných testů hledá možné problémy s údržbou. Nebyl testovací skript dostatečně aktualizován? Narušila změna softwarového kódu testovací skript? To je snadný způsob, jak zjistit, které oblasti vyžadují úsilí o údržbu.
  • Změna závislostí nebo nástrojů: Změnil tým nebo organizaci API, nástroje pro podávání zpráv, databáze atd.? Pokud ano, může být nutné testy změnit nebo aktualizovat, aby se přizpůsobily novým sadám nástrojů. Aby toho bylo dosaženo, vývojáři a testeři budou samozřejmě muset být vyškoleni v nové infrastruktuře, aby mohli v budoucnu držet krok s úsilím o údržbu.

jaké jsou klíčové prvky efektivní strategie automatizace testů?

automatizační testování je nedílnou součástí každého testovacího ekosystému. Bez přechodu na Nastavení automatizace se komplexní testování stává obtížným, stejně jako splnění stále se zkracujících termínů. Proto je důležité zahájit protokoly automatizačního testování co nejdříve způsobem, který vyvažuje a doplňuje ruční testování.

vyzkoušejte výše uvedené kroky a experimentujte natolik, abyste zjistili, které přístupy přinášejí optimální výsledky. Nebojte se několikrát selhat, než najdete sladké místo, které umožňuje efektivní automatizaci bez ohrožení lidské validace.

Write a Comment

Vaše e-mailová adresa nebude zveřejněna.