![]() |
VOOZH | about |
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.
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.
The features of Monkey Testing are as follows:
Monkey testing can be used in the following cases:
There are 3 types of Monkey 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. |
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. |
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. |
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.