how implement efficient test automation agile world
Automatizácia v agile je veľmi dôležitá.
Popremýšľajte o mnohých funkciách, ktoré sú pridané a dodané v každom Sprinte. Musí existovať spôsob, ako zabezpečiť, aby novo pridaná funkcia nemala vplyv na existujúcu funkčnosť.
Z dôvodu nízkeho trvania Sprintu je prakticky nemožné vykonať celú kombináciu zakaždým, keď je produkt na konci Sprintu zvýšený. Mať automatizovaný testovací oblek by tu určite hralo väčšiu rolu.
Zavedenie a dozretie do automatizácie by však určite trvalo nejaký čas. Počiatočná investícia do plánovania a návrhu automatizačnej činnosti by sa z dlhodobého hľadiska určite vyplatila.
V tejto 3. časti série Agile Testing Advanced sa snažím uviesť niekoľko rád, ktoré by som mal zvážiť na základe mojich skúseností, keď do svojho projektu vnášate automatizáciu.
Tiež si prečítajte časť 1 a časť 2 najskôr lepšie porozumieť danej téme.
Čo sa dozviete:
Čo automatizovať v agile?
Kedykoľvek plánujeme zavedenie automatizácie do našich projektov, väčšina z nás okamžite hlasuje za to, aby bol najlepší oblek „Smoke Tests suit“ alebo „regression test suit“. kandidát na automatizáciu . Samozrejme, že sú, ale keď uvažujeme o pyramíde automatizačného testu, môžeme dospieť k záveru, že hovoríme iba o vrchnej vrstve pyramídy.
Okrem vyššie uvedenej vrstvy stále máme obslužná vrstva a jednotková vrstva ktoré sú dôležitejšie.
aký je najlepší nástroj na odstránenie škodlivého softvéru
Aké testy, okrem testov dymu a regresných testov, môžu byť dobrými kandidátmi na automatizáciu?
# 1) Budovania a nasadenia
V tradičných prostrediach máme preddefinované verzie, ktoré môžu byť týždenné, dvojtýždenné alebo niekedy dokonca mesačné. Jedným z dôvodov je, že tieto nasadenia si vyžadujú čas. Problém tohto prístupu spočíva v tom, že musíme čakať na preddefinované dátumy, aby sme chyby opravili, alebo aby sme implementovali nové funkcie, takže dôjde k oneskoreniu.
Druhým dôvodom bolo - v čase, keď testeri dokončia testovanie a prídu s chybami a chybami, programátori prešli na rôzne implementačné kúsky a majú menší záujem o vyriešenie chýb staršej aplikácie. Tento prístup tiež oneskoruje čas na sprístupnenie funkcie vo výrobe.
Budovanie a nasadenie sú entity, ktoré sa opakujú a niekedy sú nudné. Nasadenie zostavy môže tiež trvať hodiny, čo oneskorí testovanie a nakoniec aj spätnú väzbu. Ako opakujúca sa úloha sa nasadenie stáva dobrým kandidátom na automatizáciu.
Prečítajte si tiež=> Proces riadenia vydania a nasadenia
Niekoľko výhod zavedenia automatizovaného zostavenia je:
- Žiadna šanca urobiť chyby pri nasadení (je možné vyhnúť sa ľudským chybám, ako je kopírovanie nesprávneho súboru alebo kopírovanie súboru na nesprávne umiestnenie)
- Bug / funkcie sú k dispozícii na testovanie, akonáhle sú opravené
- Testéri majú na testovanie viac času
- Táto funkcia je pripravená na presun do výroby za kratší čas
- Rýchla spätná väzba
# 2) Testy jednotky / testy komponentov
Už som hovoril o dôležitosti automatizácie jednotkovej vrstvy pomocou Prístup TDD v mojom poslednom návode .
Toto tvorí najnižšiu vrstvu pyramídy, a preto základ a všetky základy musia byť pevné ako skaly. Vývojový tím by mal spolupracovať a spolupracovať, aby sa do tejto vrstvy zmestila väčšina testu.
# 3) Testovanie API / webových služieb
Webové služby sú médiom, v ktorom si dve aplikácie vymieňajú údaje alebo informácie z hľadiska požiadaviek a odpovedí bez toho, aby sa obťažovali so základnou architektúrou alebo technológiou. Jednoduchšie povedané - zadanie žiadosti a overenie odpovede je to, čo bežne robíme pri testovaní webových služieb.
Testovanie webových služieb znamená písanie programov, ktoré volajú tieto metódy webových služieb, a validáciu hodnoty, ktorú vracia. Služby môžeme dokonca testovať na rôzne obmeny a kombinácie. Nechajte všetky údaje o teste v excelovom liste a váš program môže údaje načítať a zavolať testovateľnú službu odovzdaním údajov o teste ako parametra a overením výsledkov.
Toto konkrétne testovanie je súčasťou strednej vrstvy pyramídy. Väčšinu funkčných testov je možné vložiť do tejto vrstvy. Riešenie chýb, ktoré vzniknú v tejto vrstve, sa dá ľahko opraviť a neodkladajú sa, kým nebude k dispozícii používateľské rozhranie.
# 4) Testovanie za GUI
Automatizácia testovania za grafickým používateľským rozhraním je porovnateľne ľahšia ako automatizácia skutočného grafického používateľského rozhrania. Ďalšou výhodou je, že bez ohľadu na zmeny používateľského rozhrania zostáva funkčnosť nedotknutá. Aj keď sa zmení niektorý z prvkov používateľského rozhrania, funkčnosť funkcie sa nezmení. Táto technika sa zameriava hlavne na obchodnú logiku a pravidlá.
Testovacie prípady sú väčšinou napísané v tabuľkovom formáte alebo v tabuľke a sú napísané úryvky prípravkov / kódu, ktoré akceptujú vstup z týchto tabuliek a vrátia výsledky. Výsledky sa generujú okamžite a poskytujú netechnickým zainteresovaným stranám skvelú platformu na vykonávanie týchto testov a získanie očakávaných výsledkov. Jedným z nástrojov používaných na dosiahnutie tejto techniky je Fitnes .
# 5) Nefunkčné testovanie
Toto nefunkčná testovacia technika v podstate zahŕňa testovanie záťaže, výkonu a stresu. Na trhu sú ľahko dostupné rôzne nástroje, ktoré je možné využiť na automatizáciu týchto testov.
# 6) Porovnanie údajov
Mnoho našich testov vyžaduje, aby sme porovnali dátové súbory vrátane textových súborov, súborov CSV alebo súborov programu Excel
- Tieto súbory je možné porovnať s východiskovými hodnotami pre vykonanie overenia údajov
- Porovnania môžu byť rovnakých údajov, ale iného formátu. To sa v zásade stane, keď máme dva rovnaké súbory vygenerované z dvoch rôznych zdrojov
Tieto porovnania môžu byť opakujúce sa, a preto automatizované.
# 7) Vyhľadávanie
Hľadanie konkrétnej entity z veľkého množstva súborov môže byť tiež únavné a Boh nám pomáha, ak ide o opakujúcu sa úlohu. Jedným z príkladov je prehľadávanie súborov protokolu. Ak je to tiež zdĺhavá a opakujúca sa úloha, mali by sme uvažovať o jej automatizácii.
# 8) Opakujúce sa úlohy
Akákoľvek úloha začínajúca interakciou s koncovými používateľmi alebo písaním príbehov až po jej vývoj, ak sa opakuje, by mala byť považovaná za automatizovanú. Mali by sme pochopiť, že automatizácia neznamená, že do nej musí byť zapojený sofistikovaný nástroj / technológia. Môže to byť jednoduché makro VB alebo program Java s Javascriptom, ktorý vyrieši účel.
Kde začať?
Neexistujú žiadne odrážky ani podrobný sprievodca, ktorý by hovoril, kde začať automatizáciu. Odštartovanie automatizácie pre tím vyžaduje, aby ste brainstormovali a hlboko premýšľali o tom, ktoré aspekty chcete automatizovať, alebo aký je konečný cieľ automatizácie?
Môžete začať:
- Identifikácia opakujúcich sa úloh,
- Identifikácia bolestivých oblastí aplikácie
- Identifikácia výziev na testovanie
Ak v projekte / tíme prehliadky nemáte žiadnu automatizáciu, pravdepodobne budete môcť zvoliť viacvrstvový prístup, pri ktorom je možné najskôr zautomatizovať jednotkové testy. Takto by ste dosiahli najvyššiu návratnosť investícií.
otázky na pohovor s webovými službami na odpočinok a mydlo
Testéri môžu súčasne začať pracovať na obleku na testovanie dymu a potom na regresii. Keď tím získa zručnosti a bude sa cítiť pohodlne, postupne sa posuňte k automatizácii ďalších opakujúcich sa úloh.
Neskočte priamo do nákupu nového nástroja bez vyhodnotenia svojich potrieb. Ako som už povedal, jednoduchý program alebo makro môže vyriešiť váš účel automatizácie niektorých opakujúcich sa úloh. Pred rozhodnutím o kúpe nástroja teda urob POC a vyhodnotiť, či by bol tento nástroj efektívny.
Prejdite si tieto dokumenty, kde som v nasledujúcich článkoch uviedol viac podrobností o tom, ako zvoliť správne testovacie prípady pre automatizáciu, a niektoré poznatky o odhadovaní úsilia automatizácie. manuálna automatizácia výziev procesu testovania a odhad testu na projekt automatizácie selénu.
Po dokončení rozsahu automatizácie a nástroja je potrebné navrhnúť rámec.
Pamätajte, že v systéme Agile sa rámec vyvinul. NEZAMERAJTE najskôr návrh celého rámca a až potom ho implementujte. Navrhnite a implementujte MVP (minimálny životaschopný produkt) a potom vylepšte existujúci rámec tak, aby obsahoval ďalšie funkcie. Ak chcete, aby bola vaša automatizačná sada robustná, musíte tiež použiť dobrú prax v oblasti kódovania a vývoja.
najlepší DVD ripper pre Windows 10
Niektoré osvedčené postupy
- Nezameriavajte sa na automatizáciu 100% naraz. Začnite v malom. Pamätajte, že ide o vyvíjajúci sa proces
- Postupujte podľa rovnakých agilných postupov, ktoré dodržiavate pri akomkoľvek vývoji softvéru. Automatizácia tiež vyžaduje správne plánovanie a projektovanie. Pri automatizácii by ste nechceli zvýšiť svoje technické dlhy
- Vytvorte svoj nevybavený priestor pre automatizáciu testov. Tento nevybavený stav môže siahať od implementácie novej funkcie po vylepšenie existujúcej funkcie. Dajte svojim identifikovaným položkám príbehové body a podľa toho ich priraďte. Vezmite tieto položky nevybavených položiek do svojho Sprintu a sledujte ich pomocou dosky Kanban
- Napíšte kritériá prijatia pre svoje príbehy o automatizácii. Medzi tieto kritériá prijatia môžu patriť:
- Integrácia testovacej sady s CI
- Prenášanie obleku na centralizované miesto
- Výsledky pošlite e-mailom
- Zabezpečenie odosielania súborov denníka chýb, keď test zlyhá
- Akékoľvek ďalšie kritériá….
- Neutrácajte čas hodnotením nového nástroja. Z nového nástroja môžete vytvoriť prioritný kontrolný zoznam toho, čo chcete, a rozhodnúť sa pre časovú os pre jeho vyhodnotenie. Ak nevidíte svoje výsledky v stanovenom čase, prejdite na ďalší
- Urobte rozumné rozhodnutie o tom, čo chcete automatizovať. Nie každý kúsok automatizácie je efektívny a prináša pozitívnu návratnosť investícií. Neautomatizujte iba kvôli automatizácii
- Využívajte správne vývojové prostredie. Nenechávajte si kód v miestnej sieti. Ak chcete svoj kód uchovať, zvyknite si na konci dňa svoj kód kontrolovať
- Podobným spôsobom sa pokúste vykonať svoje automatizované testy z centralizovaného umiestnenia. Urobte to nezávislým. Malo by sa stať, že ktokoľvek z tímu môže spustiť skripty zo svojho zariadenia a výsledky sa získajú e-mailom
Aké sú agilné princípy, ktoré sa dajú použiť na automatizáciu?
Niekoľko veľmi jednoduchých tipov:
- Nech je všetko jednoduché. Urobte, čo je potrebné. Videl som veľa prípadov, keď dodávame implementáciu s cukrom, ktorá zbytočne komplikuje automatizáciu. Vyvarujme sa vecí, ktoré nie sú potrebné
- Robiť jednoduché veci neznamená robiť najľahšie veci. To znamená podniknúť kroky k dosiahnutiu vašich automatizačných cieľov. Môžete použiť jednoduchú funkciu na automatizáciu, ale môže sa stať, že sa implementácia automatizácie ukáže ako zložitá
- Použite prístup celého tímu . Verím, že každý je testerom v agilnom tíme. Neobmedzujme automatizáciu iba s testermi alebo iba s vývojármi. Každá z disciplín si musí vzájomne vkročiť, aby dosiahla projekt automatizáciu. Tento prístup by bol tiež efektívny pri riešení akýchkoľvek technických problémov, ktoré so sebou prináša implementácia
- Rámec sa vyvinul v systéme Agile . Nesnažte sa poskytovať príliš veľa funkcií, ktoré by mohli zbytočne komplikovať automatizáciu
- Nájdite si čas a urobte to správne. Dajte si čas na jeho správne navrhnutie, aby ste sa vyhli technickým dlhom
- Získajte častú spätnú väzbu
- Aplikujte správne štandardy a prax v kódovaní. Dizajn by mal byť jednoduchý, uplatniť koncepty OOPS a pokúsiť sa udržať testy navzájom nezávislé. Zvážte faktory ako „udržiavateľnosť“ testovacej súpravy
Vidím pri automatizácii v Agile nejaké výzvy?
Automatizácia v agilnom svete prichádza s svoje vlastné výzvy :
- Musíme plánovať naozaj dobre. Pri rozhodovaní o vhodnom testovacom balíku, nástroji, rámci a prístupe je potrebné mať vhodnú stratégiu. Mali by sme však pamätať na NEMÁM príliš plánovať. Majte na pamäti MVP (minimálny životaschopný produkt)
- Kompromitovanie kvality kódu, pretože chceme dodávať rýchlo: Musíme si uvedomiť, že aj v automatizácii dobre platia technické dlhy.
- Tímy väčšinou tímy nedodržiavajú „prístup celého tímu“ a prenechávajú celú zodpovednosť za kódovanie a údržbu automatizovanej sady testerom, čo zvyšuje zodpovednosť testerov
- Automatizácia funkčných testov je náročnejšia ako automatizácia používateľského rozhrania
Spomedzi všetkých týchto výziev je najdôležitejšou výzvou zdokonalenie schopností testerov.
Robenie a údržba automatizácie pre tím je takmer ako programová (vývojová) činnosť, ktorú robia programátori (vývojári). Dôležitá je nielen implementácia, ale aj integrácia automatizovaného vybavenia do CI a vyžaduje, aby sa testéri učili a preberali nové zručnosti a učili sa nové nástroje a technológie.
Niektoré nástroje s otvoreným zdrojom, ktoré sa hodia do systému Agile
- Selén WebDriver - Pre používateľské rozhranie
- Selénová mriežka - Na paralelné vykonávanie
- Uhorka - pre BDD
- JMeter - Na testovanie výkonu
- MYDLO - Pre webové služby
- WireMock - Testovanie webových služieb, keď služba Web nie je k dispozícii.
- Epochy - pre mobil
Na záver by som chcel skončiť so známymi testovacími kvadrantmi Agile:
Kvadrant 1 je test jednotky a komponentov, ktorý je možné automatizovať pomocou prístupu TDD.
Kvadrant 2 hovorí o testovaní funkčnosti, kde môžeme uplatniť prístup BDD.
Kvadrant 3 je jediný kvadrant s rozsahom manuálneho testovania.
Kvadrant 4 v podstate hovorí o testovaní, ktoré je možné dosiahnuť pomocou niektorých nástrojov. Toto sa postará o záťažové testy, záťažové testy, objemové testy a bezpečnostné testy.
Záver
Okrem testov dymu a regresných testov existuje veľa rozsahu automatizácie. Preto sa musíme vymaniť z koncepcie obmedzovania automatizácie iba na tieto typy testovania, čo zase znamená, že sada zručností testera v Agile vyžaduje viac ako len hľadanie chýb a defektov.
Testéri musia viac spolupracovať a zdokonaliť svoje programovacie / automatizačné schopnosti. Ak sa automatizuje čoraz viac testov, poskytlo by to testerom viac času na to, aby sa mohli venovať zložitejším a náročnejším úlohám.
O autorovi: Tento článok je členom tímu STH Shilpa. Posledných 10 a viac rokov pracuje v oblasti testovania softvéru v doménach, ako je internetová reklama, investičné bankovníctvo a telekomunikácie.
Zdieľajte svoje komentáre a myšlienky nižšie.
Odporúčané čítanie
- Výukový program AutoIt - Stiahnutie, inštalácia a základný skript AutoIt
- Strácajú testeri pri testovaní kvôli automatizácii priľnavosť?
- Výzvy na manuálne a automatizované testovanie
- Najlepšie nástroje na testovanie softvéru 2021 (QA Test Automation Tools)
- 10-krokový proces testovania automatizácie: Ako spustiť testovanie automatizácie vo vašej organizácii
- Ste odborníkom na manuálne alebo automatizované testovanie? Pracujte na čiastočný úväzok pre nás!
- 11 najlepších automatizačných nástrojov na testovanie aplikácií pre Android (Android App Testing Tools)
- Najlepšie 10+ najlepšie knihy o testovaní softvéru (knihy o manuálnom a automatizovanom testovaní)