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 the transforming? 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.

 

Agile software development vs waterfall software development

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 - 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 around 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:

 

10 agile testing principles

1. 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.

2. 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.

3. 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.

 

agile testing principle 3 - face to face conversation

4. Have 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.

5. 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 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).

6. Practice continuous improvement

Continuous improvement by looking for tools, learning more skills to do better work, and getting a better return on customer’s 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.

7. Respond to change

In many cases, the team starts developing a new feature from scratch with a 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.

 

agile testing principle 7 - respond to changes

8. 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.

9. 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 values to the team. By doing this, we are going to remove the wrong thinking that testing is a low-skilled work or that the tester is a second-class citizen. All members of the Agile team are equal weight.

10. 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 values 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.

 

Contact us

Reference

About the author

scrum master enlab software Tuan Dang Hi, my name is Tuan. I have been working in software development for years. I have joined many projects in multiple roles such as developer, user supporter, and business analyst. Now I am working at EnLab Software as a Scrum Master in one half, another half of mine is responsible for testing. I love the Agile philosophy. I decided to pursue my career to become a Professional Scrum Master or an Agile Coach.