Agile Testing is an oxymoron, if you´re agile, you have an additional chromoson for testing. There are three phases: testing as an attitude, as a settled way of thinking and as a feeling about something.
The agile principles as described in the agile manifesto are about the balance between the different values, and agile teams are independent from the sourrunding processes & environments.
Agile software development is iterative & incremental, e.g. developing something for a customer who needs something that´s faster then walking by foot, the first solution could be a skateboard, that evolves over a scooter and a bycicle into a vespa. Advantage over not starting to develop directly a vespa is, that the user has something usable right from the very beginning and the team collects early feedback. Futhermore, the client does not have a very clear ider from the beginning about what he wants, he usually just has some feelings about that.
Another thing about testing is, that we don´t test because we mistrust the team, but we test to validate that we´re building the right thing.
No trust results in a lot of ad-hoc testing which has negative implacations such as hich costs.
Testing is an approach of dealing with situations & problems. You should learn something new from every new test, every test should provide some new info.
The approach of Agile Testing is different in many aspects:
- Reduce social risk: Previously people worked in silos, being told what to be done for years.
- Schedule & cost risk: Price & delivery date are often already fixed, this contradicts to asking people to take responsibility, since the decisions have already been taken
- Business risk: Caused by different understandings of the requirements, this can be reduced by face-to-face communications and by showing your work to the users as this is the only possibility to verify.
- Technical risk: Are you using the right technology/ framework? Do we have the right skills? Consider that you never do the same project twice!
We want to learn! Agile applied to the business means to build a walking skeleton first! This helps in creating a vision together with the stakeholders.
Ignoring the stakeholders makes the assumption that you think you know what the stakeholders want!
Agile Teams usually work with user stories: They´re giving context & contain problems, but not solutions. It´s the team´s responsibility to come up with solutions.
Good teams will flip around the card and ask for acceptance criteria and then ask “How are we going to test this?”.
Also good teams will only start working on backlog items which fit the “Definition of Ready”. It e.g. might be an indicator that story size is too big, when failing stories always exceed a certain size.
Continous Improvement is one of the agile core principles!
Things to avoid are:
- overburden (muri): Do not overload your people, otherwise it results in bad quality. Stop when overloaded! Fixing quality later is more then 10x expensive!
- avoid unnecessary variation (mura): Keep the flow even, via backlog grooming/ refining
- wasteful activities (muda): Remove non value adding activities (via the retrospective), but don´t change too much at once (or randomly)
Be careful, because old habits win when being under pressure! It´s the scrum master´s task to help people following decisions instead of their muscle memory. If you don´t follow agreements, how to find out if your improvements are working?
Finally he wraps up his keynote as follows:
- Testing is an attitude, because if we embrace the Agile Manifesto and its principles, we have to accelerate learning, and this requires individual commitment to validate assumptions.
- Everybody makes mistakes, every mistake is an opportunity to learn, and we need to be ready to learn and capitalize on that experience. If we are not, it will just be a failure.
- Testing is an approach, it requires to systematically initiate everything we do by understanding the constraints, the expected outcomes and the possible learnings.
- Testing is a practice, because once we develop the attitude and learned the approach, we will be able to emerge practices, which will make us more effective at learning.
Update: I just saw that Andrea has blogged himself about his keynote, you can find it here: http://www.agile42.com/en/blog/2013/11/04/agile-testing-days-2013-tomasini/