When companies launch their products, they often neglect the importance of a well-structured testing process. Testing is typically carried out by a specialist who seeks out errors while ensuring their correction. This specialist is often not a professional tester, but rather someone who understands how the system works and what is ultimately required of it. However, as the company or product expands, testing cannot be left to one or two people who work independently; it must evolve into a structured process consisting of specific activities, tasks, and artifacts that not only control the quality of the product but also guarantee it.
So, how do you build an effective quality assurance and testing function?
What often happens is that managers chaotically start to create a testing process, rather than create a systematic process that combines the strategic vision with a repeatable process. If the testing process is organized incorrectly from the beginning, it will be extremely difficult to change it later. Therefore, it is crucial to define and formalize a testing strategy from the outset that will enable the entire company to move in the right direction when building the testing process.
The testing strategy should include at least 7 key components for organizing the testing process:
- Objectives and scope of testing
- Test team
- Testing methodology
- Testing artifacts
- Process measurement
- Testing tools and test environments
- Process improvement
Working through each of the above components will allow for building a repeatable, systematic process of quality assurance and testing. This approach should align with the company’s goals while being flexible enough to adapt to changes and future scalability.
Goals and Scope of the Testing Process
First of all, before starting to create a testing strategy, you’ll need to clearly define the goal of the testing process, why it is needed, what tasks it will solve, and so on. In addition, it is just as important to understand where and for what testing objects we plan to apply this process. These can be systems, components, and/or business processes. In order to understand this, you’ll need to be able to answer two questions:
- What needs to be tested?
- What will we test?
Often, what needs to be tested and what we will test can differ greatly. This depends on the capabilities of your current development process. “What needs to be tested” is often dictated by the business and company management, but “what will be tested” is already determined by the budget, technical capabilities, and other criteria.
The Team
The team is the most important component of the testing process. Without a team, you won’t be able to accomplish anything. There are usually several ways to form a team, either by hiring a team internally or by engaging an external contractor.
Each approach has its advantages and disadvantages, so before forming a team, you need to determine your expectations of the team and your capabilities. Are you ready to entrust the organization of the testing process to a new person or a company with more experience in this area? If you opt to keep this function internal at your organization, you will not only be responsible for recruiting a team, but the entire process of organizing testing may also fall on your shoulders.
In the case of QA outsourcing, the formation of a testing department can be completely delegated to the vendor. This includes the selection of the team, and the formation, and organization of the testing process. Often, an external vendor has broader expertise in different areas, allowing them to view the organization process with the best practices and experience working with other clients, while an in-house team may have a limited view of how testing should be done due to the experience the team has.
Testing Methodology
The testing process must follow a testing methodology, which should be adopted in the company and correspond to the applied development methodology (for example, in Agile).
At a high level, three key testing approaches can be identified:
- Requirement-based testing
- Risk-based testing
- Exploratory testing
The types of testing will be further defined by the chosen approach, as well as how they will be applied in practice, testing artifacts, testing process stages, interpretation of results, and much more.
Testing Artifacts
Your chosen testing methodology will impact the rest of your testing journey and provide answers to critical questions such as, at which stage should each artifact be created? What templates and principles will be used to prepare each testing artifact?
Depending on the chosen testing methodology, the answers to the above questions can be completely different. However, there is a standard for documenting the testing process, IEEE 829, which defines the following testing artifacts:
- Testing strategy
- Test plan
- Requirements traceability matrix
- Test cases
- Test logs
- Test reports
Measuring the Testing Process
For effective management of any process, it is necessary to be able to measure its effectiveness. The testing strategy should include predefined metrics and allow an understanding of whether the process is achieving its goals and how effective it is. By regularly collecting metrics on the testing process, it is possible to not only understand its current state but also to plan activities for its development in the future.
Testing Tools and Infrastructure
It is still common to find companies that manage their test cases in Word or Excel documents. However, there are several ready-made testing products on the market that can help alleviate the need for manual record-keeping, such as TestRail, TestLink, JIRA Zephyr, Qase.io, and many others.
Therefore, if you are starting to organize a testing process, convenience and efficiency should be among your top priorities, in addition to accuracy. Using automated testing management systems will allow you to not only write test cases in user-friendly interfaces, but also to collect testing process metrics, optimize the work of testers, and integrate various CI/CD tools.
In addition to testing tools, various solutions for test automation are available, which significantly reduce the length of the development process. However, choosing the wrong test automation tools may result in them being unable to perform the tasks as the project evolves.
Beyond selecting the right testing tools, the testing environment also plays an important role. It is important to determine not only the sufficient number of test environments that will be used by testers, but also their capacities (hardware), integration points with other systems, maintenance procedures, and much more. Test environment management is a large contributing factor that must be included in the testing strategy.
Process Improvement
It’s common to come across the practice that, “Any process, no matter what should always be constantly improved”, but in practice, it’s often heard that, “Why do we need to? Our process is already working well.”
So, why should we constantly improve the testing process?
The goals of testing cannot be the same. They are constantly changing depending on the needs of the business, and those needs are dictated by the market and the company’s goals. In addition, new technologies and approaches are constantly being introduced, which offers additional opportunities to further refine your testing process.
No Limit to Improvement
Overall, organizing the testing process at a company is a complex process that includes not only hiring the right employees or outsourced team, but also requires you to think about critical components such as your strategy, your measurements, and future scalability. If you need help creating a testing process or review your current process, our experts are ready to help you. Discover the power of our QA Services and get in touch today!
Alexander Meshkov
Delivery QA Director at First Line Software
Alexander Meshkov is QA Delivery Director at FLS. Alexander has over 10 years of experience in software testing, organization of the testing process, and test management. A frequent attendee and speaker of diverse testing conferences, actively engages in discussions and keeps up-to-date with the latest trends and advancements in the field.