With the increasing importance of software testing to improve the quality of software, software testing has been paid more and more attention. However, the domestic software testing process is not standardized, attention to development and contempt of the phenomenon of testing still exists. Therefore, the importance of software testing, testing methods and testing process, there are a lot of inappropriate understanding, which will further affect the development of software testing activities, and hinder the improvement of software testing quality. The following is a brief list of several representative of the misunderstanding of software testing, and made the corresponding analysis and interpretation.
Myth 1: Testing after software development is complete
In the traditional waterfall model, the software project consists of several stages: User requirements, requirements analysis, summary design, detailed design, coding and implementation, testing, and operation and maintenance. Software testing is an important means of ensuring the quality of software before it is delivered to users, since it is only in the running maintenance phase. Therefore, it is generally believed that software testing is only a phase after software coding.
But with the development of the software testing industry, it is increasingly recognized that software testing should not only be a finishing part of software projects, but should include testing at every stage of the software lifecycle. Software testing is a process activity throughout the entire software development lifecycle, including software test plans, software test requirements analysis, software test case design, software test execution, software defect management, software test risk management, and other software testing-related activities. At each stage of the software project, testing activities for different purposes and different content are required to ensure the correctness of the output of the work products at each stage. The object of software testing is not only software code, but also all other software work products such as software requirement document and design document. Software development and software testing should be interactive, such as unit code after cell testing, module combination after the integration test.
If you wait until the end of the software code to test, the test time is limited, it is difficult to reach the test coverage requirements and testing quality requirements. At the same time, if at the later stage of the project development, some errors and problems are found in the software requirements phase and the design phase, the cost of revising these defects will be very high. There is data that: on average, if the cost of correcting an error at the demand stage is 1, then it is 3-6 times the design phase, 10 times times its in the programming phase, 20-40 times its in the internal testing phase, and 30-70 times the external testing phase, and when the product is released, That's 40-1000 times the number. The cost of correcting errors is not increasing linearly over time, but almost exponentially. As a result, software testing should be carried out as early as possible, and errors will be found and corrected, rather than tested after software development is complete.
Myth # 2: Software issues are found after the release, it's the responsibility of the testers
Many people think that testers need to be responsible for the quality of the software released, and if the software has found a lot of problems after the user, it is the tester's fault and responsibility. This misunderstanding is very the tester's enthusiasm. Defects in software can come from any process in the software development process, and for software testing, it can only prove that the software is defective, and that there is no guarantee that the software will not be error-free. Through software testing, all errors and defects in the software cannot be discovered. From the point of view of software development, the high quality of software is not measured by software testers, but it needs to be ensured by various processes of software life cycle. A software error can not simply be attributed to the responsibility of a person or a team. For example, some errors may not be technical reasons, may come from a chaotic project management, or the customer found that some of the software features are not implemented according to the original requirements, in other words, the software does not do what the customer wants to do, such as the problem is likely to be a software designer to understand the error caused by the design errors.
The quality of the software is not just a matter of testers, but all the people involved in the software project should be concerned about the quality of the software. The improvement of software quality requires the efforts of every project personnel. Testing is only an important part of improving the quality of the software, and quality assurance should be used throughout all development activities, test activities, project management activities, etc. of the entire software development life cycle. At the same time, the use of appropriate development and testing process, to improve the quality of software can also play an important role. In addition to testing activities, the process of software projects should be analyzed to find out the causes of errors and measures to improve them.
Myth 3: Testers don't need to have a high level of skill
Many software industry people believe that the software testing industry for Software Testers skill requirements are not high. Think that the test is only against the product specification book operating software, found that the software and specifications are inconsistent, there is no technical content of the work.
This view is wrong, or at least a step in the right place. With the development of the software testing industry, testing is not only a process of running software discovery defects, but from the early stage of the project, testers begin to intervene, test requirements analysis, plan testing, etc. This requires the tester to have a good communication skills, understanding, analytical skills, but also must have a certain understanding of product development technology.
with the development of software engineering and the improvement of project management experience, software testing has formed an independent technical discipline, and evolved into an industry with huge market demand. Software testing technology is constantly updated and perfected, new tools, new processes, new test design methods are constantly updated, need to master and learn a lot of testing knowledge. Therefore, programmers with programming experience are not necessarily a good tester. Software testing, including testing technology and management two aspects, fully grasp the content of these two aspects, need a lot of test practice experience and test theory knowledge, we need to continue to learn.
Myth 4: Testing is a tester's job, not developer-related
We advocate software testing as early as possible in software projects, or we advocate testing throughout the software development life cycle. Therefore, in the project concept, requirements and design phase, software testing should be involved in the project. Development and testing are mutually reinforcing processes that require close contact between software testers and other members of the project, such as programmers, system analysts, and more communication and coordination in order to improve testing efficiency. The problems identified at these stages will help develop designers to refine requirements and designs.
In the course of project development, white-box testing is usually done for the module by the developer, which is an early test. At a later stage, developers should fix the defects identified by the testers, and the testers will have to perform re-testing and regression testing to meet the developer's changes. So, throughout the project, testing is not just about testers, but the process of working closely with testers and developers.
Myth 5: Test effort is determined by project progress
A standardized testing process should be a continuous process, including test planning and control, test analysis and design, test implementation, and implementation phases. Each stage should also have its own procedures. The majority of people's understanding of testing is often the same as the project schedule, that is, more time to be free from the project delivery, more testing, on the contrary, less testing. This is likely to lead to tight testing times, which may give up some of these tests and may result in missing some important flaws, and there is obviously a significant risk of this practice.
The test progress is determined by the project development progress, which is largely due to the misconception that testing is a phase in the development lifecycle. In fact, we have always emphasized that testing is throughout the entire software development lifecycle. Planning and developing a software testing plan is necessary while developing a software project plan. An important part of the test plan is to determine the progress of the test (i.e., the timing of the test and the scheduling of resources). Therefore, how much testing time should be determined early in the project based on the characteristics of the project and the results of the risk analysis, not just on the project schedule.
Myth 6: Software testing is no future work, only the developer is a software expert
Due to the low overall software development capability of our country, the software process is not standard. The success of the project often depends on the ability of individual developers, who are responsible for the overall design and detailed design of the program, that software development is to write code, the impression is often that programmers are real cattle, with a high status and treatment. Therefore, in this environment, software testing is not taken seriously, the status and treatment of software testers is naturally low, and even software testing becomes dispensable.
With the continuous improvement of software quality requirements, software testing will become more and more important, the status and treatment of the corresponding software testers will gradually improve. In the large companies such as Microsoft software process specifications, the number and treatment of software testers is not much different from the programmer, excellent testers even higher than the programmer. Software testing will become a promising industry, software testing promising. The market needs more testers with extensive testing techniques and management experience, and they are also software experts.
Myth 7: Automated testing is highly efficient and will replace manual software testing
Test automation In some cases can improve the efficiency of testing (such as the completion of repeated test configuration, simulation of large virtual users, etc.), but not all tests are suitable for automation, such as the amount of data that the program needs to handle, the number of times the program runs, or the test requires some people's subjective judgment (such as interface testing), In these cases, automated testing may not be a good choice.
At the same time, the automation test needs to invest a lot of resources and work in the prophase, and the cost of maintenance is very high, including the construction of the environment, the design and maintenance of the test script. Therefore, to the specific situation of specific analysis, can not blindly respected test automation.
The misunderstanding of software testing