“QA is a bottleneck!”
We often come across such a statement.
I was working with a startup offering travel services. They never had a QA process before I joined, and they wanted me to set up one soon.
While talking to the CTO, I learned that the application was growing as fast as the massive user base. So app crashes were becoming costlier by the day.
We focused on setting up a QA process and started improving the product quality within weeks. Having said that, the QA didn’t receive a fair budget. As a result, testing always struggled to keep pace with accelerating app developments.
Does this sound familiar?
Demand for shopping is 24*7. But how would you know if something went wrong while users are shopping? For example – during late hours, there is an increase in the traffic, at such point if users experience a delay in loading or encounter a 404 error, it will impact your sales and customers trust. Ecommerce monitoring can assist in such situation by continuously monitoring the performance and alerts the team for technical glitches. It constantly helps in preventing a bad shopping experience.
According to the World Quality report 2019-20, only 23% of IT budget is allocated to QA. It was a decreasing trend since 2015 when it used to be 35%. The report also highlights the major contributing factors responsible for the trend. It includes Cloud computing, the increasing adoption of agile and DevOps approaches, integration of development and testing, and resolution of defects much sooner in the SDLC.
Often, it’s true that with a growing business, managers tend to invest in product and development while QA is left behind. Few organizations realize the need for QA and are ready to invest.
But how do you set up a QA process when your organization doesn’t have enough experience or budget?
Let’s discuss how to establish a QA process along with agile and DevOps approaches and the recent changes in the overall development process.
- Setting up Ownership- To start with, you must identify someone who can own the QA process. The size of the team does not matter. It can be a single person team or more than that. Even if you outsource QA, there must be someone to strategize and prioritize the overall software testing.
- “Prioritization of QA in SDLC- QA must be prioritized. It would help if you ensured that tasks that can be tested depending on the bandwidth of the QA team should only be included in the release cycle.
- Integration and alignment of QA- Integration of the whole QA cycle, its estimates, and deliverables should be accounted for. In agile, the QA cycle starts with development itself, so it must provide QA all the product documentation and involve in the ticket grooming activities.
- Automate what can be automated- Automation cannot be an afterthought. Test automation reduces effort and time, eventually increasing productivity. It doesn’t necessarily mean creating a complicated framework, but also small scripts which can reduce the efforts. There are many tools available to help you with test automation without having to hire a test automation expert or spending a lot of time in scripting tests.
- Reporting and bug researching- Every bug should be reported and documented. There are many tools available to record a bug and provide many analytical features to provide valuable insights. Bug researching offers a quick reference to the nature of the application and where it frequently breaks.
- Tools, documentation, and more- Use the tools wherever possible. It saves time significantly and also provides handy documentation. QA should be inquisitive enough to search for new tools and technology. Documentation is crucial as it is almost impossible to remember n no. of scenarios, x no. of bugs and their resolutions.
Best Practices for setting up QA processes
Though this might differ in organizations, there are few practices to consider:
- Drive testing through the user interface- By this, I mean looking at the application through the end-user’s eyes. You might use various tools, automate regression tests, perform API testing, DB testing, code reviews, etc., but do not overlook UI.
- Keep the test environment separate- It is always good to keep an independent test environment similar to production. Do not ever test on the development environment as it is highly compromised.
- Integrate automation tests into the pipeline- Integrate the unit and integration tests in the delivery pipeline to save time. If you are still far away from creating a pipeline, try to make it as a goal.
- Continuous Testing- Continuous testing ensures agility and reduces the cost to fix bugs. According to the World Quality report 2019-20, a bug caught in production costs 70% more than the one found in the early stage.
In conclusion, investing in QA and setting up a QA team would always provide a good ROI and also helps in building the right image of the product by enhancing quality.