Co je agilní testování? Proces a životní cyklus

Co je agilní testování?

Agilní testování je testovací praxe, která se řídí pravidly a principy agilního vývoje softwaru. Na rozdíl od metody Waterfall může agilní testování začít na začátku projektu s nepřetržitou integrací mezi vývojem a testováním. Metodika agilního testování není sekvenční (ve smyslu, že se provádí až po fázi kódování), ale kontinuální.

Principy agilního testování

Zde jsou základní principy agilního testování:

  • V tomto agilním testovacím modelu je funkční software primárním měřítkem pokroku.
  • Nejlepšího výsledku mohou dosáhnout samoorganizující se týmy.
  • Naší nejvyšší prioritou je včasné a nepřetržité dodávání cenného softwaru.
  • Softwaroví vývojáři se musí shromažďovat denně v průběhu projektu.
  • Zvyšování agility prostřednictvím neustálého technického zlepšování a dobrého designu.
  • Agilní testování zajišťuje, že konečný produkt splňuje očekávání podniku tím, že poskytuje neustálou zpětnou vazbu.
  • V procesu Agile Test musíme provést proces testování během implementace, což zkracuje dobu vývoje.
  • Testovací proces v Agile by měl fungovat na konzistentním tempu vývoje
  • Poskytujte pravidelné úvahy o tom, jak být efektivnější.
  • Nejlepší architektury, požadavky a návrhy vycházejí ze samoorganizujících se týmů.
  • Pokaždé, když se tým sejde, zkontroluje a upraví své chování, aby byl efektivnější.
  • Osobní rozhovor s vývojovým týmem je nejúčinnějším a nejefektivnějším způsobem předávání informací v týmu.

Agilní testování zahrnuje různé principy, které nám pomáhají zvyšovat produktivitu Softwaru.

Životní cyklus agilního testování

Životní cyklus agilního testování je dokončen v pěti různých fázích, jak můžeme vidět na následujícím obrázku:

Životní cyklus agilního testování

Zde jsou kroky testování agilního procesu:

Fáze 1: Posouzení dopadů: V této počáteční fázi shromažďujeme vstupy od zúčastněných stran a uživatelů. Tato fáze se také nazývá fáze zpětné vazby, protože pomáhá testovacím technikům stanovit cíle pro další životní cyklus.

Fáze 2: Agilní plánování testování: Je to druhá fáze životního cyklu agilního testování, kde se všechny zúčastněné strany sejdou, aby naplánovaly harmonogram procesu testování a výstupů.

Fáze 3: Připravenost k vydání: V této fázi kontrolujeme funkce, které byly vyvinuty/implementovány, jsou připraveny k uvedení do provozu nebo ne. V této fázi je také rozhodnuto, který z nich se musí vrátit do předchozí vývojové fáze.

Fáze 4: Denní skrumáže: Tato fáze zahrnuje každé ranní standup setkání, kde se dohání stav testování a stanoví cíl celého dne.

Fáze 5: Test agility Revpohled: Poslední fází agilního životního cyklu je Agility Revviz Schůzka. It involves weekly meetings with stakeholders to regularly evaluate and assess progress against goals.

Agilní testovací plán

Agilní testovací plán zahrnuje typy testování provedené v této iteraci, jako jsou požadavky na testovací data, infrastruktura, testovací prostředía výsledky testů. Na rozdíl od vodopádového modelu je v agilním modelu napsán a aktualizován plán testování pro každé vydání. Typické testovací plány v agilních programech zahrnují

  • Rozsah testování
  • Nové funkce, které se testují
  • Úroveň nebo typy testování na základě složitosti funkcí
  • Testování zátěže a výkonu
  • Zvažování infrastruktury
  • Plán zmírnění nebo rizik
  • Zajišťování zdrojů
  • Dodávky a milníky

Agilní testovací strategie

Životní cyklus agilního testování zahrnuje čtyři fáze

Agilní testovací strategie

iterace 0

Během první fáze nebo iterace 0 provádíte úlohy počátečního nastavení. Zahrnuje identifikaci lidí pro testování, instalaci testovacích nástrojů, plánování zdrojů (lab pro testování použitelnosti) atd. Následující kroky jsou nastaveny tak, aby bylo dosaženo v Iteraci 0

  • Založení obchodního případu pro projekt
  • Stanovte okrajové podmínky a rozsah projektu
  • Načrtněte klíčové požadavky a případy použití, které povedou ke kompromisům v návrhu
  • Navrhněte jednu nebo více kandidátských architektur
  • Identifikace rizika
  • Odhad nákladů a příprava předběžného projektu

Stavební iterace

Druhou fází agilní metodiky testování jsou stavební iterace, většina testování probíhá během této fáze. Tato fáze je pozorována jako sada iterací pro vytvoření přírůstku řešení. Chcete-li to provést, v každé iteraci tým realizuje hybrid postupů z XP, Scrumu, agilního modelování a agilních dat a tak dále.

Při iteraci konstrukce se agilní tým řídí prioritní praxí požadavků: Při každé iteraci převezme nejzákladnější požadavky zbývající ze zásobníku pracovních položek a implementuje je.

Konstrukční iterace se dělí na dva, potvrzující testování a investigativní testování. Koncentráty potvrzujícího testování o ověření, že systém naplňuje záměry zainteresovaných stran, jak byly doposud týmu popsány, a je prováděn týmem. Zatímco investigativní testování odhalí problém, který potvrzující tým přeskočil nebo ignoroval. V Investigativním testování tester určuje potenciální problémy ve formě defektních příběhů. Investigativní testování se zabývá běžnými problémy, jako je integrační testování, zátěžové/zátěžové testování a bezpečnostní testování.

Opět platí, že potvrzující testování má dva aspekty vývojářské testování si agilní akceptační testování. Oba dva jsou automatizované, aby umožnily průběžné regresní testování v průběhu celého životního cyklu. Potvrzující testování je agilní ekvivalent testování podle specifikace.

Agilní akceptační testování je kombinací tradičního funkčního testování a tradičního akceptačního testování jako vývojový tým a zúčastněné strany to dělají společně. Zatímco vývojářské testování je kombinací tradičního testování jednotek a tradičního testování integrace služeb. Vývojářské testování ověřuje kód aplikace i schéma databáze.

Uvolnění Konec hry nebo přechodová fáze

Cílem „Release, End Game“ je úspěšně nasadit váš systém do výroby. Aktivity v této fázi zahrnují školení koncových uživatelů, podpůrných a provozních lidí. Zahrnuje také marketing vydání produktu, zálohování a obnovu, finalizaci systémové a uživatelské dokumentace.

Poslední fáze testování agilní metodiky zahrnuje úplné testování systému a akceptační testování. V souladu s tím, abyste dokončili závěrečnou fázi testování bez jakýchkoli překážek, měli byste produkt testovat přísněji, když je ve stavebních iteracích. Během závěrečné hry budou testeři pracovat na jejích defektech.

Výroba

Po fázi uvolnění se produkt přesune do fáze výroby.

Agilní testovací kvadranty

Agilní testovací kvadranty

Agilní testovací kvadranty rozdělují celý proces do čtyř kvadrantů a pomáhají pochopit, jak se agilní testování provádí.

Agilní kvadrant I

V tomto kvadrantu je hlavní důraz kladen na kvalitu interního kódu a skládá se z testovacích případů, které jsou založeny na technologii a jsou implementovány na podporu týmu, zahrnuje

  • Jednotkové testy
  • Testy součástí

Agilní kvadrant II

Obsahuje testovací případy, které jsou založeny na podnikání a jsou implementovány na podporu týmu. Tento kvadrant se zaměřuje na požadavky. Druh testu prováděného v této fázi je

  • Testování příkladů možných scénářů a pracovních postupů
  • Testování uživatelské zkušenosti, jako jsou prototypy
  • Testování párů

Agilní kvadrant III

Tento kvadrant poskytuje zpětnou vazbu kvadrantům jedna a dva. Testovací případy lze použít jako základ pro provádění automatizačního testování. V tomto kvadrantu se provádí mnoho kol iteračních kontrol, které vytvářejí důvěru v produkt. Druh testování prováděného v tomto kvadrantu je

  • Testování použitelnosti
  • Průzkumné testování
  • Párové testování se zákazníky
  • Společné testování
  • Testování přijetí uživatele

Agilní kvadrant IV

Tento kvadrant se soustředí na nefunkční požadavky, jako je výkon, bezpečnost, stabilita atd. Pomocí tohoto kvadrantu je aplikace vytvořena tak, aby poskytovala nefunkční vlastnosti a očekávanou hodnotu.

  • Nefunkční testy jako zátěžové a výkonnostní testy
  • Bezpečnostní testování s ohledem na ověření pravosti a hackování
  • Testování infrastruktury
  • Testování migrace dat
  • Testování škálovatelnosti
  • Zátěžové testování

Výzvy QA s agilním vývojem softwaru

  • Šance na chybu jsou agilnější, protože dokumentace má menší prioritu a nakonec vyvíjí větší tlak na tým QA
  • Nové funkce jsou zaváděny rychle, což zkracuje čas, který mají testovací týmy k dispozici, aby zjistily, zda nejnovější funkce odpovídají požadavkům, a zda skutečně odpovídají obchodním oblekům
  • Od testerů se často vyžaduje, aby hráli roli semi-vývojáře
  • Cykly provádění testů jsou vysoce komprimované
  • Velmi méně času na přípravu testovacího plánu
  • Pro regresní testování budou mít minimální časování
  • Změna jejich role ze strážce kvality na partnera v kvalitě
  • Změny a aktualizace požadavků jsou součástí agilní metody a stávají se největší výzvou pro QA

Riziko automatizace v agilním procesu

  • Automatizované uživatelské rozhraní poskytuje vysokou úroveň spolehlivosti, ale jejich provádění je pomalé, je křehké na údržbu a nákladné na sestavení. Automatizace nemusí výrazně zlepšit produktivitu testování, pokud testeři nevědí, jak testovat
  • Nespolehlivé testy jsou hlavním problémem v automatizovaném testování. Oprava neúspěšných testů a řešení problémů souvisejících s křehkými testy by mělo být nejvyšší prioritou, aby se předešlo falešným pozitivům
  • Pokud jsou automatizované testy spouštěny ručně, nikoli prostřednictvím CI (Continuous Integration), existuje riziko, že neprobíhají pravidelně, a proto mohou způsobit selhání testů.
  • Automatizované testy nejsou náhradou za průzkumné manuální testování. K získání očekávané kvality produktu je zapotřebí kombinace typů a úrovní testování
  • Mnoho komerčně dostupných automatizačních nástrojů poskytuje jednoduché funkce, jako je automatizace zachycení a přehrávání manuálních testovacích případů. Takový nástroj podporuje testování prostřednictvím uživatelského rozhraní a vede k inherentně křehkým a obtížně udržovatelným testům. Také ukládání testovacích případů mimo systém správy verzí vytváří zbytečnou složitost
  • Kvůli úspoře času je plán testování automatizace často špatně naplánován nebo neplánován, což vede k tomu, že test selže
  • Během automatizace testování se obvykle vynechá testovací procedura nastavení a odstranění, zatímco provádění ručního testování zní bezproblémově.
  • Metriky produktivity, jako je počet vytvořených nebo provedených testovacích případů za den, mohou být velmi zavádějící a mohly by vést k velkým investicím do spouštění zbytečných testů.
  • Členové týmu pro agilní automatizaci musí být efektivní konzultanti: přístupní, spolupracující a vynalézaví, jinak tento systém rychle selže.
  • Automatizace může navrhovat a dodávat testovací řešení, která vyžadují příliš mnoho průběžné údržby vzhledem k poskytované hodnotě
  • Automatizovanému testování může chybět odbornost k vytvoření a dodání efektivních řešení
  • Automatizované testování může být tak úspěšné, že jim dojdou důležité problémy k řešení, a tak se obrátí na nedůležité problémy.

Proč investovat do čističky vzduchu?

Agilní metodika testování softwaru zahrnuje testování co nejdříve životní cyklus vývoje softwaru. Vyžaduje vysoké zapojení zákazníků a testování kódu, jakmile bude k dispozici. Kód by měl být dostatečně stabilní, aby jej bylo možné použít k testování systému. Je možné provést rozsáhlé regresní testování, abyste se ujistili, že chyby jsou opraveny a testovány. Především díky komunikaci mezi týmy je testování agilních modelů úspěšné!!!