logo logo

The Role of Occam’s Razor in Software Testing

main post image

The age of digital disruption demands both leaders and individuals to make faster decisions. Testers are often considered as a bottleneck for accelerated releases in Agile and DevOps despite the advancements in test automation. Speed in decision-making is now an expectation from each one of us without compromising the quality of our decision-making. As a software testing professional, you make hundreds of decisions every day. Your decisions not only determine your success, but also that of your team. Some decisions may even have an impact on the success of the overall organization 🤯

Life would be exhaustive if you had to deliberate about every decision you make. Our brains are only capable of processing a certain amount of information and complexity. As a result of these limitations, our brains naturally avoid overload of information by preferring solutions that require minimal mental effort. We consciously or unconsciously rely on mental shortcuts to reduce decision making time and arrive at a quick solution.

In this article, we will discuss how testers can make faster and effective decisions by leveraging a popular philosophical razor called Occam’s Razor.

What is a Philosophical Razor?

Occum's razor

A philosophical razor is a mental shortcut or a rule of thumb that enables one to eliminate unlikely explanations for a problem. Philosophical razors are great critical thinking tools. These mental models assist us to cut out conclusions that have a lower probability of being correct so that we can better understand the problem at hand.

Remember that philosophical razors are fallible, they are mental models that allow you to arrive at a satisfactory solution quickly and with minimal effort.

In this article, we will discuss the application of Occam’s razor in software testing, test automation, and other software development practices.

Occam’s Razor

The problem-solving principle of Occam’s razor is credited to a 14th-century philosopher called William of Ockham. Occam’s razor states that – 

Occam's Razor

“Entities should not be multiplied without necessity”

In simpler terms

“The simplest explanation is often the correct one”  

When confronted with multiple competing hypotheses for the same problem, choose the one which makes fewer assumptions. This rule of thumb can be applied in a wide range of situations where you want to make rapid decisions with minimal information in hand. Occam’s razor prefers simplicity over complexity until proven otherwise. Detectives, doctors, and even scientists have used this mental model in their respective fields to find solutions by cutting unnecessary assumptions 🕵️‍♂️

Let’s assume that you are testing an application that helps users to create email campaigns. You find a bug when you are testing your application. 

Testing your application

The 3rd party email editor (library) that you use in your application stopped loading suddenly. There were no releases made from your team in the last 15 days. As a technical tester, you are proactive and want to investigate why this issue occurred before you report it. Which is a more likely explanation of why this issue was introduced? 🤔

  • Explanation 1 – Someone might have hacked into your application and induced this bug. 
  • Explanation 2 – This issue might have occurred due to a sudden spike in traffic. We should conduct a performance test and try to replicate this issue. 
  • Explanation 3 – The 3rd party email editor released an update last night (You just checked their release notes) which might have caused the issue.

Famous detective Sherlock Holmes

WHEN YOU HAVE ELIMINATED THE IMPOSSIBLE, WHATEVER REMAINS, HOWEVER IMPROBABLE, MUST BE THE TRUTH. 

– SIR ARTHUR CONAN DOYLE

Using Occam's razor you can easily cut out the first and second explanation and start investigating further with Explanation #3 - as it is the simplest, makes fewer assumptions, and is based on evidence. 

Explanations 1 and 2 could also be possible but it makes sense to debug starting with Explanation 3. Always start with the simplest explanation, keep eliminating until you reach the root cause of the problem. This will save both your time and efforts. Many of us might trace the root cause of the problem using this principle even without realizing it. But deliberately applying this rule of thumb will make you a better tester.

Note:  If an explanation is simple it does not always make it the best. The simplest explanation should be based on all the available evidence

The KISS principle (Keep It Simple, Stupid) is a great example of Occam’s razor in action.

KISS (Keep it simple, stupid)

  • Keep your test automation scripts as simple as possible. Ensure that your code is well structured and readable. Avoid complexity and over-engineering. This will make life easier for yourself and your colleagues. Remember that simplicity is not easy, it requires thorough planning and continuous improvements.
  • When choosing test automation technologies and tools choose the ones that are simpler. Simpler tools allow you to create and maintain test suites with a minimal learning curve ✅

TestProject Easy Test Automation

  • Increased complexity will lead to increased maintenance and bugs. Community-powered platforms like TestProject will enable you to achieve easy test automation without hassles.

You can apply this principle to pretty much anything and everything:

  • Project Management – Do not overcomplicate things, have just enough processes. Empower teams to choose processes that are relevant and truly useful for them. Too many processes can cripple your team. Inspect on a regular basis and eliminate the processes that do not add value to your project. Agile and lean frameworks are designed to foster simplicity and innovation.
  • Product Management – Minimize feature creep, adding excessive features may not always add value to your customers, but may rather make your product too complex and frustrating to use.

Cluttered application

  • UI Design – Focus on creating simple User Interfaces. Simplicity is subjective. Understand what simplicity means to your customers. Experiment with A/B testing, Multivariate testing to understand what really works for your end-users.
  • API Documentation – Instead of bombarding users with too much information, create simple API docs that simple and easy to learn. Developers will use your API service only when your documentation is top notch and simple to get started with.
  • Communication – Develop simplicity in your Communication. It is crucial to communicate the right things to the right people. For example: when communicating with business representatives, talk from a business standpoint. Do not go in-depth about the technical details. Understand your audience and speak their language.

Conclusion

Achieving simplicity is hard, but ultimately will lead you to success. Always opt for the simplest possible solution, architecture, design, process, technology, frameworks, tools, etc. Keep Occam’s Razor in mind next time you’re designing automated tests or finding the root cause of a bug. Occam’s razor is a vital tool that every tester should use to cut unsupported assumptions and achieve both quality and speed in their decision-making 🚀

IMAGE CREDITS

Avatar

About the author

Prashant Hedge

Prashant Hegde is a passionate Tester. He has ably led test teams to success in many organizations and helped them improve their application quality process. Prashant currently heads the QA Team at MoEngage. MoEngage is the leader in the mobile engagement market, with presence across Asia, Europe, and the US.

Prashant is an Agile enthusiast and enjoys sharing his experiences by blogging and participating in agile communities around the world. Prashant is a Certified Scrum Master and a frequent speaker at industry conferences. Prashant has helped thousands of ISTQB aspirants to clear their certifications with his free app ISTQB test mentor.

LinkedIn – https://www.linkedin.com/in/prazhegde/

Website – https://www.prashanthegde.biz

Blog – https://guide2mobiletesting.blogspot.com/

Join TestProject Community

Get full access to the world's first cloud-based, open source friendly testing community. Enjoy TestProject's end-to-end test automation Platform, Forum, Blog and Docs - All for FREE.

Join Us Now  

Leave a Reply

popup image

Complete E2E Automation Solution!

Join over 80K users (from Wix, IBM, Payoneer and many more!) using the world's first FREE cloud-based test automation platform, supported by the #1 testing community.
Sign Up Now right arrow
FacebookLinkedInTwitterEmail