Saturday, August 4, 2018

How you can tame spiralling digital software testing costs (& create happier users)

Software testing has often been an afterthought for CIOs, software engineering managers and software development teams. The accelerated adoption of Agile, DevOps and digital has ensured that if you remain ignorant to the value of fast and effective software testing, your program will bleed money and leave users frustrated by their user experience.

As software testing cost surge closer and closer to 50% of the overall software development, I often find that the other (and potentially more damaging) cost of our accelerated digital delivery goals is being completely missed:

Is it all doom and gloom?

The good news is that if you are responsible for digital applications testing, there are a number of steps you can take to tame the spiraling cost and relieve your team of the intensifying pressure heaped upon them by bosses, colleagues, customers and end-users. Our Software Testing Secret Toolbox will give you 10 ideas you can start exploiting straight away to tame your software testing costs and keep your team sane. We push and pull these same 10 levers for every one of our test automation customers.

However, my overarching advice if you need to reign in your software testing costs is to explore, invest in and exploit test automation. Automated software testing has been around for over 2 decades now and the tools, frameworks and methodologies have now matured to a point where their adoption can help you reap material rewards.

While the oft-touted argument against automated software testing usually revolves around exorbitant up-front investments, these perceptions are based on outdated experiences that were the result of poor planning and abhorrent execution. By combining purpose-built automated software testing tool, with smart people and a best-practice methodology, you give yourself the chance to maximise the ROI offered by test automation:

Because of the advances in this area and our demonstrated results in implementing automated testing programs, I urge you to explore and exploit the new norm and disregard yesterday's naysayers.

So we can only automate a small subset of our tests, right?

A common viewpoint we hear is that only repetitive tests should be automated. While that is a good start, stopping at this point would leave a lot of potential efficiency on the table? Our co-founder, Avaneesh Dubey, contends that test automation, when implemented smartly can help you run much more comprehensive, precise and effective tests. By generating smart combinations of targeted test conditions and allying them with a lean automated scripting methodology, you can hundreds of tests effortlessly.

You're probably running these tests manually right now, so you will well understand how laborious it becomes. Because testing is usually left to the very end of a sprint, manual testers have no option but to skip many important tests, thereby compromising the effectiveness and integrity of your testing program.

Manual tests are also very people intensive. The expertise of the tester determines how well a test case is run and whether the results are meaningful. Some testers do a thorough job of reading the test cases, understanding the core idea and enhancing the tests as they run. Most others, however, just repeat the documented steps and finish the job assigned to them - often in an unstructured and inconsistent manner. Is it a wonder then, that bugs always leak into production or why the entire team is so stressed before and after a release?

So what is the optimal mix of manual & automated software testing?

I have seen companies that assigned every test case in their catalogue to at least 3 testers. Surely this is merely an exercise in futility because the in this instance the same mistakes are now going to be committed in triplicate. A test should only need to be executed once – unless you have little confidence in your testing team or you believe that the test case is poorly designed.

Many teams also spend a lot of time and resources writing ‘idiot-proof’ test cases. Writing and updating these test cases can be extremely time consuming. What is the point of writing such detailed test cases if they are going to fall victim to the time constraints thrust upon a tester? Effective test automation ensures that every test can be executed in its entirety with its integrity and honour intact.

Manual testing needs to be done, well, when people are available – during normal business hours. Automated tests, on the other hand can run over night, over weekends - 24/7. Cloud infrastructure and parallel testing enabled by cloud testing tools like Qsome allows you to run the tests at speed and with unrivalled consistency. Tests that would take humans weeks to complete, are run by machines within hours!

It's important to understand that cloud testing is not science fiction. It is being exploited by many of your competitors:

High performing software delivery teams use a test automation methodology that is proven to deliver fast results. The key to this process is to inject exploratory testing into the works before an automated test is designed or scripted. This exploratory testing should provide the test automation engineer with a comprehensive understanding of system behaviour - probably even more than any documented manual test case or BDD scenario could ever communicate.

Like most things in life there is no magic bullet that will solve every software quality problem. Your situation is likely to be unique and will require some careful consideration about the optimal mix of testing activity. The key is to be mindful of the fact that smart test automation can save you money, make your customers happier and give you peace of mind before and after each release.

If you need help in solving these challenges, or in cutting software testing time and finding more bugs before your application's users find them, speak to us understand how we will be able to help you.

Download our Secret Toolbox and then book your demo of our Qsome test automation tool that can test any application, on any device, at break-neck speed.

SaaS Brief