Two Secret Ingredients for Successful Agile Testing
- November 18, 2019
- Ray Parker
Today, software development projects are complex and we need to focus on how we organize our testing processes. When we think of agility, it focuses more on frameworks than on the people but agile is the solution to overcome the challenges of the digital-driven era. The transition from waterfall to agile practices is challenging for agile teams. They are supposed to deliver more is less time frame. Agile teams have devised software testing services and strategies to improve team communication and improve overall software quality.
Key Ingredient # 1: Lightweight Test Case Approach
In 2001, Ron Jeffries proposed a model to distinguish ‘user stories’ from ‘documentary’ requirements practices such as test cases. It is brief information about the test cases in the early software development stages. The three C’s are as follows:
- Card – Users write stories on cards. The card contains only relevant information to identify the requirement and simply highlights what the story is about.
- Conversation – All conversations with customers while they communicate their requirements to the team. These are important when a story is estimated, or when it is scheduled for implementation. Teams should understand the goal and provide the exact requirements.
- Confirmation – Customer feedback is important. Success cannot be achieved without customer feedback as they are the primary voice that confirms the parameters of success.
The lightweight test case approach replaces the need for writing exhaustive documentation. A good story should define all conversations and log the agreed acceptance tests, allowing testers to execute tests with valuable information. These test cases throw light on the end user’s perspective and are used when a story is complete.
A software testing company uses lightweight test cases to improve software quality in less time. Teams should keep these test cases simple and add only a brief description of what needs to be tested. A simple statement without any expected results as they do not need to be revised as technical details shift throughout the development process. These test cases are also useful because:
- They reduce the number of required test cases
- Teams spend less time on test case design and maintenance
- Test cases emphasize whatever adds value to the final product
Key Ingredient # 2: Behavior-Driven Development (BDD)
A software testing company uses the behavior-driven approach, which is also a type of lightweight test case design for agile teams. Dan North has introduced BDD to address the issues in test-driven development (TDD). It is also known as ‘Specification by Example’ because it is a story-centric way that supports the three ‘C’ concept. BDD defines the behavior of a system in plain text. During a sprint, development teams (developers, testers and domain experts) discuss how the system should work in the form of examples. BDD is a technique to improve the development efforts and reduce the risks for rework in the later stages of development. These test cases should have realistic data that are written in common language that can be understood by non-technical users too.
In an agile environment, testing is not a separate stage of development, in fact, it is an integral part of the entire software development lifecycle. Firms hire software testing services to ensure agile teams use their expertise to make the most of their testing efforts. The need for new code has been pushed from weeks to days and even hours. By designing lightweight test cases, testers can respond to such requirements and streamline their testing process. These test cases are easy to understand, in terms of what users expect from a software application. Improved communication between agile team members simplifies the development process, allowing quality products in less time.