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 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 as the Monkey. Like a monkey uses a computer he will randomly perform any task on the system out of his understanding, same as the tester apply 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.
Properties of Monkey Testing:
The properties of Monkey Testing is as follow:
- Monkey Testing needs testers with very good domain and technical knowledge.
- It is so random that the reproduction of the defect is almost impossible.
- Its efficiency is not 100% i.e. sometimes result may not be correct.
Types of Monkey Testing:
There are 2 types of Monkey Testing:
- Smart Monkey Test:
In Smart Monkey Test, the tester has a brief idea about the application or system. Tester knows its own location, where it can go and where it has been. Tester also know its own capability and the system’s capability. In smart monkey tests, focus is to break the system and report bugs if they are found.
- Dumb Monkey Test:
In Dumb Monkey Test, the tester has no knowledge about the application or system. Tester don’t know if their input or behavior is valid or invalid. Tester also don’t know their or the system’s capabilities, nor 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.
Advantages of Monkey Testing:
- Tester have full exposure to implementing tests as per his understanding apart from previously stated scenarios, which may give various new types of bugs or defects existing in the system.
- Execution is easy in monkey testing as random data is executed.
- Monkey Testing can be performed without high skilled testers because it is a randomized testing.
- It requires less amount of expenditure to set up and execute test cases because here no need of environment set up and test csse generation.
Disadvantages of Monkey Testing:
- In monkey testing, tester performs tests randomly with random data reproducing defect is almost impossible.
- The accuracy in monkey testing is very less and it doesn’t give always the correct result.
- To make monkey testing more accurate, testers that are needed must have good technical knowledge of the domain.
- This testing can go longer as there is no predefined tests and can find less number of bugs which may cause loopholes in the system.