Effective test management is an important element of a software development process. A well-planned and organized test management can ensure that the best possible software is produced within fixed time and resources.
The necessity to develop increasingly sophisticated software solutions has led to comprehensive, intelligent test management practices. And the main purpose of this article is to consider key elements of the effective test management process and make an intro to this discipline.
Software testing is a complex activity which requires a significant amount of resources, for this reason, let's examine fundamental points of any testing process:
- planning and estimating
- designing and implementing tests
- executing test cases and scripts
- collecting results and evaluating exit criteria
- reporting activity
Test planning is the first step of the testing process, its main target is to define the testing purpose, develop test strategy, prepare estimates, evaluate risks and determine the testing approach that suits the best to a particular project. As a result of these activities, a test team gets a comprehensive picture of the project, an appropriate test documentation and answers to the following questions: why, when, where and how to conduct the testing.
When planning and estimating activities are completed, the test team proceeds to the test design phase, during which project requirements and objectives are transformed into test suites and cases. This stage generally consists of the following steps:
- reviewing the test basis and evaluating the testability of the test objects
- defining and prioritizing test conditions, in accordance with project specifications
- designing test cases using various test design techniques
- identifying the most suitable test data
- creating traceability matrix that shows interconnection between requirement specification and tests
- determining and setting up specific test environment and testing tools
After the test design, test implementation phase is usually started. During this stage, team efforts are focused on the implementation, prioritization and categorization of tests. Test implementation usually comprises the following tasks:
- implementing and prioritizing test cases
- combining test cases into test suites in accordance with test scenarios
- creating sets of test data which can be used for a large number of tests
- verifying that the test environment is configured correctly and tests are categorized by environments
- placing tests to the appropriate directories in accordance with the predetermined structure
As all the preparatory steps for the test conducting are completed, the test team proceeds to the test execution. This stage is characterized by the following activities:
- executing test procedures either manually or using specific tools
- logging test results and other important information (e.g. version of app under test, environment configuration, etc)
- comparing actual test results with expected results and analyzing the discrepancies to establish the cause
- retesting every inconsistency that has been discovered
- creating defect reports and prioritizing them in accordance with rules
- conducting confirmation testing to ensure that particular functionality has been fixed and defects have not been added in the adjacent or unmodified areas
The next stage is to collect and evaluate test results. On this phase the test team collects all the necessary metrics and testing data that allow to assess project quality characteristics. The following tasks are performed during this stage:
- checking test logs against exit criteria
- collecting different metrics which displays test coverage and status of the project
- evaluating and analyzing metrics
- creating test reports and delivering it to stakeholders
This is the last point. However, a well-designed software development process usually requires test management to come in conjunction with team management, requirement management and defect management. Each of these practices can be applied separately, however, their tight integration is the key to a project success.
Thanks and have a productive day ahead!