• info@helpingtesters.com
  • helpingtesters

What is Monkey Testing and How to Perform

October 25, 2017 Types of Testing
Monkey Testing, Monkey Testing Tool, Monkey Testing Android, Monkey Testing Example

Consider the situation where a monkey is given a computer with a keyboard. Now in this situation, we cannot expect the Monkey to use the system as a software professional. Monkey may hit the keyboard any number of times and may input any type of characters without knowing the valid input which should be given to the system application. Testers perform monkey testing without any plan. 

Similar action is performed by tester while doing monkey testing. Monkey testing gives power to manual testers to test the application in their own style, by providing abnormal inputs to the system which may be very large or may contain special characters and any such combinations which may make the application under test or the system crash, so as to make the application more robust and stable in future.

One more thing to be noted about monkey testing is that it is new kind of testing introduced in the market and do not have proper recognition in the industry regarding process or tools but maybe in coming the time it will become more important. We can use an automated process to do monkey testing in order to break the system. We can also use monkey testing concept in a stress testing to break the system by providing invalid inputs to the system. It is more beneficial after normal testing is over.

Why Monkey Testing is done

Now the question is that if we have defined processes and procedures for testing and we can do thorough testing using those processes and procedure, then why do we do testing. The reason is that we can’t expect all the users to use the application in a very defined and disciplined way. There may be some users who can use an application in an abnormal way like the monkey, leading to breakage of the system. So in order to make the application more robust and stable, we need to do testing and break the system while testing, so as to make it more stable before it goes to live environment.

Advantage of Monkey Testing

  • A probability of finding new kinds of a bug: Sometimes it happens while doing Monkey testing, that we are able to find the bug which is not found in planned and detailed testing. So sometimes it proves to be of great benefit.
  • Easy to do: It is always easy to execute monkey testing as there is no need to see plan and tester have freedom to test the application in their own style
  • Requirement of less skilled people:  It can be easily done by less skilled or less trained people
  • Monkey testing is less costly: No detailed planning and highly skilled professional are required which makes it less costly
  • Finds out of box errors: Monkey testing is capable of finding issues/ bugs which are not found in normal testing process while doing normal testing
  • Easy to establish setup: It is easy to establish setup for monkey testing and perform monkey testing.

Disadvantage of Monkey Testing

  • Time-consuming: Testing may go for longer time as there is no defined process and continues till the bug is found
  • Fewer bugs are found: Not large number of bug is found during testing and it is very less as compared to normal testing.
  • Difficult bug reproduction: It is very difficult to reproduce the bugs found during testing, as many times testers are unaware of the steps they followed by the time they found the bug.

Types of Monkey Testing

Monkey testing has been divided into three categories. The basis of forming free category based on the different implementation these are as below

  • Dumb Monkey: The term “Dumb” has been used here for the tester. Here the testers do not have any idea of the application to test, no idea of UI and functionalities, in the application. The complete application to test is new to them. But testers doing “Dumb testing” are also capable of finding environmental or hardware failures.
  • Smart Monkey: Smart testing is done to ensure that everything is working as per expectation, as testers doing smart testing have a brief idea of the application. In this type of monkey testing, Testers have knowledge of valid and invalid inputs and utilize this knowledge to break the system either manually or through performance or load testing.
  • Brilliant Monkey: Here the term “Brilliant” has been used for the tester. This type of testing is one Level advance from a smart testing. This type of testing not only ensure that functionality of the application is validated by giving valid input but also aims at finding bugs and testers are smart enough to file the bug if found during Brilliant monkey testing which ensures that testing is done as per the perspective of the end user.

Monkey Testing vs Gorilla Testing and Ad-hoc Testing

Sometimes testers are of the impression that monkey testing is almost similar to Gorilla testing and Ad-hoc testing. But it is not true. Monkey testing is quite different from Gorilla testing and Ad-hoc testing. The main difference between Monkey testing and Gorilla testing is that Monkey testing is performed an entire system and aims at breaking the system so as to make the system more stable while Gorilla testing is performed on limited features and checks whether all modules under test are working properly or not. In the same way, main difference between Monkey testing and Ad-hoc testing is that in monkey testing, testers do not have idea of the application to test and aims at breaking the system so as to make the system more stable in future while Ad-hoc, testers have knowledge of the application to test and aims at checking the functionalities of application and ensures that functionalities are working fine.

Conclusion

Overall we can say that testing should be used after normal testing is over. Many times it happens that the reproduction of bug is very difficult or almost impossible, as the tester is unable to reproduce the found bug. Since it is time-consuming and requires too much effort and so wastage of effort in the early stage is not recommended. Since it is capable of finding issues such as hardware or software failure, memory leaks or other faults which are not generally found in normal testing, it is recommended to be done after normal testing.

About the author

RamPrakash Singh author

Ram Prakash has worked in various domains of testing including security, performance, security testing and automation testing. Including several tools like QTP, selenium, LoadRunner,JMeter, VSTS Coded UI, soap UI, Burp Suite etc.

Leave a Reply

Your email address will not be published.