In order to ensure the quality and reliability of the software; it is necessary to conduct an accurate technical review of the software before the end of each development stage such as analysis and design. However, due to the limitations of people's abilities, the review could not find all the mistakes. And a lot of errors are introduced during the coding phase. These errors and defects will eventually be revealed if they are left behind when the software delivery is put into operation. But by then, not only will the cost of correcting these errors be higher, but it will often have very bad consequences.
Software testing spans two phases in the software lifetime: usually, after each module is written, it is tested called a unit test. Coding and unit testing are part of the same phase of software life. After this phase is over, various final testing is performed on the software system. This is another phase of the software life cycle, the testing phase, which is usually undertaken by a dedicated tester. A large number of statistics show that the workload of software testing services often accounts for more than 40% of the total workload of software development. In extreme cases, the cost of testing software that is related to human life safety may be equivalent to the total development steps of software engineering. Therefore, we must attach great importance to software testing, and never think that the software development work is almost completed after writing the program. In fact, there is about the same amount of development work to be completed. For testing purposes only, its goal is to find errors in the software, but finding errors is not our ultimate goal. The fundamental goal of software engineering is to develop high-quality software that fully meets the needs of users.
Purpose of Software Testing
There are two completely different test objectives based on different positions. From the user's point of view, it is generally desirable to expose errors and defects trapped in the software through software testing services to consider whether the product is acceptable. From the perspective of the software developer, it is hoped that the test will become a process that indicates that there is no error in the software product, verify that the software has correctly fulfilled the user's requirements, and establish the user's confidence in the quality of the software. Because there are often many unexpected problems in the program, they may be overlooked, and many hidden errors may only be exposed in certain circumstance. Since the goal of testing is to expose errors in the program, it is not appropriate from a psychological point of view to be tested by the programmer himself. Therefore, in the comprehensive testing phase, the testing team is usually composed of other personnel to complete the testing work. In addition, it should be recognized that testing must not prove that the program is correct. Even after the most rigorous testing, there may still be undetected errors hidden in the program. The test can only find errors in the program, and can't prove that there are no errors in the program.
Comments
Post a Comment