Open In App

Monkey Software Testing

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. Monkey testing is usually implemented as random and automated unit testing. Monkey testing is named because of the Infinite Monkey Theorem. 

Infinite Monkey Theorem

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. In Monkey Testing, the tester is considered the Monkey. Like a monkey who uses a computer, he will randomly perform any task on the system out of his understanding, the same as the tester applying random test cases on the system under test to find defects without creating any test cases. Monkey Testing is also part of the standard testing tools for stress testing in Android Studio.



Features of Monkey Testing

The features of Monkey Testing are as follows:

Importance of Monkey Testing

Where can we use Monkey Testing?

Monkey testing can be used in the following cases:



Types of Monkey Testing

There are 3 types of Monkey Testing:

  1. Dumb Monkey Test: In Dumb Monkey Test, the tester has no knowledge about the application or system. Testers don’t know if their input or behavior is valid or invalid. Tester also doesn’t know their or the system’s capabilities or the flow of the application. Dumb Monkey Test can find fewer bugs than smart monkeys, but can also find important bugs that are hard to catch by smart monkey tests.
  2. Smart Monkey Test: In Smart Monkey Test, the tester has a brief idea about the application or system. The tester knows its own location, where it can go, and where it has been. Tester also knows their own capability and the system’s capability. In smart monkey tests, the focus is to break the system and report bugs if they are found.
  3. Brilliant Monkey Test: In the brilliant monkey test, the tester who has the domain knowledge of the domain is assigned to test the application by the Manager. The test engineer knows the pattern of the product usage and can perform testing from the user’s viewpoint.

Monkey Testing vs. Gorilla Testing

Below are the differences between monkey testing and gorilla testing:

Parameters Monkey Testing  Gorilla Testing
Definition Monkey testing is performed randomly with no predefined test cases. Gorilla testing is neither predefined nor random.
Usage It is mainly used in system testing. It is mainly used in unit testing.
Types of Testing Monkey testing has three types, Dumb monkey testing, Smart monkey testing, and Brilliant monkey testing. Gorilla testing is not divided into different types of testing.
Purpose The purpose of monkey testing is to test whether the system crashed or not.  The purpose of gorilla testing is to verify whether the component or module is working appropriately or not.
Who can perform it? End-user, test engineer, developer. Test engineer and developers either together or separately.
Implementation It can be implemented on the whole system.  It can be implemented on a few selective components of the system.

 
Monkey Testing vs. Adhoc Testing

Below are the differences between monkey testing and ad-hoc testing:

Parameters Monkey Testing Adhoc Testing
Purpose The purpose of monkey testing is to execute random test cases with random or invalid data to check whether the system crashes or not. The purpose of Adhoc testing is to break the system by randomly using the application.
Who can perform it? Anyone with or without the knowledge of the system can perform monkey testing. Adhoc testing is performed by a group of testers who have good knowledge of the application.
Nature of testing In monkey testing, there is no specific path for testing. The testing is done randomly using random data. In ad-hoc testing, the tester has good knowledge of the application so they test whatever they think is required as per their knowledge of the application.
Reproducing defect In monkey testing, tests are performed randomly with random data thus reproducing defects is impossible. In Adhoc testing, resolving errors based on identified issues is difficult as there are no written test cases.

Smart Monkey Testing vs Dumb Monkey Testing

Below are the differences between Smart monkey testing and Dumb monkey testing:

Parameters Smart Monkey Testing Dumb Monkey Testing
Knowledge about application The tester has a brief idea about the application. Tester has no knowledge of the application.
Understanding system capability The tester knows their and the system’s capability. The tester is not aware of either their or the system’s capability.
Bug detection The focus here is to break and system and report the bugs if they are found. Dumb Monkey Test can find fewer bugs than smart monkeys, but can also find important bugs that are hard to catch by smart monkey tests.
The idea about workflow of the application In smart monkey testing, the tester has an idea about the workflow of the application. The tester knows its own location, where it can go, and where it has been. In dumb monkey testing, the tester does not have an idea about the workflow of the application. Testers don’t know if their input or behavior is valid or invalid.

Advantages of Monkey Testing

Disadvantages of Monkey Testing

Conclusion

A useful testing method with its own advantages and disadvantages is monkey testing. By improving total testing coverage, this testing can help create software that is more dependable and robust. In the end, its use needs to be customized to the unique traits and objectives of the software under examination.


Article Tags :