A legtöbb szoftvertesztelés egy gondosan meghatározott teszttervet használ a lefedettség biztosítására. Bár ezek a paraméterek egy szoftver használatának számos eshetőségét lefedik, nem mindig utánozzák egy olyan felhasználó viselkedését, aki nem ismeri az alkalmazást, és csak felfedező jelleggel próbál kapcsolatba lépni vele: Lépjen be a majomtesztelésbe.
Ebben a cikkben mindent megnézünk, ami a majomteszteléssel kapcsolatos, beleértve a majomtesztelési szoftvereket, folyamatokat, típusokat, megközelítéseket és egyebeket.
Mi az a majomteszt?
A majomtesztelés egyre népszerűbb szoftvertesztelési technika. Ennek során véletlenszerű bemeneteket küldünk egy alkalmazásba, hogy szimuláljuk a felhasználói felület interakciójának kiszámíthatatlanságát.
A cél olyan hibák vagy összeomlások megtalálása, amelyeket nehéz lenne felismerni az előre definiált tesztesetekkel. A majomteszt azt utánozza, ahogyan egy olyan személy, akinek nincs tapasztalata vagy ismerete egy alkalmazásról, véletlenszerűen felfedezné a szoftvert.
Ez a technika jó választás mind a
terhelés
és a
stressztesztelésre
alkalmazások. A tesztek valójában folyamatos véletlenszerű bemeneteket biztosítanak, hogy megpróbálják megtörni az alkalmazást.
Sok hasonlóság van a majomtesztelés és a
ad hoc tesztelés
különösen a véletlenszerűségük és a teszttervre való támaszkodás hiánya miatt. A kettő között azonban elegendő különbség van ahhoz, hogy különálló megközelítéseknek tekintsük őket.
Bár egyes fejlesztők szerint a majomtesztelés az ad hoc tesztelés egy fajtája, a kettő közötti jelentős különbség az, hogy a majomtesztelést olyan emberek is elvégezhetik, akik nem ismerik az alkalmazást.
A majomtesztelés arról szól, hogy nincs tesztterv. Ez a véletlenszerű bemenetek bejuttatásáról szól, azzal a céllal, hogy a szoftver összeomoljon.
Miért hívják majomtesztnek?
Nincs egyetértés abban, hogy miért nevezik ezt a technikát majomvizsgálatnak. A név mögött azonban van néhány meggyőző elmélet.
1. elmélet: A végtelen majom tétele
Az első elmélet szerint a névnek köze van a végtelen majom tételéhez, amely a statisztikai valószínűség tárgyalására használt metafora. Röviden: ha egy majom leülne egy írógép elé, és végtelen sokáig nyomkodná a véletlenszerű billentyűket, akkor egy bizonyos ponton William Shakespeare teljes művét előállítaná.
A majomtesztelés lényege, hogy szimulálja ezeket a véletlenszerű billentyűkeveréseket, és elegendő idővel minden olyan eshetőséget lefed, amellyel az alkalmazás a gyártás során szembesülni fog.
2. elmélet: Macintosh “The Monkey” (A majom)
A másik elmélet szerint a név egy 1983-as MacOS alkalmazásról, a “The Monkey”-ról származik. Röviden, az első Macintosh számítógépen dolgozó csapat meg akarta találni a módját annak, hogy stresszteszteljék a gépüket.
Úgy gondolták, hogy ha egy majom eszeveszetten ütögeti a billentyűket és mozgatja az egeret, az segíthet tesztelni a számítógép ellenálló képességét. Nem volt élő majom a kezükben, ezért készítettek egy alkalmazást, amely képes volt szimulálni ezt a fajta használatot, és “The Monkey”-nek nevezték el.
Miért fontos a majomtesztelés?
A majomtesztelés azért fontos, mert segít a csapatoknak felfedezni az alkalmazáson belüli szélsőséges eseteket vagy váratlan viselkedéseket. Az ötlet lényege, hogy a fejlesztők a hagyományosabb módszerek mellett a majomtesztelést is használhatják, hogy jobban megértsék, hogyan fogadják majd az alkalmazást a vadonban.
Még egy termék átfogó tesztelése sem tud versenyezni több tízezer vagy több felhasználóval, akik hosszú időn keresztül foglalkoznak egy alkalmazással. Az ilyen esetek kis százalékában a felhasználók valami váratlan dolgot kérnek az alkalmazástól. Mindezen forgatókönyvek feltárása teszteseteken keresztül szinte lehetetlen.
A majomtesztelés megpróbálja lefedni ezeket a közel véletlenszerű forgatókönyveket. Amikor a fejlesztők teszteseteket készítenek, általában jól ismerik az alkalmazást. Megértik, hogy mik a felhasználók céljai, és tudják, hogy az alkalmazáson belül milyen interakciósorozatot kell használniuk ahhoz, hogy elérjenek valamit.
Ezeknek a bemeneteknek a véletlenszerűvé tétele azt jelenti, hogy az alkalmazás olyan módon kerül tesztelésre, amelyet a fejlesztők nem vettek figyelembe. Összességében ez növeli egy szoftver általános ellenálló képességét és tartósságát, és biztosítja, hogy a felhasználók széles körének kiszámíthatatlanságával szembenézve, összeomlás nélkül mehessen a világba.
Mikor érdemes majomtesztet használni?
A majomteszt kiváló kiegészítő tesztelési technika. Legnagyobb előnye abban rejlik, hogy olyan váratlan hibákat is képes megtalálni, amelyeket a hagyományosabb szoftvertesztelési módszerek nem fedeznének fel. Mint ilyen, a legjobb, ha olyan módszerekkel együtt használják, mint:
A fejlesztők általában a tesztelési folyamat elején alkalmaznak majomtesztelést. Különösen akkor hasznos, ha nincsenek előre meghatározott teszttervek, amelyekre támaszkodni lehetne.
Hogyan történik a majomtesztelés?
A nem is olyan távoli múltban a majomteszteket kézzel végezték. A tesztelőket gombok megnyomásával, szöveg beírásával, tárgyak kiválasztásával és így tovább foglalkoztatták, hogy lássák, hogyan bírja a rendszer a szokatlan beviteleket. Itt nyilvánvaló problémák vannak. Először is, ez elég időigényes. Másodszor, kevés garancia van arra, hogy ezek az intézkedések minden eshetőségre kiterjednek.
Példák a kézi majomtesztelésre
Íme néhány példa a kézi majomtesztelésre. Ez azt is megmutatja, hogy az automatizált majomtesztelés mit próbál szimulálni.
- A tesztelő véletlenszerű linkekre kattintva navigál egy weboldalon, hogy lássa, összeomlik-e az alkalmazás, vagy váratlan oldalakra vezetnek-e.
- A tesztelő véletlenszerű szövegeket ír be egy űrlap mezőjébe, hogy lássa, hogyan reagál az alkalmazás.
- A tesztelő húzza és ejti az ikonokat és objektumokat, hogy lássa, a várt módon viselkednek-e, vagy nem kívánt eredményeket produkálnak.
A majomtesztek különböző típusai
A majomteszteknek három fő típusa van, amelyeket a fejlesztők arra használnak, hogy különböző információkat fedezzenek fel az alkalmazásuk ellenálló képességéről.
1. Dumb monkey tesztelés
A buta majom tesztelés olyan megközelítést ír le, ahol a tesztelő semmit sem tud a tesztelt alkalmazásról. Ehelyett a tesztelőt arra kérik, hogy a munkafolyamatok teljes ismerete nélkül böngésszen, nyomogassa a gombokat, írjon be szöveget stb. Ez a technika segíthet feltárni olyan jelentős hibákat, amelyekkel a fejlesztők nincsenek tisztában.
2. Intelligens majom tesztelés
Az okos majom teszteléssel a tesztelő egy kicsit ismeri az alkalmazást és annak céljait, sőt részletes információkkal rendelkezik az alkalmazás működéséről. Ez a folyamat szintén a véletlenszerű bemenet egy célzottabb típusát használja, amelyet úgy terveztek, hogy az alkalmazás bizonyos határokat átlépjen. Ez a megközelítés jó mind a stressz-, mind a terheléses teszteléshez.
3. Briliáns majom tesztelés
A briliáns majom tesztelés az okos majom tesztelés következő szintje. A tesztelő az alkalmazás alapos és átfogó ismeretével rendelkezik, és a tesztelőt ezen ismeretek alapján választják ki. Ez a mulasztás segíthet a tesztelőnek sok hibát felfedezni, mivel a felhasználó szemszögéből kell megértenie a terméket.
A majomtesztelés előnyei és hátrányai
Mielőtt úgy dönt, hogy a majomtesztelési technikát alkalmazza, meg kell értenie annak előnyeit és hátrányait.
Majomtesztelés előnyei
1. Ritka vagy rejtett hibák megtalálása
A majomtesztelés talán legmeggyőzőbb előnye, hogy a technika olyan hibákat, hiányosságokat vagy viselkedési formákat fedez fel, amelyek máskülönben nem kerülnének felszínre. A hagyományos tesztelési technikákkal kihívást jelent ezeknek a szélsőséges eseteknek a megtalálása, ezért a majomtesztelés egy megbízható módszer az összeomlások, adatsérülések és bármi más, az alkalmazás stabilitását veszélyeztető esetek tesztelésére.
2. Robusztusságot biztosít
A majomtesztelés célja, hogy megnézzük, hogyan reagál egy alkalmazás a valós használat során előforduló, előre nem látható körülményekre. Amikor egy alkalmazás a felhasználó kezébe kerül, rengeteg különböző bemenetet fog eredményezni, amit a fejlesztők nem láthatnak előre. A majomtesztelés ezt a helyzetet utánozza, ami megbízhatóbb felépítéshez vezet.
3. Költséghatékonyság
Más típusú vizsgálatokkal összehasonlítva a majomtesztek nagyon költséghatékonyak. Ennek több oka is van. Először is, nem kell sok időt töltenie azzal, hogy használati eseteket tervezzen az alkalmazásához. Ezután a majomtesztelő szoftvereszközök nagyrészt automatizáltak, ami felszabadítja a fejlesztők idejét más feladatokra, így pénzt takaríthat meg.
4. Sokoldalúság
A majomtesztelés egyik legjobb tulajdonsága, hogy a teszteket olyan emberek is elvégezhetik, akiknek nincs műszaki hátterük. Sőt, bizonyos esetekben még az is előnyösebb, ha valaki teljesen zöldfülű. Ráadásul ezeket a teszteket nagyon egyszerű beállítani, ami ismét csökkenti a szakképzett mérnökökre való támaszkodást.
5. Korai hiba felismerés
A hibák megtalálása és megoldása a fejlesztési életciklus korai szakaszában időt takarít meg a későbbiekben. A majomtesztelés a véletlenszerűség egy szintjét vezeti be a tesztelésbe, ami segíthet megtalálni a kód hibáit, miközben könnyen javítható.
Majomtesztelés hátrányai
1. Lefedettség
Bár a majomtesztelés jobb tesztlefedettséget eredményezhet, nem rendelkezik a többi tesztelési típus tervezett és stratégiai alaposságával. Mivel véletlenszerű bemenetekkel bombázza az alkalmazást, a hibák keresése során a káosznak van kiszolgáltatva. Ez nem jelenti azt, hogy nem fog mindent megtalálni, de egyértelmű és előre meghatározott stratégia nélkül nem lehet 100%-ig biztos abban, hogy minden megvan.
2. Korlátozott alkalmazások
A majomteszt nem alkalmas minden típusú alkalmazáshoz. Remekül használható olyan összetett alkalmazásokhoz, amelyek sok különböző funkciót és funkciót tartalmaznak, és amelyek – ami a legfontosabb – váratlan felhasználói interakciókat eredményezhetnek. A merevebb és kiszámíthatóbb funkciókat kínáló programok kevésbé profitálnak ezekből a tesztekből.
3. Időigényes
A manuális majomtesztelés nagyon időigényes. Sok interakciót igényel a modulokkal és a szoftverekkel, és nem garantálható, hogy minden egyes munkamenet során felfedezik a hibákat. Természetesen automatizálhatja a folyamatot, ami jelentős időt és erőforrásokat takarít meg.
4. Hamis pozitív eredmények
A majomtesztelés kaotikus vagy véletlenszerű jellege miatt egyes bemenetek olyan forgatókönyveket szimulálhatnak, amelyek a termék valós használata során nem fordulnak elő. Ez a helyzet hamis pozitív eredmények generálásához vezethet, ami arra készteti a programozókat, hogy olyan problémákat javítsanak, amelyekre nincs szükség.
Mi az a káoszmajom tesztelés?
A káosz tesztelés egy olyan szoftverfejlesztési technika, amely ellenőrzött és szándékos kísérleteket alkalmaz, amelyek célja, hogy megzavarjanak egy rendszert (és akár meghibásodást is előidézzenek), hogy felmérjék annak rugalmasságát és helyreállítási képességét.
A rendszer szándékos megbontásának ötlete a rugalmasság biztosítása érdekében meglehetősen gyakori a szoftverfejlesztésben, és ezek a módszerek általában olyan építéseket eredményeznek, amelyek mögött a mérnökök ki tudnak állni.
2008-ban a népszerű Netflix streaming szolgáltatás egy háromnapos adatbázis-hiba után úgy döntött, hogy áttér az Amazon Web Services (AWS) szolgáltatásra. A cél az volt, hogy elkerüljék az egyetlen hibapontokat, és csökkentsék a szolgáltatásuk bővítéséből adódó skálázhatósági problémákat.
A csapat káoszmajom-tesztelést hajtott végre, hogy tesztelhesse az AWS-infrastruktúrán lévő nyilvános példányokat. Az előnyök kettősek voltak:
- A folyamat feltárta a gyenge pontokat, amelyeket a Netflix mérnökei kijavíthattak.
- Ez inspirálta a csapatot arra, hogy automatizált helyreállítási mechanizmusokat építsenek a szolgáltatásukhoz.
A káoszmajom-tesztelés a Chaos Engineering része. A rendszer hibatűrésének tesztelésére szolgál, valamint arra, hogy a rendszer akkor is képes-e fenntartani a stabilitást és a teljesítményt, ha az egyes komponensek váratlanul meghibásodnak.
Bár kapcsolódik a majomteszteléshez, mégis egy különálló technika.
Majom tesztelés vs Gorilla tesztelés
Talán Ön is hallott már a Gorilla-tesztelés fogalmáról a szoftverfejlesztésben. Bár mindkét technika a főemlősök nevét viseli, számos hasonlóság és különbség van köztük. Vizsgáljuk meg, mi is az a Gorilla tesztelés, és hol lehet használni.
A Gorilla-tesztelés a majomtesztelés strukturáltabb változatának tekinthető. Ehhez képest a majomtesztelést gyakran a tesztelés korai szakaszában alkalmazzák, amikor még nem állnak rendelkezésre formális tesztesetek. A Gorilla-tesztelés viszont egy automatizált eszközt vagy szkriptet használ a szoftveralkalmazás véletlenszerű bemeneteinek létrehozására.
A Gorilla tesztelés gyors és sokkal hatékonyabb, mint a kézi majomtesztelés. Széles lefedettséget kínál, és kiválóan alkalmas arra, hogy megtaláljuk a megoldásra váró összeomlásokat. Azonban a legjobban jól meghatározott határokkal rendelkező alkalmazásokhoz vagy egy adott modul alapos teszteléséhez használható.
A majomtesztelésnek és a gorillatesztelésnek egyaránt megvan a helye a modern szoftverfejlesztés tesztelésében. Ezek megértése kulcsfontosságú a megfelelő megközelítés alkalmazásához a megfelelő helyen.
Mi a legjobb majomtesztelő eszköz?
A majomtesztelő szoftverek a modern fejlesztők eszköztárának nélkülözhetetlen részévé váltak. Van azonban néhány lehetőség. Tehát, melyik a legjobb majomtesztelő eszköz? Íme néhány, amiről tudnia kell.
1. ZAPTEST
A ZAPTEST egy hatékony
ingyenes és vállalati szoftvertesztelés automatizálására szolgáló eszköz
amely a teszt automatizálási technikák széles skáláját támogatja, beleértve a majomtesztelést is. A ZAPTEST néhány olyan funkciója, amely segít a majomtesztelésben:
- Kód nélküli szkriptfelvétel: A csapatok rögzíthetik a felhasználói interakciókat, és tesztkóddá alakíthatják azokat.
- Bemeneti generálás: A ZAPTEST megkönnyíti a véletlenszerű bemeneti generálást, ami a majomtesztelés alapvető eleme.
- Robusztus jelentéstétel: A ZAPTEST erőteljes jelentéstételi lehetőségeket kínál, amelyek segítenek dokumentálni a teszteket.
Természetesen ezek a funkciók csak a felszínét karcolják a ZAPTEST képességeit a tesztelési technikák széles skálájához, beleértve a majomteszteket is. A WebDriver integrációval, az AI funkciókkal és a ZAPTEST CoPilot-tal a csapatok egy helyen tapasztalhatják meg a szoftvertesztelés jövőjét.
Ráadásul a ZAPTEST Enterprise felhasználók egy teljes munkaidős, dedikált ZAP szakértőhöz és korlátlan számú licenchez jutnak hozzá, mindezt kiszámítható fix költséggel.
2. Appium
Az Appium egy nyílt forráskódú eszköz. Android és iOS rendszereken egyaránt használható. Lehetővé teszi a felhasználók számára a mobilalkalmazások interakcióinak automatizálását, és majomtesztelési képességekkel rendelkezik. A fejlesztők a felhasználói felület reakcióinak széles skáláját utánozhatják, például a szöveg beírását, a kattintást, a koppintást és a görgetést.
Míg az Appium nagyszerű eszköz a mobilfejlesztők számára, az asztali és webes teszteléshez nem rendelkezik megfelelő képességekkel.
3. Monkey Test It
Monkey Test It egy felhőalapú tesztelési platform, amely számos tesztelési képességgel rendelkezik, beleértve a majomtesztelést is. Bár a Monkey Test It nagyon felhasználóbarát, talán nem rendelkezik a rivális eszközök teljesítményével.
További hátránya, hogy jobban is nézhetne ki, és jobb dokumentációval is rendelkezhetne. Ráadásul egyes felhasználók a tesztek pontatlan eredményeire panaszkodtak. Ennek ellenére ez egy egyszerű program, alacsony árral, így nem várhatsz tőle nagy dolgokat.
4. MonkeyTestJS
A MonkeyTestJS egy nyílt forráskódú ausztrál JavaScript-alapú eszköz, amely kizárólag webes alkalmazásokhoz készült. Meglehetősen egyszerű, de több mint alkalmas a feladat elvégzésére. Az eszköz lehetővé teszi a fejlesztők számára, hogy szimulálják a felhasználó és a webes alkalmazás közötti interakciókat, például a kattintásokat, űrlapok elküldését, billentyűzetbevitelt és egyebeket.
Nyilvánvalóan az eszköz egyik hátránya, hogy csak webes alkalmazásokhoz érhető el. Érdemes azonban az eszköztáradban tartanod.
Melyik a legjobb dedikált Android majom teszteszköz?
Van néhány jó lehetőség azon fejlesztők számára, akik szeretnének egy kis káoszt vinni az Android-alkalmazások tesztelésébe. Nézzünk kettőt.
1. UI/Application Exerciser Monkey for Android
A UI/Application Exerciser Monkey for Android egy parancssori eszköz, amellyel a fejlesztők pszeudo-véletlen bemeneteket vagy eseményeket küldhetnek Android eszközöknek és emulációknak egyaránt. Ez az eszköz az Android Debug Bridge héjban fut.
2. MonkeyRunner az Android számára
A MonkeyRunner for Android egy népszerű Android majom teszteszköz. A szoftver egy API, amely lehetővé teszi a fejlesztők számára, hogy olyan programokat írjanak, amelyek egy Android-eszközt emulálnak vagy vezérelnek. Funkcionális és egységtesztelésre is jó választás.
Mindkét alkalmazás jó lehetőség. Ezek azonban meglehetősen technikai jellegűek, ami nem minden csapatnak felel meg.
Automatizálni kellene a majomtesztelést?
A manuális majomtesztelés egyik legnagyobb problémája, hogy nagyon időigényes. A másik dolog, amit meg kell jegyeznie, hogy néhány tesztelőnek nehéz valóban szimulálni a különböző interakciókat, amelyeket a felhasználók széles köre végezhet egy adott alkalmazással.
Tehát három azonnali hátránya ugrik be nekünk. A kézi majomtesztelés:
- Időigényes
- Drága
- Potenciálisan hiányzik a lefedettség
Egy automatizált majomtesztelő eszköz megoldja mindezeket a problémákat.
A ZAPTEST a megfelelő választás az Ön majomtesztelési igényeinek kielégítésére?
A majomtesztelés egy jó technika a tesztelési repertoárban, különösen, ha összetett alkalmazásokat tervez. A dedikált majomtesztelő szoftverek megvásárlása azonban drága.
ZAPTEST
egy rugalmas és hatékony
teljes körű teszt-automatizálási eszköz.
Rendkívül testreszabható, és lehetővé teszi mind a fejlesztők, mind a nem műszaki csapatok számára, hogy végtelen számú szoftvertesztelési technikát építsenek és tervezzenek, beleértve a majomtesztelést is.
A majomtesztek más típusú tesztekkel kiegészítve nagyszerű választásnak bizonyulnak. A ZAPTEST mindent egy fedél alatt kínál, kiegészítve a következőkkel kiváló minőségű RPA-eszközök.
Végső gondolatok
A majomtesztelő szoftverek a fejlesztők számára nem szokványos módot biztosítanak az alkalmazások tesztelésére. Ennek a technikának az az erőssége, hogy képes szimulálni azt a számtalan kiszámíthatatlan módot, ahogyan a felhasználó egy szoftverrel kapcsolatba léphet. Röviden, a majomtesztelés olyan lefedettséget biztosít, amelyet teszttervvel nehéz lenne elérni.