Having been working in software quality assurance for over 10 years, I have helped many organisations to set up internal QA teams and a vigorous QA process from scratch. It’s both a rewarding and challenging task!
As part of Microserve’s commitment to producing high-quality work for our clients, I joined the team in 2018, tasked with building a QA team and creating a suite of processes. One of our values as a business is ‘excellence as standard’. Prioritising quality in this way would ensure that we would provide our clients with the excellence we strive for.
Where to start?
For me, the starting point of anything is the hardest part. On joining Microserve, I decided the best approach would be to:
- Identify and log what is trying to be achieved
- List the steps needed to get there and then question, how do you know if you have achieved what you set out to do?
That may seem oversimplified, but that’s what QA is; understanding complex needs and translating it into something that can be broken down, understood and tested.
What is trying to be achieved?
So, first things first…..what do we want to achieve?
For the Microserve QA team our overall goal is to “proactively and systematically test code changes and ensure bad code isn’t being delivered into the end product.”
What are the steps needed?
Once we had defined what the QA team were trying to achieve, we then began mapping out how we could provide the best support to our development team, and therefore the best product to our clients.
I’m a great believer in iterative change - I have found from experience the best way is to take little steps to make big changes. It’s impossible to achieve everything all at once and it’s important to realise that sometimes things may not always go exactly as planned.
We started forming our processes by:
- Understanding the environments needed to provide a platform for the test phases to be executed on, so that code can be monitored and tested safely through the development cycle.
- Decide on the test phases to be run against each environment and the scope for each.
- Incorporate the test phases: Ensure the application lifecycle management tool has a workflow that incorporates the QA phases and activities.
- Choose a Test Management tool where test cases and test phases can be managed and executions tracked.
- Understand the team: Get to know everyone and understand their role, skills and how they work.
- Get to know the software/product: How can you test something if you have no idea how it works? Write regression test packs so that you have a log of how the system works and what it is meant to do.
- Define a defect management process: that enables defects to be logged and tracked efficiently.
While this isn’t everything that needed to be done, this was a great place to start to get an understanding of how we can make better processes.
Taking our team on the journey
As humans, we are programmed to fear change and it’s not always easy to get buy-in from everyone. One of the key aspects of setting up any new team is to take others along the journey with you and constantly provide updates as to why we are doing these things and how they can contribute and help. Here at Microserve, our team was really encouraging of these process improvements, and helped me to understand the whole landscape which helped to make our QA team a success.
The measure of success
We wanted to make sure that the process we were putting together was working. It was critical that:
- Defects were being discovered earlier in the process and not in the latter stages of the life cycle. This would save clients time, effort and money.
- Everyone understood the QA process and its value. Both internally and externally.
- The QA process was integrated into the development workflow and did not become a bottleneck or blocker.
- Clients have confidence in the product being delivered to them.
The work is never done
There is more to our QA team than just testing code. Our team is constantly assessing processes, tools and ensuring gaps are filled. We pride ourselves in the fact that we are always looking at ways we can improve these vital areas of our client delivery service.
Working in development is an ever-evolving and fast-paced environment, and there are always new ideas, techniques and tools available. It’s vital that we adapt and customise our offering and process to the different needs of clients, projects and deadlines.
I am thrilled with the work the QA team have done over the past 18 months. The QA team and the process we have created ensures that we deliver high-quality work to our clients, and products that the whole team are proud of.