Think with Enlab

Diving deep into the ocean of technology

Stay Connected. No spam!

10 Principles to Make Agile Testing Actually Work

 

We already know that there has been a transformation to Agile Software Development in the software industry for years. We also know that testing is an important part of software development. 

So how has the testing been performed in Agile Software Development? And how has the tester been changed to adapt to the transformation? If you already read the book “A Practical Guide for Testers and Agile Teams”, you might have answers from the authors Lisa Crispin and Janet Gregory. 

In this article, I would like to share 10 principles for Agile testers excerpted from my favorite book. 

 

What is Agile testing?

“Agile testing is a software testing practice that follows the principles of agile software development. Agile testing involves all members of a cross-functional agile team, with special expertise contributed by testers, to ensure delivering the business value desired by the customer at frequent intervals, working at a sustainable pace. Specification by example is used to capture examples of desired and undesired behavior and guide coding.” (Source: Agile testing - Wikipedia).

I like the definition of Agile Testing from the Global App Testing: “Agile testing operates under the philosophy that testing is a crucial part of development, on a par with coding. In Agile, testing is integrated directly into the development process so that bugs are discovered as early and as often as possible. As a result, testers can identify problems at every point in the development process, moving the product quickly towards release.”

To understand more detail about the concept of Agile testing, let’s examine the difference between traditional and Agile testing in the comparison right below.

 

Traditional vs. Agile testing

Firstly, we need to understand the main differences between traditional and Agile software development methodologies. Traditional software development normally referred to as the Waterfall, is known as a linear sequential life cycle model, whereas Agile is an iterative, incremental, and evolutionary software development method.

 

 

Below are different points between traditional and Agile testing:

 

Traditional Testing Agile Testing
Testing at the end of the development cycle Continuous testing/parallel to the development
Quality became the tester’s responsibility Team’s responsibility for the quality
Testing departments or independent testing Whole team approach
Scripted testing Exploratory testing
Requirement specification as the reference User stories and customer needs as references
Breaking the software mindset Building the best software mindset
Late involvement and delay feedback Early involvement and continuous feedback
Finding defects Prevent defects

 

Source: The Differences Between Testing in Traditional and Agile Approaches - www.medium.com.

 

Ten principles for Agile tester

As mentioned above, in Agile, testing is the whole team approach. We all might have known that there is no role named Tester in the Agile team. All team members are developers. So when we use the term Agile tester we refer to the team member whose main activities are related to testing and quality assurance.

I’m interested in 10 principles for Agile testers which are mentioned in the book “A Practical Guide for Testers and Agile Teams” the most. They are derived and developed from the manifesto and principles of Agile software development. Therefore, they are not only useful for testers but also for all team members. Now let’s explore what they are:

 

 

Provide continuous feedback

Agile testers do not only simply test constantly, but also provide valuable feedback to the team and customer regularly. By doing this, we are helping the product owner and customer articulate the requirements via samples and tests.

Testers also need to work closely with the team and provide feedback during the development to ensure the team is on the right track in terms of business logic and software behaviors.

 

Deliver value to the customer

This is the most important principle since the end goal of software development generally and the team particularly is to provide the best software to customers.

 

Enable face-to-face communication

As the sixth principle of Agile states “The most efficient and effective method of conveying information to and within a development team is face-to-face conversation”. This is to reduce confusion and errors by communicating directly with developers as well as enabling customers to communicate directly with developers.

 

 

Have the courage

Courage is one of the must-have qualities which every Agile team member needs to build. Agile testers need the courage to do any tasks to get the job done; courage to learn new skills to help the project move forward and ensure the quality of the software; courage to ask for help, especially when the person providing that help looks pretty busy and stressed-out himself; we also need the courage to allow others to make mistakes, because that’s the only way to learn the lesson.

 

Keep it simple

My client often says that “Keep it simple first”. I like that. As a tester, we need to work with customers to make business rules, test cases, and bugs logged as simple and clear as possible. The challenge to the testers and the team is to not only provide the simplest possible software implementation but also to take a simple approach to ensure that the software meets customer expectations.

Anyway, we need to keep things as simple as possible. The famous quotes below motivate us to do that: “Simplicity is the ultimate sophistication” (Leonardo da Vinci) and “If you can't explain it simply, you don't understand it well enough” (Albert Einstein).

 

Practice continuous improvement

Continuous improvement by looking for tools, learning more skills to do better work, and getting a better return on customer investment is the key value of the Agile team. As Agile testers, we need to find a way to automate repetitive tasks, so we have more time to contribute more valuable works.

 

Respond to change

In many cases, the team starts developing a new feature from scratch with little information, there will be a lot of changes during the development. As Agile testers, we need to work with the team to accommodate changes.

 

 

Self-organize

An Agile team needs to be aware that all team members are in charge of testing and software quality. When we have a problem, it’s everyone’s problem.

 

Focus on people

One key value of an Agile team is to build an environment where everyone has opportunities to contribute and develop their skills. Testers don’t bother to learn more skills to contribute more value to the team. By doing this, we are going to remove the wrong thinking that testing is low-skilled work or that the tester is a second-class citizen. All members of the Agile team are of equal weight.

 

Enjoy 

Have you ever asked questions like what makes you enjoy your work in software development? For me, working with the team to deliver software that helps end-users do their jobs better and brings value to customers makes me happy. In Agile, we can make it happen by adding real values to the team from our viewpoint and skills.

 

Conclusion

In my opinion, the Agile philosophy enables all team members to be able to contribute their values to deliver the best software to customers. I believe that we, as testers, can add more value to the team if we apply the 10 Agile testing principles above and are eager to develop ourselves by learning more skills day by day. 

Thanks for reading the article.

 

 

References:

About the author

Tuan Dang

I have been working in software development for years in multiple roles such as developer, user supporter, and business analyst. I am currently working at Enlab Software as a Scrum Master. I love the Agile philosophy and pursue my career to become a Professional Scrum Master or an Agile Coach.
Frequently Asked Questions (FAQs)
What are the fundamental differences between traditional and Agile testing methodologies?

Traditional testing often occurs at the end of the development cycle, focuses on finding defects, and usually involves a separate testing department. In contrast, Agile testing is integrated throughout the development process, emphasizes preventing defects through continuous feedback, and involves the whole team in quality assurance efforts.

How does Agile testing provide continuous feedback and why is it important?

Agile testers provide continuous feedback by regularly reviewing and testing the product during its development. This approach ensures that the product aligns with business requirements and user needs, and it allows for quick adjustments based on the feedback, thereby reducing the risk of major issues at later stages.

What role does face-to-face communication play in Agile testing?

Face-to-face communication is crucial in Agile testing as it reduces misunderstandings and errors. Direct communication among team members, and between the team and the customer, ensures clarity, quick resolution of issues, and a better understanding of requirements and feedback.

How do Agile testers respond to change and why is it important?

Agile testers are adaptable and respond positively to changes, even if they occur late in the development process. This adaptability is important because it allows the team to incorporate new insights and feedback, ensuring that the final product truly meets the users’ needs and adapts to evolving market demands.

 

What is the significance of focusing on people and self-organization in Agile testing?

Emphasizing people and self-organization fosters an environment where all team members are encouraged to contribute, learn, and develop their skills. This approach ensures collective ownership of the project’s quality, leverages diverse expertise for innovative solutions, and reinforces the principle that every team member’s contribution is valuable.

Can we send you our next blog posts? Only the best stuffs.

Subscribe