author image by Falc | 0 Comments | September 22, 2021

To make monkey testing more accurate, testers that are needed must have good technical knowledge of the domain. Monkey Testing is also included in Android Studio as part of the standard testing tools for stress testing. Monkey testing is an automated test, which is done without any specification in mind. The main purpose of the test is to find out errors and bugs in the software to ensure the complete development of the product. Testers have full exposure to implementing tests as per their understanding apart from previously stated scenarios, which may give various new types of bugs or defects existing in the system. It can be used for testing in cases to imitate the activities of monkeys who are inserting random data.

definition of monkey testing

It describes that a monkey hitting keys at random on a typewriter keyboard for a random amount of time will almost type a given text. Monkey Testing is also part of the standard testing tools for stress testing in Android Studio. Monkey testing is an effective way to identify some out-of-the-box errors. Since the scenarios tested are usually ad-hoc, monkey testing can also be a good way to perform load and stress testing.


The test input values provided in monkey testing are so random that it becomes very difficult to reproduce the bugs and errors. In case of a time crunch, if all the other test have been performed, the tester can opt for monkey testing that will allow quick fixing of the bugs. Monkey testing can be categorized into smart monkey tests or dumb monkey tests. Some others believe that the name comes from the classic Mac OS application “The Monkey” developed by Steve Capps prior to 1983. It used journaling hooks to feed random events into Mac programs, and was used to test for bugs in MacPaint.

  • It is very time-consuming work that requires a lot of effort, therefore we cannot recommend Monkey testing in the initial stages of the testing.
  • For smart monkeys, the ability highly depends on the state model provided, and developing a good state model can be expensive.
  • The setup of monkey testing is easy, therefore good for any application.
  • The tester can easily install and execute an android program, send it data files and store them in the computer using the Python program.
  • The accuracy of monkey testing is very less and it doesn’t give always the correct result.
  • Monkey Testing is also included in Android Studio as part of the standard testing tools for stress testing.

The impressive part is that this type of test gives the tester quicker results than that of its counterpart. The dumb monkey does not know the flow of work or the type of data being fed to the application or the system. In this process of testing the tests are chosen independently from the test domain and are performed depending upon the tester’s requirement. The term monkey testing was first seen in the book ‘The Art of Software Testing’ written by Glenford J. Myers in 1979. In this testing, there is no predefined strategy or algorithm and hence the testing works on tester’s gut and mood. This testing can go longer as there are no predefined tests and can find less number of bugs which may cause loopholes in the system.

For Android- MonkeyRunner Tool:

So Macwrite and MacPaint used buffers those were quite larger than the size of the screen of the desktop. So it became essential to create some testing method that acquired lesser memory. Monkey testing is a crucial testing method that is done to authenticate the functionality of the product application. Monkey testing is done to ensure that the specifications given by the client are properly addressed in the software.

definition of monkey testing

Gorilla Testing is a Software testing technique wherein a module of the program is repeatedly tested to ensure that it is working correctly and there is no bug in that module. The end user who uses any application or software is not expected to have the functional knowledge of the same. So by this testing, we can ensure the fulfillment of the needs of the user and decrease the probability of the awful breakdown of the software and system. Smart monkeys can help find unique bugs if set up with proper and accurate state model, quickly. A tester or a team of testers is assigned for the task, ensuring that they have complete knowledge about this software domain and its functionalities.

Similar techniques and distinctions

They do not have any clue if the provided inputs are valid or invalid. It is the simplest testing which does not require the tester to know about the characteristics or qualities of the software or of the test flow. It also finds out whether the system or application will work properly under such conditions or crash. After the program was completely initiated, there was a lesser amount of memory left than required to perform the test.

definition of monkey testing

The smart monkey can be efficient when provided with the state model but it also becomes expensive in that case. It may run for a long time before the commencement of the test, monkey testing which reproduces unnecessary bugs which may again be time consuming and irrelevant. The occurrence of unexpected bugs makes it more difficult to analyze and resolve the bugs.

Infinite Monkey Theorem

The accuracy of monkey testing is very less and it doesn’t give always the correct result. It can be used to test an application for OSWAP issues where pre-compiled and random data can be used. So we can say that one could opt for this particular kind of test if they lack in time and have performed other required test. Also one needs to ensure that the application is highly stable and can be reproduced as it focuses on the crash of the entire system. This application is quite different from the MonkeyRunner tool, which controls the android device from exterior to the android code while U/I Application exerciser monkey runs inside the emulator. In an unintended way, it also allows the domain tester to judge the response of the program.

definition of monkey testing

End-user, test engineer, developer.Test engineer and developers either together or separately.ImplementationIt can be implemented on the whole system.It can be implemented on a few selective components of the system. The purpose of Monkey testing is to find the bugs and errors in the software application using experimental techniques. In software testing, monkey testing is a technique where the user tests the application or system by providing random inputs and checking the behavior, or seeing whether the application or system will crash.

What is Monkey & Gorilla Testing? Examples, Difference

Monkey testing is a software testing technique in which the testing is performed on the system under test randomly. The Input data that is used to test also generated randomly and keyed into the system. The other difference can be seen in gorilla testing and monkey testing. Here the former is performed on limited features and modules to analyze their functionalities, whereas the latter focuses on breaking down of a complete system to identify the bugs. Usually, the software testing that is performed is ad-hoc but monkey testing can also help the tester to unwind the burden under the stress testing condition. Also if the tester does not have much knowledge about the application, this testing can rescue.

Monkey testing is usually implemented as random, automated unit tests. Monkey testing is a type of software testing in which the tester tests the application or software by providing some random inputs and checking the behavior of the application or the software. It is also observed by seeing whether the application or software crashes on a given input or not.


So Steve Capps used Monkey program to enter random inputs to Macwrite and Macpaint. The Monkey functioned parallel to the other programs, data entry running in the system. This testing is done when the tester is the time deficit in order to write and execute the function. Monkey Testing needs testers with very good domain and technical knowledge. Monkey Testing is the comparatively new testing type to perform testing. This testing is adopted to complete the testing, in particular if there is a resource/time crunch.

Leave a Reply

Your email address will not be published. Required fields are marked *

Hit enter to search or ESC to close