Test Process
The Test Process can be categorized as:
- Planning and Control
- Analysis and Design
- Implementation and Execution
- Evaluating Exit Criteria and Reporting
- Test Closure
Planning and Control
Test Planning
During test planning, we make sure we understand the goals
and objectives of the customers, stakeholders, and the project, and the risks
which testing is intended to address. Test policy gives rules for testing, Test
strategy is the overall high-level approach.
Major tasks of planning would be:
- Determine the scope and risks and identify the objectives of testing
- Determine the test approach (techniques, test items, coverage, identifying and interfacing with the teams involved in testing, testware)
- Implement the test policy and/or the test strategy
- Determine the required test resources
- Schedule test analysis and design tasks, test implementation, execution and evaluation
- Determine the exit criteria
Test Control is an ongoing activity. We need to compare actual progress against the planned progress, and report to the project manager and customer on the current status of testing, including any changes or deviations from the plan.
Major tasks of test control would be:
Major tasks of test control would be:
- Measure and analyze the results of reviews and testing
- Monitor and document progress, test coverage and exit criteria
- Provide information on testing
- Initiate corrective actions
- Make decisions
Analysis and Design
Test analysis and design is the activity where general testing objectives are transformed into tangible test conditions and test designs.
Major tasks of analysis and design would be:
Major tasks of analysis and design would be:
- Review the test basis (product risk analysis, requirements, architecture, design specifications and interfaces). It can be used to build the tests as well as to understand what the system is intended to do after its built.
- Design the tests
- Evaluate testability of the requirements and system
- Design the test environment setup and identify any required infrastructure and tools
Test implementation and Execution
During test implementation and execution, we take the test conditions and make them into test cases and testware and set up the test environment. We transform our test conditions into test cases and procedures, other testware such as scripts for automation. We also need to set up an environment where we will run the tests and build our test data.
Implementation
- Develop and prioritize our test cases and create test data for the tests.
- Create test suites from the test cases for efficient test execution.
- Setup a test execution schedule.
- Implement and verify the environment.
Execution
- Execute the test suites and individual test cases, following our test procedures
- Log the outcome of test execution and record the identities and versions of the software under test, test tools and testware
- Compare actual results with expected results
- Where there are differences between actual and expected results, report discrepancies as incidents
- Repeat test activities as a result of action taken for each discrepancy
Evaluating exit criteria and reporting
Evaluating exit criteria is the activity where test
execution is assessed against the defined objectives. This should be done
for each test level, as for each we need to know whether we have done enough
testing. Based on our risk assessment, we'll have set criteria against
which we'll measure 'enough'.
- Check test logs against the exit criteria specified in test planning
- Assess if more tests are needed or if the exit criteria specified should be changed
- Write a test summary report for stakeholders
Test closure activities
During test closure activities, we collect data from completed test activities to consolidate experience,including checking and filing testware, and analyzing facts and numbers.
- Check which planned deliverable we actually delivered and ensure all incident reports have been resolved through defect repair or deferral
- Finalize and archive testware, such as scripts, the test environment, and any other test infrastructure, for later reuse
- Hand over testware to the maintenance organization who will support the software and make any bug fixes or maintenance changes, for use in confirmation testing and regression testing
- Evaluate how the testing went and analyze lessons learned for future releases and projects
A great post, thank you sashi
ReplyDelete