Supporting Accelerated App Delivery through Test Management and Analytics

[article]
Summary:

Careful test management is essential to push reliable apps out the door, so testers and developers must work closely together to identify repetitive tests and automate them. Effective test automation ensures that the right tests are run at the right time. Because quality isn’t just about how well the software works technically; it also has to deliver what the customer wants.

There’s a strong emphasis on speed of delivery in modern software development, but it’s essential that quality is not compromised in the rush. Careful test management and an analysis of the right metrics are essential for any company seeking to push apps out faster.

The top reason that 88 percent of companies adopted agile practices in 2013 was to accelerate time to market, according to the 8th Annual State of Agile Survey. Continuous delivery enables companies to release far more frequently and cuts down the time between idea conception and realization, but it requires a shift in the way we test.

From Manual to Automated

Traditional methods of manually testing the software quickly become impracticable when releases accelerate from once every month to once every week to multiple times a day. There isn’t enough time, and the pressure to hurry only exacerbates the chances of human error.

The amount of effort required to cover basic regression testing, before you delve into new features, quickly grows to an unmanageable level. Rather than hire more testers, the obvious answer is to automate. Testers and developers must work closely together to identify repetitive tests and automate them. This requires an investment at the outset, but it paves the way for a smooth delivery pipeline.

Bear in mind that it’s important, naturally, to test the functional aspects of the code, the security, the performance, and so on, but you also need to keep a close eye on the business value. Quality isn’t just about how well the software works technically; it also has to be delivering what the end-user wants. Effective test automation ensures that the right tests are run at the right time.

Engaging in Test Automation

The aim is to reach a point where your tests aren’t just running at the end of each sprint, the end of the week, or the end of the day, but as often as you need. You need to automate recurring tasks to remove overhead from your test activities. Once this is in place, you can get a real-time picture of your app quality and save testing resources for other activities, such as exploratory testing.

The landscape for test automation tools is extremely fragmented. You will be using functional testing tools, performance testing tools, and security testing tools. It’s important that different parts of the team can choose what they feel is the best tool for the job. It’s very unlikely that a single test automation tool is going to cover it. Unfortunately, it is hard to visualize all test results in an integrated way. That means you need an umbrella solution that can tie the process together, integrating the automation and aggregating the results.

Analyzing the data that emerges from all your test tools provides the knowledge that’s needed to decide when to go live. Eventually, even this decision can be automated. But you must be able to interpret and trust the underlying test data.

Measuring Test Health

Making the “go-live” decision as automated as possible enables a faster route to market that really delivers business value. Yet, the status quo of the automation solution deserves attention as well. It’s important to look beyond the data on software quality and continually assess the whole setup of your test automation. You need metrics in place to tell you when a test is getting slower and to flag inconsistent results.

Indications of test automation health can help you to identify when extra tests may be required or when changes to the process need to be made. This is an important part of building and maintaining confidence in a continuous delivery pipeline.

A Recipe for Success

  1. Automating your testing efforts and configuring tests to cover the quality of the software from a technical and a business standpoint makes it possible to roll out apps and updates faster.
  2. Integrating the best testing tools for the job, intelligently aggregating the results, and analyzing the data ensures that there’s always a clear picture of the quality of your software informing the “go-live” decision.
  3. Employing the right metrics on the supporting infrastructure helps to monitor and improve the health of the test ware and test setup.

These are the major ingredients to successfully accelerating your app delivery.

About the author

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.