A testing process consists of the following seven main groups of activities. The seven groups of activities are test planning, test monitoring and control, test analysis, test design, test implementation, test execution, test completion. Each group of activities is composed of essential activities. Each activity within each group of activities, in turn, may consist of multiple individual tasks, which would vary from one project or release to another. So we have seven groups of activities, each of which contain several activities. Each activity might contain one or more tasks. Test activities are organized and carried out differently in different life cycles.
- Test planning
The test planning is where we define the objectives of testing, decide what to test, who will do the testing, how they will do the testing, define the specific test activities to meet the objectives, define when we can consider the testing complete, which is called the exit criteria. When we reach the exit criteria, we will stop testing and raise a report to the stakeholders to decide if testing was enough. All these are within constraints imposed by the context of the project. Test plans may be revisited based on feedback from monitoring and control activities.
2. Test monitoring
Test monitoring is the ongoing activity of comparing actual progress against the test plan using any test monitoring metrics defined in the test plan. Suppose there is deviations between what’s actually happening from the plan. In that case, we should control the testing activity by taking any necessary actions to stay on track to meet the target objectives. Therefore, we need to consider both planning and control throughout the testing activities.
Remember the exit criteria that were defined during test planning? Well, during test monitoring and control, we should always evaluate the exit criteria to see if we have met the exit criteria or not. Evaluating the exit criteria is the activity where test execution results are assessed against the defined objectives. We will talk more about the exit criteria in the test management section, but for now, the evaluation of exit criteria for test execution may include: checking test results and logs against specified coverage criteria, assessing the level of the component or system quality based on test results and logs, determining if more tests are needed.
3. Test analysis
Test analysis is concerned with the fine detail of knowing what to test and breaking it into fine, testable elements that we call test conditions. It is the activity during which general testing objectives are transformed into real test conditions. During test analysis, any information or documentation we have is analyzed to identify testable features and define associated test conditions.
One term we need to learn is test basis. Test basis is any documentation that we can use as a reference or base to know what to test.
Test analysis include the following major activities.
- Analyzing and understanding any documentation we will use for testing to ensure its testability.
- Identify the features and sets of features to be tested.
- Define and prioritize the test condition for each feature based on analysis of the test basis and considering functional and non-functional, and structural characteristics, other business and technical factors, and level of risk.
- Capture bi-directional traceability between each element of the test basis and associated test conditions
=> Verify whether the requirements are consistent, adequately expressed and complete. Validate whether the requirements accurately capture customer, user, and other stakeholder needs
4. Test design
During test design, the test conditions are elaborated into high-level test cases, sets of high-level test cases, and other testware. So test analysis answers the question what to test, while test design answers the question how to test.
Test design includes the following major activities.
- Designing and prioritizing test cases and sets of test cases
- Identifying neccessary test data to support test conditions and test cases
- Designing the test environment and identifying any required infrastructure and tools
- Capture bi-directional traceability between the test basis, test conditions, test case, and test procedures
5. Test implementation
So test design answers the question: How to test? While test implementation answers the question: Do we now have everything in place to run the tests?
Test implementation includes the following major activities:
- Developing and prioritizing test procedures and, potentially, creating automated test scripts.
- Creating test suites from the test procedures and automated test scripts, if any.
- Arranging the test suits within a test execution schedule in a way that results in efficient test execution.
- Build test environment
- Prepare and implement test data and to ensure it is properly loaded in the test environment
- Verifying and updating bi-directional traceability between the test basis, test conditions, test cases, test procedures, and test suites
6. Test execution
Test execution is critical for validating that the software meets the requirements and works correctly before it is released to users. It helps ensure that any bugs or issues are identified and addressed, contributing to the overall quality and reliability of the software.
Test execution includes the following major activities
- Keeping a log of testing and testware we used in running the tests
- Running test cases in the determined order manually or using test automation tools
- Comparing actual results with expected results
- Analyzing anomalies, it is when there’s a difference between actual with expected results
- Reporting defects based on the failures observed and communicating them to get them fixed
- After fixing the bug, retest the app to make sure that the new fix didn’t introduce bugs
- Verifying and updating bi-directional traceability
7. Test completion
Test completion activities occur at project milestones. Test completion activities collect data from completed test activities to consolidate experience, testware, and any other relevant information. Test completion activities ensure that everything is finalized, synchronized, and documented, reports written, defects closed, and those defects deferred. Test completion includes the following major activities.
- Checking which planned deliverables have been delivered.
- Ensuring that the documentation is in order.
- Checking whether all defect reports are closed, entering change requests or product backlog items for any defects
- Creating a test summary report
- Finalizing and archiving the test environment, the test data, the test infrastructure, and other testware for later reuse.
- Make sure that Delete any confidential data
- Handing over the testware the maintenance teams
- Analyzing lessons learned from the completed tests to determine changes needed for future iterations