Кіріспе

Пайдаланушы қолданбаны немесе жүйені кездейсоқ деректер енгізу арқылы сынап көретін техника. Бағдарламалық қамтамасыз етуді сынау әдістемесі. Бағдарламалық қамтамасыз етуді сынауда, "маймыл сынағы" – пайдаланушы қолданбаны немесе жүйені кездейсоқ деректермен сынап, оның әрекетін бағалайтын немесе қолданбаның немесе жүйенің істен шығуына себеп болатынын анықтайтын әдіс. Маймыл сынағы көбінесе кездейсоқ, автоматтандырылған модульдік тесттер түрінде жүзеге асырылады. "Маймыл" атауының шығу тегі нақты белгісіз, бірақ кейбір мамандар бұл атау шексіз маймыл теоремасымен байланысты деп санайды. Бұл теорема бойынша, шексіз уақыт бойы пернетақтада кездейсоқ пернелерді басатын маймыл, әлдебір белгілі мәтінді, мысалы, Уильям Шекспирдің барлық туындыларын теруі мүмкін. Тағы бір болжам бойынша, бұл атау 1983 жылға дейін Стив Каппс жасаған классикалық Mac OS жүйесіндегі "The Monkey" атты қолданбадан алынған. Ол Mac бағдарламаларына кездейсоқ оқиғаларды жіберу үшін журналдық тіркемелерді пайдаланды және MacPaint бағдарламасындағы қателерді анықтауға көмектесті. Маймыл сынағы Android Studio-ға да стресс-тестілеудің стандартты құралдарының бір бөлігі ретінде қосылған.

Маймылдарды сынап-тексеру түрлері

Маймылдарды сынақтан өткізуді «ақылды маймыл» сынағы немесе «ақымақ маймыл» сынағы деп жіктеуге болады.

Артықшылықтар

Маймыл сынағы – кейбір күтпеген қателерді анықтаудың тиімді тәсілі. Сынақтан өткізілетін сценарийлер көбінесе спонтанды болғандықтан, маймыл сынағы жүктеме және стресс-тестілеуді жүргізудің де жақсы жолы болуы мүмкін. Маймыл сынағының ішкі кездейсоқтығы бүкіл жүйені құлатуға әкелетін маңызды қателерді табуға да мүмкіндік береді. Маймыл сынағын орнату оңай, демек, кез келген қосымшаға қолайлы. Егер нақты күй моделімен дұрыс орнатылса, «ақылды маймылдар» түрлі ақауларды табуда өте тиімді болуы мүмкін.

Кемшіліктер

Маймыл тәсілімен сынақ жүргізудің кездейсоқтығы жиі табылған қателерді қайта табуды қиын немесе мүмкін емес етеді. Маймыл тәсілімен сынақ кезінде табылған күтпеген қателерді талдау да қиын және көп уақытты талап етеді. Кейбір жүйелерде маймыл тәсілімен сынақ жүргізу қателерді табу үшін ұзаққа созылуы мүмкін. "Ақылды маймыл" үшін мүмкіндік берілген күй моделіне байланысты, ал жақсы күй моделін жасау қымбатқа түсуі мүмкін. Екі термин көбінесе бірге қолданылса да, кейбіреулер маймыл тәсілімен сынақ – кездейсоқ әрекеттерге, ал fuzz testing – кездейсоқ деректерді енгізуге қатысты деп санайды, осылайша оларды ерекшелендіреді. Маймыл тәсілімен сынақ, ad hoc сынақтан да өзгеше, себебі ad hoc сынақ жоспарлау мен құжаттамасыз жүргізіледі және оның мақсаты – жүйені кездейсоқ кіші бөліктерге бөліп, олардың жұмыс істеуін тексеру, ал маймыл тәсілімен сынақта мұндай болмайды.