I'm a strong believer that quality (and, thus, software testing) should be the highest priority for any type of organization – whether it's a startup or a corporation. Software testing is your health insurance – you don't believe you need it until you receive a hospital bill for thousands of dollars. Let me explain my thoughts.
Why is it crucial for organizations to invest in software testing?
I've been doing quality assurance for more than a decade now. That doesn't sound like a lot of time unless you remember what QA looked like in the early 2000s. I was in college working on my master's degree in computer science at a six-year program with lots of material on software engineering, development, architecture and project management. I also took several courses on business analysis, developing UML and BPMN diagrams for the solutions I was building in Java, .NET and RoR. The only thing missing from the program was quality assurance.
Normally, the professors tested our work by looking at our solutions and randomly clicking links and buttons or entering nonsense text in every text field on the screen. On one occasion, my solution crashed after such user testing. That's when QA came into my life.
Although QA was not a part of college programs – and I can hardly even remember trainings outside of college – there were several books that started the journey. I joined my current employer when testing was still considered as unnecessary. Now, a decade later, I have seen big changes. When someone asks me why these changes have occurred, I tell two stories.
The importance of quality
Do you remember the software of the 1990s?
Just a few quick facts: The internet as we know it started in 1991. Facebook began in 2004, and the first iPhone was released in 2007.
If you compare the software products then to what we have now, it's like comparing the management of a town with 500 inhabitants to the management of New York City. The complexity of these software products is growing much faster than anyone could have expected. Your end users are more demanding: They want better interface, faster application, availability from wherever and whatever and so on.
Software is a business. It’s all about money – making money through subscriptions, ads or reengineering your business to maximize profits. In the early 1990s, the only way to play Solitaire was to access it as a part of Windows on your computer. A quick search of mobile apps shows that there are more than 200 applications that allow the same today. The competition is much different now, and that's where quality comes into play. If your product is not good enough, your customers have 199 options to replace it.
I use ride-sharing for my daily commute. I talk to drivers all the time, asking them the same question: Why do you drive with this company? The two factors I hear from them are the amount of money they can make and how good the application is for them. For riders, it's somewhat the same. The focus is on the cost of service and the usability of the app. The quality of the software is something that drives users from both sides. The better the quality and functionality of the software, the more riders a company gets; the more money the drivers make, the better discounts or loyalty programs the company can introduce. Whether you like it or not, quality is growing increasingly important.
The importance of testing
This second story is even more straightforward.
Most of us use airplanes and cars. Would you ride in a car or take a seat on an airplane if you knew these vehicles were not tested? Would you feel safe and secure? Would you buy from that manufacturer or airline again? It’s human nature to avoid risks if possible.
Why do many companies still feel reluctant to invest in testing?
The biggest issue with quality assurance is that the result of implementing testing practices is somewhat invisible. When your company invests in software development, you see the results right away. There is a piece of software to play with, a codebase to review, and a database to use to see data.
With testing, yes, you have a test plan and test scripts that you can run, but you cannot sell these to your end users. Users do not care if you do test automation or security testing; they only want to believe the software is working correctly.
They are not concerned with how you achieve this.
The biggest mistake I've seen is believing that the development team is adequate to accomplish the project alone – the members know your business needs, understand requirements, they know the technology, etc. The thing is – nobody's perfect. Every developer is a human being which means mistakes are highly possible.
It's a business decision whether to ignore this risk or mitigate it through working with a professional testing team.
However, our world is full of other risks one cannot even predict. Why not mitigate those predictable risks through quality assurance that will help your organization survive other storms?