Shumica e llojeve të testimit të softuerit përdorin një plan testimi të përcaktuar me kujdes për të siguruar mbulim. Megjithatë, ndërsa këto parametra mbulojnë shumë nga mundësitë e përdorimit të një softueri, ata nuk do të imitojnë gjithmonë sjelljen e një përdoruesi që nuk është i njohur me aplikacionin dhe thjesht po përpiqet të ndërveprojë me të në një mënyrë eksploruese: Enter majmun duke testuar.
Në këtë artikull, ne do të hedhim një vështrim në të gjitha gjërat e testimit të majmunëve, duke përfshirë softuerin e testimit të majmunëve, proceset, llojet, qasjet dhe më shumë.
Çfarë është testimi i majmunit?
Testimi me majmun është një teknikë gjithnjë e më popullore e testimit të softuerit. Ai përfshin dërgimin e inputeve të rastësishme në një aplikacion për të simuluar paparashikueshmërinë e ndërveprimit të ndërfaqes së përdoruesit.
Qëllimi është të gjeni gabime ose përplasje që mund të jenë të vështira për t’u zbuluar me rastet e testimit të paracaktuara. Një test majmuni imiton se si një person pa përvojë ose njohuri për një aplikacion mund të eksplorojë rastësisht softuerin.
Kjo teknikë është një opsion i mirë si për ngarkesën ashtu edhe për testimin e stresit aplikacionet. Në fakt, testet ofrojnë hyrje të vazhdueshme të rastësishme në një përpjekje për të thyer aplikacionin.
Ka shumë ngjashmëri midis testimit të majmunit dhe testimit ad hoc, në veçanti, natyra e tyre e rastësishme dhe mungesa e mbështetjes në një plan testimi. Sidoqoftë, ka mjaft dallime midis të dyve për t’i konsideruar ato qasje të dallueshme.
Ndërsa disa zhvillues sugjerojnë që testimi i majmunëve është një lloj testimi ad hoc, një ndryshim domethënës midis të dyve është se testimi i majmunëve mund të kryhet nga njerëz pa njohuri për aplikacionin.
Testimi me majmun ka të bëjë me mospasjen e një plani testimi. Bëhet fjalë për furnizimin e inputeve të rastësishme me objektivin e prishjes së softuerit.
Pse quhet testimi i majmunit?
Nuk ka konsensus pse kjo teknikë quhet testimi i majmunit. Megjithatë, ka disa teori bindëse pas emrit.
Teoria 1: Teorema e majmunit të pafund
Teoria e parë sugjeron që emri ka të bëjë me teoremën e majmunit të pafund, një metaforë e përdorur për të diskutuar probabilitetin statistikor. Me pak fjalë, ai thotë se nëse një majmun do të ulej përpara një makinë shkrimi dhe do të bënte pure të çelësave të rastësishëm për një kohë të pafundme, në një moment ai do të prodhonte veprat e plota të William Shakespeare.
Ideja këtu është që testimi i majmunëve simulon këto përzierje të rastësishme të çelësave dhe me kohë të mjaftueshme, do të mbulojë çdo eventualitet me të cilin aplikacioni do të përballet në prodhim.
Teoria 2: “Majmuni” i Macintosh
Teoria tjetër është se emri vjen nga një aplikacion MacOS i vitit 1983 i quajtur “Majmuni”. Shkurtimisht, ekipi që punonte në kompjuterin e parë Macintosh donte të gjente një mënyrë për të testuar stresin e makinës së tyre.
Ata arsyetuan se nëse do të kishin një majmun që tërhiqej furishëm pas çelësave dhe të lëvizte rreth miut, kjo do t’i ndihmonte ata të testonin elasticitetin e kompjuterit. Ata nuk kishin një majmun të gjallë në dorë, kështu që ata ndërtuan një aplikacion që mund të simulonte këtë lloj përdorimi dhe e quajtën atë “Majmuni”.
Pse është i rëndësishëm testimi i majmunit?
Arsyeja kryesore pse testimi i majmunëve është i rëndësishëm është se ai i ndihmon ekipet të zbulojnë rastet e skajshme ose sjelljet e papritura brenda një aplikacioni. Ideja këtu është që zhvilluesit mund të përdorin testimin e majmunëve krahas metodave më tradicionale për të marrë një kuptim më të mirë se si do të merret aplikacioni në natyrë.
Edhe testimi gjithëpërfshirës i një produkti nuk mund të konkurrojë me dhjetëra mijëra ose më shumë përdorues të angazhuar me një aplikacion për një kohë të gjatë. Në një përqindje të vogël të këtyre rasteve, përdoruesit do t’i kërkojnë aplikacionit të bëjë diçka të papritur. Zbulimi i të gjithë këtyre skenarëve përmes rasteve të testimit është pothuajse i pamundur.
Testimi i majmunit përpiqet të mbulojë këta skenarë pothuajse të rastësishëm. Kur zhvilluesit ndërtojnë një rast testimi, ata priren të kenë një njohuri intime të aplikacionit. Ata e kuptojnë se cilat janë qëllimet e përdoruesit dhe e dinë sekuencën më të mirë të ndërveprimeve që duhet të përdorin për të arritur diçka brenda një aplikacioni.
Radomizimi i këtyre hyrjeve do të thotë që aplikacioni testohet në mënyra që zhvilluesit nuk i kanë marrë parasysh. Në përgjithësi, kjo rrit elasticitetin dhe qëndrueshmërinë e përgjithshme të një softueri dhe siguron që ai të mund të hyjë në botë dhe të përballet me paparashikueshmërinë e një game të gjerë përdoruesish pa u përplasur.
Kur duhet të përdorni testimin e majmunit?
Testimi me majmun është një teknikë e shkëlqyer testimi plotësuese. Avantazhi i tij më i madh qëndron në aftësinë e tij për të gjetur gabime të papritura që nuk do të zbuloheshin nga metodat më tradicionale të testimit të softuerit. Si i tillë, është më mirë kur përdoret krahas metodave si:
Në mënyrë tipike, zhvilluesit përdorin testimin e majmunëve në fillim të procesit të testimit. Është veçanërisht e dobishme kur ka mungesë të planeve të testimit të paracaktuara për t’u mbështetur.
Si kryhet testimi i majmunit?
Në të kaluarën jo shumë të largët, testimi i majmunëve kryhej me dorë. Testuesit u përdorën për të goditur butonat, për të futur tekst, për të zgjedhur objekte dhe kështu me radhë për të parë se si sistemi do të përballonte hyrjet jokonvencionale. Këtu ka probleme të dukshme. Së pari, kërkon shumë kohë. Së dyti, ka pak garanci që këto veprime do të mbulojnë çdo eventualitet.
Shembuj të testimit manual të majmunit
Këtu janë disa shembuj se si kryhet testimi manual i majmunit. Mund t’ju japë gjithashtu një ide se çfarë kërkon të simulojë testimi i automatizuar i majmunëve.
- Testuesi navigon një faqe interneti duke klikuar në lidhje të rastësishme për të parë nëse ato mund të prishin aplikacionin ose të çojnë në faqe të papritura
- Një testues fut tekste të rastësishme në një fushë formulari për të parë se si përgjigjet aplikacioni
- Testuesi zvarrit dhe lëshon ikona dhe objekte për të parë nëse ato sillen siç priten ose nxjerrin rezultate të padëshiruara.
Lloje të ndryshme të testimit të majmunëve
Ekzistojnë tre lloje kryesore të testeve të majmunëve që zhvilluesit përdorin për të zbuluar informacione të dallueshme në lidhje me elasticitetin e aplikacioneve të tyre.
1. Testimi i majmunit memec
Testimi i majmunit memec përshkruan një qasje ku testuesi nuk di asgjë për aplikacionin në provë. Në vend të kësaj, testuesit i kërkohet të vërtitet plotësisht pa dijeni për rrjedhën e punës, duke shtypur butonat, duke futur tekst, etj. Kjo teknikë mund të ndihmojë në zbulimin e të metave të rëndësishme për të cilat zhvilluesit nuk janë të vetëdijshëm.
2. Testimi i majmunit të zgjuar
Me testimin e majmunit inteligjent, testuesi di pak për aplikacionin dhe qëllimet e tij dhe madje ka informacion të detajuar se si funksionon. Ky proces përdor gjithashtu një lloj më të fokusuar të hyrjes së rastësishme që është krijuar për të shtyrë aplikacionin përtej kufijve të veçantë. Përdorimi i kësaj qasjeje është i mirë si për testimin e stresit ashtu edhe për ngarkesën.
3. Testimi i shkëlqyer i majmunit
Testimi i shkëlqyer i majmunëve është niveli tjetër më i lartë nga testimi i majmunëve inteligjentë. Testuesi ka një njohuri të fortë dhe gjithëpërfshirëse të aplikacionit dhe zgjidhet bazuar në këtë njohuri. Kjo mbikëqyrje mund të ndihmojë testuesin të zbulojë shumë defekte, sepse ata duhet ta kuptojnë produktin nga këndvështrimi i një përdoruesi.
Të mirat dhe të këqijat e testimit të majmunit
Para se të vendosni të përdorni teknikën e testimit të majmunit, duhet të kuptoni të mirat dhe të këqijat e saj.
Përparësitë e testimit të majmunit
1. Gjetja e gabimeve të rralla ose të fshehura
Ndoshta përfitimi më bindës i testimit të majmunëve është aftësia e teknikës për të zbuluar defekte, defekte ose sjellje që përndryshe mund të zbuloheshin. Gjetja e këtyre rasteve të skajshme është sfiduese me teknikat tradicionale të testimit, kështu që testimi i majmunëve është një mënyrë solide për të testuar për përplasje, korruptime të të dhënave dhe çdo gjë tjetër që kërcënon stabilitetin e një aplikacioni.
2. Siguron qëndrueshmëri
Testimi i majmunëve është krijuar për të parë se si një aplikacion reagon ndaj kushteve të paparashikueshme me të cilat do të përballet gjatë përdorimeve në botën reale. Kur një aplikacion vihet në duart e përdoruesit, ai do të rezultojë në shumë inpute të ndryshme që zhvilluesit nuk mund t’i parashikojnë. Testimi i majmunit imiton atë situatë, duke çuar në ndërtime më të besueshme.
3. Kosto-efektiviteti
Krahasuar me llojet e tjera të testimit, testimi me majmun është shumë me kosto efektive. Ka disa arsye për këtë. Së pari, nuk keni nevojë të shpenzoni shumë kohë duke projektuar rastet e përdorimit për aplikacionin tuaj. Më pas, mjetet e softuerit të testimit të majmunëve janë kryesisht të automatizuara, gjë që liron kohën e zhvilluesve për detyra të tjera, duke ju kursyer para.
4. Shkathtësi
Një nga gjërat më të mira në lidhje me testimin e majmunëve është se testet mund të kryhen nga njerëz pa përvojë teknike. Në të vërtetë, në disa raste, është e preferueshme të kesh dikë që është plotësisht i gjelbër. Për më tepër, këto teste janë mjaft të thjeshta për t’u vendosur, gjë që redukton përsëri mbështetjen te inxhinierët e aftë.
5. Zbulimi i hershëm i gabimeve
Gjetja dhe zgjidhja e defekteve në fillim të ciklit jetësor të zhvillimit kursen kohë gjatë rrugës. Testimi me majmun prezanton një nivel rastësie në testim, i cili mund t’ju ndihmojë të gjeni të meta në kodin tuaj, ndërkohë që është e lehtë për t’u rregulluar.
Disavantazhet e testimit të majmunit
1. Mbulimi
Ndërsa testimi i majmunëve mund të rezultojë në mbulim të përmirësuar të testit, atij i mungon tërësia e planifikuar dhe strategjike e llojeve të tjera të testimit. Në fakt, për shkak se po shpërtheni aplikacionin me hyrje të rastësishme, jeni në mëshirën e kaosit në gjetjen e gabimeve. Kjo nuk do të thotë se nuk do të gjejë gjithçka, por pa një strategji të qartë dhe të paracaktuar, nuk mund të jesh 100% i sigurt se gjithçka është kapur.
2. Aplikime të kufizuara
Testimi i majmunit nuk është i përshtatshëm për çdo lloj aplikimi. Është i shkëlqyeshëm për aplikacione komplekse me shumë veçori dhe funksione të ndryshme që, më e rëndësishmja, kanë potencialin për ndërveprime të papritura të përdoruesve. Programet që ofrojnë funksione më të ngurta dhe të parashikueshme kanë më pak gjasa të përfitojnë nga këto teste.
3. Konsumon kohë
Testimi manual i majmunit kërkon shumë kohë. Kërkon shumë ndërveprime me modulet dhe softuerin, pa asnjë garanci që çdo seancë do të zbulojë gabime. Kuptohet, ju mund ta automatizoni procesin, i cili kursen kohë dhe burime të konsiderueshme.
4. Pozitive false
Për shkak të natyrës kaotike ose të rastësishme të testimit të majmunëve, disa inpute mund të simulojnë skenarë që nuk do të ndodhin gjatë përdorimit të produktit në botën reale. Kjo situatë mund të rezultojë në gjenerimin e pozitivëve të rremë, duke i bërë koduesit të rregullojnë çështje që nuk janë të nevojshme.
Çfarë është testimi i majmunit të kaosit?
Testimi i kaosit është një teknikë e inxhinierisë softuerike që përdor eksperimente të kontrolluara dhe të qëllimshme të krijuara për të prishur një sistem (dhe madje edhe për të nxitur dështime) për të vlerësuar elasticitetin dhe aftësinë e tij për të rikuperuar.
Ideja e thyerjes së qëllimshme të një sistemi për të siguruar qëndrueshmëri është mjaft e zakonshme në hapësirën e zhvillimit të softuerit dhe këto metoda zakonisht rezultojnë në ndërtime që inxhinierët mund të qëndrojnë pas.
Në vitin 2008, pasi përjetoi një korruptim tre-ditor të bazës së të dhënave, shërbimi i njohur i transmetimit Netflix vendosi të migrojë në Shërbimet Ueb të Amazon (AWS). Qëllimi ishte të shmangeshin pikat e vetme të dështimit dhe të zvogëloheshin problemet e shkallëzimit që rezultojnë nga zgjerimi i shërbimit të tyre.
Ekipi zbatoi testimin e majmunëve të kaosit për të testuar shembujt e përballur me publikun në infrastrukturën AWS. Përfitimet ishin të dyfishta:
- Procesi ekspozoi dobësitë që mund të rregullonin inxhinierët e Netflix
- Ai frymëzoi ekipin për të ndërtuar mekanizma të automatizuar rikuperimi për shërbimin e tyre.
Testimi i majmunit të kaosit është një pjesë e Inxhinierisë së Kaosit. Përdoret për të testuar tolerancën e gabimeve të një sistemi dhe aftësinë e tij për të ruajtur stabilitetin dhe performancën edhe kur komponentët individualë dështojnë papritur.
Ndërsa lidhet me testimin e majmunit, është një teknikë e veçantë.
Testimi i majmunit vs testimi i Gorillave
Ju gjithashtu mund të keni dëgjuar për konceptin e testimit të Gorilla në zhvillimin e softuerit. Ndërsa të dyja teknikat kanë emrat e primatëve, ato kanë shumë ngjashmëri dhe dallime. Le të shqyrtojmë se çfarë është testimi Gorilla dhe ku mund të përdoret.
Testimi i gorillave konsiderohet një version më i strukturuar i testimit të majmunëve. Në krahasim, testimi i majmunit përdoret shpesh në fazat e hershme të testimit kur nuk ka raste të testimit formal në dispozicion. Testimi i gorillave, nga ana tjetër, përdor një mjet ose skript të automatizuar për të gjeneruar inpute të rastësishme për një aplikacion softuerësh.
Testimi i gorillave është i shpejtë dhe shumë më efikas sesa testimi manual me majmun. Ofron mbulim të gjerë dhe është një mënyrë e shkëlqyer për të gjetur përplasjet që duhet të zgjidhen. Megjithatë, përdoret më së miri për aplikacione me kufij të përcaktuar mirë ose për të testuar tërësisht një modul të caktuar.
Si testimi i majmunëve ashtu edhe testimi i gorillave kanë vendin e tyre në testimin modern të zhvillimit të softuerit. Kuptimi i tyre është çelësi për përdorimin e qasjes së duhur në hapësirën e duhur.
Cili është mjeti më i mirë i testimit të majmunit?
Softueri i testimit të majmunëve është bërë një pjesë thelbësore e veglave moderne të zhvilluesve. Megjithatë, ka disa opsione atje. Pra, cili është mjeti më i mirë i testimit të majmunëve? Këtu janë disa për të cilat duhet të dini.
1. ZAPTEST
ZAPTEST është një mjet i fuqishëm i automatizimit për testimin e softuerit falas dhe të ndërmarrjes që mbështet një gamë të gjerë teknikash të automatizimit të testimit, duke përfshirë testimin e majmunëve. Disa nga veçoritë e ZAPTEST që ndihmojnë me testimin e majmunëve përfshijnë:
- Regjistrimi i skriptit pa kod: Ekipet mund të regjistrojnë ndërveprimet e përdoruesve dhe t’i konvertojnë ato në kod provë.
- Gjenerimi i hyrjeve: ZAPTEST lehtëson gjenerimin e rastësishëm të hyrjeve, i cili është një element thelbësor i testimit të majmunëve
- Raportim i fortë: ZAPTEST ofron aftësi të fuqishme raportimi që ju ndihmojnë të dokumentoni testet tuaja
Sigurisht, këto veçori thjesht po gërvishtin sipërfaqen e aftësive të ZAPTEST për një gamë të gjerë teknikash testimi, duke përfshirë testet e majmunëve. Me Integrimin WebDriver, veçoritë e AI dhe ZAPTEST CoPilot, ekipet mund të përjetojnë të ardhmen e testimit të softuerit të gjitha në një vend.
Për më tepër, përdoruesit e ZAPTEST Enterprise marrin akses në një ekspert ZAP me kohë të plotë, të dedikuar dhe licenca të pakufizuara, dhe të gjitha për një kosto fikse të parashikueshme.
2. Apium
Appium është një mjet me burim të hapur. Mund ta përdorni si për Android ashtu edhe për iOS. Ai i lejon përdoruesit të automatizojnë ndërveprimet e aplikacioneve celulare dhe ka aftësi të testimit të majmunëve. Zhvilluesit mund të imitojnë një gamë të gjerë reagimesh të ndërfaqes së përdoruesit, si futja e tekstit, klikimi, prekja dhe lëvizja.
Ndërsa Appium është një mjet i shkëlqyeshëm për zhvilluesit e celularëve, atij i mungojnë aftësitë për testimin e desktopit dhe uebit.
3. Majmuni Testoni atë
Testi i majmunit Është një platformë testimi e bazuar në renë kompjuterike me një sërë aftësish testimi që përfshijnë testimin e majmunëve. Ndërsa Testi i Monkeys është shumë miqësor për përdoruesit, ndoshta i mungon fuqia e mjeteve rivale.
Disavantazhe të tjera janë se mund të duket më i lëmuar dhe të vijë me dokumentacion më të mirë. Për më tepër, disa përdorues janë ankuar për rezultate të pasakta nga testet. Thënë kjo, është një program i thjeshtë me një çmim të ulët, kështu që nuk mund të presësh botën prej tij.
4. MonkeyTestJS
MonkeyTestJS është një mjet Australian me burim të hapur i bazuar në JavaScript që është ndërtuar vetëm për aplikacione në ueb. Është mjaft elementare, por është më se e aftë për ta bërë punën. Mjeti i lejon zhvilluesit të simulojnë ndërveprimet e aplikacionit përdorues-ueb, të tilla si klikimet, paraqitjen e formularit, hyrjet e tastierës dhe më shumë.
Natyrisht, një disavantazh i mjetit është se ai është i disponueshëm vetëm për aplikacionet në internet. Sidoqoftë, ia vlen ta keni në kutinë tuaj të veglave.
Cili është mjeti më i mirë i dedikuar për testimin e majmunit Android?
Ka disa opsione të mira për zhvilluesit që duan të sjellin pak kaos në testimin e aplikacionit të tyre Android. Le të shohim dy.
1. UI/Application Exerciser Monkey për Android
UI/Application Exerciser Monkey për Android është një mjet i linjës komanduese që lejon zhvilluesit të dërgojnë hyrje ose ngjarje pseudo të rastësishme si në pajisjet Android ashtu edhe në emulimet. Ky mjet funksionon në guaskën e Android Debug Bridge.
2. MonkeyRunner për Android
MonkeyRunner për Android është një mjet i njohur testimi i majmunëve Android. Softueri është një API që lejon zhvilluesit të shkruajnë programe që imitojnë ose kontrollojnë një pajisje Android. Është gjithashtu një opsion i mirë për testimin funksional dhe të njësisë.
Të dyja këto aplikacione janë opsione të mira. Megjithatë, ato janë mjaft teknike, gjë që nuk do t’i përshtatet të gjitha skuadrave.
A duhet të jetë i automatizuar testimi i majmunëve?
Një nga problemet më të mëdha me testimin manual të majmunit është se ai kërkon shumë kohë. Gjëja tjetër që duhet të vini re është se është e vështirë për disa testues që vërtet të simulojnë ndërveprimet e ndryshme që një bazë e gjerë përdoruesish mund të kenë me një aplikacion të caktuar.
Pra, tre të meta të menjëhershme na dalin jashtë. Testimi manual i majmunit është:
- Konsumon kohë
- E shtrenjtë
- Potencialisht mungon mbulimi
Një mjet i automatizuar i testimit të majmunëve zgjidh të gjitha këto çështje.
A është ZAPTEST zgjedhja e duhur për nevojat tuaja të testimit të majmunëve?
Testimi me majmun është një teknikë e mirë për ta pasur në repertorin tuaj të testimit, veçanërisht nëse dizajnoni aplikacione komplekse. Megjithatë, blerja e softuerit të dedikuar për testimin e majmunëve është e shtrenjtë.
ZAPTEST është një mjet fleksibël dhe i fuqishëm i automatizimit të testit të plotë. Është shumë i personalizueshëm dhe lejon zhvilluesit dhe ekipet jo-teknike të ndërtojnë dhe dizajnojnë një sasi të pafundme teknikash testimi softuerësh, duke përfshirë testimin e majmunëve.
Testimi me majmun është një zgjedhje e shkëlqyer kur plotësohet me lloje të tjera testesh. ZAPTEST ofron gjithçka nën një çati, me shtimin e mjete RPA me cilësi të lartë.
Mendimet e fundit
Softueri i testimit të majmunëve u ofron zhvilluesve një mënyrë jokonvencionale për të testuar aplikacionet e tyre. Fuqia e kësaj teknike qëndron në aftësinë e saj për të simuluar një mori mënyrash të paparashikueshme që një përdorues mund të angazhohet me një pjesë të softuerit. Me pak fjalë, testimi i majmunit ofron mbulim që mund të jetë i vështirë për t’u arritur me një plan testimi.