Metodologije testiranja softvera: QA modeli

⚡ Pametni sažetak

Metodologija testiranja softvera definira strategije i vrste testiranja koje se koriste za certificiranje da aplikacija ispunjava očekivanja klijenta. Vodopadno, iterativno, agilno i ekstremno programiranje oblikuju kada testiranje počinje i kako se povratne informacije vraćaju.

  • 🎯 Osnovna definicija: Strategije i vrste testiranja koje provjeravaju je li aplikacija koja se testira u odnosu na očekivanja klijenta, svaka sa svojim ciljem i rezultatima.
  • 🪜 Slap: Faze se odvijaju strogo u određenom slijedu, tako da planiranje testiranja počinje rano, ali izvršenje čeka dovršen dizajn.
  • 🔁 Iterativno: Veliki projekt se dijeli na dijelove, od kojih svaki prolazi kroz ciklus vodopada, a cijeli sustav se testira nakon svake iteracije.
  • ⚡ Okretan: Kratki inkrementalni ciklusi favoriziraju reagiranje na promjene u odnosu na opsežno planiranje, pri čemu se svako izdanje temeljito testira.
  • 👥 Ekstremno programiranje: Vrlo kratki ciklusi s parnim programerima i razvojem vođenim testiranjem, gdje se test piše prije koda.
  • 🧭 Čimbenici odabira: Prikladna metodologija određuje se prema prirodi projekta, zahtjevima klijenta i rasporedu.
  • 📋 Osnove postavljanja: Realistično raspoređivanje, definirani rezultati, dogovoreni pristup testiranju i transparentno izvještavanje.

Metodologije testiranja softvera

Što je metodologija testiranja softvera?

Metodologija testiranja softvera definirana je kao strategije i tipovi testiranja koji se koriste za potvrdu da aplikacija koja se testira ispunjava očekivanja klijenta. Metodologije ispitivanja uključuju funkcionalno i nefunkcionalno testiranje za provjeru valjanosti AUT-a. Primjeri metodologija testiranja su Ispitivanje jedinice, Ispitivanje integracije, Ispitivanje sustava, Ispitivanje performansi itd. Svaka metodologija testiranja ima definiran cilj ispitivanja, strategiju testiranja i rezultate.

bilješke: Budući da je testiranje softvera sastavni dio svake razvojne metodologije, mnoge tvrtke kolokvijalno koriste izraz razvojne metodologije i metodologije testiranja. Stoga se metodologije testiranja mogu odnositi i na vodopad, agilne i druge QA modele za razliku od gornje definicije metodologija testiranja. Rasprava o raznim vrstama testiranja ne daje dodatnu vrijednost čitateljima. Stoga ćemo raspravljati o različitim modelima razvoja.

Metodologija testiranja vs. vrsta testiranja vs. strategija testiranja

Gornja napomena ukazuje na istinsku dvosmislenost u industriji. Tri termina se koriste naizmjenično u razgovoru, ali u projektnom dokumentu znače različite stvari, a njihovo miješanje stvara planove testiranja koji odgovaraju na pogrešno pitanje.

Termin Pitanje na koje odgovara Odlučio je Primjeri
Metodologija ispitivanja Kada i kako se testiranje uklapa u razvojni ciklus? Razvojni model koji se koristi Vodopadno, iterativno, agilno, ekstremno programiranje
Vrsta testiranja Koji se aspekt proizvoda provjerava? Pokriće rizika i zahtjeva Jedinica, integracija, sustav, performanse, sigurnost
Razina testiranja Koliko se dubinski ispituje softver? Pozicija u hijerarhiji izgradnje Komponenta, integracija, sustav, prihvaćanje
Testirajte strategiju Kakav je naš organizacijski pristup kvaliteti? Vođenje osiguranja kvalitete primjenjuje se na sve projekte Temeljeno na riziku, automatizacija na prvom mjestu, pomak ulijevo
Plan ispitivanja Što će točno ovaj projekt testirati, kada i od strane koga? Voditelj testiranja, specifičan za projekt Opseg, raspored, resursi, kriteriji ulaska i izlaska

Korisno pravilo: metodologija postavlja ritam, vrsta postavlja cilj, a plan ispitivanja bilježi obvezu. U odjeljcima u nastavku ispituju se metodologije.

Model slapa

Model slapa

Što je to?

u model vodopada, napredovanje razvoja softvera kroz različite faze kao što su analiza zahtjeva, dizajn itd. – sekvencijalno.

U ovom modelu sljedeća faza počinje tek kada se završi prethodna faza.

Kakav je pristup testiranju?

Prva faza u modelu vodopada je faza zahtjeva u kojoj su svi zahtjevi projekta u potpunosti definirani prije početka testiranja. Tijekom ove faze, tim za testiranje razmatra opseg testiranja, strategiju testiranja i izrađuje detaljan plan testiranja.

Tek kada je dizajn softvera dovršen, tim će prijeći na izvođenje testnih slučajeva kako bi se osiguralo da se razvijeni softver ponaša prema očekivanjima.

U ovoj metodologiji, tim za testiranje prelazi na sljedeću fazu tek kada je prethodna faza završena.

Prednosti Nedostaci
Ovaj model softverskog inženjerstva vrlo je jednostavan za planiranje i upravljanje. Stoga se projekti, u kojima su zahtjevi jasno definirani i unaprijed navedeni, mogu lako testirati korištenjem vodopada. U modelu vodopada možete započeti sa sljedećom fazom tek nakon što je prethodna faza završena. Stoga ovaj model ne može prihvatiti neplanirane događaje i neizvjesnost.
Ova metodologija nije prikladna za projekte u kojima se zahtjevi često mijenjaju.

Iterativni razvoj

Iterativni razvoj

Što je to?

U ovom modelu, veliki projekt je podijeljen na manje dijelove, a svaki dio je podvrgnut višestrukim iteracijama modela vodopada. Na kraju iteracije, razvija se novi modul ili se postojeći modul poboljšava. Ovaj modul je integriran u softversku arhitekturu i cijeli sustav se testira zajedno.

Koji je pristup testiranju?

Čim se iteracija završi, cijeli sustav se podvrgava testiranju. Povratne informacije iz testiranja su odmah dostupne i uključene su u sljedeći ciklus. Vrijeme testiranja potrebno u uzastopnim ponavljanjima može se smanjiti na temelju iskustva stečenog iz prošlih ponavljanja.

Prednosti Nedostaci
Glavna prednost iterativnog razvoja je da su povratne informacije o testu odmah dostupne na kraju svakog ciklusa. Ovaj model značajno povećava režijske troškove komunikacije budući da se na kraju svakog ciklusa moraju dati povratne informacije o rezultatima, trudu itd.

Agilna metodologija

Agilna metodologija

Što je to?

Tradicionalne metodologije razvoja softvera rade na pretpostavci da softverski zahtjevi ostaju konstantni tijekom cijelog projekta. Ali s povećanjem složenosti, zahtjevi prolaze kroz brojne promjene i kontinuirano se razvijaju. Ponekad ni sam kupac nije siguran što želi. Iako iterativni model rješava ovaj problem, još uvijek se temelji na modelu vodopada.

U agilnoj metodologiji softver se razvija u inkrementalnim, brzim ciklusima. Naglašene su interakcije između kupaca, programera i klijenta, a ne procesi i alati. Agilna metodologija usmjerena je na odgovor na promjene, a ne na opsežno planiranje.

Kakav je pristup testiranju?

Inkrementalno testiranje koristi se u agilnim razvojnim metodama i stoga se svako izdanje projekta temeljito testira. Ovo osigurava da su sve pogreške u sustavu ispravljene prije sljedećeg izdanja.

Prednosti Nedostaci
U svakom trenutku moguće je napraviti izmjene u projektu kako bi se uskladili sa zahtjevima. Stalna interakcija s klijentom znači dodatni vremenski pritisak na sve dionike, uključujući samog klijenta, timove za razvoj softvera i testiranje.
Ovo inkrementalno testiranje smanjuje rizike.

Ekstremno programiranje

Ekstremno programiranje

Što je to?

Ekstremno programiranje je vrsta agilne metodologije koja vjeruje u kratke razvojne cikluse. Projekt je podijeljen na jednostavne inženjerske zadatke. Programeri kodiraju jednostavan softver i vraćaju se kupcu za povratne informacije. Revtj. bodovi kupca su ugrađeni i programeri nastavljaju sa sljedećim zadatkom.

U ekstremnom programiranju programeri obično rade u parovima.

Ekstremno programiranje koristi se na mjestima gdje se zahtjevi kupaca stalno mijenjaju.

Kakav je pristup testiranju?

Ekstremno programiranje slijedi razvoj vođen testiranjem koji je opisan kako slijedi –

  1. Dodaj Testni slučaj u testni paket kako bi se provjerila nova funkcionalnost koja tek treba biti razvijena
  2. Pokrenite sve testove i očito novi testni slučaj mora biti neuspješan jer funkcionalnost još nije kodirana
  3. Napišite kod za implementaciju značajke/funkcionalnosti
  4. Ponovno pokrenite testni paket. Ovaj put bi novi testni slučaj trebao proći jer je funkcionalno kodiran
Prednosti Nedostaci
Korisnici koji imaju nejasan dizajn softvera na umu mogli bi koristiti ekstremno programiranje Sastanci između tima za razvoj softvera i klijenata dodatno povećavaju vremenske zahtjeve.
Kontinuirano testiranje i kontinuirana integracija malih izdanja osiguravaju visoku kvalitetu isporučenog softverskog koda

V-model i spiralni model

Dva dodatna modela pojavljuju se na većini projekata i upotpunjuju sliku, jer svaki na drugačiji način odgovara na slabost pristupa vodopada.

V-Model. Često nazivan verifikacijom i validacijom, V-model spaja svaku fazu razvoja s odgovarajućom fazom testiranja, nacrtanom kao dva kraka slova V. Zahtjevi se spajaju s testiranjem prihvatljivosti, dizajn visoke razine s testiranjem sustava, dizajn niske razine s integracijskim testiranjem, a kodiranje s jediničnim testiranjem. Vrijednost je u tome što dizajn testiranja počinje uz svaku fazu razvoja, a ne nakon kodiranja, pa osoba koja piše testove prihvatljivosti pronalazi dvosmislene zahtjeve mjesecima prije nego što se nedostatak može izgraditi. Njegova slabost naslijeđena je od modela vodopada: model i dalje pretpostavlja da su zahtjevi stabilni.

Spiralni model. Spirala obavija iteraciju oko eksplicitne analize rizika. Svaka petlja sadrži četiri aktivnosti: određivanje ciljeva, identificiranje i rješavanje rizika, razvoj i testiranje, a zatim planiranje sljedeće iteracije. Testiranje se stoga koncentrira tamo gdje je rizik najveći, umjesto da se ravnomjerno raspoređuje. Odgovara velikim, skupim, dugotrajnim programima poput zrakoplovnih ili bankarskih temeljnih sustava, gdje je trošak kasnog otkrića visok. Za mali web projekt, režijski troškovi formalne analize rizika na svakoj petlji rijetko su opravdani.

Oba modela nalaze se između discipline vodopada i agilnog odziva. Gdje je učestalost izdavanja važnija od bilo kojeg od njih, DevOps cjevovod gura testiranje u kontinuiranu integraciju tako da se svaki commit automatski provjerava.

Koju softversku metodologiju odabrati?

Dostupne su tone metodologija za razvoj softvera i njegovo odgovarajuće testiranje. Svaka tehnika i metodologija testiranja dizajnirana je za određenu svrhu i ima svoje relativne prednosti i nedostatke.

Odabir određene metodologije ovisi o mnogim čimbenicima kao što su priroda projekta, zahtjevi klijenta, raspored projekta itd.

Iz perspektive testiranja, neke metodologije zahtijevaju testiranje ulaznih podataka rano u životnom ciklusu razvoja, dok druge čekaju dok radni model sustava ne bude spreman.

Kako postaviti metodologiju testiranja softvera?

Metodologije testiranja softvera ne bi trebale biti postavljene samo radi testiranja softverskog koda. Treba razmotriti širu sliku i primarni cilj projekta treba zadovoljiti metodologijom testiranja. Pogledajte ovaj popis uglednih pružatelji usluga testiranja softvera koji vam mogu pomoći da uspostavite učinkovite strategije testiranja skrojene prema ciljevima vašeg projekta.

Zakazivanje

Realno planiranje ključno je za implementaciju uspješne metodologije testiranja i raspored bi trebao zadovoljiti potrebe svakog člana tima.

Definirani rezultati

Kako bi svi članovi tima ostali na istoj stranici, potrebno je osigurati dobro definirane rezultate. Isporučeni sadržaj trebao bi sadržavati izravan sadržaj bez dvosmislenosti.

Test pristup

Nakon što je planiranje dovršeno i definirani rezultati dostupni, tim za testiranje trebao bi moći formulirati pravi pristup testiranju. Definicijski dokumenti i sastanci programera trebali bi ukazati timu na najbolji pristup testiranju koji se može koristiti za projekt.

Izvještavanje

Transparentno izvješćivanje vrlo je teško postići, ali ovaj korak određuje učinkovitost pristupa testiranju koji se koristi u projektu.

Pitanja i odgovori

Da, i to je uobičajeno. Regulirani programi često koriste upravljanje vodopadom oko agilnih timova za isporuku, tako da dokumentacija zadovoljava revizore dok razvoj održava kratke cikluse povratnih informacija.

Pomicanje aktivnosti testiranja ranije u životnom ciklusu, tako da se nedostaci pronalaze u zahtjevima i dizajnu, a ne nakon kodiranja. Razvoj vođen testiranjem je pomak ulijevo doveden do svog logičnog kraja.

Umjetna inteligencija skraćuje povratnu petlju umjesto da zamjenjuje model. Generirani testni slučajevi, lokatori za samoobnavljanje i odabir temeljen na riziku omogućuju kratkim agilnim ciklusima da postignu pokrivenost koja je nekada zahtijevala dugu fazu.

Da. Analiza utjecaja testiranja mapira promjene koda na testove koji ih pokrivaju, tako da cjevovod pokreće ciljani podskup za nekoliko minuta umjesto cijelog regresijskog paketa preko noći.

Da, ali lakše. Agile preferira funkcionalni softver u odnosu na sveobuhvatnu dokumentaciju, a ne u odnosu na nikakvu. Kriteriji prihvaćanja, automatizirani testovi i sažet plan testiranja ostaju nužni dokazi.

Sažmite ovu objavu uz: