Editor’s note: Victor describes the cornerstones of ScienceSoft’s approach to the QA process setup and shares the tips he gained during his QA practice. Read on to get useful recommendations, and if you feel like you need a deeper engagement of QA consultants, check out our dedicated service.
My practice shows that an inadequate QA process increases the chance of a project’s delay by at least 25% and breeds defects that drive away users and pose risk to business continuity. And an aligned and structured QA process with systematically performed testing activities is a springboard to a project’s success. Summing up the experience ScienceSoft had in QA consulting projects, I can say that designing a profound QA strategy and introducing a stable QA process trigger such long-term improvements as:
- A 25% increase in testing velocity.
- A 30% increase in software quality.
- At least a 40% reduction in project costs.
Below, I summarized the activities we at ScienceSoft take to design QA processes for our customers for you to adopt in order to set up a stable QA process and attain the above benefits.
Setting up a QA process step-by-step
As a software testing outsourcing provider with experience in 730+ projects, we at ScienceSoft have developed a proven approach to setting up an efficient QA process, and it comprises the following activities:
1. Establish context
I strongly believe that an efficient QA process should be tailored to the peculiarities of software under test and aligned with the processes already established within an organization and a project. The knowledge gained during this stage helps lay the foundation for tailoring a future QA process. Thus, before getting down to designing a QA process, we at ScienceSoft investigate the specifics of a customer’s domain, organization, project, and software. We hold interviews with key project stakeholders and study a project specification, functional and non-functional requirements to software, and other project documentation.
2. Analyze quality risks
Having acquired an understanding of software under test, identify and analyze key risks to its quality. I suggest assessing the probability and potential impact of each risk and documenting the findings. Doing so helps to build a future QA process taking into account potential risks and determine the extent and precision with which each functional software module should be tested.
3. Estimate required efforts
At this point, set quality objectives and estimate the time and cost required to attain them. For that, ScienceSoft’s test leads employ a range of techniques. I prefer a work breakdown structure, when software under test is divided into modules, the complexity of each is defined together with testing activities required to validate each module, and these activities are allocated to appropriate test team members. Based on that, I can estimate the duration and costs of the tasks assigned to each tester. And since any project has risks, I add some buffer time to the estimation to compensate for possible delays.
4. Define test team composition and competencies
Based on the testing scope, identify the critical skills required for the test team members. In case there is a gap between the required skills and skills of your test team, consider growing competence via introducing a dedicated team or staff augmentation. To ensure the highest quality of testing in case ScienceSoft is involved in test execution along with QA consulting, we divide test design, functional test execution, automated script design, and automated test execution among dedicated team members with relevant expertise.
5. Design a test plan and develop a test system
After a general estimation is ready, think through the key strategic and tactical details of quality assurance for the project, figure out a test strategy, and design a test plan. In a test plan, for example, I state an overall approach to software testing, the testing types to be included in the testing scope, an approach to defect and environment management. To discover in more detail the information we usually include in a test plan, check out this article. At this stage, I also design appropriate environments for testing and outline the requirements to test data.
The QA process is set, what’s next?
It is erroneous to think that once you have a QA process set up, you can deliver quality software without investing effort in fine-tuning the established QA activities. We at ScienceSoft believe that even a flawlessly designed QA process needs to be systematically reviewed and improved. By the way, to learn what a model QA process looks like, you are welcome to check out the article by my colleague Andrei Mikhailau, Software Testing Director at ScienceSoft, where he describes the characteristics of a stable QA process in detail. To make sure your QA process reflects the changes introduced to software or other project processes, I recommend performing regular QA process audits to detect inefficiencies and reveal the areas for further improvement.
My colleagues and I are enthusiastic about supporting companies at any stage of their QA process improvement journeys. We can assist you with QA consulting or take over the responsibility for the design and execution of QA activities within a QA outsourcing engagement. If you are interested, please let us know.
We help companies to establish effective and structured QA processes considering business and industry specifics, develop a QA strategy, conduct QA audit and find ways to reduce QA expenses.