Guest post by Kevin Dunne, product specialist for QASymphony
Getting the Most Out of Your Agile Testing
Testing—even in agile environments—is almost always constrained. Testers and developers may feel beholden to legacy software investments or stuck with status quo methodologies. Or, they’re just too busy testing to re-evaluate their processes and tools. Continuous attention to technical excellence and good design must encompass the testing function. And when it does, you can expect a higher-quality product and faster timeframes.
Blurring the Lines
Picture a manufacturing plant with cells of specialized workers segmented by skills and job output. When one group of workers in a cell completes a segment of work, the product moves to the next group of workers in an iterative process. In many development teams, developing and testing cycles occur in a similar fashion. Developers write code, and once it’s complete, the testers test. Agile replaces this outmoded factory model with integrated development cycles and collaboration. This means testers and developers are side by side, creating a lot of beneficial scenarios, including:
- Early clarification of software expectations,
- Shortened feedback loops, and
- Streamlined communication
When testers are involved in the sprint, it helps ensure that test design is integrated very early in the process. The testers provide their input and expertise as to what can be completed realistically and delivered across sprints. And they are usually in tune with the customer, able to distinguish between design and intended use of an application from the way an end user will actually interact with it.
Integrating the testing function early on helps product owners clarify acceptance criteria and identify risks. Consider giving testers direct access to the customer to expose them to the customer’s desires for functionality. Then testers can immediately begin to translate customer needs into testable user stories. The “tester” mentality can help the team discern between reasonable and unreasonable expectations, and may give some indication of how delivery of expectations will be measured.
Test Early and Test Often
Many teams start the development process by prototyping and wire-framing to create a visual representation of content. When you enter all your requirements into an agile testing platform once your wireframes are complete, it is possible to show the developers what you’re trying to create—and show the tester what they need to validate—almost simultaneously. The testers utilize requirements for traceability, creating a test plan for each one. Developers and testers work on requirements and functional test plans in tandem, instead of tacking testing on at the end. Plus, integrated testing helps identify bugs early so developers can fix them fast. Instead of waiting until the code is developed to figure out if the acceptance criteria is met, and scrambling to fix the bugs before the product has to ship, development and testing occur concurrently on agile teams. When you can perform quality assurance in line with development, you will achieve high quality and high velocity.
Always Be Testing
A major initiative for most development teams is to reduce overall testing cycle time. Embedded testers can help teams shorten feedback loops—as less time passes between when a developer writes the code, the code is executed, and information is provided about how the code behaves.
Testers ensure that regression testing is built into the development process. Then as soon as code is loaded into the build, it can be tested. The longer it takes to identify code that doesn’t function properly, the more work product must be unraveled to find the source of the bug. Finding and fixing bugs early helped eliminate duplication and wasted man hours.
If you have access to a central dashboard, try to make real-time results and stats available to everyone on the team to “see as they go.” At any time, developers, testers and clients have visibility into what is happening throughout the process, fostering an inclusive problem-solving culture.
A Better Agile Testing Approach
Good design and technical excellence also apply to testing. Applying agile principles to testing, and incorporating testing into the agile environment means:
- Development times are shorter
- There is less process/documentation and more collaboration/interaction
- All development team members, not just testers, are responsible for quality
If your testing approach and technology are not allowing you to provide intelligent, analytical, real-time feedback to development, are you truly getting the benefits of agile you could be?
Kevin Dunne is a product specialist for QASymphony, striving to ensure the continued success of existing and prospective members of the qTest community. Having acted as a tester in his previous jobs, Kevin enjoys interacting with customers on a daily basis to keep current on the latest trends and tools in the testing world. He is always eager to hear what others think about the industry – feel free to drop him a line at firstname.lastname@example.org.
Read more on agile test management