The main principles of software testing can be best described on the basis of the main activities that take part in testing.
Although there are many various methods to sort them, the main test activities consist of the following phases, which are located in strict chronological order:
Test Planning and Preparation
The main objectives of this phase are the right choice of testing purposes, general testing strategy and preparation of specific test cases and the common testing scheme.
Test Execution
This phase aims at a thorough review and analysis of the software product behavior.
Analysis
At first it is carried out a final inspection and analysis in order to determine whether the problem has been investigated. If so, then we apply the following activities in order to make sure that the main causes of failures and errors are eliminated.
The general scheme of these activities can be described with the help of general testing process. Comparing with the general software development process, these activities have many similarities. In fact, we can consider this overall testing process as an instance of the general quality engineering process to testing. The basic test activities are focused around test execution or implementation of the actual tests.
At a minimum, testing involves running the software and interaction with related observations. Actually, many types of informal tests include just the activities connected to test execution, with some informal means of communication with the results and remove the errors, but without much planning and preparation. However, test planning and preparation activities play a much more significant role in the overall testing process.
The performance of a specific test case or a sub-division of the test execution sequence is often considered as a test run. One of the main tools to effective test carrying out is the processing of problems to ensure that defected runs will not block the execution of other test cases. This is especially important for systems that require further management. Despite the fact that many people believe that error correction is part of the development process, re-verification is considered as a part of testing.
The data that was obtained during the execution can be used to find and remove defects, which can cause serious errors. Once we have determined whether the test is working correctly or wrong, appropriate actions can be used to find and neutralize the underlying defects. Further analyses can be carried out to provide reliable feedback to the software testing and to the overall engineering process.
Analyzing the results provide us with information on the evaluation of the progress of work, effort, defects and product quality. This information can help us to decide when we need to stop testing relying on facts. Some of the tests can help to identify opportunities for continuous improvement of product quality. That’s why some other activities also need to be supported.