In the previous blog we saw that what exactly is Agile testing and in this blog we will see in introduction to Principles For Agile Testers.
What is an Agile tester?
- So get into the principles for Agile testers we first need to know what is an Agile tester? A professional tester who is not scared of change has knowledge about technical and business aspects as well and understands the concept of using tests to document requirements to drive development is an Agile tester.
- Now let’s see what are in ten principles for Agile testers:
- Provide continuous feedback.
- Deliver value to the customer.
- Enable face-to-face communication.
- Have courage.
- Keep it simple.
- Practice continuous improvement.
- Respond to change.
- Focus on people.
Provide Continuous Feedback
- Continuous feedback is the key to agile testing success. By providing feedback we can improve and not make the same mistakes again and again. The main aim is to learn from your mistakes. Testers should help product owners or customers visualize requirements for the stories. Their feedbacks helps in designing the test cases early in the software life cycle. As retrospectives are an important part of the Agile process, providing feedback in it is also helpful. It is one of the most important principles for Agile testers.
Deliver Value to the Customer
- As a tester, it’s your responsibility to tell customers which really is an important function and which is not. The testers help them identify the main functionality instead of just some cool features. The main focus is to try and deliver critical functionality and enhance it later. Critical functionalities should be worked on first as after seeing them implemented, customers can see what enhancements they want. Testing should work on corner cases but should not forget about the happy path of the service. As we get involved in testing it is possible to get involved in corner cases so much that we miss the core functionality. So, we need to maintain a balance between them.
Enable Face-to-Face Communication
- Good communication is the key to success. Agile’s success is totally dependent upon communication. Whether it is between customer and developer or between developers and the testers all communication is very important. Testers should look for unique ways to communicate. Teams may be working in geographically divided. But it should not hinder communications between the teams.
- Testers should never get in the way of any direct customer-developer communication but should help to make sure that communication happens. If a tester finds out that the developer has some confusion regarding the requirements. It’s the responsibility of the tester to set up a meeting between the developer and the business.
- The testers understand the story from the customer’s perspective and from the developers’ technical angle as well. The tester should be able to communicate both ways, that’s why it’s in testers’ best interest to be good at communicating, as they need to do it more than any other team member. Testers act as a bridge between customers and developers.
- The testers should have the courage to speak their minds. They should not be intimidated by anyone. If they find any issue they should report it. If they see any gap in the business requirements they should discuss it.
- The testers should be comfortable in asking customers for examples or developers for help. Asking for examples is the best way for getting the real-world use case of the services. In Agile anyone can perform any task. So, a developer can help a tester in testing some particular scenario. And a tester can help the developers in debugging an issue ass well.
- Testers should not be scared to fail but should learn from their mistake. It’s natural to make some mistakes but we should always learn from them and improve ourselves.
Keep It Simple
- Testers should go for the simplest thing that could possibly work. It is not necessary to go for a long and complicated way. If it’s possible to achieve the same result using the easier way, go for it.
- The main aim of the testers should be to find a simple solution that will deliver the same value. The tester should be able to deliver value to the customers.
- The customers should be the ones to dictate what type of quality they want instead of the testers. As the customer is paying for the service, the customer should be the one to ask and set a standard for quality that they want.
- The testers should help customers make good decisions by taking a simple, step-by-step approach. It is necessary to take small steps towards the goal and achieve it.
Practice Continuous Improvement
- The central core of agile is that the team always tries to do better work and improve. By improving and making changes every iteration we find a perfect balance between what to do and what not to do.
- Through retrospectives, the team can suggest areas of improvement and also what is going well. After each iteration or sprint in Agile, the team gathers together. They discuss what went well and what needs to be improved. Is helps the team identify what they are doing correct and should continue doing it. And what are the things they need to change.
- Impediment backlogs also help us to deal with issues one by one and learn from them. Everyone can have their issues addressed by adding them to the backlog and discuss them in the appropriate meetings.
- The testers can try new tools and report after a few iterations. It is one of the most powerful tools in Agile development. As we have the power to try something new. If it works then fine we can continue with it, if not then we can try something new.
Respond to Change
- In Agile we should respond to the changes positively. In Agile we don’t follow something that is being followed by everyone. We make our own way in Agile and before finding the best approach we need to make many changes to it.
- If the customer missed any requirements, we can work on it in the next iteration. We don’t have a very long schedule in which we cannot make any changes. The customers can add their requirements and the team can work on them if it does not change the scope very much. Even if it does they can work on it in the next sprints, which are 1 week to 4 weeks long.
- The customer has the power to make the change or prioritize the work. In the traditional approach, this was not an option. As once the requirements are locked we cannot make any changes to them until the next release. But in Agile this is completely possible. The customer can make changes and they tell the team what they need to work on.
- The agile tester is part of a self-organizing agile team. When programmers, system administrators, analysts, and the customer team think continually about testing, testers enjoy a whole new perspective. They can take the opinion of people from different profiles.
- A problem is not just for one person but for the whole team. They all find a solution and will try to fix it. If we find an issue or a bug on the deployment day. It is not the responsibility only of the tester but the whole team to solve and deliver a solution.
Focus on People
- Projects succeed when good people are allowed to do their best work. It is important to recognize who is better for a role and who’s not. If a tester starts working on the development part it might be possible that he might be able to complete the work but it will not be his best work as he is not trained for it.
- Agile team members should feel safe and not have to worry about being blamed for mistakes. For doing there best the team should not be following the approach that they cannot make any mistakes but with an approach that if they make a mistake they can learn from it.
- Agile teams that adhere to the true agile philosophy give all team members equal weight. Everyone is equal in an Agile team. developer, testers, database admin, etc have the same importance in a team. Everyone has its own unique skill set which they bring to the table.
- Jobs as agile testers are particularly satisfying because our viewpoint and skills let us add real value to our teams. In Agile where everyone takes responsibility for delivering high-quality software hence the testers are always happy. As they know they can rely on the team that if they miss something the team is there to help them.
So these were the principles for Agile testers which they should follow. See you in the next blog.