Skip to content

A Real-Life Showdown between Monkey and Gorilla Testing

Testers rely on various methodologies to find bugs and ensure smooth functionality. Among these are Monkey Testing and its lesser known counterpart Gorilla Testing. Let's explore these two methodologies and how they are applied in real life scenarios. Additionally, we'll compare the pros and cons of these wild testing beasts, and learn how to perform Monkey Testing using digital "gremlins." 

 

gorilla_testing_vs_monkey_testing

 

Monkey Testing: The Wild and Playful Approach

Monkey Testing represents the impulsive and adventurous approach. Like a playful monkey exploring its surroundings, testers apply random and arbitrary inputs to a system or application. There are no predefined test cases, making the process unpredictable and exciting.

Real-Life Case Study - A Curious Customer Finds the Flaw

A captivating real-life case study involves a popular mobile app undergoing Monkey Testing before its highly anticipated launch. A curious customer playfully tapped random areas on the app's interface, unaware of the potential consequences. To everyone's surprise, the customer unexpectedly revealed a hidden "Super User" access, granting unauthorized privileges that could lead to severe security breaches. The Monkey Testing session swiftly detected this critical vulnerability, allowing the development team to address and fix the issue promptly. This proactive approach ensured the app's safety and protected it from potential threats in the wild world of users.

Pros of Monkey Testing:

  1. Unearth Hidden Vulnerabilities: The unpredictability of Monkey Testing proves highly effective in discovering hidden bugs and vulnerabilities that may go unnoticed in structured testing. It acts as a safety net, catching potential disasters before they occur.

  2. Diverse Perspectives: Involving various stakeholders, including testers, developers, and even end-users, adds a unique perspective to the testing process. Different roles bring different insights, ensuring a more comprehensive evaluation of the software's performance.

  3. Time-Efficient and Agile: Monkey Testing does not require elaborate test case preparations, making it a quick and agile method to check for basic functionality. It is particularly useful in the early stages of testing, allowing testers to cover a wide range of scenarios swiftly.

Cons of Monkey Testing:

  1. Lack of Direction and Reproducibility: The lack of predefined test cases might lead to randomness, making it challenging to reproduce bugs and identify their root causes. This limitation could hinder the analysis and resolution process.

  2. Limited Focus on Complex Scenarios: While Monkey Testing is excellent for uncovering common vulnerabilities and issues, it might not be as effective in testing complex and specific functionalities of a software application.

 

Gorilla Testing: The Methodical and Meticulous Beast

In contrast to Monkey Testing, Gorilla Testing represents the methodical and meticulous approach. Like a vigilant gorilla scrutinizing its surroundings, testers conduct an in-depth evaluation of each component of a software application. This type of testing ensures that no bugs remain hidden, making it a reliable methodology for robust software development.

Real-Life Case Study - The Bug Hunt in Financial Software:

A real-life scenario showcases the effectiveness of Gorilla Testing in a financial software application. Test engineers embarked on a Gorilla Testing expedition to ensure utmost accuracy. During the testing process, they meticulously examined every calculation module, considering the crucial nature of financial transactions. Their relentless efforts bore fruit when they discovered a subtle flaw in interest calculations that occasionally produced incorrect results. This astute discovery allowed the development team to address and fix the flaw promptly, ensuring precise financial reports and preventing potential financial losses for users.

Pros of Gorilla Testing:

  1. Thorough and Reliable: Gorilla Testing leaves no stone unturned, guaranteeing that every component is rigorously tested for bugs and vulnerabilities. Its systematic nature ensures a comprehensive evaluation, making it ideal for complex and critical software applications.

  2. Structured and Systematic: Gorilla Testing employs predefined test cases, making it easier to reproduce bugs and conduct in-depth analysis for root cause identification. This structured approach facilitates organized testing and enhances collaboration among testers and developers.

  3. Ideal for Complex Systems: The methodical nature of Gorilla Testing makes it an excellent choice for testing complex and intricate software applications. It helps ensure that all functionalities are examined thoroughly, leaving no room for error.

Cons of Gorilla Testing:

  1. Time and Resource-Intensive: Gorilla Testing requires significant planning and execution time, which may not be practical for all projects, especially those with tight timelines.

  2. Limited Exploration of Unusual Scenarios: Due to its structured nature, Gorilla Testing may overlook unusual scenarios that might arise during real-world usage. Exploratory testing or a combination of methodologies may be necessary to cover these scenarios effectively.

Teal Blue And Beige Simple Freelancers vs Office Job a Comparison Infographic

 

How to Perform Monkey Testing Manually Using Gremlins:

  1. Prepare Your Mogwai Configuration:

    • Visit the URL: https://marmelab.com/gremlins.js/.

    • On this webpage, you will find various "mogwai" configurations representing different types of mischievous actions that > simulate user interactions.

  2. Select Your Desired Mogwai Configuration: Choose the mogwai configuration that best suits your testing needs. You can select multiple mogwai configurations if you wish to perform a comprehensive Monkey Testing session.

  3. Get the Script: After selecting your preferred mogwai configurations, the > website will generate a JavaScript script based on your choices.

  4. Copy the JavaScript Code: Copy the entire JavaScript code from the generated script. This > code includes all the selected mogwai configurations that will > unleash controlled chaos on your website.

  5. Open Your Website Link: Open the link of the website or application that you want to > test. Ensure that you are accessing the actual live website > and not a local or test version. 

  6. Access the Browser Console:

    • To access the browser console, right-click anywhere on your > browser window.

    • From the context menu, click on "Inspect" or "Inspect > Element" to open the developer

    • In the developer tools window, navigate to the "Console" tab. 

  7. Inject the JavaScript Code: 

    • In the browser console, paste the copied JavaScript code that > you obtained from Gremlins.js.
    • Press the "Enter" key to execute the code.
  8. Observe the Chaos Unfold:
    • As soon as the JavaScript code is executed, the selected mogwai configurations will be activated on your website.
    • Observe how your website behaves under the influence of these simulated user interactions.
    • Pay close attention to any unexpected behavior, crashes, or performance issues that might be triggered during the Monkey Testing session

 

Conclusion: Striking the Perfect Balance

Monkey Testing and Gorilla Testing play crucial roles in ensuring the quality, resilience, and robustness of software applications. Monkey Testing's unpredictability is an excellent ally in discovering elusive vulnerabilities and exploring a wide range of scenarios. On the other hand, Gorilla Testing's systematic and methodical approach ensures thorough evaluation, making it ideal for complex and mission-critical applications.

Software development is not about choosing one methodology over the other; it's about striking the perfect balance to create software that thrives in the unpredictable jungle of real-world usage. 

Happy Testing!

 

Naman Garg

Written by Naman Garg

Manual and Automation Tester | Quality Promoter | Technology Leader | Lifelong Learner | Software QA Engineer | Product Manager | Scalable Product Builder | Robust Solution Creator | Business Goal Achiever | Social Volunteer