By Courtney Saba
As the agile development method is continually adopted, testing methodologies adapt, allowing developers to detect issues early and consistently in the software development lifecycle (SDLC).
This article discusses the role of testing within the agile software development methodology, the advantages and limitations of agile testing strategies, and points to key agile testing techniques. We also highlight features of select testing tools specifically suited to the agile SDLC.
Role of Agile Testing
The primary goal of implementing agile testing within the agile SDLC is to improve the speed-to-market, while still effectively delivering high-quality results. However, this comes with a shift in responsibility from testing and quality assurance (QA) professionals to the entire development team throughout the development process. At the same time, testers must learn to adapt to keep up with rapid development techniques.
In its report, Navigating the Agile Testing Tool Landscape, Forrester Research states that agile testing disrupts what developers define as testing. This is due to the change in practices that make testing the responsibility of everyone within the team. The report says agile development puts a larger quality burden on developers and requires that they do more, starting with unit testing, extending to test generation and automation, and often including getting more involved in the daily execution of testing activities.
Ingo Philipp, product manager, Tricentis, believes agile testing cannot exist without agile development. He says the two are interchangeable and must work together within any agile methodology. He adds that agile testing goes beyond what is seen as “traditional” testing. “Agile testing is not just about logging bugs and following tests, it’s more about being an essential and vital part of a team. Agile principles force testers to be more interactive, collaborative, analytical, and skilled in order to keep up with rapid development,” explains Philipp. Agile testers must instantaneously provide valuable, real-time feedback about the product.
Nikhil Kaul, product manager, SmartBear, agrees, observing an evident change in the role of testing. “The role of tester has changed drastically in an agile world. Testers must be willing and flexible to participate in different phases of SDLC, right from working with developers when the code is written,” he says. This way of testing suggests a focused, yet rapid process to deliver a new product or new features with quality.
What is apparent in this testing methodology is the critical depth of continuous collaboration for all involved. Shravanthi Alimilli, product marketing manager, Progress, emphasizes the need for constant communication and collaboration. She says agile developers are encouraged to think more like testers, and testers to think more like developers. For developers, it’s continually checking their own code for potential errors, and for testers it is engaging more fully in the creative process.
Agile Advantages and Limitations
One of the greatest advantages to agile testing is the speed it offers the software development process. The agile SDLC, and in turn, agile testing techniques, provide instant feedback, therefore allowing development to continuously deliver.
Agile testing strategies typically reduce the total development cost and improve product quality while increasing customer satisfaction. This is because it enables the detection of errors and defects early on.
“Rather than making quality a responsibility of testers, an agile process helps decentralize this responsibility to other parts of the organization. Testers no longer act as a gate keeper to maintaining quality, but act more as a facilitator to ensure quality throughout the SDLC,” explains Kaul.
Quality control is a team effort in this environment and the agile testing process helps create better communication between development and testing teams.
In addition to the benefits of agile development, limitations exist for testers. In an ever-decreasing and continuous cycle, one of the greatest challenges with agile testing is the ability to rapidly provide comprehensive results. Additionally, behavioral roadblocks hinder success.
Philipp believes that being selective and fast with testing helps developers avoid an overload in test cases. “Being selective allows you to decide which test cases offer high business value and should be executed first, optimizing the product’s business risk coverage as early as possible. Being able to test quickly requires companies to automate up to 90 percent plus of their test cases, while keeping up with the increasing speed of development,” he says. In agile testing, it is essential that both conditions are met at all times. If not, testing will fall far behind development.
Behavior challenges also exist. Kaul says an agile world encourages and accepts change. As a result, basing automated tests on a brittle GUI that changes often can result in a lot of rework. For this reason, a change in testing strategy with a focus on the test automation pyramid is necessary.
Manish Mathuria, CTO/founder, InfoStretch, also sees behavioral change as a limitation to the agile testing methodology. “Agile testing is easier said than done. Adopting an agile testing strategy requires significant behavioral change in the traditional waterfall model. Getting the right skill onboard and setting the mindset to adopt in agile processes in a challenging task. Transitioning the role of resources from conventional QA methods to quality engineering also requires behavioral change,” he explains.
Agile Testing Techniques
Multiple agile testing implementation techniques are used within the process of agile testing. A few practices include early test collaboration, testing repeatedly, automation, and Behavior Driven Development (BDD).
BDD creates harmony between individual agile practices. The focus on establishing and evolving a shared language among testing and developing teams allows for better communication and greater results.
Kaul and Mathuria agree upon the use of BDD practices in agile environments. Kaul explains that to ensure QA teams, it is essential for developers and business analysts work together from the start of the project to align business requirements and testing necessities. Tactics like BDD allow these teams to define test scenarios for various business requirements even before development starts writing automation codes for differing situations.
Philipp suggests a straight-to-the-point practice within the agile development process. He believes that what gets measured gets done. “If you can’t objectively express your needs in terms of requirements, i.e. user stories, you can’t measure it. If you can’t measure it, you can’t implement it. If you can’t implement it, you can’t test it, and as a result you can’t ship it,” he says.
From that, Philipp breaks down the steps to successfully practice agile testing. Build a common base of understanding of what needs to be tested, aiming for a target of at least 90 percent test automation, and throw away what is not important from a business perspective. Apply risk-based testing to ensure all test cases are on track and testing does not lag behind developers. Integrate your automated testing suite into the build process to provide instant feedback on product quality.
Philipp says to never stop scrutinizing the testing practices, and challenge testing ideas rather than testers. Most importantly, don’t be resistant to change.
A variety of commercial and open source testing tools are available to aid in the testing practice. In its report, Forrester Research states that tools are important, but what matters more is using them correctly. “Agile development teams are the primary entry point for open source testing tools, many of which are designed specifically for developers. A forward-looking QA practice leader will embrace this reality, as it leads to the right endpoint—greater developer responsibility for quality code.”
The following companies utilize their own testing tools fit for an agile development.
InfoStretch offers a variety of products to solve mobile testing challenges for business, as well as solutions that offer agile testing environments. QMetry Test Manager provides the capability to create, administer, organize, and maintain test libraries and track performance through detailed reports and dashboards. QMetry Automation Studio is a test automation tool that provides a single, unified solution to execute, manage, and maintain Web, mobile—including native and Web applications, and Web services testing. QMetry Mobile provides synchronized mobile testing and diagnosis on geo-distributed devices by recreating and regulating real world conditions on any mobile device.
These tools are able to adopt a BDD-based approach to enable in-sprint automation and Shift Left methodologies and integrate with Jenkins to bring in continuous integration.
Telerik, a Progress Company, offers its Test Studios solution, which incorporates test automation functionality and supports testers and developers to work collaboratively in agile teams. Point and click functionality lets testers perform image verifications and more, without a single line of code.
SmartBear’s TestComplete solution helps create accurate and repeatable automated tests across desktop, mobile, as well as Web applications.
It is designed to provide support for testers with multiple skill sets. Novice testers use record and playback features, while modern scripting language and IDE support is provided for developers and automation engineers. Support for BDD is also included.
QAComplete provides software test management with centralized reporting across manual, Selenium, API, and automated tests. It helps establish clear traceability between requirements, test cases, and defects.
LoadComplete helps users design and run performance, stress, and load tests for websites and Web applications. They also reuse functional tests as performance tests.
The Tricentis Tosca Testsuite comes with automated test data design, risk-based testing on a requirements and test case level, as well as model-based automated UI and API testing for more than 35 technologies and enterprise solutions. It orchestrates service virtualization, mobile testing, exploratory testing, distributed test execution, and agile test management.
The Tosca Testsuite differentiates itself through a test automation approach that enables manual testers to become test automation specialists without requiring programming skills to create and maintain an automated test suite.
The agile development methodology and associated agile testing continues to grow and adapt within development environments.
A variety of agile trends enable fast, continuous delivery of high-quality products. However, the success of agile development comes with an evolving role for both tester and developer, a behavioral change that must be accepted to truly benefit the speed and agility the agile methodology delivers. SW
Feb2016, Software Magazine