Thanks to CTG for providing us with this blog post.
What is Agile Testing?
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 testing is always context dependent. In other words, you must adapt your process, activities, and objectives in order to align them with your business context.
How Does Testing in Agile 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, such as 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 4 weeks ago should still pass.
In an Agile approach, requirements, user stories, product backlog items (PBI), may undergo significant changes in 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 do Testers Need & What Roles do they Play in Agile Projects?
Whether its an Agile approach or a traditional approach, the skills that testers need are largely identical. We can organize these testing skills into 4 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 deduct test cases and how to execute them.
- Soft skills: How to deduct 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?
When it comes to Agile, collaboration and communication are key. 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 product backlog item (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 fictive, 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 in Agile Projects
Like anything in life, improving your understanding in Agile projects requires deliberate actions. Here are 3 ways you can enhance your knowledge:
- Join an Agile team
Practices makes perfect. Joining an Agile team is a great way to gain valuable exposure and experience to Agile principles in order 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 then apply in the real world.
- Read great Agile resources
Finally, it is never a bad idea to pick up any of the great literature about Agile. Perhaps less interactive than the first two suggestions, reading about Agile makes it possible to learn from some of leading Agile specialists.
Interested in expanding your agile skills, experience, or know-how? CTG Academy offers both in-person and online training dedicated to help those working in agile. Discover our agile trainings and take your projects to the next level.
Michael Pilaeten , Learning and Development Manager
Breaking the system, helping to rebuild it, and providing advice and guidance on how to avoid problems. That’s me in a nutshell. With 17 years of experience in test consultancy in a variety of environments, I have seen the best (and worst) in software development. In my current role as Learning & Development Manager, I’m responsible for guiding our consultants, partners, and customers on their personal and professional path towards excellence. I’m chair of the ISTQB Agile workgroup and international keynote speaker (United Kingdom, France, Spain, Peru, Russia, Latvia, Denmark, Armenia, Romania, Belgium, Holland, Luxembourg).