With time, Quality Assurance and software testing have caught the attention of the IT solution providers. Especially, when users demand for performance-driven and reliable applications, keeping a focus on quality allows creating sustainable technology.
From security goals to achieving the QA benchmarks, timely testing could enable testers to overcome any gaps surrounding development lifecycle. However, achieving the goals of creating futuristic tech require a dynamic vision that could contain every aspect of business, QA, and development.
However, the continuously expanding tech landscape and ever-evolving needs of the consumers makes it a mandate to identify any gaps surrounding the development lifecycle and existing software testing practices.
With the motive to feed on different perspectives, this time, Kanika Vatsyayan, VP, Delivery & Operations, interacted with Huib Schoots, Agile & Quality Coach at Quality Accelerators & De Agile Testers. Huib, with his expertise has enabled so many people and organizations to do what they do best, by empowering them while continuously focusing on the agenda of teamwork.
With all those insights to his interests and philosophies, let us quickly jump on the interview to learn about his inspirations, making selections for automation tools, and his philosophies on testing.
Kanika: What makes you feel inspired and allows you to be the best version of yourself?
Huib: The best version of myself doesn’t exist yet. It will be there the day I die. I truly believe that humans will grow and learn all their life. I like to learn and grow and try to continuously learn. I have many ways of doing that. If you want to know how I learn, have a look at the blog post I wrote about a talk I did at TestBash Manchester in 2016 called “A Road to Awesomeness”. You can watch the video of my talk here.
Besides learning, I actively practice aspects of personal leadership. Personal leadership is taking the course of your life in your own hands. I think it is the way to the best version of yourself.
To quote a nice definition: “Personal leadership is the ability to develop and utilise your positive leadership traits to guide the direction of your life instead of letting time and chance determine your course. Personal leadership can begin when you decide to be your own life coach and live by a personal mission statement that reflects your values and life goals.” (Source)
And that is what I do! It started years ago, although I didn’t know anything about personal leadership at all. I wasn’t happy with myself and with my life. I started reading books on self-help, communication, thinking, mindset and leadership. This way I learned about important aspects. I also found mentors who could help me develop the skills I wanted to develop. Some aspects I couldn’t deal with myself or with the help of my mentors, so I searched for professional help.
I wrote two blog post about changing my mindset:
There are many inspiring people who I follow and read about: Simon Sinek, Brené Brown, Tony Robbins, Richard Brandson, Jerry Weinberg, Kim Scott, Michael Pilarczyk, Daniel Pink, Nancy Kline, Harry Collins, Daniel Kahneman and many, many others. I also get my inspiration by watching tons of TED and TEDx videos.
If you want to learn more about personal leadership or have some great resources on personal leadership? Have a look at the workshop Bart Knaack and I did at Agile Testing Days in 2022: Find the leader in you. If you want some quick inspiration to become the best version of yourself, you might want to read this blog post “How to be the best version of yourself” by Tony Robbins.
Kanika: What’s one lesson your job has taught you that you think everyone should learn at some point in their life?
Huib: That learning is an essential part of life, work and especially a tester's job. For me testing is learning on behalf of the customer and team to collect information to enable others to make informed decisions about quality. Testers strive to discover the true status of the product by looking critically at software. What I learned over years is that many people do not really know how learning works. So let me talk about some basics of learning.
Learning is very personal and requires a plan. Think regularly about what you want to learn. I see many people ask questions like: “What course should I take?”, “What book should I read?” or “What is the syllabus for testers?” with thinking carefully about the context. So, I always answer those questions that it depends on what you want to learn. There is no list of things every tester should learn. It depends on your context, personal preferences, your job and many other things. So, learning starts with questions like “Who am I?”, “What skills do I have?”, “What do I want to achieve?”, “What do I need?” and “How do I get there?”.
Effective learning comes from within yourself: it requires intrinsic motivation, the right amount of challenge (see https://www.mindtools.com/a0bop9z/the-learning-zone-model) And personal responsibility. You are the director of your own learning process. Effective learning starts with clear learning goals.
Learning is more than knowing: it requires practice, doing and experiencing in real life situations are needed to truly internalize knowledge. Try to link what you are trying to learn to real-life experiences. This helps your brain make the necessary connections.
Finally, but probably most important: learning can only happen through reflection! Reflection is a process of exploring and examining ourselves, our perspectives, attributes, experiences and actions/interactions. It helps us gain insight and see how to move forward. I wrote a popular blog post about reflection: The art of reflection.
Kanika: Can you share some tips about how to choose a tool/framework for automated testing?
Huib: I can give you some guidelines for the same. First: do not google the answer to this question! The amount of bad blog posts by tool vendors is horrible. The first tip I think of is to start with an automation strategy: why, what and how! Many teams start with tools!
But how do you know what tool will help you best when you do not know what you are going to do with it? Automation is very context dependent, so there is no one best tool. Why do you want to automate? What problems do you want to solve? What do you want to automate? Only then you can start thinking about the how. And after that you can start thinking about what tool will help you best. Bas Dijkstra wrote an excellent blog post about “start with why” here.
If you are looking for solid advice on automation, find some experts in the field you can trust like Mark Winteringham, Richard Bradshaw, Bas Dijkstra, Paul Grizzaffi or Alan Richardson to name a few!
Kanika: What are the steps for executing a successful continuous testing process?
Huib: I can’t answer this question without context. There is no single best way to a successful continuous testing process. When people talk about continuous testing, they mostly mean “the process of incorporating automated feedback at different stages of the software development life cycle” which in itself is not a bad idea at all! Automation can help you speed up some aspects of software development.
Automation can’t replace human thinking, creativity and reasoning. It can help you set up environments, create data, find patterns and do sanity checks but to find new bugs you will need human thinking. One of the biggest mistakes you can make is to try to automate everything! This is what Paul Holland and I call automation addiction. See our Automation Addiction keynote here (video) and here (slides) where we talk about bad automation motivations, bad practices and what automation can and can’t do for you.
Like the answer to the question about automation frameworks/tools it starts with a strategy: first think about why you want continuous testing. Then about what continuous testing should do for you (or what problem you are trying to solve) and only then think about how to get there. Keep in mind what automation can and can’t do for you.
Kanika: Can you share your viewpoint about autonomous automation?
Huib: Autonomous automation you say? I had to ask my followers on twitter to find out what it could mean. And the answers are quite diverse. But I guess you mean the use of artificial intelligence and machine learning to create and run automated checks unattended?
I think AI/ML can assist testers in interesting ways, but I do not believe that autonomous automation will be a beneficial thing anytime soon. Technology is getting better and faster and so does AI/ML. It will evolve and will get better at assisting testers, but I doubt if it will ever be able to do autonomous automation. It will probably be capable of doing some parts of it or in very specific contexts it might work. As soon as autonomous automation is a big thing, autonomous programming will be too?
ChatGPT is the latest popular AI/ML tool. It was on the news lately since schools in the Netherlands are struggling with students who let the tool do their homework. I have been playing around with it for a while. The tool gives interesting answers, but I see a lot of wrong information pop up.
After asking some questions about software testing, I asked: “Do you know Huib Schoots?” ChatGPT gave me this answer: “Huib Schoots is a Dutch software testing consultant, coach and trainer known for his work on testing in agile development and his book "Lessons Learned in Software Testing". He has more than 20 years of experience in the field of software testing and has worked with a wide range of organizations in various industries. He is also a regular speaker at software testing conferences and events, and has written several articles on software testing. He is considered as one of the best software testers in the world, and known for his contributions to the field of software testing and his ability to make complex testing concepts accessible to others". Flattering but wrong. The book mentioned is one of my favorites, but I did not write it.
To do good testing you need to know the product and how it is used. We need humans for that in most cases. We need humans for effective thinking, creativity and reasoning. Testers use tacit knowledge, gut feeling, emotions to test software. It is important to look at software from a human perspective. AI/ML can assist testers with things like modeling, search/identifying, recognizing changes, pattern recognition, etc. But that is quite different from what I would call autonomous automation.
Kanika: How do you decide when you have tested enough?
Huib: Excellent question! This is a question many testers struggle with. In my experience testers easily test too much, which is not a surprise since testers are risk averse and are paid to find problems. And there can always be another problem you haven’t found yet. First of all: there is no way to be sure and I think it is also not up to the testers to decide if you have done enough testing.
So, it is important to work in a way that helps you decide if your testing is good enough and if you have tested enough. There are several things you can do to find an answer to that difficult question:
Learn about the product: what is important? (value or quality) and how can it fail? (risks).
Consider coverage for the known and unknown risks (you can find unknown risks by exploring) with testing and non-testing tasks. Make sure you have one or more feedback loops here by talking to stakeholders about this.
Think about how you will recognize important problems (oracles).
Analyze the risks you have found and the testing you have done preferably together with your client/product owner/stakeholders on a regular basis (which requires you to be good at storytelling):
Can we explain and justify the work we did?
Do we know enough about the state of the product?
Can they make an informed decision?
Kanika: When not to use Agile?
Huib: That is a tricky question. I don’t think people should USE agile. Because I think agile is not something you do, it is something you are! Agile is not a methodology, a process or a series of ceremonies you implement. Agile for me is a way of thinking, a mindset and a way of solving problems. It is adapting to context, being able to respond to change fast enough by creating a culture of learning.
I think agile ways of working (and thinking) can always be used and I recommend everybody to be as agile as you can be. You do not have to implement frameworks like Scrum or SAFe to improve.
By using the fundamentals transparency, inspection (think reflection) and adaptation of Scrum for example you will focus more on learning without changing the way of working dramatically. Don’t focus too much on agile approaches, but try to learn about agility and creating your agile mindset. I am not saying Scrum or SAFe do not have value. But as soon as you see frameworks as a solution, it starts to go wrong.
Kanika: What is the best way to connect with you?
Huib: I am on Linkedin and Twitter. On both platforms you can easily find me and connect with me. Happy to talk to people who are enthusiastic about testing and quality. Looking forward to hearing from the readers.
At BugRaptors, we do everything that can add value to the digital world. And since it is QAs, developers, and business analysts who can call for the quality revolution, stay connected with us for more such QA tech talks.
For more information, reach us through email@example.com