As you can see, any part or aspect of your product can be verified by various tests, but how exactly do QA testing processes happen? Before we look at the different stages in the software QA process, let’s take a closer look at two preliminary steps: identifying deliverables and choosing a testing process model.
The first step in the software testing process is identifying what deliverables must be provided. Some deliverables have to be provided before testing commences, while others will be provided at different stages during the process or after its completion. Some examples include:
Test strategy is an essential management document that provides an overview of the testing approach. This deliverable is prepared by the test manager and is derived from the business requirement specification (BRS). The document often contains the test objectives, approach, scope, types, levels, and entry and exit criteria.
Test Plan and Estimation
The test plan is a document that contains a detailed description of each step of testing. The estimation deliverable provides an estimation of how long each step will take, how much effort will be required, and the overall cost of the process.
The test plan is derived from the software requirements specification (SRS), product description, or use case documents. It serves as a road map for the entire project and is normally prepared by the test manager or test lead.
The test scenario document contains a high-level overview of all the functionality that needs to be tested. Test scenarios are derived from use cases and help the tester determine what to focus on during testing.
Test cases are the steps a QA specialist must go through to verify the software meets the requirements. They often include clearly defined steps, pre-conditions, test data, expected results, and post-conditions.
Test data refers to the information used to run test cases. It needs to be comprehensive and accurate to ensure that defects are properly detected.
Requirement Traceability Matrix
The requirement traceability matrix is a document that helps the testing team determine if all the requirements are covered by test cases. It contains a map of requirements to appropriate test cases. It also provides clients with an easy way to check on the QA processes and track the test execution status.
Test Summary Report
The test summary report document contains the key points of all the test activities carried out and the results obtained. This document often includes the objectives, scope, approach, results, and the members involved in the testing process.
Test Closure Report
The test closure report is prepared by the test manager when the testing process is about to end, and defects have been resolved. It contains a detailed analysis of the testing process as well as whatever bugs were found and fixed.
The test incident report document is prepared when defects are encountered during the test execution process. It contains information such as the status, severity, cause, and description of the incident.
Choosing the Testing Process Models
The next step is to choose what model will be used for the software QA testing process. The four major types of testing process models are waterfall, agile, V, and spiral.
Traditional Waterfall Development Model
Waterfall is one of the oldest models of software development and testing. Here, the development progresses sequentially through the different stages of the software development life cycle.
All the project requirements are defined during the requirements phase, and the testing team only proceeds once each stage is completed. The testing is carried out by an independent group of testers.
While the waterfall development model works well for simple projects where requirements are clearly defined, it’s not ideal for complex projects where requirements change frequently.
The agile model is a more modern method of software development that focuses on breaking down the development process into small, incremental cycles. Under this model, the software QA testing process swiftly responds to changing requirements and prioritizes regular interaction between the client and the development team over long-term planning.
In the agile model, developers continuously write and run unit tests and fix defects as they are discovered. The agile model is better suited for complex projects where requirements change frequently.
The V model, or the verification and validation model, is a rigid model in which development and testing occur in parallel. This model is an extension of the waterfall model. For every phase in the development life cycle, there’s a corresponding phase of the testing process flow.
The V model usually divides the testing process into five phases: unit, integration, regression, system, and testing.
Like the waterfall model, the V is easy to apply and manage but performs poorly when used for complex dynamic projects.
The spiral model is similar to agile but focuses more on risk evaluation and analysis. It has four major phases: planning, risk analysis, engineering, and evaluation.
While it’s ideal for large projects that need continuous risk evaluation, it can be costly and not very advantageous for smaller projects.
What Are the QA Process Stages?
Ideally, quality assurance should begin early in the development life cycle. The software QA process often comprises of the following stages:
During this phase of the QA process, testers review the requirements to ensure that they’re complete, clear, consistent, verifiable, and testable. This helps to facilitate the planning and design phases and prevents defects caused by incomplete or unclear requirements.
Once the requirements have been reviewed, testers can begin developing a strategy and plan deliverables. At this stage, they can define the scope of testing, what types and levels will be required, and what tools and approaches will be used during the process.
With the planning phase complete, QA professionals can begin designing test cases, setting up automation scenarios, and preparing the environment for test execution.
User interface (UI) testing involves confirming that the various UI components, such as buttons and labels, work as specified in the requirements.
User experience (UX) testing aims to detect and fix usability issues and provide the end user with the best possible experience when using the software product.
Exploratory testing is a method where testers do not rely on predetermined test cases but instead develop ideas for testing and execute them right away. Unlike structured testing, exploratory testing requires thinking and cannot be automated.
Regression testing involves retesting already executed test cases after defects are resolved to ensure no new bugs are introduced into the system and that existing functionality still works as expected.