Što je agilno testiranje? Proces i životni ciklus
Što je agilno testiranje?
Agilno testiranje je praksa testiranja koja slijedi pravila i principe agilnog razvoja softvera. Za razliku od metode vodopada, agilno testiranje može započeti na početku projekta kontinuiranom integracijom između razvoja i testiranja. Agilna metodologija testiranja nije sekvencijalna (u smislu da se provodi tek nakon faze kodiranja), već kontinuirana.
Načela agilnog testiranja
Evo osnovnih principa Agilnog testiranja:
- U ovom Agile modelu testiranja, softver koji radi je primarna mjera napretka.
- Najbolji rezultat mogu postići samoorganizirani timovi.
- Rana i kontinuirana isporuka vrijednog softvera naš je najveći prioritet.
- Programeri softvera moraju se svakodnevno okupljati tijekom projekta.
- Poboljšanje agilnosti kroz stalna tehnička poboljšanja i dobar dizajn.
- Agilno testiranje osigurava da konačni proizvod ispuni očekivanja tvrtke pružajući stalne povratne informacije.
- U Agile Test procesu, moramo izvršiti proces testiranja tijekom implementacije, što smanjuje vrijeme razvoja.
- Proces testiranja u Agileu trebao bi raditi na dosljednom tempu razvoja
- Omogućite redovita razmišljanja o tome kako postati učinkovitiji.
- Najbolje arhitekture, zahtjevi i dizajn proizlaze iz samoorganizirajućih timova.
- Svaki put kada se tim sastane, pregledava i prilagođava svoje ponašanje kako bi postao učinkovitiji.
- Razgovor licem u lice s razvojnim timom je najučinkovitija i najučinkovitija metoda prenošenja informacija unutar tima.
Agilno testiranje uključuje različite principe koji nam pomažu povećati produktivnost softvera.
Životni ciklus agilnog testiranja
Životni ciklus agilnog testiranja dovršen je u pet različitih faza, kao što možemo vidjeti na sljedećoj slici:
Evo koraka testiranja Agile procesa:
Faza 1: Procjena utjecaja: U ovoj početnoj fazi prikupljamo podatke od dionika i korisnika. Ova se faza naziva i fazom povratnih informacija, jer pomaže inženjerima za testiranje u postavljanju ciljeva za sljedeći životni ciklus.
Faza 2: Agilno planiranje testiranja: To je druga faza životnog ciklusa Agile testiranja, gdje se svi dionici okupljaju kako bi planirali raspored procesa testiranja i isporučenih rezultata.
Faza 3: Spremnost za izdavanje: U ovoj fazi pregledavamo značajke koje su razvijene/implementirane jesu li spremne za puštanje u rad ili ne. U ovoj fazi također se odlučuje koji se treba vratiti u prethodnu fazu razvoja.
Faza 4: Dnevni Scrumovi: Ova faza uključuje svaki jutarnji sastanak za standup kako bi se uhvatio status testiranja i postavio cilj za cijeli dan.
Faza 5: Testirajte agilnost Review: Posljednja faza Agile životnog ciklusa je Agility Review Sastanak. Uključuje tjedne sastanke s dionicima radi redovite evaluacije i procjene napretka u odnosu na ciljeve.
Agilni testni plan
Agilni testni plan uključuje vrste testiranja obavljenih u toj iteraciji kao što su zahtjevi testnih podataka, infrastruktura, testna okruženja, i rezultate ispitivanja. Za razliku od vodopada, u agilnom modelu testni plan se piše i ažurira za svako izdanje. Tipični planovi testiranja u agilnosti uključuju
- Opseg ispitivanja
- Nove funkcionalnosti koje se testiraju
- Razina ili vrste testiranja na temelju složenosti značajki
- Testiranje opterećenja i performansi
- Razmatranje infrastrukture
- Plan ublažavanja ili rizika
- resourcing
- Isporučivi rezultati i prekretnice
Agilne strategije testiranja
Životni ciklus agilnog testiranja proteže se kroz četiri faze
iteracija 0
Tijekom prve faze ili iteracije 0, izvodite početne zadatke postavljanja. To uključuje identificiranje ljudi za testiranje, instaliranje alata za testiranje, raspoređivanje resursa (laboratorij za testiranje upotrebljivosti), itd. Sljedeći koraci postavljeni su za postizanje u Iteraciji 0
- Uspostava poslovnog slučaja za projekt
- Odredite rubne uvjete i opseg projekta
- Navedite ključne zahtjeve i slučajeve upotrebe koji će potaknuti kompromise u dizajnu
- Nacrtajte jednu ili više arhitektura kandidata
- Identificiranje rizika
- Procjena troškova i izrada idejnog projekta
Konstrukcijske iteracije
Druga faza agilne metodologije testiranja su iteracije konstrukcije, većina testiranja odvija se tijekom ove faze. Ova se faza promatra kao skup ponavljanja za izgradnju prirasta rješenja. Da bismo to učinili, unutar svake iteracije, tim provodi hibrid praksi iz XP-a, Scruma, agilnog modeliranja i agilnih podataka i tako dalje.
U iteraciji konstrukcije, agilni tim slijedi praksu prioritetnih zahtjeva: sa svakom iteracijom oni uzimaju najbitnije zahtjeve koji su preostali iz skupa radnih stavki i implementiraju ih.
Ponavljanje konstrukcije je klasificirano u dva, potvrdno ispitivanje i istražno ispitivanje. Koncentrati za potvrdno ispitivanje o provjeri ispunjava li sustav namjeru dionika kako je do sada opisano timu i provodi li ga tim. Dok istražno testiranje otkriva problem koji je tim za potvrdu preskočio ili zanemario. U istražnom testiranju, ispitivač utvrđuje potencijalne probleme u obliku priča o nedostacima. Istraživačko testiranje bavi se uobičajenim problemima kao što su integracijsko testiranje, testiranje opterećenja/stresa i sigurnosno testiranje.
Opet, za potvrdno testiranje postoje dva aspekta testiranje programera i agilno testiranje prihvatljivosti. Oboje automatizirani su kako bi se omogućilo kontinuirano regresijsko testiranje tijekom životnog ciklusa. Potvrdno testiranje agilni je ekvivalent testiranja prema specifikaciji.
Agilno testiranje prihvatljivosti kombinacija je tradicionalnog funkcionalnog testiranja i tradicionalnog testiranja prihvatljivosti jer razvojni tim i dionici to rade zajedno. Dok je razvojno testiranje mješavina tradicionalnog jediničnog testiranja i tradicionalnog testiranja integracije usluga. Testiranje programera provjerava i kod aplikacije i shemu baze podataka.
Otpustite kraj igre ili fazu prijelaza
Cilj "Release, End Game" je uspješno implementirati vaš sustav u proizvodnju. Aktivnosti koje uključuju ovu fazu su obuka krajnjih korisnika, ljudi za podršku i operativnih ljudi. Također, uključuje marketing izdanja proizvoda, backup & restauraciju, finalizaciju sustava i korisničke dokumentacije.
Završna faza testiranja agilne metodologije uključuje testiranje potpunog sustava i testiranje prihvaćanja. Kako biste svoju posljednju fazu testiranja završili bez ikakvih prepreka, trebali biste rigoroznije testirati proizvod dok je u iteracijama konstrukcije. Tijekom završne igre, testeri će raditi na njegovim pričama o nedostacima.
Proizvodnja
Nakon faze izdavanja, proizvod će prijeći u fazu proizvodnje.
Agilni kvadranti testiranja
Kvadranti agilnog testiranja odvajaju cijeli proces u četiri kvadranta i pomažu razumjeti kako se izvodi agilno testiranje.
Agilni kvadrant I
Interna kvaliteta koda glavni je fokus u ovom kvadrantu, a sastoji se od testnih slučajeva koji su vođeni tehnologijom i implementirani su za podršku timu, uključujući
- Jedinični testovi
- Ispitivanje komponenti
Agilni kvadrant II
Sadrži testne slučajeve koji su poslovno vođeni i implementirani su kao podrška timu. Ovaj kvadrant fokusiran je na zahtjeve. Vrsta testa koji se izvodi u ovoj fazi je
- Testiranje primjera mogućih scenarija i radnih procesa
- Testiranje korisničkog iskustva kao što su prototipovi
- Testiranje u paru
Agilni kvadrant III
Ovaj kvadrant daje povratnu informaciju kvadrantima jedan i dva. Testni slučajevi mogu se koristiti kao osnova za izvođenje automatiziranog testiranja. U ovom kvadrantu provode se mnogi krugovi iteracijskih pregleda koji izgrađuju povjerenje u proizvod. Vrsta testiranja u ovom kvadrantu je
- Ispitivanje upotrebljivosti
- Istraživačko ispitivanje
- Uparite testiranje s kupcima
- Kolaborativno testiranje
- Testiranje prihvaćanja korisnika
Agilni kvadrant IV
Ovaj kvadrant koncentrira se na nefunkcionalne zahtjeve kao što su izvedba, sigurnost, stabilnost itd. Uz pomoć ovog kvadranta, aplikacija je izrađena tako da isporučuje nefunkcionalne kvalitete i očekivanu vrijednost.
- Nefunkcionalni testovi kao što su stres i testiranje performansi
- Sigurnosno testiranje s obzirom na ovjera i hakiranje
- Ispitivanje infrastrukture
- Testiranje migracije podataka
- Testiranje skalabilnosti
- Ispitivanje opterećenja
QA izazovi s agilnim razvojem softvera
- Šanse za pogrešku veće su u agilnosti, budući da se dokumentaciji daje manji prioritet, što na kraju stavlja veći pritisak na QA tim
- Nove značajke uvode se brzo, što smanjuje dostupno vrijeme za timove za testiranje da utvrde jesu li najnovije značajke u skladu sa zahtjevima i odgovaraju li doista poslovnim potrebama
- Od testera se često traži da igraju ulogu poluprogramera
- Ciklusi izvršenja testa su visoko komprimirani
- Jako manje vremena za pripremu plana testiranja
- Za regresijsko testiranje imat će minimalno vrijeme
- Promjena njihove uloge od čuvara kvalitete do partnera u kvaliteti
- Promjene i ažuriranja zahtjeva sastavni su dio agilne metode, što postaje najveći izazov za osiguranje kvalitete
Rizik automatizacije u agilnom procesu
- Automatsko korisničko sučelje pruža visoku razinu povjerenja, ali se sporo izvršava, krhko je za održavanje i skupo je za izgradnju. Automatizacija možda neće značajno poboljšati produktivnost testiranja osim ako ispitivači ne znaju kako testirati
- Nepouzdani testovi glavna su briga u automatiziranom testiranju. Popravljanje neuspjelih testova i rješavanje problema povezanih s lomljivim testovima trebao bi biti glavni prioritet kako bi se izbjegli lažni pozitivni rezultati
- Ako se automatski testovi pokreću ručno, a ne putem CI-ja (kontinuirana integracija), tada postoji rizik da se ne izvode redovito i stoga mogu uzrokovati neuspjeh testova
- Automatizirani testovi nisu zamjena za eksplorativno ručno testiranje. Da bi se postigla očekivana kvaliteta proizvoda, potrebna je mješavina vrsta i razina ispitivanja
- Mnogi komercijalno dostupni alati za automatizaciju pružaju jednostavne značajke kao što je automatiziranje snimanja i ponavljanja ručnih testnih slučajeva. Takav alat potiče testiranje putem korisničkog sučelja i dovodi do inherentno krhkih i teških testova za održavanje. Također, pohranjivanje testnih slučajeva izvan sustava kontrole verzija stvara nepotrebnu složenost
- Kako bi se uštedjelo vrijeme, mnogo puta plan testiranja automatizacije je loše planiran ili neplaniran što rezultira neuspjehom testa
- Postupci postavljanja i rušenja testa obično se propuštaju tijekom automatizacije testa, dok izvođenje ručnog testiranja, postupak postavljanja i rušenja testa zvuči besprijekorno
- Mjerni podaci o produktivnosti kao što je broj testnih slučajeva kreiranih ili izvedenih po danu mogu biti užasno pogrešni i mogu dovesti do velikih ulaganja u izvođenje beskorisnih testova
- Članovi agilnog tima za automatizaciju moraju biti učinkoviti konzultanti: pristupačni, kooperativni i snalažljivi, ili će ovaj sustav brzo propasti
- Automatizacija može predložiti i isporučiti rješenja za testiranje koja zahtijevaju previše tekućeg održavanja u odnosu na pruženu vrijednost
- Automatiziranom testiranju možda nedostaje stručnost za osmišljavanje i isporuku učinkovitih rješenja
- Automatizirano testiranje može biti toliko uspješno da im ponestane važnih problema za rješavanje i stoga se okrenu nevažnim problemima.
Zaključak
Agilna metodologija u testiranju softvera uključuje testiranje što je ranije moguće u životni ciklus razvoja softvera. Zahtijeva veliku uključenost korisnika i testiranje koda čim postane dostupan. Kod bi trebao biti dovoljno stabilan da se odnese na testiranje sustava. Može se provesti opsežno regresijsko testiranje kako bi se osiguralo da su pogreške ispravljene i testirane. Uglavnom, komunikacija između timova čini uspješno testiranje agilnog modela!!!