Monkey testing is a software testing technique where random inputs are applied to the system with the sole purpose of crashing/breaking the system. There is no pre-defined testing methodology or carefully designed test cases.
The idea behind monkey testing is that there may be reckless users who could provide large or inconsistent inputs, leading to a system crash. Therefore, the tester views the system from the user’s point of view, applies all possible inputs they can think of, and find the bugs that could break the system. Monkey testing is mainly used when there is a lack of time and resources.
Monkey testing can be classified into the following types:
Dumb monkey: Tester has no idea about the internal functioning of the system. Here, the tester cannot provide any guarantees about the accuracy of the test cases.
Smart monkey: Tester has a deep knowledge of the internal functioning of the system. The tester verifies both valid and invalid input to the system.
Brilliant monkey: Tester performs the testing from the user’s point of view and is able to provide probability occurrences of bugs.