Ekvivalences sadalīšana programmatūras testēšanā ir “melnās kastes” testēšanas metode, kas palīdz izveidot efektīvus testēšanas gadījumus, neapdraudot testēšanas pārklājumu.
Šajā rakstā aplūkosim, kas ir ekvivalences klases sadalīšana, kāpēc tā ir noderīga, un izpētīsim dažus procesus un pieejas, ko varat izmantot, lai atraisītu šīs metodes priekšrocības.
Kas ir ekvivalences klases sadalīšana
programmatūras testēšanā?
Visām programmatūrām ir īpaši ievades nosacījumi. Programmatūras testēšanas kontekstā šie ievades nosacījumi apraksta vērtības vai datus, kas testētājam jāizmanto, lai pārbaudītu programmatūras kvalitāti un funkcionalitāti. Šie ievades elementi var būt gan vienkārši peles klikšķi, gan arī teksts un skaitļi.
Programmatūras testēšanā ar līdzvērtīgu sadalījumu tiek izpētītas dažādas programmatūras lietošanai nepieciešamās ievades un sagrupētas līdzvērtības klasēs, t. i., tādu ievades datu kopās, kam būs līdzvērtīga ietekme uz programmatūras uzvedību.
Ja jūs zināt, kā katra ievades datu grupa uzvedīsies, tad jums nav nepieciešams testēt katru grupas pārstāvi. Līdzvērtības klases sadalīšana ir lielisks veids, kā palīdzēt testētājiem samazināt lieko testu biežumu. Hiperkonkurētspējīgajā programmatūras izstrādes pasaulē, kurā termiņi kļūst arvien īsāki, ir ļoti svarīgi ietaupīt laiku un pūles programmatūras testēšanas dzīves ciklā (STLC).
Visbeidzot, ir vērts atzīmēt, ka līdzvērtības testēšana ir “melnās kastes” testēšanas metode. Īsāk sakot, tas nozīmē, ka testētājiem nav jāzina par programmas iekšējo kodu vai iekšējo darbību. Testu pamatā ir ieejas, izejas un ārējā uzvedība. Tāpēc šajos testos galvenā uzmanība tiek pievērsta lietotāja uzvedībai programmas lietošanas laikā.
1. Programmatūras testēšanas līdzvērtības sadalījums īsumā
Ekvivalences dalījums sadala programmatūras testēšanas ievades datus divās nometnēs: derīgajos un nederīgajos ievades datos. Vērtībām katrā nodalījumā ir jārada vienāda programmatūras uzvedība. Piemēram:
- Ja vienas A nodalījuma vērtības nosacījums ir patiess, tad arī pārējām A nodalījuma vērtībām ir jābūt patiesām.
- Līdzīgi, ja vienas A nodalījuma vērtības nosacījumi ir nepatiesi, arī pārējām A nodalījuma vērtībām jābūt nepatiesām.
Testēšanas kontekstā katrs nodalījums jāaptver vismaz vienu reizi. Loģiski tas nozīmē, ka, ja viens ieraksts A nodalījumā neizdodas, tad neizdodas arī visi pārējie ievadi. Šim procesam vajadzētu ietaupīt laiku, jo tā vietā, lai testētu katru A nodalījumā iekļauto ievadi, testētāji var testēt tikai vienu un ekstrapolēt rezultātu, pamatojoties uz kopīgām iezīmēm.
2. Kāpēc programmatūras testēšanā ir svarīgi veikt līdzvērtības klases testēšanu?
Pirms mēs pievērsīsimies līdzvērtības klases testēšanas tiešajiem ieguvumiem programmatūras testēšanā, mums ir jādefinē, kāpēc šī pieeja ir svarīga.
Visi testētāji saprot, ka programmatūras testēšana prasa kompromisus. Laiks un budžets ir ierobežots, un tas nozīmē, ka testētājiem ir maksimāli jāizmanto savi resursi. Programmatūras testēšanas līdzvērtības sadalīšana palīdz komandām atrast līdzsvaru starp testēšanas efektivitāti un uzticamību, samazinot ievades datu skaitu.
Ekvivalences sadalījuma priekšrocības
programmatūras testēšanā
Testēšanas komandas dažādu iemeslu dēļ dod priekšroku līdzvērtīgam nodalījumam programmatūras testēšanā. Lūk, daži no tiem ir vispievilcīgākie.
1. Efektivitāte
Liela līdzvērtības nodalījuma testēšanas priekšrocība ir tās efektivitāte. Ja testētāji izmanto līdzvērtības sadalījumu, viņi var samazināt nepieciešamo testa gadījumu skaitu, neapdraudot testa pārklājumu. Izvēloties ievades gadījumu no katras ekvivalences klases, testētāji var būt pārliecināti, ka viņi saprot, kā viņu programmatūra darbojas ar dažādiem ievades gadījumiem.
2. Vienkāršība
Vēl viena liela programmatūras testēšanas līdzvērtības sadalījuma priekšrocība ir vienkāršība. Dažādu ievades datu kopuma sadalīšana gan derīgos, gan nederīgos datos nozīmē, ka testu plānošana ir daudz vienkāršāka. Katra ievades elementa testēšana atsevišķi prasa daudz dokumentācijas un koordinācijas. To samazinot līdz vienam reprezentatīvam piemēram, tiek racionalizēts testēšanas process.
Paplašināts pārklājums
Līdzvērtības klašu izmantošana testēšanā ļauj arī efektīvāk izmantot testēšanas laiku. Testa ievades datu sadalīšana klasēs nozīmē, ka katru klasi var pārbaudīt rūpīgāk. Šāda visaptveroša pieeja būtu pilnīgi neiespējama, ja pārbaudītu katru ievadi atsevišķi. Ekvivalences sadalīšana ļauj komandām rūpīgi pārbaudīt un testēt derīgus un nederīgus datus, robežgadījumus, robežvērtības un daudz ko citu.
3. Atkārtoti izmantojamība
Sākotnējais laiks, ko ieguldāt, lai izveidotu katru programmatūras testēšanas ekvivalences klasi, atmaksājas, ja šīs klases atkārtoti izmantojat turpmākajos ievades testos. Lai gan ne visi nodalījumi būs noderīgi turpmākajiem testiem, tie, kas ir, ietaupīs jums daudz laika turpmākajos projektos vai pat regresijas testēšanas situācijās.
Ekvivalences sadalījuma trūkumi
programmatūras testēšanā
Lai gan līdzvērtības sadalīšana piedāvā dažas būtiskas priekšrocības, tas nav ideāls risinājums visiem scenārijiem. Izpētīsim dažus tās ierobežojumus.
1. Ievades kārtība
Noteiktās situācijās ievades kārtība ir būtiska lietojumprogrammas funkcionalitātes testēšanas daļa. To nav iespējams samazināt, izmantojot līdzvērtības sadalījumu. Testētājiem ir jāpatur prātā šīs situācijas un jāizmanto alternatīvas metodes, lai nodrošinātu labu pārklājumu.
2. Sarežģītas ievades atkarības
Sarežģīta programmatūra ar sarežģītām ievades atkarībām ir vēl viena joma, kurā atklājas līdzvērtības dalījuma ierobežojumi. Piemēram, programmatūra, kas veic aprēķinus, pamatojoties uz dažādiem ievades datiem. Šādā scenārijā testētājiem būtu jāizmanto dažādas metodes, lai samazinātu kombinatorisko sprādzienu un palielinātu defektu izolēšanas iespējamību.
Alternatīvas pieejas, lai papildinātu
līdzvērtības testēšanas ierobežojumi
Lai gan līdzvērtības nodalījuma testēšana ir piemērota daudziem testēšanas scenārijiem, ļoti sarežģītai programmatūrai ar sarežģītām atkarībām starp ieejas vērtībām var būt nepieciešamas papildu papildinošas pieejas.
Kad runa ir par sarežģītas programmatūras testēšanas gadījumu rakstīšanu, šo pieeju kombinācija ir pamatota ideja.
1. Pārīšu testēšana
Pāru testēšana ir programmatūras testēšanas metode, kas testē visas iespējamās katra ieejas parametru pāra kombinācijas. Šī pieeja nodrošina, ka katrs parametru pāris tiek pārbaudīts kopā vismaz vienu reizi.
2. Lēmumu tabulas testēšana
Lēmumu tabula palīdz testētājiem metodiski izstrādāt dažādas ievades kombinācijas. Tas ir labs veids, kā nodrošināt sistemātisku pārklājumu, ja pastāv sarežģītas atkarības.
3. Valsts pārejas testēšana
Šis testēšanas veids mēra, kā programmatūra pāriet no viena stāvokļa citā, reaģējot uz dažādām ievades kombinācijām.
4. Uz modeļiem balstīta testēšana
Šī pieeja prasa izveidot modeli, kas balstīts uz programmatūras iekšējo loģiku, un, izmantojot automatizācijas rīku, izveidot testēšanas gadījumus, pamatojoties uz šo modeli. Šis paņēmiens ir piemērots sarežģītības risināšanai un atbilstoša pārklājuma nodrošināšanai.
Ekvivalences klases iedalījuma testēšanas piemēri
Labākais veids, kā izprast līdzvērtības dalījumu, ir aplūkot, kā un kur jūs varētu izmantot līdzvērtības klasi programmatūras testēšanā. Šeit ir sniegti daži piemēri, kas palīdzēs jums labāk iztēloties šo koncepciju.
1. Ekvivalences klases iedalījuma testēšanas piemērs Nr. 1
Tiešsaistes pasūtījuma veidlapa ir labs līdzvērtības klases piemērs programmatūras testēšanā.
Pieņemsim, ka veidojat lietotni tiešsaistes stacionārā aprīkojuma mazumtirgotājam. A4 formāta papīra saiņiem ir tipiska pasūtījuma veidlapa. Tālāk ir parādīts, kā var izmantot ekvivalences klases, lai pārbaudītu šo formu.
Ekvivalences klases:
A4 formāta papīra daudzumi ir noteiktā diapazonā, piemēram, no 1 līdz 100. Trīs klases ir šādas:
- 1 līdz 100
- Skaitļi zem 1
- Skaitļi virs 100.
Testēšanas gadījumi:
Jāizpilda trīs testēšanas gadījumi ar šādiem sagaidāmajiem rezultātiem.
- Jebkurš skaitlis no 1 līdz 100 = apstrādāts pasūtījums
- Skaitļi zem 1 = kļūdas ziņojums
- Skaitļi virs 100 = kļūdas ziņojums
2. Ekvivalences sadalījuma testēšanas piemērs Nr. 2
Programmatūras testēšanas līdzvērtības klase var attiekties ne tikai uz skaitļiem. Šajā piemērā izpētīsim, kā šo pašu principu var izmantot, lai pārbaudītu failu augšupielādes portālu. Pieņemsim, ka jums ir jātestē vietne, kurā lietotājiem ir nepieciešams augšupielādēt personu apliecinošus dokumentus, bet var pieņemt tikai noteiktus formātus.
Ekvivalences klases:
- Atbalstītie dokumenti ir PDF un JPEG.
- Neatbalstītie dokumenti ir visi citi dokumentu formāti.
- Nav dokumenta
Testēšanas gadījumi:
- Testēšana, augšupielādējot PDF vai JPEG = veiksmīga augšupielāde
- Testēšana, augšupielādējot neatbalstītu formātu = kļūdas ziņojums
- Tests bez failu augšupielādes = kļūdas ziņojums
Kā īstenot līdzvērtības sadalījumu
programmatūras testēšanas pieeja
Ja testēšanā vēlaties izmantot ekvivalences klases, ir jāizmanto stratēģiska pieeja. Šeit ir sniegts noderīgs soli pa solim noderīgs ceļvedis, kā programmatūras testēšanā ieviest līdzvērtības sadalījumu.
1. solis: Ieejas mainīgo identificēšana
Katra programmatūra reaģē uz dažādiem ievades mainīgajiem lielumiem. Sarežģītai programmatūrai šie mainīgie var būt ļoti lieli. Izpētiet programmatūras prasības un specifikācijas un precīzi norādiet visus mainīgos lielumus, kas ietekmē programmatūras darbību.
Daži no acīmredzamākajiem ievades datiem ietver lietotāja ievades veidlapas. Tomēr jums ir jāapsver plašāks ievades datu klāsts sarakstam. Varat ņemt vērā arī vides mainīgos, API izsaukumus, iekšējos aprēķinus utt.
Tālāk ir jāizprot dažādi mainīgo datu veidi. Šos mainīgos var iedalīt veselu skaitļu, baļļu, virkņu u. c. kategorijās, lai definētu atbilstošus nodalījumus.
Visbeidzot, jāizpēta ievades ierobežojumi. Tas attiecas, piemēram, uz atļautajām rakstzīmēm, definētajiem formātiem un minimālajām/maksimālajām vērtībām.
2. Derīgu un nederīgu nodalījumu noteikšana
Aplūkojiet katru ievades mainīgo un sāciet sadalīt tos pēc derīgiem un nederīgiem rezultātiem. Šīs būs jūsu ekvivalences klases testēšanā.
1. Derīgie nodalījumi
Derīgos nodalījumus var iedalīt divās klasēs.
Pozitīvās ekvivalences klases:
Vērtības, kuras programmatūra veiksmīgi apstrādās. Piemēram, programmatūrai, kas reģistrē procentuālās atzīmes, derīgs ir jebkurš skaitlis no 0 līdz 100.
Negatīvās ekvivalences klases:
Šajā kategorijā tiks iekļautas vērtības, kas ir ārpus paredzamās ievades robežām, bet kuras programmatūrai būtu jāapstrādā ar kļūdas ziņojumu. Piemēram, procentuālajai pakāpei ir ievadīts 110, un programmatūra atgriež kļūdas ziņojumu: “Visām vērtībām jābūt no 0 līdz 100”.
2. Nederīgi nodalījumi
Šajās ekvivalences klasēs būs iekļauti ievades dati, kas izraisīs kļūdas vai neparedzētu uzvedību. Iepriekš minētajā piemērā tas varētu ietvert mēģinājumus procentuālajā vērtējumā ievadīt A+ vai B vai līdzīgus ievaddatus. Lai gan šie ievades dati varētu būt tehniski pareizi, tie neatbilst skaitliskajām prognozēm.
#3. Efektīvu testa gadījumu rakstīšana
Tālāk ir jāizstrādā testēšanas gadījumi, kas aptver katru ekvivalences nodalījumu vismaz vienu reizi. Kā minēts iepriekš rakstā, tas nodrošina atbilstošu testu pārklājumu.
Vispirms ir jāizvēlas reprezentatīvas vērtības katrā ekvivalences nodalījumā, kas var aptvert gan derīgus, gan nederīgus datus.
Padomi, kā rakstīt drošus testēšanas gadījumus
- Padomājiet par robežvērtībām: Pārliecinieties, ka esat pārbaudījis savu nodalījumu robežas. Minimālais, maksimālais, iekļaujošais, ekskluzīvais u. c., jo šīs jomas ir spēcīgi kandidāti uz kļūdām. Piemēram, ja ievades gaidāmās vērtības ir no 0 līdz 100, pārbaudiet, vai nav negatīvu vērtību, kā arī tādu skaitļu kā 101.
- Apsveriet pozitīvos un negatīvos testēšanas scenārijus gan derīgiem, gan nederīgiem testēšanas gadījumiem.
- Laba ideja ir kombinētā testēšana. Izmantojiet dažas dažādas pieejas, kā izklāstīts mūsu alternatīvajās pieejās, lai papildinātu iepriekš minētās līdzvērtības testēšanas sadaļas ierobežojumus.
- dokumentēt pamatojumu, kāpēc ievades vērtības ir sadalītas konkrētos nodalījumos, un skaidri izklāstīt katra testa paredzamo uzvedību.
- Ja iespējams, izmantojiet vizuālus rīkus, lai testa gadījumiem piešķirtu skaidrību un objektivitāti, izmantojot diagrammas vai tabulas, lai iezīmētu nodalījumus.
#4. Testēšanas gadījumu plānošana un izpilde
Nosakiet uzdevumu prioritātes, pamatojoties uz šādiem faktoriem:
- Kurās jomās visbiežāk ir defekti
- Kādi scenāriji visdrīzāk var izraisīt nopietnus scenārijus, piemēram, avārijas vai sasalšanu.
Pēc tam izpildiet testus un reģistrējiet rezultātus un visas radušās kļūdas. Sarežģītām programmām ar daudziem ievades datiem varat izmantot RPA rīkus, lai atdarinātu lietotāja darbības.
#5. Analizēt rezultātus
Apkopot savāktos testu datus un analizēt rezultātus. Dažas metodes, kas jums jāizmanto, ir:
- Aplūkojiet katru testa gadījumu un salīdziniet faktiskos rezultātus ar gaidītajiem rezultātiem.
- Atrodiet jebkādas neatbilstības, izpētiet un ziņojiet par kļūdām un defektiem.
#6 Papildu padomi
Lai gan šie padomi nav piemērojami visos scenārijos, tie būs noderīgi sarežģītas programmatūras testēšanā.
- Lēmumu tabulas ir lielisks veids, kā vizualizēt līdzvērtības nodalījumus un dažādas ievades kombinācijas, ko, iespējams, vēlaties izmantot.
- Varat apvienot līdzvērtīgas klases, ja tās uzvedas gandrīz identiski, tādējādi vēl vairāk optimizējot testēšanas procesu.
- Robežvērtību testēšana, lai uzlabotu defektu atklāšanu
- Ja iespējams, automatizējiet līdzvērtības sadalīšanas testa gadījumus.
Ekvivalences sadalījums un robežvērtību analīze
Ekvivalences sadalīšanas pamatā ir pieņēmums, ka katrs tests nodalījumā dos vienādu rezultātu. Lai gan tas ir taisnība daudzās situācijās, tas ne vienmēr darbojas. Piemēram, jebkuras ievades, kas ir pievienotas nodalījumam kļūdas dēļ, var palikt nepārbaudītas, tādējādi samazinot pārklājumu un potenciāli izraisot programmatūras nestabilitāti.
Šīs problēmas risinājums ir robežvērtību testēšana. Tas ļauj programmatūras testēšanas komandām koncentrēties uz jomām, kurās, visticamāk, pastāv riski, un, pamatojoties uz tiem, testēt programmatūru. Īsāk sakot, tajā ir ierosināts, ka riski visdrīzāk var rasties jūsu ievades nodalījumu malās vai robežās. Tāpēc testētāji var rakstīt testēšanas gadījumus augšējās un apakšējās ieejas robežās papildus citiem ekvivalences klases testēšanas gadījumiem.
Ekvivalences sadalīšana un automatizācija ar ZAPTEST
Programmatūras testēšanas automatizācijas rīki, piemēram, ZAPTEST, var palīdzēt komandām automatizēt līdzvērtības sadalīšanu gan testu izveides, gan izpildes laikā.
Izpētīsim, kā ZAPTEST var palīdzēt jums atklāt šīs noderīgās melnās kastes testēšanas pieejas priekšrocības.
1. Instrumentu izvēle
Svarīgi ir izvēlēties darbam piemērotu instrumentu. Lielākā daļa testēšanas automatizācijas rīku specializējas tīmekļa, mobilo vai darbvirsmas testēšanā. ZAPTEST spēj veikt testēšanu dažādās platformās un lietojumprogrammās, tāpēc tā ir stabila izvēle.
2. Testēšanas gadījumu rakstīšana un izpilde
ZAPTEST 1Script ļauj skenēt lietotāja saskarni, lai izveidotu testēšanas automatizāciju. Turklāt varat skenēt arī lietojumprogrammas maketus, ja esat agrīnā izstrādes posmā. Izmantojot skenēšanas GUI funkciju, ZAPTEST skenēs visus testa objektus un pievienos tos objektu sarakstam.
No šejienes varat pievienot objektus diagrammai un izveidot testa darbības.
ZAPTEST ļauj automatizēt gadījumu rakstīšanu, izmantojot vienkāršu vilkšanas un nomešanas saskarni. Lai veidotu testēšanas gadījumus ar ZAPTEST, jums nav nepieciešamas programmēšanas zināšanas. Tādējādi no šejienes varat izvēlēties attiecīgo operāciju no nolaižamajā metodē un izveidot testa gadījumu, pamatojoties uz saskarnei nepieciešamajām ievades vērtībām. Pēc tam varat izveidot testēšanas gadījumus katrai ekvivalencei un izpildīt testēšanas gadījumus. Varat pat atkārtoti izmantot testu gadījumus un rediģēt tos soļu redaktorā, ietaupot daudz laika.
3. Ziņošana un testa gadījumu pārvaldība
ZAPTEST ļauj paralēli veikt testēšanas gadījumus, ietaupot ievērojamu laiku. Tas var palīdzēt vienlaicīgi palaist lielu skaitu dažādu līdzvērtības nodalījumu vai palaist noteiktas testu grupas.
Rezultātus ir viegli apkopot, pateicoties detalizētiem neveiksmīgu/izturējušu testu pārskatiem, ekrānšāviņiem, izpildes žurnāliem un veiktspējas rādītājiem, kas saistīti ar katru testa gadījumu.
4. Testēšanas gadījumu uzturēšana
Jūs varat arī vienkārši izsekot un uzturēt savus testēšanas gadījumus, pateicoties kvalitātes versiju kontroles iespējām. Turklāt ZAPTEST lietotāji var klonēt un atkārtoti izmantot testus, lai sasniegtu jaunu efektivitātes līmeni.
ZAPTEST piedāvā daudz plašāku funkcionalitāti papildus testa gadījumu automatizācijai. Izmantojot RPA rīku komplektu, ZAPTEST piedāvā “2-in-1” funkcionalitāti, kas novērš plaisu starp DevOps un BizOps nākotnē, ko iezīmē hiperautomatizācija, kad viss, ko var automatizēt, tiks automatizēts.
Nobeiguma domas
Ekvivalences sadalīšana ir elegants risinājums situācijās, kad testētājiem ir jāpanāk līdzsvars starp efektivitāti un precizitāti. Tā kā dažas programmatūras ļauj izmantot gandrīz bezgalīgu ievades datu klāstu, līdzvērtības klases sadalīšana palīdz komandām sadalīt testēšanas datus pa viegli pārvaldāmiem, maziem gabaliņiem, no kuriem katru var rūpīgi pārbaudīt.