fbpx

Get your 6-month No-Cost Opt-Out offer for Unlimited Software Automation?

Mutācijas testēšana jeb programmas mutācija ir “baltās kastes” testēšanas metode, kas palīdz uzņēmumiem izstrādāt virkni jaunu programmatūras pārbaužu, vienlaikus veicot arī projekta pašreizējo procesu revīziju. Tā ir salīdzinoši jauna pieeja, kas nodrošina, ka gan izstrādātāji, gan testētāji strādā atbilstoši augstiem standartiem.

Lietojumprogramma ir tik veiksmīga vai tik laba, cik veiksmīgas vai labas ir tās kvalitātes nodrošināšanas procedūras – tas nozīmē, ka organizācijām ir svarīgi izmantot vairāk nekā viena veida testēšanas metodes.

Mācības par mutāciju testēšanu varētu palīdzēt testēšanas komandām uzlabot savas prasmes un vispārējo repertuāru, ļaujot tām uzlabot šo pārbaužu uzticamību. Mutāciju testēšana ir sarežģīts un jutīgs process, tāpēc ir ļoti svarīgi, lai testētāji rūpīgi izpētītu priekšrocības, problēmas un trešo pušu programmas, kas var garantēt veiksmīgu īstenošanu.

Šajā rakstā mēs aplūkojam mutāciju testēšanu un to, kā tā uzlabo kvalitātes nodrošināšanu, kā arī citus galvenos apsvērumus programmatūras testēšanas komandām.

 

Table of Contents

Kas ir mutāciju testēšana programmatūras testēšanā?

Ieguvumi, ko sniedz izcilības testēšanas centra izveide. Vai veiktspējas testēšana atšķiras no funkcionālās testēšanas?

Programmatūras kontekstā mutāciju testēšana nozīmē, ka kvalitātes nodrošināšanas komanda apzināti ievieš kļūdas jeb “mutācijas” lietojumprogrammas kodā, lai redzētu, kā komanda reaģē. Mērķis ir radīt kļūdu un pārliecināties, ka testēšanas komplekts spēj identificēt katru lietojumprogrammas izmaiņu.

Rediģējot programmas kodu, mutāciju testētājs var pārslēgt true/false izteiksmi, izdzēst izteikumu vai vienkārši mainīt vērtību. Citu programmatūras pārbaužu laikā šīs kļūdas var izpausties dažādos veidos, kurus prasmīga un pieredzējusi testēšanas komanda var viegli atklāt.

Pašas mutācijas bieži vien ir ļoti nenozīmīgas, ļaujot testētājam, kurš mutē kodu, novērot, kā komanda atklāj šīs izmaiņas. Būtiskas izmaiņas būtu acīmredzamas pat no pirmā acu uzmetiena, tāpēc nelielas kļūdas parasti ir labākais veids, kā pārliecināties, ka uzņēmums izmanto stabilu testēšanas praksi.

Ar šo metodi īpaši tiek aplūkota komandas testēšanas gadījumu efektivitāte; dokumenti, kuros ir testēšanas informācija. Šo pārbaužu veikšanai komanda var izmantot arī trešās puses automatizācijas programmatūru, un tādā gadījumā mutāciju testēšanā tiek pārbaudīts, cik labi šī platforma spēj atklāt programmas koda kļūdas.

 

1. Kad jāveic mutāciju testēšana?

 

Tā kā mutāciju testēšanas mērķis ir apstiprināt un uzlabot pašreizējās kvalitātes nodrošināšanas pārbaudes, komandām ir svarīgi to veikt jau testēšanas sākumposmā. Tas nozīmē, ka, ja testēšanas komplekts nespēj identificēt un “nogalināt” mutantus, ir pietiekami daudz laika, lai veiktu jebkāda mēroga izmaiņas organizācijas testēšanas procedūrās.

Tā kā šī ir ļoti universāla metode, mutāciju testēšana ir piemērojama praktiski jebkura veida programmatūrai, tostarp tīmekļa, mobilajām un datorprogrammām. Vislabāk tas darbojas vienības testēšanas posmā, kurā tiek pārbaudītas lietojumprogrammas mazākās sastāvdaļas.

 

2. Kad nav jāveic mutāciju testēšana

 

Joprojām ir daži scenāriji, kad mutācijas un vispārējā “baltās kastes” testēšana nav piemērota programmai; tas var būt dažādu iemeslu dēļ.

Piemēram, ja testētāji vēlas pārbaudīt tikai melnās kastes testēšanu – tādā gadījumā viņi varētu koncentrēties uz šīs sesijas front-end vai pat kopējo testēšanas posmu.

Daži uzņēmumi uzskata, ka “baltās kastes” testēšana ir garlaicīga un laikietilpīga, tāpēc var izlaist šo procesu. Spēcīgi, labi pārbaudīti testēšanas gadījumi var arī novērst vajadzību pēc mutāciju testēšanas, jo tas liecina par komandas rūpību un apņemšanos veikt precīzas testēšanas procedūras.

 

3. Kas ir iesaistīts mutāciju analīzē?

kas ir iesaistīts programmatūras testēšanā

Mutāciju analīzē ir iesaistītas vairākas dažādas funkcijas, tostarp:

 

– Mutāciju testētāji

Viņi mutē kodu, ieviešot dažādus nelielus defektus, lai pārliecinātos, ka testēšanas process darbojas, kā paredzēts. Šie testētāji parasti ir jau iepriekš esoši kvalitātes nodrošināšanas komandas locekļi.

 

– Lietojumprogrammu testētāji

Viņi regulāri pārbauda, vai kodā nav problēmu, identificē un labo visas atrastās mutācijas. Viņi veic “baltās kastes” testēšanu, lai atrastu kodēšanas kļūdas, taču izmanto arī citas metodes.

 

– Lietojumprogrammu izstrādātāji

Viņi izstrādā programmas funkcijas un raksta sākotnējo kodu. Viņi arī novērš visas testētāju konstatētās problēmas, nodrošinot, ka programmatūra ir stabilā stāvoklī, lai to varētu laist klajā.

 

– Projektu vadītāji

Viņi sniedz norādījumus par pieteikumu un var strādāt kopā ar mutāciju testētājiem, lai pārliecinātos par savu komandu efektivitāti. Tie nodrošina stingrus standartus visos attīstības posmos.

 

Ko mēs testējam ar mutāciju testiem?

dažu neskaidrību noskaidrošana programmatūras testēšanas automatizācijā

Mutāciju testēšana vairāk koncentrējas uz procesu, nevis uz lietojumprogrammu testēšanu. Šajā nolūkā tajā tiek analizēti šādi jautājumi:

 

1. Testēšanas gadījumi

 

Testēšanas gadījumi ir dokumenti, kas satur detalizētu informāciju par katru testu, tostarp rezultātus, ko testētāji sagaida no katras atsevišķas pārbaudes. Konsekventi un precīzi testēšanas gadījumi sniedz QA komandas locekļiem priekšstatu par lietojumprogrammas stāvokli un tās veiktspējas atbilstību uzņēmuma prasībām.

Šajos testa gadījumos ietvertā informācija var noteikt testētāja spēju pamanīt noteiktus defektus, tostarp tos, ko izraisa mutāciju testēšana.

 

2. Testēšanas standarti

 

Mutācijas testos tiek rūpīgi pārbaudītas pašreizējās testēšanas procedūras, lai nodrošinātu, ka komandas locekļi var identificēt pat nelielas problēmas, kas varētu ietekmēt lietotāja uztveri par programmatūru.

Testētāju uzcītība un kompetence var būt pat galvenie faktori, ko uzņēmums novērtē, izmantojot šīs pārbaudes. Nepievēršot lielu uzmanību detaļām katrā posmā, testētāji var nepamanīt programmā esošās nopietnās mutācijas.

 

3. Atsevišķas koda vienības

 

Mutācijas testi ir bieži sastopami izstrādes vienības testēšanas daļā. Tas aplūko atsevišķus komponentus, lai saglabātu stingru koncentrēšanos uz katru testu, tādējādi ievērojami optimizējot visu procesu, nodrošinot, ka testētāji strādā tikai ar attiecīgajām koda rindiņām.

Tā kā mutāciju testi bieži vien ir agrīnā kvalitātes nodrošināšanas posmā un varētu būt pilna mēroga testēšanas priekšvēstnesis, šī pieeja var palielināt ātrumu, neapdraudot precizitāti.

 

4. Programmas atjauninājumi

 

Programmatūras atjauninājumi parasti ietver testēšanas procesa atkārtotu palaišanu, lai pārliecinātos, ka nav jaunu kļūdu un ka iepriekšējās kļūdas neatkārtojas.

Mutācijas testu atkārtošana ir būtiska sastāvdaļa, kas palīdz veicināt konsekventus testēšanas standartus pēc lielām programmatūras izmaiņām.

Testēšanas komanda var uzskatīt, ka rūpīgas pārbaudes pēc atjaunināšanas nav nepieciešamas, taču koda mutācijas var nodrošināt, ka viņi saprot, cik svarīgi ir veikt testēšanu visos izstrādes posmos.

 

5. Automatizācijas programmatūra

 

Uzņēmumi veic arī mutāciju testēšanu, lai pārbaudītu savus automatizētos testēšanas komplektus un pārliecinātos, ka tie spēj pamanīt mutēto kodu, kā arī citas problēmas.

Ja trešās puses testēšanas lietojumprogramma spēj identificēt ārējās izmaiņas programmā un, iespējams, pat tās novērst, tas nozīmē, ka organizācija var uzticēties programmatūrai, lai automatizētu testus.

Ir svarīgi, lai uzņēmumi validētu savu automatizācijas pieeju; tas nodrošina pārliecību katram testētājam.

 

6. Automatizācijas stratēģija

 

Tas, kā uzņēmums integrē automatizāciju savos procesos, ir tikpat svarīgi kā izmantotā programmatūra; piemēram, uzņēmums var nolemt ieviest hiperautomatizāciju. Tas ļauj uzņēmumam gudri izlemt, kuras mutācijas un programmatūras testus automatizēt.

Ja nav izstrādāta spēcīga automatizācijas stratēģija, kas ņemtu vērā lietojumprogrammas koda daudzveidību, daži testi var būt nesavietojami ar automatizāciju, kas ierobežo platformas iespējas.

 

7. Pieteikums

 

Lai gan mutāciju testēšana vairāk koncentrējas uz testēšanas komandu, nevis uz lietojumprogrammu, tā tomēr var izcelt būtisku informāciju par šo programmu.

Piemēram, mutācijas testēšana parāda, kā programmatūra reaģē uz izmaiņām tās kodā, tostarp, vai tā norāda uz šīm problēmām tā, kā komanda sagaida.

Šī pieeja nav programmatūras testēšanas metode, taču tā tomēr spēj sniegt interesantus datus par tās iekšējām operācijām.

 

Mutaciju testu dzīves cikls

Parasti mutāciju testēšanas dzīves cikls ir šāds:

 

1. Prasību analīze

 

Jebkuras mutācijas testēšanas dzīves cikla pirmais solis ir precīzi noskaidrot, kam tieši nepieciešama validācija un kurām lietojumprogrammas koda daļām šie testi būtu visnoderīgākie.

Komanda var apspriesties ar izstrādātājiem un vadītājiem, lai noskaidrotu viņu bažas un sāktu tās risināt.

 

2. Testu plānošana

 

Pēc tam testētāji sāk izstrādāt precīzas pārbaudes, kuras viņi plāno īstenot – šajā gadījumā tās mutācijas, kas sniegs vislabāko ieskatu.

Šajā posmā tiek noteikta kopējā mutāciju testēšanas stratēģija un tas, kā komanda efektīvi īstenos iecerētās koda mutācijas.

 

3. Testēšanas gadījumu izstrāde

 

Mutācijas testēšana ietver atsevišķu testēšanas dokumentāciju, tostarp informāciju par mutēto kodu un to, kā testētāji varētu novērst problēmu.

Laba uzskaite nodrošina, ka visi testi norit, kā plānots, un var palīdzēt komandai saglabāt apņemšanos ievērot augstus testēšanas standartus.

 

4. Testēšanas vides iestatīšana

 

Testētāji pārliecinās, ka lietojumprogramma ir gatava veikt izmaiņas un ka viņiem ir izstrādāta procedūra, kā risināt šīs problēmas, ja citi komandas locekļi nespēj tās atklāt.

Mutāciju testētāji izveido testa serveri un izmanto to kā audeklu savām mutācijām.

 

5. Testa izpilde

 

Pabeiguši sagatavošanās darbus, testētāji izmaina kodu vairākās lietojumprogrammas sastāvdaļās; pēc tam viņi gaida, kad citi testētāji pamanīs un novērsīs problēmas.

Gan mutāciju testētājiem, gan lietojumprogrammu testētājiem tas ir plaši jādokumentē, lai pārliecinātos, ka viņu ieraksti ir uzticami.

 

6. Testa cikla slēgšana

 

Kad testēšana ir pabeigta, mutāciju testētāji divreiz pārbauda, vai visas veiktās izmaiņas ir izlabotas vai nu lietojumprogrammu testētājiem, vai viņiem pašiem.

Pēc tam viņi noslēdz testēšanas ciklu un analizē rezultātus, apspriežot, kā testētāji reaģēja uz dažādām kļūdām, kā arī to, kā viņi spēja tās labot.

 

7. Testa atkārtošana

 

Pēc testa cikla slēgšanas pēc turpmākajiem programmatūras atjauninājumiem to varētu būt nepieciešams aktivizēt no jauna.

Katras izmaiņas lietojumprogrammā kaut kādā veidā maina tās funkcionalitāti, radot jaunas iespējas, kas komandai ir jāņem vērā, lai nodrošinātu, ka testēšanas process ir pietiekami rūpīgs.

 

Mutaciju testēšanas priekšrocības

 

Mutāciju testu veikšana sniedz daudz priekšrocību, tostarp:

 

1. Apstiprina testēšanas procesu

 

Galvenais ieguvums no mutāciju testēšanas ir tās spēja parādīt, kā uzņēmuma testētāji pieiet programmatūrai, un viņu spēja atpazīt kodēšanas problēmas. Tas arī nodrošina, ka komandas testēšanas gadījumi ir pietiekami visaptveroši un aptver visus nepieciešamos testus.

Mutācijas testi pārbauda organizācijas vispārējo testēšanas procedūru, lai garantētu, ka tā darbojas, kā paredzēts.

 

2. Nodrošina spēcīgu automatizāciju

 

Mutācijas testēšana palīdz komandai pārbaudīt, vai trešās puses testēšanas automatizācijas platforma spēj adekvāti identificēt kļūdas kodā un novērst tās pareizā veidā.

Ja šī programmatūra nespēj tos noteikt pat pēc nepieciešamās kalibrēšanas, iespējams, būtu vērts nomainīt platformu pret tādu, kas var viegli izturēt šos testus.

 

3. Labs pārklājums

 

Katram programmatūras testēšanas procesam jāspēj plaši aptvert visu lietojumprogrammu, lai nodrošinātu, ka katram aspektam tiek pievērsta vajadzīgā līmeņa uzmanība.

Mutācijas testētāji var mainīt jebkuru programmas koda daļu; laba implementācija ļauj šiem testiem aptvert visas galvenās funkcijas. Tas māca testētājiem meklēt problēmas visā lietojumprogrammā.

 

4. Izpēta pirmkodu

 

Tā kā mutācijas testēšana ietver darbu ar kodu un, ja nepieciešams, tiešu izmaiņu veikšanu, šī metode var arī uzsvērt lietojumprogrammā esošo neoptimizēto skriptu izmantošanu.

Programmatūras testētāji var autorizēt programmu un veikt parasto testu kārtu tikai tad, ja programmatūras kods ir atbilstošs; šīs pārbaudes ļauj testētājiem izcelt iespējamās problēmas nākotnē.

 

5. Noved pie labākas programmatūras

 

Mutācijas testēšana palīdz pārliecināties, ka lietojumprogrammas testēšanas procesi atbilst programmas prasībām.

Ja mutāciju analīze atklāj, ka kvalitātes nodrošināšanas komanda neievēro pareizās procedūras vai testēšanas gadījumi ir neatbilstoši, testētāji var strādāt, lai to uzlabotu. Bez šīs pienācīgās rūpības organizācija var laist klajā kļūdainu produktu, pati to neapzinoties.

 

6. Efektīvs dažādām valodām

 

Neatkarīgi no tā, kādu valodu testēšanas komanda izmanto savā lietojumprogrammā, ir pieejamas programmatūras iespējas, kas var piedāvāt augstas kvalitātes mutāciju analīzi.

Tas ietver vairākas šai valodai raksturīgas dzīves kvalitātes funkcijas, kas racionalizē pārbaudes, lai nodrošinātu lielāku uzticamību. Dažādām valodām pielāgota pieeja uzlabo katra atsevišķa testa kvalitāti.

 

7. Ļoti pieejami rīki

 

Daudzas no labākajām mutāciju platformām ir pilnībā atvērtā koda platformas, kas nozīmē, ka tās piedāvā vairāk pielāgojumu un plašu funkciju klāstu bez maksas vai par ievērojami zemākām izmaksām.

Salīdzinot ar daudziem citiem testēšanas veidiem, koda mutācijas ir mazāk šķēršļu, tāpēc tās ir noderīgs un ērts veids, kā uzņēmumiem novērtēt vai pat uzlabot savu kvalitātes nodrošināšanas pieeju.

 

Mutaciju testēšanas izaicinājumi

izaicinājumi slodzes testēšana

 

Šis process ir saistīts arī ar daudziem izaicinājumiem, piemēram:

 

1. Nepieciešamas programmēšanas zināšanas

 

Lai testētāji varētu veikt šīs pārbaudes, viņiem ir nepieciešama vispusīga izpratne par programmu un kodu, kas apgrūtina mazāk pieredzējušu testētāju darbu.

Uzņēmums var testēt programmatūru tikai tādā veidā, kas atbilst testētāju esošajām prasmēm, proti, viņu spējām rediģēt lietojumprogrammu un radīt novēršamas kodēšanas kļūdas.

 

2. Nav piemērots melnās kastes testēšanai

 

Melnās kastes testēšana galvenokārt ietver lietojumprogrammas priekšējās daļas pārbaudi, nepārbaudot tās iekšējo darbību un kodu – tas ir faktiski nesavienojams ar mutāciju testēšanu.

Rezultātā šīs pārbaudes ir noderīgas tikai dažiem testiem salīdzinājumā ar citām metodēm, no kurām daudzas var nodrošināt daudz lielāku aptvērumu visā testēšanas posmā.

 

3. Mutaciju testu izstrāde ir laikietilpīga.

 

Koda mutācija var būt garlaicīgs process, jo komandai ir jāatrod atsevišķi komponenti, kurus būtu vērts mutēt. Lēmumu pieņemšana par to, kuras mutācijas ieviest, var aizņemt daudz laika; tas var radīt problēmas, ja citi testēšanas veidi faktiski gaida, kamēr šīs pārbaudes pilnībā apstiprinās uzņēmuma testēšanas pieeju.

 

4. Var būt nepieciešamas daudzas koda mutācijas

 

Līdzīgi, sarežģītiem projektiem, protams, ir nepieciešams lielāks mutantu skaits, lai nodrošinātu visaptverošu testēšanas pieeju. Tas palielina mutācijas posma laiku un var prasīt daudzas manuālas izmaiņas lietotnes kodā.

Bez augstas kvalitātes testēšanas automatizācijas programmatūras ar programmas mutācijas iespējām testētājiem varētu būt grūti to veiksmīgi īstenot.

 

5. Testētāji var nepamanīt kļūdas

 

Vislielākās bažas, kas bieži rodas mutāciju testētājiem un projektu vadītājiem, ieviešot šīs pārbaudes, ir iespēja, ka programmatūras testētāji (manuāli vai automatizēti) vienkārši nepamanīs problēmas.

Tas var prasīt pilnīgu uzņēmuma testēšanas procedūru pārskatīšanu, lai gan tas joprojām var sniegt testētājiem būtisku informāciju par to kvalitātes nodrošināšanas standartiem.

 

6. Var būt atmiņietilpīgs

 

Mutaciju testēšanai parasti ir nepieciešama liela skaitļošanas jauda, lai gan tas var būt atkarīgs no lietojumprogrammas, ko testētāji izmanto.

Ja organizācijai ir ierobežots mašīnu skaits vai ja šīm ierīcēm ir zemas specifikācijas, tās var būt grūti darbināt pārāk daudz vienlaicīgu mutāciju. Tas ietekmē to, cik daudz pārbaužu var veikt pirms testēšanas posma beigām.

 

7. Ziņojumos var būt daudz informācijas

 

Lai gan tas galvenokārt ir atkarīgs no komandas mutāciju testēšanas rīka saskarnes, to ģenerētos pārskatus var būt grūti analizēt.

Tas nozīmē, ka ir nepieciešams laiks, lai tos manuāli šķirotu un atrastu pareizos testu rezultātus; dažas programmas ļauj lietotājiem pielāgot faktisko ziņošanas procesu; tas atšķiras atkarībā no lietojumprogrammas.

 

Mutāciju testu raksturojums

Nefunkcionālā testēšana: kas tā ir, dažādi veidi, pieejas un rīki

Efektīvu mutāciju testu galvenās īpašības ir šādas:

 

1. Visaptverošs

 

Šīs pārbaudes aptver visus galvenos programmatūras aspektus; uzņēmumi ar pietiekamiem resursiem var pat izstrādāt mutācijas testu katram parastajam testa gadījumam.

Lai gan precīzs skaits ir atkarīgs no organizācijas iespējām un vēlmēm, efektīvi mutāciju testi aptver plašu kodēto funkciju klāstu.

 

2. Stratēģiskais

 

Programmu mutācijām līdzīgi būtu jāievēro skaidra un labi izplānota struktūra, kas atvieglo organizācijas vispārējo testēšanas mērķu sasniegšanu.

Piemēram, to radītās kļūdas var aptuveni atbilst reālām testa kļūdām, kas ļauj testētājiem paredzēt šīs problēmas, ja tās dabiski rodas, tādējādi ievērojami uzlabojot uzņēmuma testēšanas procesu.

 

3. Konstruktīvs

 

Mutaciju testēšanas mērķis ir identificēt testēšanas nepilnības – parādīt, kā komanda varētu uzlabot pārbaudes un novērst nelielas kļūdas, kad tās parādās.

Mutāciju testētājiem ir jānosaka prioritāte “nederīgajiem” mutantiem, kas ietekmē programmatūras funkcionalitāti, tādējādi ļaujot veikt skaidrākus testēšanas uzlabojumus visā projektā.

 

4. Preemptive

 

Šīs pārbaudes tiek veiktas, lai apstiprinātu komandas vispārējo stratēģiju; tas nozīmē, ka mutāciju testēšana labāk darbojas agrīnajos izstrādes posmos.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Ja testētāji pamana būtiskus trūkumus savā kvalitātes nodrošināšanas pieejā, tas dod viņiem nepieciešamo laiku, lai mainītu savus testēšanas gadījumus un pārliecinātos, ka tie ir atbilstoši.

 

5. Konsekventa

 

Mutāciju testēšanai dažādās lietojumprogrammas iterācijās būtu jāsniedz konsekventi rezultāti, vienlaikus pievienojot vairāk pārbaužu, lai pielāgotos programmatūras izmaiņām.

Turpmākajās pārbaudēs ir jāpievērš tāda pati uzmanība detaļām, lai saglabātu to efektivitāti – bez šādas precizitātes mutāciju testi var kļūt mazāk precīzi.

 

6. Smalks

 

Mutācijas testu mērķis ir pārbaudīt kvalitātes nodrošināšanas komandas spēju identificēt koda defektus, izmantojot savus testus un trešo pušu platformas.

Tas nozīmē, ka testiem nevajadzētu būt uzreiz acīmredzamiem ikvienam, kas pārbauda programmatūru; mērķis ir pārbaudīt, kā testētāji reaģē uz nelielām koda problēmām.

 

7. Sadarbība

 

Tāpat kā jebkurš programmatūras tests, arī koda mutācija ir process, kura veiksmīgai norisei parasti nepieciešams komandas darbs un komunikācija. Sadarbības atmosfēras uzturēšana palīdz izvairīties no informācijas nesakritības, kas var izraisīt pārpratumus, un tas arī garantē, ka katrs testētājs koncentrējas uz veicamajiem uzdevumiem.

 

Mutaciju testu veidi

Bak end testēšana, rīki, kas tas ir, veidi, pieejas

Trīs galvenie mutāciju testu veidi ir šādi:

 

1. Vērtību mutācija

 

Vērtību mutācijas tieši maina vērtības kodā, nomainot vienu skaitli vai burtu pret citu tā, ka tas ietekmē lietojumprogrammas funkcionalitāti.

Piemēram, testētājs var mainīt precīzus programmas parametrus, piemēram, skaitļus, uz kuriem tā reaģē. Mutāciju testētāji var īpaši pievērsties programmatūras konstantajām vērtībām, jo tās vienmēr paliek nemainīgas normālas darbības laikā.

 

2. Lēmuma mutācija

 

Lēmumu mutācijas modificē aritmētiskos un loģiskos operatorus, efektīvi mainot lietojumprogrammas reakciju uz konkrētām situācijām.

Piemēram, lielāka par lielāku (>) operatora nomaiņa ar mazāku par lielāku (<), protams, ietekmē programmas izvades rezultātus. Testētāji var arī apmainīt “vai” pret “un” vai otrādi, būtiski mainot šo programmatūru un to, kā tā interpretē citu testētāju un iespējamo lietotāju sniegto informāciju.

 

3. Paziņojuma mutācija

 

Paziņojumu mutācijas maina koda faktiskos paziņojumus, mainot noteikumus, kurus lietojumprogramma izmanto, lai pieņemtu lēmumus. Testētāji var mainīt šo rindu saturu, dublēt tās vai pat dzēst, lai pārbaudītu, kā mutantā programma ietekmē programmatūras funkcionalitāti.

Šīs mutācijas maina programmas pamatelementus, iespējams, atceļot veselas funkcijas vai citādi traucējot to darbību.

 

Dažu neskaidrību novēršana

– Mutāciju testēšana pret regresijas testēšanu

UAT testēšanas salīdzinājums ar regresijas testēšanu un citiem testiem

Gan mutācijas, gan regresijas testēšana ir noderīgas pieejas programmatūras testēšanā – katras no šīm metodēm izpratne var uzlabot uzņēmuma vispārējo kvalitātes nodrošināšanu.

 

1. Kas ir regresijas testēšana?

 

Regresijas testēšana ir pārbaude, kad testētāji pārbauda programmatūru starp dažādām iterācijām, lai pārliecinātos, ka tā joprojām darbojas, neskatoties uz izmaiņām kodā.

Pat nelielas izmaiņas bez šīm pārbaudēm var radīt nopietnas problēmas, kas var izraisīt iepriekšējo kļūdu atkārtotu parādīšanos. Tas parasti prasa automatizāciju, jo katra komponenta atkārtota testēšana ir sarežģīta; daudzi uzņēmumi šī iemesla dēļ atsakās no regresijas testiem.

Testētāji var veikt pārbaudes atsevišķām vienībām, atsevišķām sastāvdaļām vai visam produktam – precīzas nepieciešamās pārbaudes galvenokārt ir atkarīgas no projekta un tā mēroga.

 

2. Kāda ir atšķirība starp mutācijas un regresijas testiem?

 

Regresijas testēšana galvenokārt koncentrējas uz programmas un tās funkcionalitātes pārbaudi, savukārt koda mutācijas vietā tiek skatīts, kā testētāji reaģē uz problēmām.

Pirmās pārbaudes lielākoties tiek veiktas pēc vairākām programmas iterācijām, savukārt mutāciju pārbaudes var notikt jebkurā izstrādes posmā, taču parasti tās tiek veiktas agrīnā testēšanas fāzē.

Gan regresijas, gan mutācijas testi var aplūkot atsevišķas kodēšanas vienības un to, kā nelielas izmaiņas var radīt būtiskas problēmas, kuras testētājiem jācenšas novērst.

 

3. Secinājumi: Mutāciju testēšana pret automatizētu testēšanu

Ieguvumi, ko sniedz izcilības testēšanas centra izveide. Vai veiktspējas testēšana atšķiras no funkcionālās testēšanas?

Automatizācija bieži vien ir galvenā mutāciju testēšanas daļa, jo pārbaužu un vienību skaits ir ļoti plašs – tas dažkārt ir ļoti svarīgi, lai testēšanas process būtu veiksmīgs un visaptverošs.

Uzņēmumi parasti izmanto kodu mutācijas, lai pārbaudītu savu trešās puses automatizācijas platformu un to, cik labi tā identificē problemātiskus skriptus.

Kombinējot rūpīgu mutāciju pārbaužu katalogu ar automatizētu programmatūru, var ievērojami palielināt uzņēmuma pārklājumu un nodrošināt labākus rezultātus.

Lai gan tās ir divas atsevišķas testēšanas prakses, tām nav jābūt savstarpēji pretējām. Piemēram, robotizētas procesu automatizācijas integrēšana var uzlabot uzņēmuma mutāciju testēšanas stratēģiju.

 

Kas jums nepieciešams, lai sāktu mutāciju testēšanu programmatūras inženierijā?

programmatūras testēšanas procesu kontrolsaraksts

Parasti visaptverošai mutāciju testēšanai tiek izvirzītas šādas prasības:

 

1. Skaidra testēšanas stratēģija

 

Testēšanas komandai ir jāizstrādā mutāciju testēšanas stratēģija, tostarp jānosaka, kuras sastāvdaļas un vienības ir vissvarīgākās, kas jāpārbauda.

Piemēram, daži koda aspekti var būt vairāk saistīti ar lietojumprogrammas panākumiem un funkcionalitāti; testētājiem jāpārliecinās, vai ir pietiekami daudz mutāciju, lai to ņemtu vērā.

Būtisks apsvērums ir arī uzņēmuma mutāciju testēšanas grafiks, jo tas nodrošina, ka testētājiem ir pietiekami daudz laika, lai izpētītu kodu.

 

2. Darbības jomas paplašināšanās nav iespējama

 

Pat ar pamatīgu stratēģiju, kurā izklāstīta uzņēmuma pieeja mutāciju testēšanai, ir iespējams, ka testu skaits ir ievērojami lielāks, nekā nepieciešams.

Šajā procedūrā efektivitāte ir ļoti svarīga, jo īpaši tāpēc, ka citi testēšanas posmi var gaidīt, kamēr komanda atradīs un likvidēs mutācijas. Testētājiem ir skaidri jādefinē sava darbības joma, pirms viņi sāk mutēt kodu; tas nodrošina, ka viss ir paveicams praktiskā laika posmā.

 

3. Stingra dokumentācija

 

Katram testēšanas procesam ir noderīga pilnīga dokumentācija – bieži vien testēšanas gadījumu veidā, kas detalizēti apraksta atsevišķas pārbaudes un visus attiecīgos mutantus.

Tas ilustrē komandas pašreizējo progresu visos testos, kas ir īpaši noderīgi vadītājiem un izpildītājiem. Katras koda mutācijas dokumentēšana arī palīdz testētājiem uzturēt skaidru uzskaiti par veiktajām izmaiņām.

Ja kvalitātes nodrošināšanas komandai testēšanas laikā rodas grūtības atrast šīs mutācijas, šie dokumenti efektīvi kalpo kā atbildes atslēga.

 

4. Kvalificēti testētāji

 

Testētājiem, kas mutē kodu, ir labi jāpārzina programmatūra, tostarp daudzie veidi, kā to var mutēt vai pat izjaukt.

Mutācijas testētāji aptuveni zina, kā viņu veiktās izmaiņas ietekmēs lietojumprogrammu un kā citi kvalitātes nodrošināšanas komandas locekļi varētu identificēt mutācijas kodu.

Tam parasti ir nepieciešamas labas programmēšanas zināšanas. Lai mutāciju analīze būtu efektīva, arī programmatūras testētājiem jābūt labi attīstītām prasmēm un testēšanas pieredzei.

 

5. Automatizācijas programmatūra

 

Trešās puses automatizācijas programmatūra var būt nepieciešama pirms mutāciju testēšanas, jo šajā procesā bieži vien ir jāveic daudz pārbaužu. Tas jo īpaši attiecas uz sarežģītām lietojumprogrammām, kurās kvalitātes nodrošināšanas komandai jāpārbauda vairāk kodu un funkciju.

Uzņēmumi var ieviest šīs pārbaudes, lai pārbaudītu, kā automatizācijas programmatūra reaģē uz kodēšanas kļūdām. Tas var būt uzņēmuma izmēģinājuma procesa galvenā daļa, lai izlemtu, kuras programmas ir visnoderīgākās.

 

Mutaciju testēšanas process

kontrolsaraksts uat, tīmekļa lietojumprogrammu testēšanas rīki, automatizācija un vairāk

Veicot mutāciju analīzi, testētāji parasti veic šādas darbības:

 

1. Sagatavot testus

 

Sagatavošanās ir jebkuras testēšanas procesa pirmais solis. Tas ietver arī sarunas par precīzām pārbaudēm, kas jāievieš, un nepieciešamā apstiprinājuma saņemšanu, piemēram, no uzņēmuma vadītājiem un ieinteresētajām personām.

Testētājiem šīs pārbaudes ir jāizstrādā tā, lai tās atbilstu projekta grafikam un vienlaikus aptvertu visus galvenos komponentus. Komandas plānošana var noteikt tās kodu mutāciju efektivitāti.

 

2. Ieviest mutantus un defektus

 

Kad sagatavošanās darbi ir pabeigti, testēšanas komanda sāk mainīt kodu, mutējot to saskaņā ar savu plānu, lai ieviestu konkrētas kļūdas. Šīm kļūdām jābūt salīdzinoši nelielām, jo tas ļauj testētājiem novērtēt pārējās komandas spēju identificēt kodēšanas problēmas.

Nelieli defekti var arī palīdzēt organizācijai pārbaudīt tās trešās puses automatizācijas programmatūras jutīgumu.

 

3. Piemērot testa gadījumus

 

Testēšanas gadījumos ir jāņem vērā visi iespējamie kļūmes punkti lietojumprogrammā – tas var prasīt pārrakstīšanu, ja mutantā programma spēj darboties bez kļūdām.

Programmas testēšanas gadījumi atspoguļo visu plašo pārbaužu klāstu, ko veic testētāji; katram no tiem ir jāpalīdz testētājiem atklāt slēptās mutācijas un jābūt neatņemamai lietojumprogrammas lietojamības sastāvdaļai.

 

4. Salīdziniet rezultātus

 

Pēc tam, kad programmai ir pievienotas mutācijas kļūdas un piemēroti komandas testēšanas gadījumi, komandai ir jāsalīdzina gan sākotnējās, gan mutētās programmas rezultāti.

Cerams, ka par katru veiksmīgu pārbaudi oriģinālajā programmā būs kļūda arī mutētajā programmā. Tas parāda gan testētāju, gan viņu izmantoto rīku spējas.

 

5. Rīkojieties pēc dažādiem rezultātiem

 

Ja oriģinālās un mutantās programmas rezultāti atšķiras, kā to sagaida testētāji, tas nozīmē, ka testa gadījums var veiksmīgi iznīcināt mutantu, demonstrējot tā klātbūtni.

Tad testētāji var turpināt darbu ar pārliecību par savu metodoloģiju un spēju identificēt kodēšanas problēmas. Šiem konkrētajiem testiem nav nepieciešamas nekādas izmaiņas testa gadījumos.

 

6. Ja nepieciešams, nomainiet korpusus

 

Dažas koda mutācijas var radīt identiskus secinājumus dažādās programmās, kas liecina, ka testēšanas gadījumi nespēj veiksmīgi izcelt visas iespējamās kļūdas lietojumprogrammā.

Šādos gadījumos mutants paliek “dzīvs” un var turpināt ietekmēt programmatūru tā, ka testētājiem nav sistēmas, lai to risinātu, – tas liek izveidot labākus testēšanas gadījumus.

 

Kā izveidot mutantu programmas

Mutantu programmas ir faktiski identiskas oriģinālajām programmām, izņemot vienu nelielu izmaiņu, kas var ietekmēt lietojumprogrammas funkcionalitāti nelielā, bet pamanāmā veidā.

Visaptveroši un detalizēti testa gadījumi palīdz testētājam vai programmatūras komplektam precīzi noteikt šīs izmaiņas un to izraisītās kļūdas. Katram gadījumam, ko uzņēmums pārbauda, ir nepieciešama gan sākotnējā, gan mutētā programma, parādot katras izmaiņas ietekmi atsevišķi.

Programmās parasti tiek atkārtotas reālas kļūdas, piemēram, kodēšanas kļūdas. Testētājiem ir arī svarīgi izvairīties no “vēl dzimušiem” mutantiem, kas neļauj lietojumprogrammai darboties – tas testētājiem ir pārāk acīmredzami.

 

Ko mainīt mutantu programmā?

Kas ir slodzes testēšana?

Tāpat kā daudzu programmatūras testēšanas mainīgo lielumu gadījumā, precīzas izmaiņas, ko veic testētāji, ir atkarīgas no lietojumprogrammas un tās koda.

Ir trīs kategorijas, kas aptver lielāko daļu mutāciju testu: operandi, izteiksmes un apgalvojumi. Mainot jebkuru no tiem, var izveidot efektīvu mutantu programmu – parādot, kā dažādas vērtības vai noteikumi ietekmē pašu programmas izmantoto loģiku.

Šīs kategorijas ir saistītas ar trim galvenajiem mutāciju veidiem, ko pārbauda testētāji; tās ir attiecīgi lēmumu, vērtību un paziņojumu mutācijas. Izmaiņām jābūt nelielām, un tās nedrīkst pilnībā kavēt testa izpildi.

 

Labākā mutaciju testēšanas prakse

Kas ir vienības testēšana

Veicot mutāciju testēšanu programmatūras testēšanas kontekstā, ir dažas prakses, kuras ir vērts ievērot un kuras nodrošina labus rezultātus, piemēram:

 

1. Maksimizēt mutācijas rezultātu

 

Programmas mutāciju rādītājs ir mutantu procentuālā daļa, ko komanda vai lietojumprogramma var veiksmīgi identificēt vai “nogalināt”.

Piemēram, ja mutāciju testēšanas kārtā ir 40 mutācijas un testētāji atrod 36 mutācijas, mutāciju rezultāts ir 90 % – komandas mērķis vienmēr ir nodrošināt 100 % rezultātu.

 

2. Izvēlēties mutantus pēc nejaušības principa

 

Lai gan tas var palīdzēt noteikt prioritātes noteiktām sastāvdaļām un pārbaudīt tās rūpīgāk, testētājiem ir arī noderīgi nejauši izvēlēties, kurus mutantus pievienot, jo īpaši saspringtā termiņā.

Kamēr šīs pārbaudes atspoguļo visus būtiskos mutāciju veidus, kvalitātes nodrošināšanas komanda var apstiprināt savu vispārējo programmatūras testēšanas stratēģiju.

 

3. Veiciet nelielas izmaiņas

 

Koda mutācijām ir jāatspoguļo nelielas novirzes no sākotnējās programmas, jo tas parāda, cik ticams, ka testētājs spēs identificēt konkrētas kļūdas; nelielas kodēšanas problēmas arī parāda, cik jutīga ir viņu programmatūra.

Ir ļoti svarīgi, lai mutāciju testētāji atrastu līdzsvaru, kas ļauj šīm nelielajām izmaiņām joprojām radīt pamanāmas kļūdas.

 

4. Viena mutācija katrā programmā

 

Mutācijas testēšana aplūko atsevišķus testēšanas gadījumus atsevišķi, lai pārbaudītu, cik visaptveroši tie ir. Lai to atvieglotu, katrai mutētajai programmai jābūt tikai vienai izmaiņai salīdzinājumā ar oriģinālo.

Programmas ar vairākām mutācijām var nebūt iespējams efektīvi savienot ar testa gadījumiem; mutācijas var būt savstarpēji pretrunīgas.

 

5. Rūpīgi apsveriet automatizācijas programmatūru

 

Uzņēmumi bieži izmanto koda mutāciju, lai pārbaudītu, kā komanda izmanto automatizācijas programmatūru, un pārliecinātos, ka tā spēj identificēt kļūdas tikpat efektīvi kā cilvēks testētājs.

Tas nozīmē, ka svarīgs apsvērums var būt pareizās automatizācijas platformas izvēle, kā arī iespēja integrēt robotizētu procesu automatizāciju.

 

6. Izmantojiet uz testēšanu balstītu izstrādi

 

Uz testēšanu orientēta izstrāde (TDD) ir īpaša tehnika, kurā testēšanas prasības tiek ņemtas vērā katrā izstrādes posmā.

Tas palīdz nodrošināt, ka testēšanas gadījumi ir pilnībā saderīgi ar programmatūru, ļaujot tai viegli izturēt mutācijas testus un izveidot labāku programmu, kas sinhronizējas ar kvalitātes nodrošināšanas procesiem.

 

Mutacijas testa rezultātu veidi

Izcilības testēšanas centra (TCoE) izveides priekšrocības.

Mutaciju testi ģenerē vairākus rezultātus, tostarp:

 

1. Mutantu programma

 

Mutantu programmas ir dabisks šo pārbaužu rezultāts; testētāji tās izveido, lai atspoguļotu savus pašreizējos testēšanas gadījumus un problēmas, ko tie palīdz atklāt. Lai nodrošinātu lielāku uzticamību, šīs programmas parasti atšķiras no oriģinālās versijas tikai vienā nelielā, bet nozīmīgā veidā.

 

2. Dzīvs vai miris mutants

 

Pēc testiem mutācija tiek vai nu “nogalināta”, vai arī paliek “dzīva” – tas vienkārši attiecas uz to, vai testētājs (vai viņa programmatūra) veiksmīgi identificē kodēšanas problēmu vai nē.

Ja mutants paliek dzīvs, testa gadījumos var būt nepieciešamas nopietnas izmaiņas.

 

3. Mutācijas testa gadījums

 

Kvalitātes nodrošināšanas komanda izmanto atsevišķus mutācijām specifiskus testēšanas gadījumus, kas reģistrē informāciju par savām mutāciju programmām.

Tas palīdz nodrošināt, ka komandai ir visaptveroša dokumentācija par katru pārbaudi; šajos dokumentos ir iekļauta sīkāka informācija par mutācijām un to ietekmi uz programmu.

 

4. Mutacijas rezultāts

 

Jebkura mutāciju testa mērķis ir sasniegt 100 % mutāciju rezultātu, uzņēmuma testēšanas procedūrās veiksmīgi atrodot un nogalinot katru mutantu. Ja tas ir mazāk, tas liecina, ka ir jāuzlabo testēšanas gadījumi un vispārējie procesi, lai identificētu problemātisko kodu.

 

Mutaciju testēšanas piemēri

Api testēšana un automatizācija

Šeit ir trīs mutāciju testēšanas piemēri:

 

1. Vērtību mutācijas piemērs

 

Vērtību mutācijas ietver konstantas vai parametra maiņu, kas potenciāli var mainīt programmas robežas. Piemēram, automātiskās kases automāta programmatūra var izmantot pārtikas preces svaru, lai noteiktu tās cenu.

Testētāji varētu mutēt šīs programmas kodu, lai mainītu svara parametrus, tādējādi padarot pārtiku daudz dārgāku par katru unci vai mārciņu. Testētājam vai testēšanas platformai jāspēj noteikt dažādu vērtību ietekmi uz šo programmu.

Tā kā šī kļūda maina vienu no programmatūras galvenajām funkcijām, testa gadījumiem ir jānorāda šī kļūda un jābrīdina komanda.

 

2. Lēmuma mutācijas piemērs

 

Lēmumu mutācijas ietver aritmētiskā vai loģiskā operatora maiņu, apgriežot vai citādi mainot to, kā šī lietojumprogramma reaģē uz lietotāja ievadītajiem datiem. Atgriežoties pie piemēra ar pašapkalpošanās kasēm, šīs iekārtas var atzīmēt preci ar negaidīti lielu svaru, iespējams, lietotāja kļūdas dēļ.

Mašīnas kods to varētu izdarīt, izmantojot lēmumu “if (a>b)”, kur “b” atspoguļo gaidāmo svaru, bet “a” – faktisko svaru. Komanda to var pārveidot par “if (a≤b)”, kas maina kases reakciju; tā atzīmēs preci pat ar paredzamo svaru.

 

3. Paziņojuma mutācijas piemērs

 

Paziņojumu mutācijas ietver noteikuma vai izvades izmainīšanu – tas var ietvert pat paziņojumu pilnīgu dzēšanu no lietojumprogrammas. Šīs mutācijas var būt pamanāmākas nekā citas atkarībā no konkrētā izteikuma biežuma; ir ļoti svarīgi, lai testētāji izteikumu izvēlētos gudri.

Piemēram, pašapmaksas automāts var parādīt brīdinājumu, ja lietotājs mēģina iegādāties preci, kurai ir vecuma ierobežojumi. Ja nav atbilstoša paziņojuma, mašīna var sabrukt vai ļaut jebkuram klientam iegādāties jebkuru preci.

Mutējot paziņojumu un norādot to komandai, testētāji var pārbaudīt, vai viņu pieejā ir ņemtas vērā šīs problēmas.

 

Kļūdu un kļūdu veidi, kas tiek atklāti, izmantojot mutāciju testēšanu

aizptest-runtime-error.png

Mutāciju testi galvenokārt atklāj problēmas pašā testēšanas procesā. Ņemot to vērā, šeit ir uzskaitīti vairāki jautājumi, kurus šīs pārbaudes var palīdzēt identificēt:

 

1. Neskaidri testa gadījumi

 

Ja mutāciju analīze atklāj zemu mutāciju rezultātu (vai pat jebkuru rezultātu, kas ir zemāks par 100%), tas liecina, ka komandas testēšanas gadījumi nespēj ņemt vērā visas iespējamās kļūdas, kas varētu ietekmēt lietojumprogrammu.

Tie var nebūt pietiekami specifiski vai plaši, lai atbilstu komandas prasībām. Šajos dokumentos jāietver visas iespējas, ar kurām komanda var saskarties, testējot programmatūru, lai nodrošinātu uzticamību.

 

2. Neapmācīta testēšanas komanda

 

Mutaciju testi var arī parādīt komandas spējas, tostarp to, cik labi viņi personīgi identificē mutācijas un citus defektus. Ja, neraugoties uz skaidriem un detalizētiem testēšanas gadījumiem, viņi nespēj atrast mutantus visās programmās, iespējams, tas ir tāpēc, ka testētāji šos gadījumus nepiemēro pareizi.

Mutantas programmas var radīt problēmas visā testēšanas procesā – tas var attiekties arī uz nekvalificētiem vai neapmācītiem testētājiem.

 

3. Neatbilstoša testēšanas programmatūra

 

Ja uzņēmums izmanto šīs pārbaudes, lai pārbaudītu savu testēšanas platformu, tas var konstatēt, ka programmatūra nespēj precīzi identificēt vai iznīcināt mutantu kodu.

Uzņēmums var reaģēt, izpētot citas izvēles iespējas, līdz atrod kādu, kas ir saderīga ar tā testa gadījumiem. Ja automatizācijas programmatūrai neizdodas atrast problemātisko kodu, tai, visticamāk, būs grūti identificēt citas problēmas, kas ietekmē programmatūru.

 

4. Neoptimizēts kods

 

Mutāciju testēšana var atklāt programmatūrā jau esošas problēmas. Piemēram, testētāji var mēģināt mutēt kodu, bet paši atklāt kritiskus defektus.

Tas kalpo kā vēl viena svarīga programmas perspektīva, parādot, ka koda mutācija sniedz priekšrocības ārpus testēšanas procesa. Jo vairāk testētāji pārbauda šo kodu, jo vairāk problēmu komanda var atklāt un novērst visā testēšanas posmā.

 

Kopējā mutāciju testa metrika

slodzes testēšana

 

Galvenās metrikas, ko izmanto mutāciju testos, ir šādas:

 

1. Nogalinātie mutanti

 

Tas attiecas uz to mutantu skaitu, kurus testētāji vai programmatūra spēja identificēt, atzīmējot to esamību, lai nodrošinātu, ka darbinieki var atrast šādas nelielas kļūdas.

Testētāju nogalināto mutantu skaits ir atkarīgs no viņu testēšanas gadījumu stipruma.

 

2. Dzīvi mutanti

 

Dzīvi mutanti ir tie, kurus testētājam vai programmatūrai neizdodas identificēt – tie parāda nepilnības, kas varētu būt komandas kvalitātes nodrošināšanas stratēģijā. Ja tā notiek, testētājiem jāpārkalibrē process un testa gadījumi, lai pielāgotos šiem mutantiem, un nākamajās pārbaudēs tie jāiznīcina.

 

3. Derīgi mutanti

 

Šī metrika nosaka mutāciju skaitu, ko programma varēja veiksmīgi iekļaut bez izpildes kļūdas, kas anulē testu un tā efektivitāti.

Derīgas mutācijas ir tās, kuras testētājs un automatizācijas programmatūra var pārbaudīt; tas ir tāpēc, ka mutācijas ir relatīvi nelielas.

 

4. Nederīgi mutanti

 

Ievērojamas mutācijas var ietekmēt lietojumprogrammu tiktāl, ka testēšana kļūst nepraktiska vai pat neiespējama – tāpēc ir lietderīgi izsekot, cik daudz “nederīgu” mutāciju ir mutētajā programmā.

To identificēšana ļauj testētājiem tos rediģēt vai pat dzēst, nodrošinot, ka pārbaudēs tiek iekļautas tikai derīgas mutācijas.

 

5. Kopējais mutantu skaits

 

Mutāciju skaits neatkarīgi no to derīguma ir vēl viens rādītājs, kam testētāji seko; tas ļauj viņiem uzraudzīt mutācijas un reģistrēt to statusu.

Tā kā katra mutācija parasti ir saistīta ar atsevišķu testu, kopsumma kalpo arī kā kopējā koda mutāciju skaita rādītājs.

 

6. Mutacijas rezultāts

 

Visnoderīgākā metrika mutāciju analīzei parasti ir mutāciju rezultāts, kas faktiski ir derīgo mutāciju procentuālā daļa, ko testeris vai automatizācijas komplekts spēja noteikt.

Jebkas, kas ir mazāk nekā 100 % atklāšanas rādītājs, var liecināt par nepareizu testa procedūru veikšanu.

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

7 kļūdas un slazdi mutantu testu īstenošanā

programmatūras testēšanas automatizācijas amats

Mutāciju testēšana ir sarežģīts process, kas uzņēmumiem ir gudri jāīsteno, lai izvairītos no nopietnām problēmām vai kļūdām. Šeit ir septiņas kļūdas, no kurām testētājiem vajadzētu izvairīties, veicot mutāciju testus:

 

1. Nepareiza mutāciju mērogošana

 

Veicot mutāciju analīzi, ir svarīgi ņemt vērā mērogu, jo šis process tiek veikts, lai testētāji varētu identificēt nelielas kļūdas lietojumprogrammā. Ja testētājiem mutācija ir pārāk acīmredzama, tas var nebūt efektīvs veids, kā pārbaudīt viņu spēju pamanīt vai novērst programmatūras problēmas.

 

2. Nederīgas vai dzīvas mutācijas

 

Pat pareizā mērogā daudzas mutācijas ir tikai ierobežoti efektīvas, piemēram, ja tās neizraisa kļūdu vai rada problēmu, kas aptur lietojumprogrammas darbību.

Testētājiem ir jāņem vērā, kā jebkuras kodēšanas izmaiņas var ietekmēt visu programmatūru.

 

3. Nesaderīgi testa gadījumi

 

Testēšanas gadījumiem un mutācijām ir jābūt ideāli savienotām, lai nodrošinātu konsekventu un harmonisku testēšanu. Pieņemot lēmumu par to, kuras mutācijas pievienot, vai pat izstrādājot sākotnējos testēšanas gadījumus, kvalitātes nodrošināšanas komanda var strādāt, lai garantētu, ka tie sader kopā un kopumā nodrošina vienmērīgāku testēšanu.

 

4. Termiņi un grafiki

 

Testēšanas posmu ilgums ir atšķirīgs, taču vienmēr jāievēro uzņēmuma iekšējie termiņi. Uzņēmumi, kas nav pareizi ieplānojuši mutāciju testus, var nespēt pabeigt procesu savlaicīgi.

Pirms projekts nonāk testēšanas posmā, komandai ir jānodrošina, ka testēšanas grafiks ir pietiekami visaptverošs.

 

5. Neatbilstošs testu pārklājums

 

Uzņēmumi var izvēlēties īstenot savas kodu mutācijas izlases veidā, taču joprojām ir svarīgi, lai tās aptvertu plašu jautājumu loku.

Lai pārliecinātos, ka gan testētāji, gan programmatūra var atklāt visu veidu mutācijas, pārbaudēs jāietver vismaz vairākas vērtību, lēmumu un apgalvojumu mutācijas.

 

6. Mutantu izmantošana programmatūras testēšanai

 

Lai gan mutāciju testēšana piedāvā jaunu skatījumu uz lietojumprogrammu, komandām šī metode jāizmanto tikai, lai pārbaudītu savu testēšanas procesu. Uzņēmumam ir jāsaprot precīzas mutāciju testēšanas iespējas un ierobežojumi; šī metode var būt veiksmīga tikai kopā ar citām programmatūras pārbaudēm.

 

7. Pārāk daudz mutantu

 

Uzņēmumiem ir ļoti svarīgi nodrošināt plašu testu pārklājumu, taču šajā procesā tie var ieviest pārāk daudz mutantu. Katrai mutācijas programmai ir nepieciešams ievērojams skaitļošanas jaudas daudzums, kas ierobežo to, cik daudz programmu organizācija var veikt vienlaicīgi.

Pārāk daudz mutāciju var arī apgrūtināt testēšanas termiņu ievērošanu.

 

Mutaciju testēšanas kontrolsaraksts, padomi un triki

Programmatūras testēšanas kontrolsaraksts

Ir vairāki papildu padomi, kas var palīdzēt jebkurai komandai uzlabot mutāciju testēšanas procesa panākumus, piemēram:

 

1. Pārbaudiet programmēšanas valodas saderību

 

Gan bezmaksas, gan maksas mutāciju testēšanas rīki parasti specializējas vienā kodēšanas valodā, tāpēc ir svarīgi, lai testētāji izvēlētos rīku, kas ir saderīgs ar lietojumprogrammu un programmatūras testēšanas platformu.

Testēšanas komandai jāizpēta daudzas iespējas, lai nodrošinātu, ka tā izmanto programmu, kas atbilst tās budžetam, kā arī vēlamajai kodēšanas valodai.

 

2. Pārdomāti sadaliet testus

 

Dažādi testēšanas komandas locekļi, visticamāk, aplūkos dažādus lietojumprogrammas aspektus, kas parasti ir saistīti ar viņu īpašajām stiprajām un vājajām pusēm, kā arī vispārējo pieredzi.

Kad komanda katram testētājam piešķir mutāciju testus, viņiem tas ir jāpatur prātā, lai gūtu priekšstatu par viņu prasmēm; tas parāda, cik labi, visticamāk, veiksies turpmākā testēšana.

 

3. Rūpīgi izvēlieties kļūdas

 

Ja nesenā programmatūras iterācijā ir bijusi kļūda, kas saistīta ar kādu vērtību vai paziņojumu, varētu palīdzēt to atkārtot un pārbaudīt, kā komanda vai programma reaģē.

Tas palīdz garantēt lietojumprogrammas ilgmūžību un parāda komandas spēju pamanīt iepriekšējās kļūdas, ja tās atkārtojas – tas ir galvenais regresijas testēšanas komponents.

 

4. Maksimizēt skaitļošanas jaudu

 

Tā kā mutāciju pārbaužu veikšanai var būt nepieciešama liela skaitļošanas jauda, tas palīdz maksimāli izmantot uzņēmuma aparatūru.

Piemēram, ja konkrētām ierīcēm ir stingrākas specifikācijas, varētu būt lietderīgi palaist mutantus šajās ierīcēs. Tas ļauj uzņēmumam izvairīties no ievērojamiem kavējumiem, ko varētu radīt lēnākas mašīnas.

 

5. Neatlaidiet dzīvas mutācijas

 

Pat ar stingru grafiku testētājiem jāstrādā pie tā, lai modificētu un paplašinātu testēšanas gadījumus, lai cīnītos pret mutācijām, kas izdzīvo procesu.

Lai gan šīs kļūdas var nešķist būtiskas, ja programmatūra vai testētājs tās neatklāj, tās tomēr liecina par to, ka testēšanas gadījumos nav izdevies identificēt visas kodēšanas problēmas.

 

6. Izpētīt jaunu automatizācijas programmatūru

 

Ja komandas testēšanas gadījumi ir pietiekami detalizēti, bet to automatizētais testēšanas komplekts nespēj tos veiksmīgi izmantot, lai identificētu katru mutāciju, iespējams, viņiem noderēs cita programmatūra.

Ir pieejamas daudzas bezmaksas un maksas platformas, un uzņēmumiem ir jāpārbauda visas iespējas, lai pārliecinātos, ka tiem ir programmatūra, kas vislabāk atbilst to testēšanas gadījumiem ilgtermiņā.

 

7. Sinhronizēt katru testēšanas procesu

 

Sadarbība ir katras testēšanas stratēģijas pamatelements – tā palīdz nodrošināt, ka katrs process var viegli saskanēt, kā komanda to iecerējusi.

Piemēram, testēšanas komanda varētu izstrādāt testēšanas gadījumus, paturot prātā mutācijas, lai nodrošinātu lielāku savietojamības līmeni, tādējādi atvieglojot testētājiem savas stratēģijas apstiprināšanu.

 

8. Izmantojiet vienības testēšanu

 

Vienību testēšana ļauj kvalitātes nodrošināšanas komandai pārbaudīt atsevišķus koda fragmentus, tādējādi ievērojami racionalizējot testus un atvieglojot komandām problēmu identificēšanu.

Šī kombinācija var būt īpaši noderīga, ja testētāji uztraucas par termiņiem, sniedzot viņiem iespēju vienkāršot pārbaudes un uzlabot kopējo pārklājumu, tādējādi iegūstot daudz spēcīgākus programmatūras testus.

 

9. Detalizētu testu gadījumu rakstīšana

 

Mutāciju testu gadījumos jāietver atbilstoša informācija par mutāciju un tās ietekmi uz programmu, kā arī par to, kā testēšanas komanda vai platforma konstatēja šīs kļūdas.

Sniedzot pēc iespējas sīkāku informāciju, testētājs var personīgi apstiprināt testa gadījumu un pārliecināties, ka komanda precīzi zina, kā nodrošināt netraucētu testēšanu.

 

5 labākie mutāciju testēšanas rīki

 

 

Ir pieejams plašs rīku klāsts, kas var palīdzēt uzņēmumiem izpildīt mutāciju testēšanas prasības. Kā tas bieži vien ir programmatūras testēšanas lietojumprogrammu gadījumā, cenas un funkcijas dažādās platformās atšķiras, tāpēc ir ļoti svarīgi, lai organizācijas izvēlētos to, kas vislabāk atbilst to vajadzībām.

Dažas no šīm programmām var piedāvāt bezmaksas analogus vai būt pilnībā atvērtā koda programmas; lai gan par lielāku ērtību parasti ir jāmaksā.

 

Paturot to prātā, šeit ir aprakstīti pieci labākie mutāciju testēšanas rīki.

 

1. Stryker

 

Stryker specializējas JavaScript mutāciju pārbaudēs, ievērojami racionalizējot šo procesu, lai garantētu, ka nebūs viltus pozitīvu rezultātu, un samazinātu kopējo pūļu apjomu, kas citādi testētājiem būtu jāpieliek visām mutāciju pārbaudēm.

Stryker platforma inteliģenti novērtē programmatūru un izmanto savākto informāciju, lai noteiktu virknes vai koda segmentus, kurus būtu lietderīgi mutēt. Šī lietojumprogramma ir aprīkota ar skaidra teksta ziņotāju, kas sniedz kopsavilkumu par mutantu, tostarp informāciju par to, vai Strīķeram izdevās to nogalināt.

 

2. PITest

 

PITest ir ļoti populāra izvēle visā pasaulē, jo tas spēj mainīt Java baitu kodu un veikt tūkstošiem mutāciju sekundē. Šī lietojumprogramma izmanto testa gadījumu pārklājuma datus, lai uzreiz uzzinātu, kuri testi varētu nogalināt mutantu.

Tā veic tikai tos testus, par kuriem zina, ka tie būs būtiski, tādējādi ierobežojot skaitļošanas jaudu, ko parasti patērē šī procedūra. PITest ir saderīgs arī ar lielāko daļu Surefire vienības testēšanas spraudņa formu, taču var rasties problēmas ar efektīvu testu pasūtījumu atkarību pārvaldību.

 

3. Apdrošināšana++

 

Insure++ ir daudz testēšanas iespēju, tostarp mutāciju analīze, kas ļauj platformai pamanīt neskaidrības programmā. Atkāpjoties no parastās mutāciju testēšanas, Insure++ atsakās no kļūdainu mutāciju ģenerēšanas un tā vietā rada funkcionāli līdzvērtīgas mutācijas, kas atbilst projekta pirmkoda datiem.

Tas tiek darīts, lai izvairītos no netiešiem pieņēmumiem, kas var nejauši ierobežot testēšanas procesu un var neatspoguļot reālu testēšanas vidi. Kā liecina nosaukums, platforma galvenokārt ir saderīga ar C++ programmām, un visas tās funkcijas ir pielāgotas šai valodai.

 

4. Jumble

 

Šī lietojumprogramma specializējas JUnit JavaScript sistēmā ar visaptverošiem vizuāliem indikatoriem, kas parāda, kā kods reaģē uz mutāciju analīzi. Jumble ir atvērtā koda platforma, kas darbojas Java lietojumprogrammu baitu kodā, lai samazinātu katra testa cikla laiku.

Līdzīgām lietojumprogrammām, kas izmanto tikai programmas pirmkodu, šo pārbaužu veikšana dažkārt var aizņemt ilgāku laiku, jo tās veic pārkompilēšanas procesu.

Jumble izmanto arī heiristiku, lai vēl vairāk optimizētu mutāciju testēšanu, tādējādi vienkāršojot turpmākos testus.

 

5. MutPy

 

MutPy atbalsta mutāciju testus Python bāzētām lietojumprogrammām, piedāvājot pilnu atbalstu augstas kārtas mutācijām, kā arī visaptverošu pārklājuma analīzi. Šīs programmas interfeiss ir viegli lietojams izejas posmā, kas skaidri parāda lietotājiem katru būtisku informāciju par komandas mutāciju testiem.

MutPy testētājiem piedāvā daudzas individuālas izvēles iespējas, kas ļauj viņiem kalibrēt šo programmatūru atbilstoši savām prasībām. Platformā tiek izmantoti abstraktie sintakses koki, kas nodrošina skaidru lietojumprogrammas avota koda struktūru, sniedzot testētājiem lielāku pārliecību par to mutācijām.

 

Secinājums

Koda mutāciju var izmantot gandrīz jebkurā programmatūras testēšanas procesā, un tā sniedz vairākas acīmredzamas priekšrocības uzņēmumiem, kas izmanto šo paņēmienu, jo īpaši kvalitātes nodrošināšanas posma sākumā.

Neviena metodoloģija nav bez izaicinājumiem; tas nozīmē, ka organizācijām ir obligāti jāizvērtē mutāciju analīzes priekšrocības, vienlaikus nodrošinot, ka tā atbilst to ierastajam programmatūras izstrādes grafikam.

Šīs mutācijas dod testēšanas komandām iespēju pārbaudīt savu pieeju un noteikt tās efektivitāti kļūdu atklāšanā un novēršanā pirmkodā. Šis paņēmiens ir īpaši saderīgs ar automatizācijas procedūrām, ļaujot uzņēmumiem pārbaudīt programmatūru, kurai tie uztic savu pārbaužu veikšanu.

Mutāciju testēšana piedāvā visaptverošu veidu, kā kvalitātes nodrošināšanas komandām labāk izprast savus procesus un programmatūru, tostarp problēmas, kuras tās citādi nespētu atklāt.

Tāpēc ir ļoti svarīgi, lai testēšanas komandas rūpīgi izpētītu šo metodi, lai novērtētu, vai tā atbilst organizācijas vajadzībām, tostarp, vai izvēlētais mutācijas rīks ir pilnībā saderīgs ar programmēšanas valodu. ZAPTEST automatizētā testēšanas programmatūra var lepoties ar daudzām funkcijām, kas ļauj tai izturēt mutācijas testus, nodrošinot komandām pilnīgu uzticēšanos tās spējām.

Gan bezmaksas, gan korporatīvā versija piedāvā augstas kvalitātes testēšanas procesu, kurā var viegli pielāgot kodu mutācijas.

 

Biežāk uzdotie jautājumi un resursi

1. Labākie kursi par mutāciju testēšanu

 

Tiešsaistes kursi var palīdzēt pirmreizējiem testētājiem apgūt koda mutācijas pamatus vai nostiprināt pieredzējušu kvalitātes nodrošināšanas darbinieku jau esošās prasmes. Arī vispārējās programmatūras testēšanas nodarbības testētājiem var sniegt daudz priekšrocību. Labākie tiešsaistes kursi mutāciju testētājiem ir šādi:

– PluralSight rakstā “Mutāciju testēšana Java ar PITest” ir īpaši aplūkots, kā mainīt Java kodu un kā šī pieeja varētu uzlabot praktisko programmatūras testēšanas procesu.

– Udemy “The Complete 2023 Software Testing Bootcamp” ir īpaši aktuāls kurss, kas ilustrē visus galvenos programmatūras testu komponentus, tostarp “baltās kastes” testēšanu.

– Alisona grāmata “Programmatūras testēšana – nosacījumu pārklājums un mutāciju testēšanas stratēģijas” ir bezmaksas un tajā ir rūpīgi izpētīts, kā gudri īstenot mutāciju testēšanu.

– PluralSight grāmatā “Vienības testēšanas pamati” tiek pētītas vienības testēšanas priekšrocības un funkcijas, palīdzot studentiem saprast precīzu procesu, kā rakstīt spēcīgus vienības testus.

– Udemy’s “Ievads vienības testēšanā” ir vēl viens bezmaksas kurss, kas sniedz skaidru vienības testēšanas sadalījumu, kā arī uz testēšanu balstītas izstrādes stratēģiju nozīmi.

 

2. Kādi ir 5 svarīgākie intervijas jautājumi par mutāciju testēšanu?

 

Ir vairāki jautājumi, kurus uzņēmumi var uzdot kandidātiem intervijas laikā, lai pārbaudītu viņu pieredzi vai izpratni par mutāciju testēšanu un tās pamatprincipiem. Tas ļauj uzņēmumam pārliecināties, ka tas algo kvalificētu testētāju, kas var viegli pieiet dažādiem ar mutācijām saistītiem scenārijiem.

Precīzi jautājumi var būt dažādi, bet var būt arī jautājumi par viņu pašu viedokli vai par to, kā viņi prot mutēt kodu.

 

Pieci galvenie mutāciju testēšanas intervijas jautājumi ir šādi:

 

– Ar kādiem mutāciju testēšanas rīkiem jums ir bijusi pieredze, ja tāda ir? Kādas bija šīs programmatūras galvenās funkcijas?

– Kā jūs strādātu, lai nodrošinātu līdzsvaru starp testēšanas ātrumu un dziļumu, veicot koda mutāciju?

– Kurās situācijās mutāciju analīze nebūtu iespējama? Kā jūs pārbaudītu testēšanas procedūru šajos scenārijos?

– Ja vērtības mutācijai izdodas izturēt testēšanas procesu, kā jūs rīkotos, lai novērstu šādas mutācijas atkārtošanos?

– Kādu informāciju jūs iekļautu mutācijas testa gadījumā, lai garantētu, ka jūsu kolēģiem ir vajadzīgie dati?

 

3. Labākās YouTube pamācības par mutāciju testēšanu

 

Vietnē YouTube ir pieejamas bezmaksas pamācības, tīmekļa semināri un citi videoklipi, kas palīdzēs uzlabot testētāja izpratni par mutāciju testēšanu. Daži no noderīgākajiem videoklipiem un sērijām par šo tēmu:

 

– Programmatūras testēšana “Mutācijas testēšana programmām”, kurā sniegti praktiski piemēri, kā koda mutācija palīdz programmām, kā arī aprakstīts, kā rakstīt rūpīgus testēšanas gadījumus.

– Devoxx “Mutāciju testēšana: Vai mans tests sabojāja manu kodu?”, kurā aplūkots, kā mutāciju analīze uzlabo vispārējās testēšanas procedūras visu veidu programmatūras projektiem.

– NDC konferences “Nogalināt visus mutantus! Intro to Mutation Testing”, kurā pētīts, kā testēšanas komplekti var gūt labumu no koda mutācijas un kļūdām, ko tā palīdz radīt.

– GOTO konferences “Mutāciju testēšana Python valodā”, kurā īpaši aplūkots, kā Python lietojumprogrammās var izmantot mutāciju analīzi, lai sasniegtu konkrētus testēšanas mērķus.

– Diego Pacheco “Java mutāciju testēšana ar PITest”, kurā līdzīgi kā JavaScript programmatūrā tiek izmantota koda mutācija, galveno uzmanību pievēršot mutāciju programmai PITest.

 

4. Kā uzturēt mutāciju testus?

 

Apvienojot mutāciju analīzi ar regresijas testēšanu un citām ilgtermiņa stratēģijām, uzņēmumi var nodrošināt stingrus kvalitātes nodrošināšanas standartus arī pēc izlaišanas.

Turpmāki atjauninājumi var radīt izmaiņas kodā, kuru dēļ ir jāveic papildu pārbaudes. Mutācijas testēšana parāda, ka automatizācijas programmatūra un testētāji ir konsekventi dažādās vienas un tās pašas programmatūras versijās, atkārtoti apliecinot to konkrēto pieeju.

Jaunas funkcijas rada nepieciešamību pēc jauniem testēšanas gadījumiem, jo īpaši, ja šīs funkcijas mijiedarbojas ar jau esošajām funkcijām.

Turklāt uz testiem balstītas izstrādes izmantošana ļauj komandas locekļiem plānot programmatūras ilgmūžību un testēt saderību kā daļu no tās izstrādes cikla.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo