You are here

4 keys to a top-down testing strategy

public://pictures/hans_buwalda.png
Hans Buwalda, Chief Technology Officer, LogiGear

It's difficult enough to keep up with advances in software testing. Add to that the growing number of misunderstandings between test teams and leaders about how, where, and when to test, and it becomes even more challenging to achieve on-time, quality releases.

If you involve senior leaders in the testing process from the beginning, you can overcome many of these problems. While those leaders won't be doing the manual work, they should understand at a basic level what it takes to test and deliver great software.

From there, it's possible to establish leadership from the top by setting clear expectations around quality and by providing the proper support for team members. This support includes education, training, tools, and more.

As firms look to adopt testing in continuous delivery, they are questioning whether test plans still have a place. They do. Modern test plans can provide a vehicle for creating and communicating the test strategy and approach. They give teams an opportunity to communicate assumptions and approaches, including exclusions such as why a factor wasn't tested.

Here are some key testing tips to keep in mind.

[ Learn how to apply DevOps principles to succeed with your SAP modernization in TechBeacon's new guide. Plus: Get the SAP HANA migration white paper. ]

1. Make the right test plans

There are essentially two types of test plans. In a global plan, teams outline the ambition levels, expectations, timelines, resources, methods, tools, and other key components of a test. A detailed plan includes the specific test cases. Unlike with the global plan, you need to maintain a detailed plan when software changes.

In a global test plan, senior leadership, including product owners and other stakeholders, can give direction about how the software should be tested. The goal is to get on the same page about testing timelines, focus areas, and approach. For example, incorporating blockchain into software means you will have a greater number of tests, and you will exert greater effort in such areas as infrastructure orchestration, staging, and simulating scenarios in a distributed environment.

What could go wrong?

Over time, test plans may become an afterthought, leading to the use of old, ineffective tests that don’t properly map to new testing objectives (such as blockchain), and that won't result in a quality end product.

How can you fix it?

Leaders and teams should make sure that test designs are up to date. Depending on the scope of the tests, you can ask domain experts and other stakeholders to review the updated tests.

2. Automate your software testing

Test automation is a must-have in agile and DevOps, because it's the most efficient way to perform many tests quickly and frequently.

What could go wrong?

Though automation is generally accepted, there are still many environments where it is viewed as costly or complex, and that leads businesses to table the idea. It's true that test automation is software development and that it requires planning and a specialized skill set, but not having automation can slow down development cycles unnecessarily.

How can you fix it?

In situations with little or no automation, senior leadership can provide scope and resources, and encourage teams to start with a small number of test cases, in particular to learn and flush out technical difficulties, and then build up automated tests over time. Also, for automation to be successful, design and organization of tests are essential. One way to do this can be action-based testing, a keyword-driven, modular approach to test design and automation.

Which tests to pick first for automation will depend on how much time the tests would save, and on business criticality. For example, calculating the premium for insurance policies has a high business impact, and these calculations should be tested frequently and thoroughly.

[ Is it time to rethink your release management strategy? Learn why Adaptive Release Governance is essential to DevOps success (Gartner). ]

3. Share test cases

A test case is a description of how a system will be evaluated. It serves as a record of what has been tested and how, and helps ensure test repeatability across teams, which is essential to eliminate errors and ensure on-time delivery. All team members and other stakeholders should have access to and understand test cases relevant for them.

What could go wrong?

Poorly organized and documented test cases, or test cases not made sufficiently accessible by other teams, can cause duplicative work and delays. This makes it harder to obtain good coverage of tests, and to maintain the cases and their automation.

How can you fix it?

Find out where and how test cases are being documented. If it's within a Word Doc or Excel, consider upgrading to a more accessible issue-tracking tool such as TestArchitect, TFS/Visual Studio, Jira, or Zephyr. With greater visibility into test cases, teams can structure their tests better, in turn leading to better coverage and easier maintenance of the automation.

4. Test early (shift left) 

Shifting testing toward the beginning of the software development process allows you to find issues earlier and reduce the time and costs to fix them. These might be addressed, for example, during an ongoing sprint.

What could go wrong?

Businesses have made substantial progress in moving service, integration, and API testing earlier in the process. However, unit testing, which is a way of testing individual units of source code, has historically lagged behind, since it is typically done by developers and may not always get priority. Unit tests can also get expensive if they need extensive set up and tear down cycles.

How can you fix it?

Make sure to do the right testing at the right time in the process. If possible, use unit tests and tests that work via APIs, since their automation tends to be stable, and they can be executed early in the development cycle.

Take a united approach

When leaders understand the value of proper software testing, they can help teams deliver better software releases. IT leaders can also more readily recognize new opportunities to improve testing approaches with technologies such as automation.

By uniting around the goal to deliver the best product possible, the business can create happy testers who feel supported by the executive suite.

[ Get Report: Buyer’s Guide to Software Test Automation Tools ]

Article Tags