I was asked to do a talk on Mindful testing for Swiss Testing Day.
I liked the idea. I have been practicing Mindful Testing personally (and mostly quietly) for the last couple of years, and this gave me an excuse to look back at the ways I have been improving it with my experience.
For reference, the first time I wrote about this topic was a couple of years ago, you can read the original here the original Mindful Testing post.
Mindfulness is obviously not related to testing
I have been practicing mindfulness for 3 or 4 years now. It started after I read about the practice and the apps circling around the Internet. I kept with it because it helps me to focus whenever my ADD tries to take over.
Today I do mindfulness exercises almost every day, and sometimes two or three of times a day. I have a couple of apps to help me with it, if you want recommendations leave me a comment and I will send you the names and why I like them.
In extremely simple terms, mindfulness is the practice of Focusing one’s complete awareness on the present moment.
If it sounds simple and if you think you do that all the time, then you have not thought about it all the way through.
Focusing one’s complete awareness means clearing your head from everything and anything else.
- You do not think about the groceries you need to buy, or the trip you plan to take, or the problems with your kids, or the fight you had with your partner earlier today.
- It means that you are only and completely interested in what you are doing now. Learning and capturing every detail. Imagine the feeling of sitting at the edge of your sit in anticipation, just like you did when watching the last Avengers film in the theater.
- It is being so immerse that time passes without you noticing, because time is less important when you are 100% interested in what you are doing right now.
It is not easy to be 100% mindful, but you also do not need to 100% mindful to gain all the benefits. Sometimes it is enough to be aware of the fact that our mind wanders around, in order to start getting value out of this practice.
As I wrote earlier, I have been exploring the practice of Mindful Testing for a couple of years, expanding on the practical aspects of it.
Today, I believe that the main ideas about this practice can be synthesised in the following 7 points:
- Focus totally on your current testing objectives
- Test only what needs to be tested now
- Test as early as possible
- Provide the important feedback first
- Maintain live communications
- Plan to have feedback sessions
- Reduce interruptions
Let’s review them quickly.
One – Focus totally on your current testing objectives
Many times we start testing based on a vague sense of the feature that stands in front of us.
This is especially true if you are an experienced tester, working on the same project for some months or even years. It happens as we gain a fail sense of self-trust and when we start falling into a repetitive routine causing us to loose focus.
NO – Stop!
You need to understand not only what the feature is, but also what value it is supposed to bring to the user.
More importantly, you need to have a clear objective for what aspect of this feature you want to test in the present session.
If the answer is “I am going to test the complete feature” then make sure you break this down into smaller objectives you can focus on, and more importantly that you can verify you covered them.
Two – Test only what needs to be tested now
Do not try to test too much in one session. Get a clear understanding of what you want to test during the present session, and focus on this point only.
Sure, as you are testing the specific feature you will get ideas of other stuff that needs testing. Don’t fall into the trap of making a quick detour to explore this new path, write it down on your notebook and make it another objective for a separate session.
Three – Test as early as possible
The objective of testing is to provide feedback on the feature (and if possible on the process). Good feedback will help improve the feature, but you also need to make sure to provide this feedback when there is still time to make the improvement.
Many times you will find important things, only to be told that there is no time to do anything about it. This is why you should test functionality as early as you can.
Linking this with the previous point… If you break your testing into small chunks, then you will do good by scheduling these sessions as early as possible.
Four – Provide the important feedback first
Plan your tests within the session in a way that will seek the important feedback first, and then move to the other areas of interest.
If the main question of the team is around response time, then start there! If they are looking for a general validation, do a quick overview before you move into any specific areas. You get the point…
The important thing is to start from the most important areas, so that you can provide this information early in the process, and as part of the process.
Five – Maintain live communications
The previous point was about providing the important feedback first. This one is about providing it as you find it, instead of waiting to communicate any important news until the end of your session.
Small things can wait, but big things need to be know ASAP. It is OK if this will interrupt your session.
This is especially true in Agile and DevOps organizations, where release cycles can be measured in days (and sometimes in hours).
Six – Plan to have feedback sessions
Many times you will not have a big ticket item to communicate. No smoking guns, or “Stop the Presses” bugs, but you will have good feedback that can’t always be translated into concrete bugs or test results.
Make sure you have feedback sessions with your development team planned regularly, to be able to explain what you are doing and finding, and get their inputs on these points.
I even recommend setting up debriefing sessions once you are done testing the User Story, to make sure you covered all the areas and that there are no unusual findings that may raise a flag to someone else in your team.
Seven – Reduce interruptions
This may be also the first point in the list, but for some reason it made more sense to me to place it at the end.
Make sure you can test without being interrupted unnecessarily. These interruptions may come from your team, but nowadays it may come from a whole set of different places (with our current Working from Home lives).
It is very hard to reach a state of concentration that can help you carry a Mindful Testing Session. Once you reach it, you will want to maintain it for at least 45 to 90 min straight.
Be Present & Work on the Highest Value Testing Task
I think this sums up the whole principle in 2 main ideas:
- Be Present means to be mindful. To put all your attention on what you are trying to achieve now, and not focus on 3 or 7 things at the same time.
- Highest Value Testing Task is the place where your work can add the most to the objective of your team. Helping everyone to release the product as quickly as we can, and with the target level of Quality and User Satisfaction.
All the rest is the icing on the cake.
Practitest is an end-to-end test management tool, that gives you control of the entire testing process - from manual testing to automated testing and CI.
Designed for testers by testers, PractiTest can be customized to your team's ever-changing needs.
With fast professional and methodological support, you can make the most of your time and release products quickly and successfully to meet your user’s needs.