This year at the EuroStar conference in Dublin, I was asked to do a 5 minute “Soap Box” talk. To me, that meant that I could do a little rant, so this is pretty much what I said, although perhaps not exactly.
A while ago, someone came up to me and said “How should we implement the agile testing methodology”? I was horrified because I don’t consider agile testing to be a methodology, and not sure how people got that impression. And just last week, someone in my London course, said “agile testing is a myth, right?”, and I was confused because I have been working with teams to understand what agile testing means.
Agile is a set of values – It has a set of principles – it is not a methodology. Extreme Programming is a software development method or framework that follows the agile values and principles. It has a specific set of practices to follow. Scrum is a project management framework which adheres to the agile values, but also has specific set (but different) of practices to follow or at least start with.
When we say agile testing, I think it can be interpreted in a couple of ways – testing on an agile project which is the most common idea, or applying agility to testing on any project – which also works for me.
Agile testing is a way of working. It is an approach to testing – you can apply it to any development method including Kanban or XP or Scrum or ….. or any combination. It’s about when and how we test.
It is a way of thinking, collaborating within a team or in an organization applied to testing activities.
Agile testing promotes the idea of preventing defects by questioning ideas and assumptions early.
Agile testing is about collaborating with team members to automate your regression tests / checks so that they run regularly giving fast feedback on what might have been changed accidentally.
Agile testing encourages expanding your testing skills including exploratory testing to test the product for things we didn’t think about, or having enough knowledge about security to ask the business what level they need.
An agile tester is often a lone tester on a cross-functional team, so they need to learn a little about everything, but know when to ask for help.
Teams understand that testing is an activity that happens though out the development cycle and not a phase at the end. It includes being able to test ideas by asking questions to the business or the team to get clarification and reduce assumptions.
Agile testing is about courage to talk about testing to the team and to the organization, and make testing visible so that everyone knows the status of the product. Agile testers bring testing problems to the team so that the team can help solve the issues, and learn to adapt.
We use simple models like the agile testing quadrants to show the different types of testing that your product might need. It gives visibility into testing. There are a few people that have taken a bit of a twist on the simple model, but still are about visibility into the testing.
We use the automation test pyramid to demonstrate that we need to consider different levels of automation – taking into consideration the whole team approach and what it can offer.
And mostly, it enables testers to be real contributors to the product success, not only by testing the product but also by helping the business build the right thing.