Why Does Product Testing Have to Take So Damn Long?
5 min readBy the time you reach the final stages of creating a digital product, your hours are usually tight and your deadline is looming. You’re doing everything you can to come in on time and within budget. And still one large obstacle is in your way: You have to make sure the thing works. You have to do product testing, or what we call quality assurance (QA) testing.
At this late phase in the project, it’s tempting to cut corners to get to the finish line. You might wonder if your development team really needs as much time as they said. Would it be so bad to reduce their testing hours so you can launch already?
The short answer is: yes. If you cut testing hours, you will be sorry. I’ll tell you why.
Many years ago, I was working on a project that was seriously behind schedule. Every day the project was delayed, it cost the company more money. I’m sure you’re familiar with this situation. Maybe you tried to fix a similar problem the same way our project manager did: in an attempt to save the budget, he decided to cut QA testing.
For a brief, shining moment, this saved the project. Our project manager was a hero. But reality set in when the first user attempted to use our software. Suddenly the lack of testing was painfully obvious. The product launch was a complete and utter disaster. Not great for our users or the company.
So yes, you must test if you want quality (or even just usable) software. But saving money by cutting the time spent on testing is, quite frankly, tempting. After all, does it really need to take so long?
If your development team is competent, why does their code have so many bugs? Maybe you just need better developers who make bug-free digital products. Then you’d cut down the time and money spent testing. Right?
Wrong.
Don’t Blame Your Developers
Your development team is not the problem. A different development team would still need just as long to test thoroughly. That’s because most software problems aren’t caused by developers. They’re typically caused by:
- Bad data
- Buggy third-party libraries, browsers, or hardware
- Users interacting with software in unexpected ways
Nothing your development team does can entirely prevent these problems from happening. Only a thorough QA process can uncover these problems before they turn into problems for your users and your business.
So what the heck are your developers doing with all that testing time? They’re fight against the very real and very complex problems that come along with creating any new site, app, or software suite.
Data is Unpredictable
Software always breaks when development teams finally get to put in real data. It’s one of the iron-clad laws of development. And it doesn’t matter how well your team plans ahead of time, your developers are still going to find data that breaks established rules. They’ll find missing data when they were told that could never happen. They’ll discover unforeseen ways the data needs to be used.
Your data is a reflection of the real world and, unfortunately, the real world is a complex, messy, and unpredictable place that refuses to read your requirements.
The only way around this messy problem is to test your code thoroughly with real data. This will help you identify and fix problems before your users find them. Cutting this corner can mean failure for your project, your users, and your company. Give your developers time to fix what breaks. Buying them donuts probably wouldn't hurt either.
You Can’t Control Third-Party Tools
Short of creating every new digital project from scratch with raw silicon and copper, you have to rely on third-party tools that have already done some of the work for you. But every piece of third-party software and hardware that your project relies on will betray you. That library that was supposed to save hours of developer time will turn out to have an obscure bug. Some weird quirk in the operating system will break every page link. And inevitably, your website will look great except when you view it in that one stubborn web browser. You can't predict what will break or where it will break, only that something outside of your control WILL break.
These problems were created by other developers at a different company and your development team has to find workarounds for them. It’s not glamorous or exciting, but it is essential if high quality, usable products are going to make it out the door. And yes, it takes time.
Users are Unreliable
The trouble with users is, they rarely do what you want them to do. As soon as you put your product in front of a real person, they will do something you never anticipated. And if you haven’t done thorough testing, they will certainly break your site or app.
Each user will break your product differently. Some are compulsive clickers. Others have characters in their names that your database won’t accept. Some will attempt to type War & Peace into your “Comments” field causing your server to crawl up into a ball and die. There are a million ways to abuse your product. Your users will find most of them.
This is why many well-known and popular products, such as Adobe Photoshop, have long beta testing phases. With enough users interacting with the product, most of the bugs will eventually be found. But you probably don’t have the luxury of thousands of users who are willing to test your site or app for free.
Fortunately, most companies have at least one person who likes to break things. Make them your chief QA tester and let them at it. Just keep in mind that they need to time to break things and your development team needs time to fix them.
Fix Digital Problems Before They Become Business Problems
If you want people to use your digital product, it must work properly. It’s as simple as that. Broken is unusable. QA testing is about identifying unpredictable problems early before they become user experience problems and, therefore, problems for your business.
It can be a lengthy process, but it’s just as important as any other phase of creating your site, app, or software. Don’t cut QA hours thinking you’re saving yourself time or money. You’ll end up with a buggy, unusable product and you’ll still have to spend time and money fixing problems after your disastrous product launch.