7 Key Elements of Agile Software Testing (Part I) Source
Translated

Cui Kang
2022-10-25 11:30:00
660
Summary : Agile testing is a software testing practice that follows the principles of agile software development. The widespread adoption of agile methods has led to a focus on how to test effectively, while agile projects have changed the role of testers. The following article will be divided into two parts to introduce the 7 important factors of agile testing. Firstly the first part covers the following 4 main sections: Using the Whole-Team Approach; Adopting an Agile Testing mindset; Automated Regression Testing; Provide and Get Feedback.
ZenTao: 15 years of dedication to building open source project management software
Download Now

1. Using the Whole-Team Approach

Image Source: Next Levels Coaching

When the entire development team is responsible for testing and quality issues, you will have many different skill sets and experience levels to deal with testing issues that can occur with testing. Test automation is not a big problem for highly skilled developers. Teams design testable code when testing is the team's priority and anyone is involved in the testing task.


Making testers a part of the development team means that we should support and train them to adapt to the fast pace of agile development. And they need time to acquire new skills to work closely with development and customer teams.


You should help the team use the whole team approach if you manage an agile team. Remember that the purpose of agile development is quality, not speed. The team needs testers to help customers clarify their needs, turn them into tests that guide development, and provide the only point of view for releasing excellent products. We should ensure that testers can transfer their skills and strengths to other team members. We should ensure that they are not limited to one role, such as only doing manual testing. We should ensure that when they need help (which may require great courage), team members can help. The reverse is also true. Testers should be ready to help teammates who need their help.


Suppose you are a tester in an agile team and are not invited to the planning meeting and design discussion, or the business user is defining stories and requirements alone. In that case, you should communicate with the rest of the team. You should participate in the meeting with developers and propose to try "three-party collaboration," that is, testers, developers, and business experts. It would be best if you were careful to provide feedback and help the customer provide cases. Let your problems become the team's problems, and let their problems become your problems. Therefore, you should ask your colleagues to adopt a whole team participation approach.

2. Adopting an Agile Testing Mindset

Image Source: Slide Share

We remind agile testers to lose the "quality police" mentality they've always had. Now you are on an agile team, developers participate in testing, and testers can do anything to help the team produce the best products. Agile testing attitude is forward-looking, creative, welcoming of new ideas and willing to undertake any task. Agile testers constantly improve their skills and are ready to collaborate with others. We should trust our intuition and hope that we can help our team and business success.


We don't mean that you should put on the cloak of super test king to protect the world from bugs. There is no arrogance in Agile teams. We should share your pursuit of quality with team members. We should focus on team goals and help everyone work better.


We use agile principles and values to guide you, constantly try the simplest methods to meet testing needs, bravely seek help and experiment with new ideas, focus on generating value, communicate directly as much as possible, and respond flexibly to changes. We should remember that agile development is people-oriented, and we should enjoy our work. When you doubt this, you can retrospect the Agile values and principles to decide what to do.


An important part of agile testing thinking is continuous improvement. Successful agile testers continuously improve their skills. They gain new ideas and skills by reading good books, blogs, and articles. In addition to this, they also attend local user group meetings and join mailing list discussions to get feedback on questions or new ideas. If your company doesn't pay you to attend a great meeting, you can write a report on your experience and exchange it with others at the free meeting. Feedback on the testing and agile development community will also benefit you.


We should experiment with new practices, tools, and technologies and encourage teams to try new methods. Short-term iteration is very suitable for this kind of experiment. You may fail, but soon you can try something else.


To manage agile testers or teams, you should give them time to learn and provide the necessary training support. You should remove obstacles to make them work better.


When you face issues that affect testing, let the team know about them. You can overcome these obstacles by brainstorming. Retrospective meetings can also discuss these issues and find ways to fix them. You can build a list of obstacles and solve one or two in each iteration. It would help if you used a large visual picture or a virtual way to ensure everyone is aware of the problem and can track the progress of coding and testing.

3. Automated Regression Testing

Image Source: Perfecto

Will agile teams succeed without test automation? Maybe, but as we know, successful teams rely on automated regression testing. If you spend all your time on manual regression testing, you will never have time for important exploratory testing (you will find dangerous behaviours hidden in the code).


Agile development uses testing to guide development. To write code to pass the test, you need to run the test quickly and easily. Without a short-term feedback cycle and a safe regression test, the team will soon fall into technical debt, bugs will continue to grow, and speed will become slower and slower.


Automated regression testing is a team effort. The whole team should choose the right tool for each test. Thinking about testing in advance will help developers design code for ease of test automation. Use the Agile Testing Quadrant and Test Automation Pyramid to help you automate various types of tests.


Remember to start simple. You will be surprised to find that some basic automated smoke or unit tests can be very useful.


Test automation is a team effort. It was hard at first, and you need to overcome great pain. If you manage a development or test team, You should ensure that you provide adequate support in terms of time, training, and encouragement. If you are a tester in a team without automated testing, and developers write code crazily so that they won't stop to consider testing, at this point, you will face great challenges. You can try to get support from management and team members to start small-scale automation work.

4. Provide and Get Feedback

Image Source: sachinrekhi.com

Feedback is the core value of Agile. Short-term iterations of agile can provide continuous feedback to help the team function properly. Testers help provide feedback in the form of automated test results, the discovery of exploratory tests and observation results of actual system users.


This is the key that agile methods allow teams to obtain feedback about the software under construction. The story represents a unit of work where testers and analysts provide feedback to developers. Iterative release facilitates feedback from outside the team. Most agile practices create feedback loops for teams to apply.


Testers also need feedback. How do you know you have a good example of the expected behaviour from the customer? How do you know that the test cases you wrote correctly reflect those examples? Can developers understand what code to write by looking at the example you have collected and the tests you have created?


One of the most valuable skills is learning how to seek feedback on your work. You can ask the developers if they have enough information to understand the requirements and can guide the coding. You can ask if the customer understands the quality standards. It would be best if you spent time in iteration planning and retrospective meetings to discuss these issues and propose improvements.


Need more help? Check out the Zentao blog. They have more articles on project management, software management, building cross-functional teams, and so much more.


--


Read more:


Write a Comment
Comment will be posted after it is reviewed.