This may come as a surprise, but there really is no such thing as “Agile testing.” Let’s break this down into two terms: Agile and testing.
Agile is a development approach that has been widely adopted since the early 2000s, whereas testing is a process that determines the quality of a software product. The basic principle in software testing is that it is always context dependent. In other words, you must adapt your process, activities, and objectives to align them with your business context.
How Does Testing in an Agile Way Differ From Traditional Approaches?
The main difference between an Agile approach and a more traditional approach with respect to testing lies in the ever-changing, fast-paced, and continuous character of testing.
With Agile, the objective is to deliver value as fast as possible to the stakeholders. Since an Agile approach embraces change, the concept of value itself can change between sprints or iterations.
When traditional approaches are applied, there is always a period between the analysis and test execution phases where developers are performing their magic. During this period, testers review, evaluate, and analyze the documentation at hand, trying to prevent any defects from entering the code as well as preparing their test case design.
In an iterative or incremental approach, like Agile, such a period does not exist. Every member of the Agile team is considered multi-disciplinary and must therefore be able to perform any tasks within the team. It simply does not matter whether it’s analysis, development, or testing. Given the lack of time to prepare test cases upfront, testing becomes less scripted and more explorative.
Finally, due to the circular motion, a lot of the testing work is redundant. In a traditional approach, the code is stable and frozen when testing starts. As a result, a test that passed four weeks ago should still pass.
In an Agile approach, requirements, user stories, and product backlog items (PBI) may undergo significant changes between iterations based on customer feedback. To ensure that new functionalities do not break the existing solution, rigorous regression testing is required within every iteration, lowering the bandwidth for testing new functionalities.
What Skills and Roles Do Testers Need and Play in Agile Projects?
Whether it’s an Agile approach or traditional approach, the skills that testers need are largely identical. We can organize these testing skills into four categories:
Business or Domain Knowledge: Understanding the context of the work or project
IT Knowledge: General understanding of all the other roles and activities
Testing Knowledge: How to interpret test cases and how to execute them
Soft Skills: How to use analytical skills, communication skills, empathy, and a critical mindset
In fact, testers should feel more at home in an Agile team, as they are more in control. Testers can pull work from the backlog when they are ready as opposed to a traditional approach, where work is pushed to them whether they are ready or not.
What is the Best Way to Assess Quality Risks?
As in all things Agile, the key is collaboration and communication. Every requirement contains a risk to the product. By writing and reviewing the requirements together (i.e., collaborative user story writing) with developers, analysts, and testers, all stakeholders are made aware of possible risks.
It is important to note that not all risks carry the same weight, and mitigating them can occur through different means. Lower-level risks associated with a specific PBI can be addressed in its acceptance criteria. Product risks on a higher level than a single user story can be mitigated in quality gates such as the definition of ready (DOR) and the definition of done (DOD).
The same principle applies for estimation of time. However, Agile team members do not estimate the time required to perform a certain task. Due to the risk of anchoring, it is better to assess tasks on a PBI level using story points. These relative values express the total effort required by the entire team to complete the task. It’s not the sum of analysis, development, and testing in the most favorable circumstances, but rather the team’s evaluation of how much effort the task would require for any given team member to complete.
3 Ways to Enhance Your Understanding of Agile Projects
Like anything in life, improving your understanding of Agile projects requires deliberate actions. Here are three ways you can enhance your knowledge.
Join an Agile Team: Practice makes perfect. Joining an Agile team is a great way to gain valuable exposure and experience in Agile principles to improve one’s understanding and proficiency.
Follow Agile Trainings: Regardless of your field or profession, learning should never stop. Participating in Agile trainings can allow you to learn more about Agile, which you can take into the real world.
Read Great Agile Resources: It is never a bad idea to pick up great literature about Agile. Perhaps less interactive than the first two suggestions, reading about Agile makes it possible to learn from some of the leading Agile figures.
Interested in expanding your Agile skills, experience, or know-how? CTG Academy offers both in-person and online training dedicated to helping those that work in Agile. Discover our Agile trainings and take your projects to the next level. Contact us!