Delivering with agility
More and more companies are moving to agile software delivery approaches. But agile delivery brings with it a new set of challenges; among them, functional test automation (opinion is currently divided in the agile community on the value of automated testing). However the reality is that software teams must manage quality if they are to avoid operational risk. Businesses are encouraged to adopt an agile process that fits their unique needs. Yet, nothing about agile is pre-determined or dictated; so it’s no surprise that businesses find it challenging to implement as a trusted business process. And using tools to automate their agile delivery process is another variable that further complicates the decisions organisations must make.
In the world of agile software delivery, requirements are raised, changed, and reprioritised in much shorter timescales. At the same time, the functionality that you deliver must be fully tested to ensure that it meets the needs of end-users and the business. As software volume and complexity increases, it’s clear that manual processes will fail to deliver fast and repeatable results that underpin the agile proposition. Inevitably, without automation, quality will suffer as testing is marginalised to achieve on-time delivery.
Regardless of whether your development team is considering going agile, making the transition, or already operating in an agile mode, it’s critical to consider how technology can support this new way of working – particularly in the area of testing. According to independent research company Forrester; “there’s room for improvement in agile processes – for example, through better support for agile from mainstream tools for test automation, test management, and requirements management.” Forrester notes that, in an agile process, testing is continuous and imperative, as features are not ‘done’ until all associated test cases pass. Moreover, “Testing has to be as automated (and as reasonable) as possible because of regression burden.”
The issues facing organisations implementing agile testing automation are:
• Operating agile and traditional testing methods side-by-side;
• Identifying tools that are usable and flexible;
• Allowing non-technical and non-testing specific members to actively contribute;
• Enabling open-source integration;
• Enabling test-driven, or model-driven, development.
The role of automated testing in agile development
Let’s qualify why testing needs to be automated in an agile delivery environment. The people involved in testing are part of the delivery team – not an isolated group that developers hand code to as a final step to release. Ideally, they sit side-by-side with the developers, who, as they create code, pass it to testers early in the process for evaluation against acceptance criteria. Since capability is built iteratively, and the team needs to maintain velocity, the code assets need to be verified quickly. For agile to truly succeed, functional testing has to be quick, iterative, and responsive.
Specifically, automated functional testing offers a number of efficiencies that cannot be achieved with manual testing. For example, it can:
• Greatly accelerate the code-and-test process by supporting fast, automated test scripts;
• Ensure the repeatability of tests, to ensure regression testing from sprint-to-sprint, iteration-to-iteration;
• Enhance test efficiency further via robust, yet flexible, test management processes;
• Avoid the inherent inaccuracies that manual processes inject in to the process – particularly when time is tight.
Automation enables testers to create simple, reusable scripts, which they can deploy to save time and increase the consistency of testing across similar user stories, story points, or requirements within and across projects. They can be run rapidly and iteratively, developed from the user story to drive the functional capabilities, enabling test driven development. It significantly lightens the workload of testers and eliminates the need for late night and weekend testing marathons that can burn teams out.
Regression testing requires that 1) you perform the same tests each time you test a particular piece of code and 2) that the test is scripted against the acceptance criteria of each respective user story. Whenever code changes, (or is extended to include new capability) you need to re-run all functional tests for all user stories, up to the latest change, to ensure other user stories weren’t impacted inadvertently. (With agile development, regression testing should typically be performed at the end of every iteration – in some cases this means daily).
Repeatability is nearly impossible to achieve with manual testing due to human error, variability, and inconsistency. People simply can’t remember exactly which tests they performed for each piece of code for the last iterative cycle – and even one oversight can cause problems in final code. But with automated, repeatable functional testing and regression testing, you can execute tests consistently whenever you need to.
Automated functional testing and centralised test management play a vital role in helping development teams implement an agile delivery process. But the majority of businesses today continue to use manual processes, which can make it difficult, if not impossible, to implement and scale agile methods within an enterprise. Manual testing slows down production, and is error-prone – it does not support re-use and provides no predictable repeatability.
Those companies that have already deployed automated testing tools in traditional projects run into other challenges when making the agile transformation. For example, most software testing products force companies to operate in a specific way (such as waterfall) rather than an agile, company-specific process.
Interestingly, the story comes full circle. As a vendor of software testing products who, two years ago, decided to undergo the enterprise agile transformation, and now carries out over 60 percent of software projects using agile methodologies; we needed to adopt some changes. It was imperative that our automated testing products were aligned to helping organisations implement and enhance an agile delivery process while ensuring quality, reducing risk, and lowering costs. Employed by thousands of enterprises worldwide, Borland’s SilkSuite has also transformed, and continues to develop, to best support development team’s preferred processes, whether waterfall, iterative or agile whilst enabling automated testing that is rapid, repeatable and accurate. We know this because, in our agile development environment, we run automated testing on our automated testing tools.




Green
T.E.S.T Magazine
June Issue
T.E.S.T Magazine