Čo je to agilné testovanie?
AGILE TESTING je testovacia prax, ktorá sa riadi pravidlami a princípmi agilného vývoja softvéru. Na rozdiel od metódy Waterfall môže agilné testovanie začať na začiatku projektu s nepretržitou integráciou medzi vývojom a testovaním. Metodika agilného testovania nie je postupná (v tom zmysle, že sa vykonáva až po fáze kódovania), ale kontinuálna.
V tomto článku budeme diskutovať
- Agilný plán testov.
- Agilné stratégie testovania.
- Agilný testovací kvadrant.
- Problémy s QA s agilným vývojom softvéru.
- Riziko automatizácie v agilnom procese.
Agilný plán testov
Agilný plán testov obsahuje typy testov vykonávaných v rámci tejto iterácie, ako sú napríklad požiadavky na testovacie údaje, infraštruktúra, testovacie prostredia a výsledky testov. Na rozdiel od modelu vodopádu, v agilnom modeli je testovací plán napísaný a aktualizovaný pre každé vydanie. Typické plány testov v agilných systémoch zahŕňajú
- Rozsah testovania
- Nové funkcionality, ktoré sa testujú
- Úroveň alebo typy testovania založené na zložitosti funkcií
- Testovanie záťaže a výkonu
- Úvaha o infraštruktúre
- Zmiernenie alebo plán rizík
- Resourcing
- Výsledky a míľniky
Agilné stratégie testovania
Agilné testovanie životného cyklu trvá cez štyri fázy
a) Iterácia 0
Počas prvej fázy alebo iterácie 0 vykonávate úlohy počiatočného nastavenia. Zahŕňa identifikáciu ľudí na testovanie, inštaláciu testovacích nástrojov, plánovanie zdrojov (laboratórium na testovanie použiteľnosti) atď. V Iterácii 0 sú stanovené nasledujúce kroky.
a) Vytvorenie obchodného prípadu pre projekt
b) Stanovte okrajové podmienky a rozsah projektu
c) Načrtnite kľúčové požiadavky a prípady použitia, ktoré povedú k kompromisom v oblasti dizajnu
d) Náčrt jednej alebo viacerých kandidátskych architektúr
e) Identifikácia rizika
f) Odhad nákladov a príprava predbežného projektu
b) Stavebné úpravy
Druhou fázou agilnej metodiky testovania sú Construction Iterations, väčšina testovania sa deje počas tejto fázy. Táto fáza sa pozoruje ako množina iterácií na vytvorenie prírastku roztoku. Aby to bolo možné, v rámci každej iterácie tím implementuje hybrid postupov z XP, Scrum, agilného modelovania a agilných dát a podobne.
Pri konštrukčnej iterácii sa agilný tím riadi prioritnou praxou požiadaviek: Pri každej iterácii prevezme najdôležitejšie požiadavky zostávajúce zo zásobníka pracovných položiek a implementuje ich.
Konštrukčná iterácia je rozdelená na dve, potvrdzovacie a vyšetrovacie. Potvrdzovacie testovanie sa sústreďuje na overenie, či systém plní zámery zainteresovaných strán, ako sú tímu doteraz popísané, a či ich vykonáva tím. Zatiaľ čo vyšetrovacím testovaním sa zistí problém, ktorý konfirmačný tím preskočil alebo ignoroval. Pri vyšetrovacích testovaniach určuje tester potenciálne problémy vo forme chybných správ. Investigatívne testovanie sa zaoberá bežnými problémami, ako je testovanie integrácie, záťažové / záťažové testovanie a testovanie bezpečnosti.
Opäť pre potvrdzovacie testovanie existujú dva aspekty vývojárskeho testovania a agilného testovania prijatia . Oba sú automatizované, aby umožnili nepretržité regresné testovanie počas celého životného cyklu. Potvrdzujúce testovanie je agilný ekvivalent testovania k špecifikácii.
Agilné akceptačné testovanie je kombináciou tradičného funkčného testovania a tradičného akceptačného testovania ako vývojového tímu. Zainteresované strany to robia spoločne. Zatiaľ čo testovanie vývojárov je zmesou tradičného testovania jednotiek a tradičného testovania integrácie služieb. Testovanie vývojárom overuje kód aplikácie aj databázovú schému.
(c) Uvoľniť koniec hry alebo prechodnú fázu
Cieľom hry „Release, End Game“ je úspešne nasadiť váš systém do výroby. Medzi činnosti, ktoré v tejto fáze patria, patrí školenie koncových používateľov, pomocných a prevádzkových pracovníkov. Zahŕňa tiež marketing uvedenia produktu na trh, zálohovania a obnovy, finalizácie systémovej a užívateľskej dokumentácie.
Záverečná etapa agilného testovania metodiky zahŕňa úplné testovanie systému a akceptačné testovanie. Aby ste finálnu fázu testovania dokončili bez akýchkoľvek prekážok, mali by ste produkt testovať prísnejšie, kým je v stavebných iteráciách. Počas záverečnej hry budú testéri pracovať na jej chybných príbehoch.
d) Výroba
Po fáze vydania sa produkt presunie do fázy výroby.
Agilné testovacie kvadranty
Agilné testovacie kvadranty rozdeľujú celý proces do štyroch kvadrantov a pomáhajú pochopiť, ako sa agilné testovanie vykonáva.
a) Agilný kvadrant I - kvalita interného kódu je hlavným zameraním v tomto kvadrante a skladá sa z testovacích prípadov, ktoré sú založené na technológiách a sú implementované na podporu tímu, vrátane
1. Testy jednotky
2. Skúšky komponentov
b) Agile Quadrant II - obsahuje testovacie prípady, ktoré sú zamerané na podnikanie a sú implementované na podporu tímu. Tento kvadrant sa zameriava na požiadavky. Typ testu vykonaného v tejto fáze je
1. Testovanie príkladov možných scenárov a pracovných postupov
2. Testovanie používateľských skúseností, ako sú prototypy
3. Testovanie párov
c) Agilný kvadrant III - tento kvadrant poskytuje spätnú väzbu kvadrantom jeden a dva. Testovacie prípady možno použiť ako základ na vykonávanie automatizovaného testovania. V tomto kvadrante sa vykonáva veľa kôl iterácie, ktorá zvyšuje dôveru v produkt. Druh testovania vykonaného v tomto kvadrante je
1. Testovanie použiteľnosti
2. Prieskumné testovanie
3. Párové testovanie so zákazníkmi
4. Kolaboratívne testovanie
5. Užívateľské testovanie
d) Agilný kvadrant IV - Tento kvadrant sa zameriava na nefunkčné požiadavky, ako sú výkon, bezpečnosť, stabilita atď. Pomocou tohto kvadrantu sa vytvára aplikácia, ktorá poskytuje nefunkčné vlastnosti a očakávanú hodnotu.
1. Nefunkčné testy, ako sú stresové a výkonové testy
2. Testovanie bezpečnosti v súvislosti s autentifikáciou a hackerstvom
3. Testovanie infraštruktúry
4. Testovanie migrácie dát
5. Testovanie škálovateľnosti
6. Testovanie záťaže
Problémy s QA s agilným vývojom softvéru
a) Šance na chyby sú agilnejšie, pretože dokumentácia má menšiu prioritu a nakoniec vytvára väčší tlak na tím QA
b) Nové funkcie sa zavádzajú rýchlo, čo skracuje čas, ktorý majú testovacie tímy k dispozícii na to, aby zistili, či sú najnovšie funkcie v súlade s požiadavkami, a či skutočne zodpovedajú potrebám firmy
c) Od testerov sa často vyžaduje, aby hrali v roli semi-vývojára
d) Cykly vykonávania testu sú vysoko komprimované
e) Veľmi málo času na prípravu plánu testov
f) Pre regresné testovanie budú mať minimálne načasovanie
g) Zmena ich roly z pozície strážcu kvality na partnera v kvalite
h) Zmeny a aktualizácie požiadaviek sú neodmysliteľnou súčasťou agilnej metódy, ktorá sa pre QA stáva najväčšou výzvou
Riziko automatizácie v agilnom procese
- Automatizované používateľské rozhranie poskytuje vysokú úroveň spoľahlivosti, ale jeho vykonávanie je pomalé, jeho údržba je krehká a jeho zostavenie je nákladné. Automatizácia nemusí výrazne zvýšiť produktivitu testov, pokiaľ testéri nebudú vedieť, ako testovať
- Nespoľahlivé testy sú hlavným predmetom automatizovaného testovania. Oprava zlyhania testov a riešenie problémov týkajúcich sa krehkých testov by mala byť najvyššou prioritou, aby sa zabránilo falošným pozitívam
- Ak sa automatizovaný test iniciuje manuálne, a nie prostredníctvom CI (kontinuálna integrácia), existuje riziko, že nie sú pravidelne spustené, a preto môže spôsobiť zlyhanie testov.
- Automatické testy nenahrádzajú prieskumné ručné testovanie. Na získanie očakávanej kvality produktu je potrebná zmes typov a úrovní testovania
- Mnoho komerčne dostupných automatizačných nástrojov poskytuje jednoduché funkcie, ako je automatizácia snímania a prehrávania manuálnych testovacích prípadov. Takýto nástroj podporuje testovanie prostredníctvom používateľského rozhrania a vedie k inherentne krehkým a ťažko udržiavateľným testom. Uloženie testovacích prípadov mimo systému riadenia verzií tiež vytvára zbytočnú zložitosť
- Z dôvodu úspory času je plán automatizačných testov mnohokrát zle naplánovaný alebo neplánovaný, čo vedie k zlyhaniu testu
- Postupy nastavenia a roztrhnutia testu sa počas automatizácie testu zvyčajne minú, zatiaľ čo pri manuálnom testovaní znie postup nastavenia a roztrhnutia bezproblémovo
- Metriky produktivity, ako napríklad počet vytvorených alebo vykonaných testovacích prípadov za deň, môžu byť strašne zavádzajúce a mohli by viesť k veľkým investíciám do vykonávania zbytočných testov.
- Členovia agilného automatizačného tímu musia byť efektívni konzultanti: prístupní, kooperatívni a vynaliezaví, inak tento systém rýchlo zlyhá
- Automatizácia môže navrhnúť a dodať testovacie riešenia, ktoré si vyžadujú príliš veľa nepretržitej údržby v porovnaní s poskytnutou hodnotou
- Automatizovanému testovaniu môže chýbať odbornosť na vytvorenie a dodanie efektívnych riešení
- Automatizované testovanie môže byť také úspešné, že im dôjdu dôležité problémy na vyriešenie, a tak sa obrátia k nedôležitým problémom.
Záver
Agilná metodológia testovania softvéru zahŕňa testovanie čo najskôr v životnom cykle vývoja softvéru. Vyžaduje si vysoké zapojenie zákazníkov a testovací kód hneď, ako bude k dispozícii. Kód by mal byť dostatočne stabilný, aby ho bolo možné preniesť na testovanie systému. Je možné vykonať rozsiahle regresné testovanie, aby ste sa uistili, že chyby sú opravené a testované. Vďaka komunikácii medzi tímami je úspech agilných modelov úspešný hlavne !!!