Issue 14: Use SOLID Principles To Become Better Automation Tester

🕒 5 MIN READ | Published on: June 28, 2021

This is the Software Testing Notes, a newsletter that goes out every Wednesday. I republish it here for sharing and referencing, but if you'd like to sign up you can do so right here:

👋 Hello and welcome to the 14th issue of Software Testing Notes! 🚀.

Pritesh from Software Testing Notes here. As always I have lot of good reads, tools and resources for you this week. Let me know which one is your favorite, just reply to this email!

Have a great week ahead.

📚 Top Reads

Simple truths of Software Testing and Automation by Gaurav Singh

Sometime ago Gaurav Singh shared a twitter thread , capturing some musings about Software testing and test automation.

And now he has written a detailed article on the each nugget. Some of my favorites among them are,

Paper Review: Non-Deterministic Concurrency Bugs by Oleksandr Romanov

Concurrency bugs are often associated with timing issues in single-machine multi-threaded systems. But as systems are getting more complex and distributed, the number of distributed-concurrency problems is increasing.

Oleksandr Romanov shares his insights on a paper about the nature of the distributed concurrency bugs.

Context eats Process for Breakfast by Patrick Prill

Patrick is back again with another masterpiece. The quote “Context is king” holds true in almost every situation and testing is no different. Before reading this, go and pour yourself a cup of coffee ☕. you’ll know why as you read 👀.

How to strengthen the bond with the developers by Rafael Bandeira

Having good communication between teams is a paramount to any product success. Rafael Bandeira has written a very good piece on a technique to improve teamwork between Devs and QAs, enhancing software quality in the process.

Gaurav Singh has also shared the few key points like Pairing with devs more often in above shared link.

Even programming languages have bugs! by Balaji Santhanagopalan

Bugs are not jut in your product. Programming language which has been used to write program has bugs too and it affects everyone including developers and testers alike. Balaji Santhanagopalan explains it neatly in this article.

⚙️ Automation

Use SOLID Principles To Become Better Automation Tester by Gustavo Daniel Moreira

SOLID principles are the first five object-oriented design principles by Robert C. Martin, popularly known as Uncle Bob.

This article explores each individual principle and how these SOLID principles can make us better at developing automation tests.

  1. Single Responsibility Principle (SRP): A class should have one, and only one, reason to change
  2. Open Closed Principle (OCP): Software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification
  3. Liskov Substitution Principle (LSP): Subtypes must be substitutable for their base types
  4. Interface Segregation Principle (ISP): Make fine grained interfaces that are client specific
  5. Dependency Inversion Principle (DIP): Depend on abstractions, not on concretions

Selenium Docker Tutorial by Dilpreet Johal

Learn how to use the Selenium Standalone Docker images to execute tests inside Docker containers and run them on both Firefox and Chrome. Dilpreet Johal also has a video session if you are a hands on kind of person. 😃

Yes! You Can Avoid Automation Mistakes by Ravind Nayar

Automation tests will add great value to your project when done right and can become an disaster if not done properly. Here Ravind Nayar suggests few points to remember when designing the automation tests for your project.

  • Poorly Defined Scope
  • Not involving Exploratory Testing with Automation
  • Not leveraging the Full Value of Automated Tests
  • Attempt to Replace Human Testing
  • Inappropriate Tool Selection
  • Not Paying Attention to Return on Investment (ROI)

Legacy test automation code 😨 …. what should QAs do? by Karishma S.

So you have a legacy systems with some legacy automation frameworks. How do you deal with it ? keep it as it is ? replace it ? what ? Karishma S. provides some insights on the same in this article.

Protractor is dead, long live Cypress! – Part 1 by Rainer Hahnekamp

I had no idea that Angular announced the deprecation of their E2E testing tool protractor.

In this article, Rainer Hahnekamp provides a short overview over the differences between the various E2E frameworks, and argues why you should use Cypress and – in the second part – help you with the first steps.

💨 Performance

Memory Management Part 2: Reference Cycles, Closures and Debugging by Yahya Saddiq

Memory Profiling is a very critical part of your performance testing. Yahya Saddiq has written a great piece on memory management. In this article, you’ll learn about:

  • Breaking reference cycle in classes and closures
  • Escaping & non-escaping closures
  • Delayed deallocation
  • Xcode memory debugger
  • Locating the leak 🕵🏽‍♂️

I highly recommend reading the first part.

Load Testing with Gatling II by Constance Armitage

Constance has written a very comprehensive and beautifully illustrated article on designing load tests with Gatling.

you can read first part here.

Commercial and Open Source JMeter Plugins by Software Testing Magazine

Collection of few Commercial and Open Source JMeter Plugins.

🛡️ Security

What is a Dictionary Attack? How the Attack works and How to Prevent the Dictionary Attack by Gurpinder Chahal via Cyber Security News

Learn with particle example about Dictionary Attack Using Burp Suite Tool and How to protect your system against dictionary attack.

🛠️ Resources & Tools


A proposed standard which allows websites to define security policies.

Nmap Security Scanner

Free and open source utility for network discovery and security auditing

Load Testing Center (codename ltc)

Online web application-dashboard for report analyzing, running and online monitoring of load tests started with JMeter

📝 List of Software Testers

It's hard to find good articles, podcasts on Software Testing. Even hard to find people who create them. Are you also looking for amazing software testers to follow or read their content ? check out this page dedicated to software testers.

Show me all Software Testers

Do you also create content around Software Testing ? Submit yours here and I will add it to the list.

And Finally,

How management think automated tests are made…

👋 Reach Out

Let me know what you thought about this newsletter, maybe you have some ideas you'd like to share.

You can follow me personally @priteshusdadiya. I give insights into Testing, development & how I'm growing Software Testing Notes.

You can follow @thetestingkit to keep up-to-date on the community & fresh links to read.

Happy Reading. 🔥

Did You Enjoy This?

Then consider joining the 1,265 other people getting the Software Testing Notes newsletter. It's a collection of fascinating finds from my week, about wide range of topics surrounding software testing and whatever else catches my interest.

Subscribe to Newsletter

Get hand-picked round-up of the best resources and articles on Software Testing in your inbox. Every Week — for free!

No spam, ever. We'll never share your email address and you can opt out at any time.