Inkrementinis testavimas programinės įrangos testavimo srityje – tai metodika, leidžianti komandoms išskaidyti atskirus modulius, testuoti juos atskirai ir palaipsniui integruoti. Tai padeda anksti rasti defektus, sumažina sudėtingumą ir padidina testų aprėptį.
Šiame straipsnyje gilinsimės į inkrementinį testavimą, paaiškinsime, kas tai yra, ir panagrinėsime įvairius su šia naudinga metodika susijusius tipus, procesus, metodus, įrankius ir kt.
Kas yra inkrementinis testavimas?
Testavimas yra vienas svarbiausių programinės įrangos kūrimo ciklo (SDLC) etapų. Kaip ir SDLC, testavimas yra suskirstytas į skirtingus loginius etapus. Inkrementinis testavimas yra vienas iš šių etapų, kuris paprastai vyksta
integracijos testavimas
ir iš karto po
vienetinio testavimo
.
Inkrementinis testavimas tai pragmatiškas programinės įrangos testavimo metodas, pagal kurį didelės ar sudėtingos programos suskaidomos į lengvai valdomus gabalėlius. Užuot integravus ir testavus visą programinės įrangos sistemą iš karto, inkrementinis testavimas apima modulius ir įgyvendina laipsnišką tikrinimo procesą.
Programinės įrangos moduliai paprastai yra savarankiški kodo vienetai, atliekantys konkrečias užduotis ar funkcijas. Šių modulių detalumas priklauso nuo įvairių veiksnių, pavyzdžiui, kodavimo praktikos, kūrimo metodikos ar net naudojamos programavimo kalbos.
Moduliai testuojami nepriklausomai atliekant vienetų testavimą. Tada, atliekant integravimo bandymus, kiekvienas modulis integruojamas dalimis arba etapais. Šis procesas užtikrina, kad kiekvienas modulis gerai veiktų kartu. Tačiau, norėdami visapusiškai patikrinti kiekvieną modulį, bandytojai turi imituoti dar neįdiegtus komponentus arba išorines sistemas. Tam jiems reikalingi antgaliai ir tvarkyklės.
Kas yra stubai ir tvarkyklės inkrementiniame testavime?
Įskiepiai ir tvarkyklės yra labai svarbūs programinės įrangos testavimo įrankiai. Šios laikinosios kodo dalys naudojamos atliekant integracinius bandymus, nes komandos gali imituoti įvairių modulių ar komponentų elgseną ir sąsajas.
1. Šaknelės:
Moduliai imituoja dar nesukurtus modulius, todėl jų negalima išbandyti. Jie leidžia testuojamam moduliui (MUT) iškviesti neužbaigtus modulius. Tai reiškia, kad MUT galima išbandyti atskirai, net jei nėra susijusių modulių.
2. Vairuotojai:
Kita vertus, tvarkyklės imituoja modulių, kurie iškviečia MUT, elgseną. Testavimo aplinkoje šios tvarkyklės gali siųsti MUT testo duomenis. Tai vėlgi palengvina izoliuotų modulių testavimą be išorinių priklausomybių.
Naudojant pakopas arba tvarkykles sutrumpėja kūrimo laikas, pagerėja kodo kokybė ir padidėja komandos produktyvumas. Tačiau sprendimas, kurį iš jų naudoti, priklauso nuo to, kuri testavimo metodika yra tinkamiausia. Šią temą plačiau aptarsime toliau esančiame skyriuje, kuriame kalbama apie skirtingus inkrementinio integravimo testavimo tipus.
Įvairūs inkrementinių
integracijos testavimas
Inkrementinio testavimo tipus iš esmės galima suskirstyti į tris kategorijas. Panagrinėkime kiekvieną iš jų.
1. Inkrementinė integracija iš viršaus į apačią
Iš viršaus į apačią laipsniškas integravimas pradedamas testuojant aukščiausios eilės sistemos modulius. Toliau palaipsniui integruojami ir išbandomi žemesnės eilės moduliai.Egzistuoja du pagrindiniai scenarijai, pagal kuriuos taikoma iš viršaus į apačią nukreipta laipsniška integracija. Tai:
- Kai sistema yra labai didelė arba labai sudėtinga
- Kai kūrėjų komanda vienu metu dirba su daugeliu modulių.
Iš viršaus į apačią vykdomos laipsniškos integracijos etapai
- Nustatyti svarbiausius modulius
- Sukurti žemesnės eilės modulių imitacijas
- Sukurti tvarkykles, kurios sąveikautų su aukštesnio lygio moduliais, kad būtų galima siųsti jiems duomenis ir interpretuoti modulio išvestis.
- Kritinių modulių vienetinis testavimas naudojant tvarkykles ir stubus
- Integruoti žemesnės eilės modulius ir palaipsniui pakeisti “stubus” realiomis realizacijomis
- Pertvarkykite tvarkykles, kad jos atitiktų naujus modulius
- Kartokite, kol bus integruoti ir išbandyti visi žemesnės eilės moduliai.
2. Inkrementinė integracija iš apačios į viršų
“Iš apačios į viršų” laipsniška integracija vyksta priešinga kryptimi. Taikant šį metodą bandomi žemesnės eilės (arba mažiausiai svarbūs) sistemos moduliai, o aukštesnės eilės moduliai pridedami palaipsniui. Šis metodas tinka įvairiems scenarijams, pvz:
- Kai dirbate su mažesnėmis sistemomis
- Kai sistema yra modulinė
- Kai kyla abejonių dėl stuburo įrašų tikslumo arba išsamumo.
Inkrementinės integracijos “iš apačios į viršų” etapai
- Nustatyti žemesnės eilės modulius
- žemesnės eilės modulių testavimas, siekiant patikrinti jų atskiras funkcijas.
- Sukurti tvarkykles, kurios veiktų kaip tarpininkės su žemesnės eilės moduliais.
- Sukurti aukštesnės eilės modulių elgsenai imituoti
- Integruokite kitus modulius, nuo žemesnės iki aukštesnės eilės, ir palaipsniui pakeiskite “stubus” realiomis realizacijomis.
- Pertvarkykite tvarkykles, kad jos atitiktų naujus modulius
- Kartokite, kol bus integruoti ir išbandyti visi aukštesnės eilės moduliai.
3. Funkcinė inkrementinė integracija
Funkcijų inkrementinis integracinis testavimas yra kitas dažniausias programinės įrangos testavimo inkrementinio testavimo tipas. Dviejų ankstesnių rūšių testai buvo skirti aukštesnės ir žemesnės eilės moduliams, o funkcinis inkrementinis testavimas pagrįstas konkretaus modulio funkcionalumu.
Funkcinė inkrementinė integracija naudojama
Agile/DevOps metodikose
, ir tai puikus pasirinkimas taikomosioms programoms, turinčioms sudėtingų priklausomybių tarp modulių ar komponentų.
Funkcinės inkrementinės integracijos etapai
- Nustatyti atskirus modulius ir komponentus su aiškiai apibrėžtomis sąsajomis.
- Patikrinkite kiekvieno modulio funkcionalumą atlikdami vienetų testavimą.
- Integruoti būtiniausius pagrindinius sistemos modulius ir užtikrinti, kad jie veiktų.
- Palaipsniui pridėkite atskirus modulius, kiekviename etape išbandydami funkcionalumą
- Perdirbti kodą, kai pridedamas kiekvienas modulis
- Kai visi moduliai bus pridėti, išbandykite funkcionalumą ir veikimą.
Inkrementinio testavimo metodo privalumai ir trūkumai
Dabar jau turėtumėte suprasti, kodėl inkrementinis testavimas yra populiarus metodas. Tačiau, kaip ir visos programinės įrangos testavimo metodikos, ji turi privalumų ir trūkumų. Panagrinėkime kai kuriuos šių privalumų ir trūkumų aspektus.
Inkrementinio testavimo metodo privalumai
1. Lankstumas
Visi programinės įrangos kūrėjai ir testuotojai puikiai žino, kad SDLC metu reikalavimai gali keistis ir vystytis, kartais gana smarkiai. Inkrementinis testavimas yra pakankamai dinamiškas, kad komandos galėtų prisitaikyti testavimo proceso metu ir įtraukti naujus planus ir kryptis.
2. Ankstyvas klaidų aptikimas
Geriausia klaidą ar defektą aptikti kuo anksčiau. Kai kūrėjai tikrina atskirus “bitų dydžio” modulius, nustatyti ir ištaisyti problemas yra daug lengviau. Be to, tai padeda sumažinti tikimybę, kad vėlyvuoju kūrimo etapu gali kilti didelių problemų.
3. Paprastumas
Programinės įrangos testavimas gali būti labai sudėtingas procesas. Vienas iš labiausiai įtikinamų laipsniško testavimo aspektų yra tas, kad jis suskaido testavimo miestą į įgyvendinamas dalis. Užuot susidūrę su didžiuliu sudėtingumu, testuotojai gali sutelkti dėmesį į tam tikrus modulius ir netgi nustatyti jų prioritetus. Šis privalumas – tai Dievo dovana didelėms ir sudėtingoms programoms.
4. Mažesnė regresijos rizika
Regresija yra daug laiko reikalaujantis ir sudėtingas programinės įrangos kūrimo klausimas. Inkrementinis testavimas gali sumažinti regresijos dažnumą ir riziką, nes leidžia komandoms atskirai testuoti modulius ir spręsti iškilusias problemas. Naudojant su kietuoju
regresijos testavimas
, komandos gali sutaupyti daug laiko ir širdies skausmo.
5. Grįžtamojo ryšio galimybės
Dažnai nepastebimas laipsniško testavimo privalumas yra tas, kad jis suteikia komandoms laisvę kurti prototipus ir MVP. Po to suinteresuotosios šalys ir investuotojai gali įvertinti pagrindinį proceso funkcionalumą ir pateikti neįkainojamą grįžtamąjį ryšį. Tokia situacija gali padėti sutaupyti daug laiko ir pinigų bei sukurti patikimesnius produktus.
Inkrementinio testavimo metodo trūkumai
1. Integracijos klausimai
Pageidautina modulius testuoti atskirai, nes taip sudėtinga programa suskaidoma į lengvai valdomas dalis. Tačiau integruojant šiuos modulius gali atsirasti naujų ir netikėtų klaidų. Todėl laipsniškas testavimas turi būti kruopščiai ir apgalvotai suplanuotas.
2. Testų rinkinio sudėtingumas
Kai kiekvienam moduliui ir jų tarpusavio sąveikai taikomi keli testavimo atvejai, testų rinkinius gali būti sudėtinga stebėti ir valdyti. Didelėms ir sudėtingoms programoms būtina parengti išsamią dokumentaciją arba testavimo valdymo įrankius.
3. Daugiau darbo
Nors monolitinis testavimas yra sudėtingesnis, jo reikia mažiau. Testuojant daug modulių atskirai, inkrementinis testavimas reikalauja daugiau darbo. Tačiau dėl laipsniško testavimo privalumų, pavyzdžiui, ankstyvo klaidų aptikimo, papildomos pastangos yra investicija į laiko taupymą. Žinoma,
programinės įrangos testavimo automatizavimas
gali padėti sumažinti šias pastangas.
4. Padidėję valdymo reikalavimai
Inkrementiniam testavimui reikia, kad kelios komandos dirbtų kartu. Pavyzdžiui, kūrimo, testavimo ir “DevOps” komandos turės dirbti kartu. Tokia situacija sukuria papildomų valdymo poreikių ir reikalauja gerų ryšių tarp šių komandų, kad jos būtų sutelktos ir siektų tų pačių tikslų.
Inkrementinio testavimo pavyzdys
Turbūt lengviausias būdas suprasti laipsniško testavimo metodą – prisiminti pavyzdį. Pateikiame paprastą situaciją, padėsiančią įsivaizduoti šį procesą.
1. Mobiliosios bankininkystės programėlės inkrementinio testavimo pavyzdys
Scenarijus: Komanda kuria mobiliosios bankininkystės programėlę. Programą sudaro keli skirtingi moduliai, kurie leidžia:
- 2FA ir biometrinis naudotojo patvirtinimas
- Sandorių apdorojimas
- Finansinių duomenų valdymo prietaisų skydelis
Tikslas: Komanda nori išbandyti kiekvieno modulio integraciją ir nustatyti, ar jie gerai veikia kartu. Todėl jie sukūrė tris bandymų atvejus.
1 bandymo atvejis
Pirmuoju bandomuoju atveju komanda nori užtikrinti, kad įvedęs biometrinius duomenis arba slaptažodį naudotojas gautų prieigą ir prie sandorių apdorojimo, ir prie finansinių duomenų valdymo skydelio.
Programėlė išlaikys testą, jei naudotojas galės įvesti savo duomenis ir gauti prieigą prie operacijų.
2 bandymo atvejis
Kitas bandomasis atvejis skirtas patikrinti, kaip programa elgiasi su neautorizuotomis operacijomis.
Jei bandymas atlikti neautorizuotą operaciją blokuojamas ir programėlė pateikia klaidos pranešimą, testas atliekamas sėkmingai.
3 bandymo atvejis
Paskutinis integracijos testas apima patikrinimą, ar programa gali vienu metu atlikti operacijas.
Programėlė išlaikys testą, jei naudotojas galės pradėti operaciją ir tuo pačiu metu pasiekti savo finansinę informaciją be jokių duomenų neatitikimų ar problemų.
Ar inkrementinio testavimo metodas yra
tas pats, kas inkrementinis testavimas?
Ne. Inkrementalumo testavimas – tai statistinis rinkodaros metodas, kuris bene geriausiai žinomas kaip priskyrimo modeliavimas. Trumpai tariant, ji padeda rinkodaros komandoms suprasti reklamos kampanijų, rinkodaros kanalų ar konkrečių strategijų poveikį.
Nors pastaraisiais metais susidomėjimas tokio pobūdžio modeliavimu išaugo dėl slapukų ir trečiųjų šalių duomenų “mirties”, su inkrementiniu testavimu jį sieja tik bendras žodis.
3 geriausi įrankiai inkrementiniam testavimui
#1. ZAPTEST
Be to, kad teikiame aukščiausios klasės
RPA
ZAPTEST siūlo daugybę programinės įrangos testavimo automatizavimo įrankių, kurie puikiai tinka laipsniškam testavimui. Keletas funkcijų:
Bandymų duomenų valdymas
: Sumažinkite laiko ir pastangų, susijusių su inkrementiniu testavimu, nes komandos gali pakartotinai naudoti testų duomenis.- Scenarijaus įrašymas ir atkūrimas: Šis įrankis be kodo leidžia komandoms įrašyti ir vykdyti scenarijus ir sutaupyti daug laiko atliekant inkrementinius bandymus.
- Daugkartinio naudojimo bandymų moduliai: ZAPTEST yra labai modulinis, todėl komandos gali kurti ir pakartotinai naudoti testavimo modulius ir sutaupyti daug laiko testavimo procesui.
Apskritai “ZAPTEST” siūlo galingą ir įvairiapusišką testavimo automatizavimo rinkinį, tinkamą bet kokio tipo bandymams, įskaitant inkrementinį testavimą.
#2. Selenas
“Selenium” yra atvirojo kodo testavimo automatizavimo platforma, sukurta siekiant palengvinti mobiliųjų programų testavimą. Įrankiai palaiko kelias mobiliąsias platformas (“Android”, “iOS”, “Windows”), o moduliams imituoti naudojami stubai ir tvarkyklės.
#3. Bandymai
“Testsigma” yra debesų kompiuterijos pagrindu veikianti bandymų automatizavimo platforma. Ją galima naudoti žiniatinklio ir mobiliosioms programoms testuoti, o dėl testų kūrimo be kodo ir integracijos su CI/CD vamzdynais ji tinka inkrementiniam testavimui.
Galutinės mintys
Inkrementinis testavimas programinės įrangos testavime yra svarbi integracinio testavimo dalis. Tai leidžia komandoms suskaidyti modulius į lengvai testuojamas dalis ir tik tada juos lėtai integruoti. Privalumai yra tokie, kad galima patikrinti, ar kiekviename modulyje nėra klaidų, o vėliau – kaip jis integruojamas su prijungtomis dalimis.
Kartu su mūsų geriausiais savo klasėje
RPA
įrankių, ZAPTEST siūlo programinės įrangos testavimo automatizavimą be kodų, kuris apima įvairias platformas ir programas. Be to, mūsų testavimo rinkinyje yra tokios funkcijos kaip CI/CD integracija, patikimos ataskaitos ir analizė bei aukščiausios klasės palaikymas ir klientų aptarnavimas.