Today, I want to discuss about one of the most underrepresented processes of the software development life cycle, but probably one of the most important one: that is Quality Assurance.
I'm not talking just about the testing, which is an activity at the end of the process where you're trying to find bugs, this is just a small part of the process. What I want to focus on, is how Quality Assurance needs to be an entire mindset throughout the whole process. It applies to everyone in your digital team.
Let's get to it.
There's a lot of confusion or misunderstanding between the words of Quality Assurance (or QA), Quality Control and Testing.
When we produce dynamic websites or software-as-a-service applications, we can sometimes mix those terms in the wrong way. We usually describe the process of a developer completing their task and handing it over to the QA team to try and find bugs or validate the feature.
But it's not very accurate, that's the wrong term. We've been thinking about it a lot in the last few years and we really had to redefine how we describe those different steps in the process.
Quality Assurance needs to happen at all stages of the process.
- From the early definition of the business objectives, the business strategists are planning for quality. We need to think about the risks of what we're building, how the end-users are going to use the product, so we can ensure that we plan the right testing for all those use cases.
- Then during the user experience definition, the UX researchers are defining the quality. We need to ensure that the backend developers are involved early on to make sure that what is prototyped can actually be built efficiently. At that stage, we can also introduce quality gates to ensure the work is being peer-reviewed against usability heuristics, for example, and all the best practices.
- Then during the art direction, visual designers are also designing for quality. Frontend developers need to review those designs for accessibility and plan how they will code the CSS and HTML for those designs into the different browsers for example.
- Then during the build phase, which I think is where most of the time-consuming activities need to happen, using processes like test-driven development, the backend team must write additional code for those automated tests in their source code to validate the expected data being received, or the outputs of the code that they're writing. This helps with regression testing. When we keep adding more and more features those automated tests will help validate and ensure that we don't break something that was done before.
- Then we still have the quality control stage, where a team of testers will use manual and automated methods to validate those features, trying to find bugs and ensure cross-browser compatibility across different devices. This is the core testing activity, but a small part of the overall Quality Assurance
- Finally, the deployment stage and the DevOps team also play a big role in maintaining stable environments. It's not just about the quality of the software that's being designed, built and the software that you deploy... It also comes in the reliability of the architecture where the software is hosted.
So as you see, we need to introduce quality gates at every stage of the process. This is the only option for the end product to be of high standards, to be of quality. So don't just rely on your testers to find issues at the last minute before deployment.
To ensure that you deliver a successful digital product, you really need to bake Quality Assurance throughout the whole process.
Everyone in your digital team is a QA person, including YOU.
That's it for today. If you have any questions about this, or if you need support to define your quality assurance policy or processes for our next digital product, just get in touch. Don't forget to subscribe to my YouTube channel and follow me on Twitter to keep learning with me and grow your career in digital.
Until next time, stay safe and see you soon.