Ok. Fine. Maybe I went too far. Let’s start again.

Why I love Software Testing so much

Better.

It happened to me sometimes, that after a meeting or a conversation, someone tells me: “it’s easy to see that you love Testing”. It’s a great compliment. And it’s true. I love Testing.

Choose a job you love, and you will never have to work a day in your life.
— Confucius
It is highly impossible for you to be successful at what you don’t love. Do what you love and love what you do.”
— Israelmore Ayivor

On the one hand, I think everyone should try to love what he does. Sometimes in life, we can choose what to work on. Sometimes we cannot. But I truly believe we can choose to love it or not. Whatever it is.

On the other, I think there are some great objective reasons which make this profession really awesome.

#1 It’s a continuous challenge

Every new project, every new release, every new feature, every new big or small change is a challenge.

New projects mean new business domains to know, new technologies to learn, new people to meet. New risks to identify, new plans to make, new strategies to define. Reading, asking, talking. Thinking, writing, discussing. Sometimes, drawing! Tons of fun!

Every change in the software means to analyse the impact to figure out what we need to test. Then, we have to think how and when, we have to plan and execute, and of course, to report.

Time pressure, business deadlines, uncertainty, complexity. Impossible not to enjoy like a child every single day.

#2 You’re continuously learning

In Testing, we are not as tied to a particular set of technologies, frameworks and programming languages as other software professionals. We can switch between them and use our skills and knowledge to test quite different things. You can functionally test a web application or a Rest API, independently of the programming language used to build it. Same applies to non-functional testing types as performance testing.

In the last 10 years, I worked on testing web frontends, desktop and mobile applications, SOAP services, Rest APIs, AWS services, several database engines, operating systems, devices, web browsers… I have developed automated tests in Python, PHP, C#, Java, JavaScript. Implementing CI/CD and deploying test environments with cmd, bash, PowerShell, Microsoft TFS, Bamboo, Jenkins, Docker, Kubernetes, Terraform and counting…

I have helped to build server/client programs, web portals, internal and consumer faced applications. Critical systems. Superfluous ones. Software to buy train tickets, to manage virus detection, to capture criminals, to provide information to citizens, to manage finances, inventories, budget, marketing campaigns…, to calculate costs, to sell shoes, to manage students grants, to regulate chemical products…

I don’t pretend at all to boast about my experience or skills. I know that I know nothing. I just want to prove the point: testing is learning.

#3 It’s a people game

Testers are users representatives during the software development lifecycle. We should know and understand them and their needs. To be a good tester, you must understand the risks associated with the software you are building. You need to know the business risks, the technical risks and the project risks. And this means, of course, learning; but also talking to many people; and, understanding.

Testing is typically in the middle of complex relations and conflicts of interests. Business people want their features, as soon as possible; and cheap. But they want also the software to work properly and to perform well. Project managers need business, and the whole team, happy and satisfied. They need to deliver in time and budget. Developers and testers need time to work, to make things right and with the required level of quality. They want to be protected, independent and committed working in a real agile setup. Business needs predictability. It seems complex, doesn’t it?

Communication skills and empathy are key for testers. Understanding what business, project management and our teammates need is key to success. We have to find the best possible balance between protecting the users and gain velocity; between quality and cost. We have to test as efficiently, but cheap, as possible. And then, provide all the information we get, in the best and most meaningful way so our business and management can make the best decisions. We have to communicate the defects found to the people that introduced them and to the managers that need to deliver. We have to preach that quality is everyone responsibility. And, of course, we have to admit our failures that will also have consequences and will impact other people.

#4 It’s unknown and underrated

I know these two characteristics don’t sound like good things or advantages, but let me tell you why, for me, they are.

Out of our IT/Tech microworld, almost nobody knows this profession exists. When I’m asked what I do for a living, I do my best to explain it. Most of the times, I get it. Of course, it’s typically a simplified version of it. So conversation ends up in something like: “So, are you paid for finding issues on apps and websites?”. Yes! I am! It is awesome. Isn’t it?

Inside our IT/Tech world, our profession is known. But I have not met yet a CS student dreaming about being a tester. And I have found many times that is also very misunderstood. In some cases, I found people that think we are testers because we cannot code; or that we are very bad at it. Many times, I have found people not understanding testers job or the value testing provides: thinking testing and unit testing are the same thing, not understanding the different mindset needed to be a tester or thinking that with enough test automation testers won’t be needed.

I believe in the value of testing. I believe in the huge value of good testing. I work every day to test better myself and to help others to test better. And at the end, always, the value of this work is visible. And when this happens, oh yes! That is very rewarding.

I found testing by chance. When I started to know what this job was about, I started immediately to like it. Now I love it.

During my career, I have trained many people, coming from development and operations, as software testers. I can tell you that most of them have never come back (and never have wanted) to their previous jobs.

Testing is challenging, very challenging. To succeed in it, you have to learn continuously and deal with complex situations and people relationships. It’s many times unknown, underrated or undervalued. But, because of all these reasons, once you know it, it’s very hard not to love it.

FINAL NOTE

Your feedback is more than welcome! 🙂 Do you like these reasons? Do you agree with them? Would you add some more?


Jose Manuel Sampayo

Director Platform Engineering | Test Engineering @adidas. I drive Continuous Testing for Digital Transformation. I love dogs. And also people.

All author posts
Related Posts

Privacy Preference Center