Quality assurance (QA) is a key stage in the product development process, and for people trying to set one up for the first time, it can lead to a rabbit hole of unknowns and additional complexities not originally considered. When you don’t take time to really plan, and implement a thorough QA process, it often ends up being an afterthought, leading to bug-filled releases, customer complaints, and wasted time.
If you want to launch with confidence and release a product your customers come back for, QA has to be embedded in your product development schedule from the very beginning. What’s more, each stakeholder who is involved with the project needs to understand its importance. This includes developers, project managers, and yes, even the sales and marketing teams.
Whether you’re building a QA process for the first time, or looking to make some improvements, here are some tips to get you started.
Planning your QA process
One of the biggest challenges of creating a QA process is that there is no one size fits all formula that will suit every scenario. So, before you establish your system for QA, consider the whole landscape by taking the following into account:
- The testing policies at your organization (these may need to be created)
- The goals of your business
- Current development practices
- The technology stack and tools used by your team
- The complexity of the projects you’re working on
- The end users of your product
- Release procedures
- The structure of your team
- The resources you have available
Your understanding of the above aspects plays a huge role in how you shape or improve your QA process.
5 steps for a QA process
Before you jump into a new product development project, take the time to clarify what counts as QA for your business and how it will take place as part of your product lifecycle. By establishing the right practices and expectations upfront, you’ll reduce the number of defects, bugs, and negative customer reviews when your product launches.
1. Be clear on requirements
Anyone who takes responsibility for QA will tell you that most of the significant issues discovered close to the project delivery date are related to inadequate requirements and incorrect assumptions.
Having stakeholders review and sign off on requirements is essential in the early planning stages of any product. Your business should have a process for setting and sharing acceptance criteria as part of the development process.
The development team also needs to know exactly what ‘done’ looks like so there is no ambiguity around outcomes.
2. Produce quality code
It is impossible for QA to pick up every single bug before launch. However, if your developers have good coding practices and skills, and if they follow the right processes for testing and checking, there will be fewer bugs in the first place.
During coding, have all new code and code changes reviewed by at least two peers on the same team before moving on to the next phase of development.
Whenever a bug is fixed or a new feature is added, have developer testing incorporated as part of the process. When your dev team has its own QA process to review work and check for completion, more mistakes will be spotted and fixed during the development process rather than immediately prior to or after launch.
Have checklists incorporated into your build processes. This will remind developers to tick off the necessary steps to test and review their work before they mark a task as complete.
3. Set up the right environments for QA
Setting up the right test environment ensures software testing success. Any flaws in this process may lead to extra cost and time spent.
The environment you use for testing should be based on client application specifications and should be identical at both the server and client ends. If you’re not testing in an exact duplicate environment, you will end up with inaccurate testing results. I recommend you have testing environments and other testing components pre-configured well in advance.
Another best-case-scenario is to have both a testing and staging environment to ensure your product performs how you expect it to in the real world.
The testing environment helps you be confident that each component works as expected. Meanwhile, the staging environment makes sure all components work as expected when integrated.
Having a well-designed and up-to-date test environment is critical as it provides accurate feedback about the quality and behavior of the application being tested. It further helps you by providing a dedicated environment for you to isolate code and verify the behavior of the application.
4. Conduct test coverage and tests cases review sessions regularly
Quality Assurance is a proactive measure focused on prevention and providing confidence that quality requirements will be fulfilled.
Quality Control is a reactive measure focused on the detection of issues. If you want a robust QA process and products which always meet the standards you’re aiming for, you need to focus on both.
In his book Software Testing Techniques, Boris Beizer coined the term pesticide paradox to describe the phenomenon that the more you test software, the more immune it becomes to your tests. So when the same set of test cases are executed repeatedly, they eventually become incapable of identifying new defects.
To beat pesticide paradox, your set of test cases needs to be reviewed and updated regularly. This may mean identifying gaps, adding a new set of test cases, and deleting existing ones.
Usually, with Agile teams, there is a little spare time for such activities. However, it is recommended you make the effort to schedule them where possible, in order to keep your products performing at their best.
5. Define QA for your team
When you improve your QA process, your team should be comfortable following it. If developers and product managers take your products and company mission seriously, they’ll understand the importance of making sure things work correctly before and after release.
Generally, the development lead or product owner is the one responsible for making sure QA takes place. It’s less usual these days for there to be a separate department for QA, which is why having a strong process and involving a cross-section of your team in QA throughout your build is so important.
Having clear guidelines and expectations across a development team will ensure QA is completed correctly and not forgotten about. As the product lead, take the necessary steps to highlight how essential QA is. Explain that when the right process is factored into every project, QA can reduce engineering costs, improve software quality, increase customer satisfaction, and free people up to work on exciting new projects.
Reaping the rewards
At Tiny, we are committed to providing a quality product. My QA team is closely aligned with our engineering and support teams to ensure we keep bugs and issues to an absolute minimum, both proactively and reactively.
I feel so fortunate to be leading the QA team at Tiny, ensuring our WYSIWYG editor lives up to - and exceeds - expectations. When it comes to a product being successful, you want to make sure the user experience is as seamless as possible - a delight to use. This applies to TinyMCE itself, but also the many millions of applications TinyMCE is used in. If TinyMCE is a delight to use, then we are, in turn, shaping the user experience of so many other existing and emerging applications in the world.
To be a part of that, and to apply my own passion for QA and a great user experience, and many years of experience in this field, is a wonderful thing.