Lankide:Julen Alzas
Testeatze mailak
[aldatu | aldatu iturburu kodea]Hiru testeatze maila daude gutxienez: unitate probak, integrazio-probak, eta sistema-probak. Hala ere, garatzaileek 4.maila bat dagoela deritzote (onarpen-proba). Testeatze honek softwareak itxaropen funtzionalak betetzen dituela ziurtatzeko egiten da. ISTQB Certified Test Foundation mailako ikasketa planean oinarrituta, testeatze-mailak lau horiek lirateke, 4. maila onarpen-proba izenda.
Unitate probak:
[aldatu | aldatu iturburu kodea]Artikulu nagusia: Unit testing
Unitate probak kode atal zehatzen funtzionaltasuna egiaztatzen dute. Objektuei zuzendutako ingurune batean klase mailan egongo litzateke, eta gutxieneko unitate proben artean eraikitzaileak eta suntsitzaileak daude.
Proba mota hauek garatzaileek idazten dituzte kodea lantzen duten bitartean (kutxa zuriaren estiloa), funtzioa espero bezala funtzionatzen duela ziurtatzeko. Funtzio batek hainbat proba izan ditzake, kode izkinak edo bestelako adarrak harrapatzeko. Unitate-probek bakarrik ezin dute software baten funtzionaltasuna egiaztatu, baina softwarearen atal bakoitza modu independentean funtzionatzen dutela ziurtatzeko erabiltzen dira.
Unitate probak akatsak prebenitzeko eta hautemateko estrategia espektro zabala erabiltzen duen aplikazio sinkronizatua da non helburua arriskuak, denbora eta kostuak murriztea den. Softwarearen garatzaileari edo ingeniari dagokio softwarea garatzeko bizitza zikloaren eraikuntza fasean. Unitate-proben helburua softwarea eraikitzan sortutako akatsak ezabatzea da, kodea testeaketa proba osagarrietara pasa aurretik. Estrategia honen bitartez, lortutako softwarearen kalitatea eta garapen prozesu orokorraren eraginkortasuna hobetu beharko litzateke.
Erakundeak softwarea garatzeko dituen itxaropenen arabera, unitate probek kode estatikoen analisia, datuen fluxuen analisia, metriken analisia, pareko kodeen berrikuspenak, kodeen estalduraren analisia eta beste software proba batzuk izan ditzakete.
Integrazio probak:
[aldatu | aldatu iturburu kodea]Artikulu nagusia: Integration testing
Integrazio probak software diseinuen osagaien arteko interfazeak egiaztatzea helburu duen edozein software proba mota da. Osagaiak modu iteratiboan edo guztiak batera ("big bang") integratu daitezke. Normalean, lehena praktika hobetzat hartzen da interfaze arazoen konponketa azkarragoa eta konpontze errazagoa duelako.
Integrazio probak interfazeen arteko akatsak eta osagai integratuen (moduluak) arteko elkarreragina erakusteko balio du. Softwareak sistema gisa funtzionatu arte, software-osagaien multzo handiagoak integratzen eta testeatzen dira.
Integrazio probek kode asko dakarte eta unitate probetan sortutakoak baino aztarna handiagoak sortzen dituzte. Horrek eragina du huts egiteen akatsak lokalizatzeko erraztasunean. Horri aurre egiteko, proba handiak pieza txikiagoetan partekatzea proposatu da.
Sistema probak:
[aldatu | aldatu iturburu kodea]Artikulu nagusia: System testing
Sistema probek, sistema guztiz integratua probatzen du eskakizunak ondo betetzen dituela egiaztatzeko. Adibidez, sistemaren testeaketa saio-hasierako interfaze bat probatzea izan daiteke, ondoren sarrera bat sortu eta editatzea, emaitzak bidali edo inprimatzea eta ondoren, sarrerak prozesatu edo ezabatu. Azkenik saioa amaitzeko.
Onarpen probak:
[aldatu | aldatu iturburu kodea]Artikulu nagusia: Acceptance testing
Onarpen probetan lau maila ezberdin bereiz ditzazkegu.
- Erabiltzaileen onarpen probak
- Onarpen operatibo probak
- Kontratuzko eta erregulatzaile onarpen probak
- Alpha/Beta testeaketa
Erabiltzaileen onarpen probak eta Alpha/beta probak hurrengo testeatze moten atalean azaltzen dira.
Onarpen operatiboa, kalitatea kudeatzeko sistema baten parte bezala, produktu, zerbitzu edo sistema baten operazio-prestutasuna(aurre-bertsioa) zuzentzeko erabiltzen da. OAT software ez-funtzionalaren proba arrunta deritzo, batez ere softwarea garatzeko eta softwarea mantentzeko proiektuetan erabiltzen dena. Testatze mota honek sistemaren prestazio operatiboan oinarritzen da edo produkzio ingurunearen parte bihurtzeko intentzioarekin erabiltzen da. Hori dela eta, prestakuntza operatiboko probak (ORT) edo Eragiketen prestasuna eta bermea (OR&A) testeatzea bezala ere deitzen zaie. OATen testeatze funtzionalak sistemaren alderdi ez funtzionalak egiaztatzeko beharrezkoak diren probetara mugatzen dira.
Gainera, softwarearen probak espero bezala funtzionatzeaz gain, sistemaren eramangarritasuna, ingurunea ez hondatzea edo ingurune horretako beste prozesu batzuk ez funtzionatzea eragotzi behar du.
Kontratuaren onarpen probak akordioan zehaztutako onarpen irizpideetan oinarrituta egiten dira, eta arauzko onarpen probak software produktuari dagozkion araudietan oinarrituta egiten dira. Bi probaketa hauek erabiltzaileek edo testeatzaile independenteek egin ditzakete. Araudia onartzeko probetan arauen agentziek parte hartuko duete zenbaitetan proben emaitzak ikuskatzeko.
Testeatze motak, teknikak eta taktikak
[aldatu | aldatu iturburu kodea]Testeaketa adierazteko hainbat etiketa ezberdin erabili ditzazkegu. Gure kasuan, testeatze motak, teknikak eta taktikak erabiliko ditugu.
Instalazio testak
[aldatu | aldatu iturburu kodea]Artikulu nagusia: Installation testing
Software sistema gehienek instalazio prozedurak behar dituzte beren helburu nagusirako erabili aurretik. Prozedura hauek testeatu behar dira etorkizunean software honi erabilera eman ahal izateko.
Bateragarritasun testak
[aldatu | aldatu iturburu kodea]Artikulu nagusia: Compatibility testing
Softwareak huts egitearen ohikoena beste software aplikazio batzuekin bateragarria ez izatea da, sistema eragileekin (sistema eragilearen bertsioekin, zahar edo berriekin) edo jatorrizkoarekin alderatuta oso desberdinak diren xede-inguruneekin (terminal batekin edo GUI aplikazioa mahaigainean exekutatzeko asmoa iztetik Web aplikazio bihurtzerra pasaz, web arakatzaile batean errendatu behar izanez). Adibidez, atzera egiteko bateragarritasunik ez dagoenean aurreko bertsioak dituzten erabiltzaileak erroreak jasoko dituzte. Hau da, garatzaileek azken bertsioetan testeaketa sakona egiteak ez du zuzenean aurreko bertsioen exekuzio zuzena bermatuko. Batzuetan, arazo hauek sistema eragilearen funtzionalitatea modu proaktiboan modulu edo liburutegietan bereizita konpon daitezke.
Ke eta zentzu probak
[aldatu | aldatu iturburu kodea]Artikulu nagusia: Smoke testing (software)
Zentzuzko probek zehazten dute probekin jarraitzea arrazoizkoa den ala ez.
Ke probak softwarea saiakera minimoekin funtzionatzea da, funtzionatzea eragotziko duen oinarrizko arazorik dagoen ala ez erazagutzeko diseinatua. Horrelako probak eraikuntza(build) egiaztatze proba gisa erabil daitezke.
Erregresio probak
[aldatu | aldatu iturburu kodea]Artikulu nagusia: Regression testing
Erregresio probak kode aldaketa garrantzitsuen ostean akatsak aurkitzeaz arduratzen dira. Zehazki, softwarearen atzerakadak deskubritzen saiatzen da, degradatutako edo galdutako funtzioak eta akats zaharrak kontuan hartuz. Erregresio horiek aurretik behar bezala funtzionatzen zuen software funtzionaltasunak nahi bezala funtzionatzeari uzten dionean gertatzen dira. Normalean, atzerakada hauek programa aldaketen ustekabeko ondorio gisa gertatzen dira, softwarearen zati berriak aurreko kodearekin talka egiten dutenean. Erregresio probak normalean software komertzialaren garapeneko esfortzu handiena behar duen atala da, aurreko softwarearen ezaugarrietan xehetasun ugari egiaztatu eta eztertu behar izateagatik. Arazoei aurre egiteko ohikoena software zaharraren eta berriaren testeaketa zati batzuk bateratzea izaten da, horrela funtzionamendu egokia bermatuz.
Erregresio probak egiteko ohiko metodoa aurreko test multzoak berexekutatzea izaten da, aurreko arazoak bueltatu ez direla egiaztatzeko. Testeatze sakonera bertsio prozesuaren fasearen eta gehitutako ezaugarrien arriskuen araberakoa izango da. Erregresio probetan, garrantzitsua da dagoen portaerari buruzko baieztapenak sendoak izatea. Horretarako, posible da baieztapen berriak sortu eta gehiu behar izatea erabilpen kasuetan. Hau, anplifikazio automatiko bezala ezagutzen da.
Onarpen probak
[aldatu | aldatu iturburu kodea]Onarpen probak esanahi hauek izan ditzazke:
- Ke probak onarpen mailaren testeatzea da, beste edozein testeatze baina lehenago egiten dena(Integrazio edo erregresioa baino lehen).
- Bezeroak egindako onarpen probak, askotan beren hardware bidezko laborateg inguruneetan, erabiltzaileen onarpen probak (UAT) izenarekin ezagutzen da. Onarpen-probak garapenaren edozein bi faseren eskualdatze barruan egin daitezke.
Alfa probak
[aldatu | aldatu iturburu kodea]Alfa testeatzea gartzaileen gunean erabiltzaile edo testeatze talde batek egindako simulazio edo proba operatiboak dira. Testeatze hau, produktua ofizialki saldu baino lehenago egiten da eta beta testeaketaren aurrekaria da. Honela, softwarearen testeaketa internoa onargarria den jakin dezakegu.
Beta probak
[aldatu | aldatu iturburu kodea]Ikusi ere: Software_release_life_cycle § Beta
Beta testatzea alfa testatzearen ondoren dator eta kanpo erabiltzaileen onarpen probatzat har daiteke. Softwarearen bertsioak, beta bertsioak izenez ezagutzen direnak, beta testers izenarekin ezagutzen diren programazio taldetik kanpoko publiko mugatu bati bakarrik kaleratzen zaizkio. Softwarea talde jakin batzuei kaleratzen zaie proba kopurua handizearren eta akats edo bug gutxi dituela ziurtatzeko. Beta bertsioak publiko zabalaren eskura jar daitezke atzeraelikaduraren etorkizuneko iritzi eremua erabiltzaile kopuru handiagora iristeko eta proba honen luzera nahi haina luzatu ahal daiteke.
Proba funtzional eta ez-funtzionalak
[aldatu | aldatu iturburu kodea]Proba funtzionalak kodearen ekintza edo funtzio zehatzak egiaztatzen duten jarduerak dira. Hauek normalean kodearen eskakizunen dokumentazioan aurkitzen dira, nahiz eta garapen metodologia batzuk erabilpen kasuetatik edo erabiltzaileen istorioetatik abiatzen diren. Proba funtzionalek "erabiltzaileak hau egin dezake" edo "ezaugarri honek funtzionatzen duen" galderari erantzun ohi diote.
Funtzionalak ez diren probek baliteke funtzio zehatzekin edo erabiltzailearen ekintzarekin erlazionatuta ez egotea, hala nola eskalagarritasuna edo bestelako errendimenduan, murrizketa portaeretan edo segurtasunean. Testeatzeak zehaztuko du haustura puntua, eskalagarritasun edo errendimendu muturrek exekuzio ezegonkorra zein puntutan gertatzen den. Funtzionalak ez diren probak produktuaren kalitatea islatzen dutenak izan ohi dira, batez ere erabiltzaileen egokitasun ikuspegiaren testuinguruan.
Etengabeko testeatzea
[aldatu | aldatu iturburu kodea]Artikulu nagusia: Continuous testing
Etengabeko testatzea softwarea entregatzeako proba automatizatuak dira. Hau, negozio arriskuei buruzko berehalako iritzia lortzeko erabiltzen da. Etengabeko testatzek proba funtzionalak eta funtzionalak ez direnak balioztatu behar izatea dakar. Proben esparrua goranzko eskakizunak edo erabiltzaileen istorioak balioztatzetik negozioaren helburu nagusiekin lotutako sistemaren eskakizunak ebaluatzera hedatzen da.
Testatze suntsitzailea
[aldatu | aldatu iturburu kodea]Artikulu nagusia: Destructive testing
Proba suntsitzaileak softwarea edo azpisistema baten huts egitea eragiten du. Softwarearen funtzionamendu egokia egiaztatzen du sarrera desegokiak edo ustekabekoak jasotzen dituenean ere, horrela sarrera baliozkotzeko eta erroreak kudeatzeko errutinen sendotasuna ezarriz. Software akatsen injekzioak, fuzzing moduan, hutsegite proben adibidea izan daiteke. Funtzionalak ez diren proba komertzialetako hainbat tresna software akatsen injekzio orrialdetik lotuta daude; iturri irekiko eta doako software tresna ugari daude eskuragarri, proba suntsitzaileak egiten dituztenak.
Softwarearen errendimendu probak
[aldatu | aldatu iturburu kodea]Artikulu nagusia: Software performance testing
Errendimendu probak sistema edo azpisistema batek lan-karga jakin baten aurrean sentikortasunari eta egonkortasunari dagokionez nola funtzionatzen duen zehazteko erabiltzen da. Sistemaren beste kalitate atributu batzuk ikertzeko, neurtzeko, baliozkotzeko edo egiaztatzeko ere balio dezake, hala nola eskalagarritasuna, fidagarritasuna eta baliabideen erabilera.
Kargen probek sistemak karga zehatz baten pean funtzionatzen jarrai dezakeela egiaztatzeaz arduratzen da, hau datu edo erabiltzaile kopurua handiaarekin egin ohi da. Normalean software eskalagarritasuna esaten zaio. Funtzionala ez den jarduera gisa burututakoaren inguruko karga probatzeko jarduera erresistentzia probak deitu ohi da. Bolumenaren testeatzea software funtzioak probatzeko modu bat da, zenbait osagai (adibidez, fitxategi edo datu basea) tamaina handituz. Tentsio probek fidagarritasuna probatzeko modu bat eskaintzen dute ustekabeko edo arraroak diren lan-kargekin batez ere. Egonkortasun probak (askotan karga edo erresistentzia probak deituak) epe onargarri batean softwareak etengabe ondo funtziona dezakeen egiaztatzen du.
Errendimendu proben helburu zehatzen kontuarekin adostasun gutxi dago. Kargen probak, errendimendu probak, eskalagarritasun probak eta bolumen probak terminoak aldagarriak dira askotan.
Denbora errealeko software sistemek denbora mugarri zorrotzak dituzte eta enbora-mugak betetzen diren egiaztatzeko, denbora errealeko probak erabiltzen dira.
Erabilgarritasun probak
[aldatu | aldatu iturburu kodea]Erabilgarritasun probak erabiltzailearen interfazea erabilerrraza eta ulergarria dela egiaztatzea da. Aplikazioaren erabileraz arduratzen da batez ere. Hau ez da automatiza daitekeen probetako bat; benetako giza erabiltzaileak behar dira, UI diseinatzaile trebeek kontrolatuz.
Irisgarritasun probak
[aldatu | aldatu iturburu kodea]Irisgarritasun probetan, honako estandarrak bete daitezke:
- Desgaitasuna duten Amerikarren 1990eko Legea
- 1973ko Errehabilitazio Legeari buruzko 508. atala
- World Wide Web Partzuergoaren (W3C) Web Irisgarritasunerako Ekimena (WAI)
Segurtasun probak
[aldatu | aldatu iturburu kodea]Segurtasun-probak ezinbestekoak dira datu konfidentzialak prozesatzen dituzten softwarearentzat hackerren intrusioa ekiditeko.
Normalizaziorako Nazioarteko Erakundeak (ISO) honela definitzen du: "proba-elementu batek, eta horri lotutako datuak eta informazioa, nola babesten diren ebaluatzeko egindako proba mota da. Baimenik gabeko pertsonek edo sistemek horiek erabili, irakurri edo aldatu ezin ditzaten, eta baimendutako pertsonei edo sistemei sarbidea baimenduz ".