"The bigger our app grows, the more QA resources we throw at it... but it's not fixing our quality problem", said the Director of Engineering.
"Your problem isn't a lack of resources, you have the budget and people. Your problem is a lack of strategy around implementing the right QA operations to scale", I replied.
This was a conversation I had with a very large European media company. I met them at an event and we began discussing their approach to QA. They were outsourcing but the results simply weren’t what they expected.
Throwing more money, people, and effort at a quality problem without the right strategy won't work.
On the opposite end of the spectrum, I was working with a local startup that facilitated simple ecommerce transactions between users.
The CTO admitted that they had no QA whatsoever. They knew they needed to add QA to their development cycle - and fast, as they were already feeling the effects on their bottom line of not prioritizing product quality.
Both of the examples highlight something interesting - the need for companies to consider how to improve QA.
Let’s take a look through three key points:
- What is a QA process?
- Challenges of a QA (quality assurance) process
- 8 ways to improve software testing
What is a QA process?
A QA (quality assurance, sometimes referred to as ‘quality control’ as well) process is a key element in product or service development. The software product is tested to ensure it meets high standards and the goals of your business. Quality assurance needs to be scheduled into your development process from the very start.
QA is an important part of the software development life cycle. Engineers will use a QA process to help them detect areas for improvement and optimization. This means the final product or service will have been tried and tested through continuous feedback loops. You can’t just expect this process to happen on it’s own - you need to have a strategy.
Challenges of a QA (quality assurance) process
A quality assurance process isn’t always a smooth one. Testing is a fundamental part of QA, and making sure you do the right tests is important to having a great piece of software. Here are the main challenges of a QA process:
You need to be specific
Unfortunately, QA doesn’t come with a one-size-fits-all solution. You have to create specifications to suit your product or service. There are so many types of testing out there - unit testing, smoke testing, regression testing, to name but a few - that you need to understand the differences and how to choose the most relevant to you.
Once you have completed the QA process, you should be confident with your product because it’s passed your rigorous testing requirements that are specific to you and your target audience. However, reaching that point takes time, effort, and - importantly - planning.
Testing can be time-consuming
One of the main challenges of a QA process is that it can take a long time. Testing activities can be the most time-consuming aspect, even with automated tests, especially if you need to write new test cases and scripts from scratch. Given that your product will be being regularly tested and updated, it can sometimes take longer than expected to reach the end goal. Optimizing your testing strategy is crucial to combating this, and bringing in QA specialists and a dedicated project manager can help.
When dealing with clients, it’s important that the project team are in constant communication with stakeholders. If you fail to create a clear project objective, it can mean that expectations might not be met. Your test scripts need to directly relate to the end objectives, so a lack of communication can cause confusion among the testing team. It’s no good presenting a finished, high-quality product, only to find out it doesn’t work in the way the stakeholders meant!
Automation tools can help at various stages of software development, and the main one here is automated testing. However, you need experienced and skilled development team members to successfully use automation tools to your advantage. You also need to understand what automation is best suited for, rather than applying it too broadly and missing out on the benefits of manual testing.
8 Ways to Improve Software Testing
Software quality assurance requires a planned set of organizational actions. These actions form a test plan that can change depending on the task at hand and the deadline. In order to get the most out of software testing, here are 8 ways you can look at improving your software testing processes:
1. Let someone own QA
Not every company can benefit from simply bringing in more QA folks but having at least someone in charge of the QA process is invaluable. Even if you outsource every other function of your QA, you need someone to strategize, manage quality standards, and develop the overall software testing plan to follow. Who else will prioritize what should be tested, reported on, and fixed?
Having someone in charge also means that the rest of the test team are answerable to a specific appointed figure. This QA manager should be responsible for managing test data, holding regular meetings and guiding the agile team on their next steps. If and when questions arise, they can be the one for the software developers, stakeholders, and QA testing team to seek out.
2. Integrate your team more
Effective communication is key when it comes to a QA process. Find opportunities to bring the team into the development process as early as possible. This is particularly important for teams using agile methodologies and continuous integration.
“The more you can bring your QA team into the process and get their feedback the quicker you can iterate and adjust,” says Tom, Head of Product for Global App Testing.
Including testers in multiple stages of a product lifecycle or the SDLC means that you get that all-important feedback loop happening much faster. Using this methodology should improve communication and collaboration within the team.
3. Make QA a priority
No, seriously. Make QA a priority in your company. It might sound crazy, but the number of times I’ve worked with companies who simply see QA as a team that comes in at the end of the process to explain what is broken is mind-blowing. QA culture is real. It’s about quality management, experimenting with new ideas, and switching up testing practices and metrics used where necessary. It impacts the entire workflow, not just the last few steps.
We have put together QA best practices if you need a head start in improving your QA. Try to think about the ways in which QA can be a revenue-generating team as opposed to a cost center - you’ll be thankful you did.
4. Integrate earlier
Getting QA involved earlier in the development process (assuming, of course, you completed #3. You did #3 already, right?) means that you stand a better chance of releasing on time. How do we know this? Our research and work indicate that those companies who have their QA team part as early as the design or ideation stage release with more confidence.
This is because your product or service will go through earlier testing, lengthier bug tracking, and more people. The earlier you integrate QA in your processes, the better it will be for the outcome of your product and the user experience.
5. Automate what can be automated
Automation can be fundamental for improving workflow and productivity. Find ways to automate the tests which are repetitive and don’t need a human eye cast over them.
This doesn’t mean go out and splurge a tonne of cash on automating everything! That would be a huge undertaking, resulting in too much time building scripts, tests, and then constantly monitoring them. Instead, focus on small, quick wins and functional testing. Let’s say your software has a login page. Do you really need a manual tester to check they can log on with every new iteration? Or can an automation tool do it for you?
Remember, you can always invest in a test automation engineer and servers to handle more later.
6. Implement a scalable approach
Using crowdsourced testers to expand your testing resources is a no-brainer. You’ve got direct access to people to complete functional exploratory testing, without having to hire new employees. That means you don’t need to retain a large team in the earliest phases, but can quickly scale up as you get closer to product release. It’s a great way to get lots of test results as needed. Ultimately, this can help to improve the usability and functionality of your software for end users.
7. Try to spot possible regression as early as possible
Regression testing and management is vital for a shorter release cycle. You don’t want to get to the final version of something, only to realise the most recent few changes have broken something fundamental!
When you and your team have a good understanding of the software that can experience regression, then you can take actionable steps, including updating test design. Everytime new features are added, it’s time to run another round of regression tests. Pinpointing the software modules that can experience regression means that your QA team won’t need to run a full test to ensure sufficient test coverage.
8. Use the QAOps framework for process improvement
QAOps (that’s a combination of Quality Assurance (QA) and software operations (Ops)) is the practice of intentionally developing the three most important feedback loops when moving fast. These feedback loops are blending, optimizing, and growing to enable structure, stability, and growth.
Implementing this organization-wide means ensuring that you have the tools, development, and business focus to deliver software at scale, speed and profit. This is useful when you’re working as part of a large team of QA engineers with deadlines and stakeholder expectations to meet.
Establish a stronger QA process to optimize results
Thinking you can solve a quality issue by using more resources won't work without fundamental QA strategy behind it. Talking with the product owner, your development team and QA to develop a test strategy will make a huge difference to your results. Whether you use agile, scrum, or more traditional methods, investing in QA is vital.
From experience, you need to:
- Let someone own QA
- Integrate more
- Make QA a priority
- Integrate earlier
- Automate what can be automated
- Implement a scalable approach
- Spot regression as soon as you can
- Use the QAOps framework
Once you begin to implement these QA process improvements, you should see benefits to the way your team works, and the speed at which you can test and update software. Don’t forget to get the infographic version of our 7 Tips to Improve Your QA Operations