Kaj je agilno testiranje? Metodologija, postopek & Življenski krog

Kazalo:

Anonim

Kaj je agilno testiranje?

AGILE TESTING je preizkusna praksa, ki sledi pravilom in načelom agilnega razvoja programske opreme. Za razliko od metode Slap se lahko agilno testiranje začne na začetku projekta s stalnim povezovanjem med razvojem in testiranjem. Metoda agilnega testiranja ni zaporedna (v smislu, da se izvaja šele po fazi kodiranja), temveč neprekinjeno.

V tem članku bomo razpravljali

  • Agilni testni načrt.
  • Agilne strategije testiranja.
  • Okretni preizkuševalni kvadrant.
  • QA izzivi z agilnim razvojem programske opreme.
  • Tveganje avtomatizacije v agilnem procesu.

Agilni testni načrt

Agile testni načrt vključuje vrste preskusov, opravljenih v tej ponovitvi, kot so zahteve za podatke o preskusih, infrastruktura, testna okolja in rezultati preskusov. Za razliko od modela slapa je v agilnem modelu za vsako izdajo napisan in posodobljen testni načrt. Tipični preskusni načrti v agilnih programih vključujejo

  1. Obseg testiranja
  2. Nove funkcionalnosti, ki se preizkušajo
  3. Raven ali vrste preskušanja glede na kompleksnost lastnosti
  4. Preskušanje obremenitve in zmogljivosti
  5. Upoštevanje infrastrukture
  6. Načrt ublažitve ali tveganj
  7. Viri
  8. Rezultati in mejniki

Agilne strategije testiranja

Življenjski cikel agilnega testiranja obsega štiri faze

(a) Ponavljanje 0

Med prvo stopnjo ali ponovitvijo 0 izvedete začetne naloge namestitve. Vključuje identifikacijo ljudi za testiranje, namestitev orodij za testiranje, razporejanje virov (laboratorij za testiranje uporabnosti) itd. Naslednji koraki so določeni za doseganje v Iteraciji 0

a) Vzpostavitev poslovne utemeljenosti projekta

b) Določite mejne pogoje in obseg projekta

c) Opišite ključne zahteve in primere uporabe, ki bodo vodili do kompromisov pri oblikovanju

d) Opišite eno ali več kandidatnih arhitektur

e) prepoznavanje tveganja

f) ocena stroškov in priprava predhodnega projekta

(b) Gradbene ponovitve

Druga faza agilne metodologije testiranja je Construction Iterations, večina testiranj se zgodi v tej fazi. To fazo opazujemo kot niz ponovitev za izgradnjo koraka rešitve. Da bi to storila, skupina znotraj vsake ponovitve izvaja hibrid praks iz XP, Scrum, Agile modeliranje in agilne podatke itd.

Pri ponovitvi gradnje agilna ekipa upošteva prednostno prakso zahtev: z vsako ponovitvijo sprejme najpomembnejše zahteve, ki ostanejo iz sklada delovnih predmetov, in jih izvede.

Ponovitev gradnje je razdeljena na dve, potrditveno in preiskovalno testiranje. Potrditveno preskušanje se osredotoča na preverjanje, ali sistem izpolnjuje namen zainteresiranih strani, kot je do zdaj opisano ekipi, in ga izvaja skupina. Medtem ko preiskovalno testiranje odkrije težavo, ki jo je potrditvena skupina preskočila ali prezrla. Pri preiskovalnem testiranju tester ugotovi morebitne težave v obliki zgodb o napakah. Preiskovalno testiranje obravnava pogosta vprašanja, kot so integracijsko testiranje, testiranje obremenitve / obremenitve in varnostno testiranje.

Ponovno pri potrditvenem testiranju obstajata dva vidika testiranja razvijalcev in agilnega testiranja sprejemljivosti . Oba sta avtomatizirana, da omogočata neprekinjeno regresijsko testiranje skozi celoten življenjski cikel. Potrditveno testiranje je okretni ekvivalent testiranja specifikaciji.

Agilno sprejemno testiranje je kombinacija tradicionalnega funkcionalnega testiranja in tradicionalnega preizkusa sprejemljivosti kot razvojna skupina, zainteresirane strani pa to počnejo skupaj. Medtem ko je testiranje razvijalcev kombinacija tradicionalnega testiranja enot in tradicionalnega testiranja integracije storitev. Testiranje za razvijalce preveri tako aplikacijsko kodo kot shemo baze podatkov.

(c) Končna igra ali prehodna faza izdaje

Cilj “Release, End Game” je uspešno uvesti sistem v proizvodnjo. V tej fazi so vključene dejavnosti usposabljanja končnih uporabnikov, podpornih ljudi in operativnih ljudi. Vključuje tudi trženje izdaje izdelka, varnostno kopiranje in obnovo, dokončanje sistemske in uporabniške dokumentacije.

Zadnja stopnja preizkušanja agilne metodologije vključuje popolno testiranje sistema in testiranje sprejemljivosti. Če želite končati svojo zadnjo fazo preskušanja brez ovir, morate izdelek strožje preizkusiti, medtem ko je v gradbenih ponovitvah. Med končno igro bodo preizkuševalci delali na zgodbah o napakah.

(d) Proizvodnja

Po fazi izdaje se izdelek premakne v proizvodno fazo.

Agile preizkuševalni kvadranti

Gibljivi kvadranti za testiranje ločijo celoten postopek v štiri kvadrante in pomagajo razumeti, kako se izvaja agilno testiranje.

a) Agile Quadrant I - V tem kvadrantu je glavni poudarek na kakovosti notranje kode, ki je sestavljena iz testnih primerov, ki temeljijo na tehnologiji in se izvajajo za podporo ekipi, vključuje

1. Enotni testi

2. Komponentni testi

b) Agile Quadrant II - vsebuje testne primere, ki temeljijo na poslovanju in so implementirani v podporo ekipi. Ta kvadrant se osredotoča na zahteve. Vrsta preizkusa, opravljenega v tej fazi, je

1. Testiranje primerov možnih scenarijev in delovnih tokov

2. Testiranje uporabniške izkušnje, kot so prototipi

3. Testiranje parov

c) Agile Quadrant III - Ta kvadrant daje povratne informacije kvadrantom en in dva. Testni primeri se lahko uporabijo kot osnova za izvajanje avtomatiziranih preskusov. V tem kvadrantu se opravijo številni krogi pregledov ponovitev, ki krepijo zaupanje v izdelek. Vrsta preskušanja, opravljenega v tem kvadrantu, je

1. Testiranje uporabnosti

2. Raziskovalno preskušanje

3. Parno testiranje s strankami

4. Skupno testiranje

5. Testiranje sprejemljivosti uporabnika

d) Agile Quadrant IV - Ta kvadrant se osredotoča na nefunkcionalne zahteve, kot so zmogljivost, varnost, stabilnost itd. S pomočjo tega kvadranta se naredi aplikacija za zagotavljanje nefunkcionalnih lastnosti in pričakovane vrednosti.

1. Nefunkcionalni testi, kot so stresni testi in testi delovanja

2. Preskušanje varnosti glede preverjanja pristnosti in vdora

3. Preizkušanje infrastrukture

4. Testiranje selitve podatkov

5. Testiranje razširljivosti

6. Preskus obremenitve

QA izzivi z agilnim razvojem programske opreme

a) Verjetnost napak je bolj gibčna, saj je dokumentacija manj pomembna in sčasoma pritiska na ekipo za zagotavljanje kakovosti

b) Hitro se uvedejo nove funkcije, kar skrajša čas, ki je na voljo preskusnim skupinam, da ugotovijo, ali najnovejše funkcije ustrezajo zahtevam, in ali resnično obravnavajo poslovne tožbe.

c) Preizkuševalci so pogosto potrebni, da igrajo napol razvijalca

d) Cikli izvajanja preskusov so zelo stisnjeni

e) Zelo manj časa za pripravo testa

f) Za regresijska testiranja bodo imeli minimalen čas

g) Spreminjanje njihove vloge od vratarja kakovosti do partnerja v kakovosti

h) Spremembe in posodobitve zahtev so značilne za agilno metodo in postajajo največji izziv za zagotavljanje kakovosti

Tveganje avtomatizacije v agilnem procesu

  • Avtomatizirani uporabniški vmesnik zagotavlja visoko stopnjo zaupanja, vendar se počasi izvajajo, krhki za vzdrževanje in dragi za izdelavo. Avtomatizacija morda ne bo bistveno izboljšala produktivnosti preskusov, razen če preizkuševalci ne znajo preskusiti
  • Nezanesljivi testi so glavna težava avtomatiziranega testiranja. Odprava neuspešnih testov in reševanje težav, povezanih s krhkimi testi, bi morala biti glavna prednostna naloga, da bi se izognili lažnim pozitivnim rezultatom
  • Če se samodejni test zažene ročno in ne prek CI (neprekinjena integracija), obstaja nevarnost, da se ne izvajajo redno, zato lahko preskusi ne uspejo
  • Avtomatizirani testi niso nadomestilo za raziskovalno ročno preskušanje. Za pridobitev pričakovane kakovosti izdelka je potrebna kombinacija preskusnih vrst in ravni
  • Številna komercialno dostopna orodja za avtomatizacijo ponujajo preproste funkcije, kot so avtomatizacija zajemanja in predvajanja ročnih testnih primerov. Takšno orodje spodbuja testiranje prek uporabniškega vmesnika in vodi do inherentno krhkih in težko vzdrževalnih testov. Tudi shranjevanje testnih primerov zunaj sistema za nadzor različic ustvarja nepotrebno zapletenost
  • Da bi prihranili čas, velikokrat načrt preskusa avtomatizacije ni slabo načrtovan ali nenačrtovan, kar povzroči neuspeh preskusa
  • Postopki za postavitev in rušenje preskusa med avtomatizacijo testov običajno manjkajo, medtem ko se pri ročnem testiranju postopki za nastavitev in rušenje postopkov slišijo brezhibno
  • Meritve produktivnosti, kot je število testnih primerov, ustvarjenih ali izvedenih na dan, so lahko strašno zavajajoče in lahko vodijo do velikih naložb v izvajanje neuporabnih testov
  • Člani agilne ekipe za avtomatizacijo morajo biti učinkoviti svetovalci: dostopni, sodelovalni in iznajdljivi, sicer bo ta sistem hitro propadel
  • Avtomatizacija lahko predlaga in ponuja preskusne rešitve, ki zahtevajo preveč stalnega vzdrževanja glede na zagotovljeno vrednost
  • Avtomatizirano testiranje morda ne bo imelo strokovnega znanja za načrtovanje in zagotavljanje učinkovitih rešitev
  • Avtomatizirano testiranje je lahko tako uspešno, da jim zmanjka pomembnih težav, ki jih je treba rešiti, in se tako obrnejo na nepomembne težave.

Zaključek

Agilna metodologija pri testiranju programske opreme vključuje testiranje čim prej v življenjskem ciklu razvoja programske opreme. Zahteva veliko vključenost in preizkušanje kode, takoj ko postane na voljo. Koda mora biti dovolj stabilna, da jo lahko prenese na sistemsko testiranje. Za zagotovitev, da so napake odpravljene in preizkušene, je mogoče opraviti obsežno regresijsko testiranje. Komunikacija med ekipami omogoča predvsem agilno testiranje modelov !!!