First talk about software testing. This can be said to be a very exciting area. "How should I test our products?" And "How do I have enough testing for products?" For different kinds of products of different enterprises, different products of the same enterprise, or different types of products It will be very different in actual operation. SEI's SW-CMM has a key practice of different stages in different phases in software development cycles in its key process area of the "Software Products Engineering" in its maturity. (During the discussion of SW-CMM version 2.0, there has been proposes that a key process domain "Software Test Management" is set in the second level of maturity. But in the discussion of version 2.0, there is nothing. From Here we also see that SW-CMM itself is also a "software" in which people develop.) Generally, based on different stages of different stages in different stages, it can be divided into: unit test: Unit Test: The programmed developer is planned and completed, tested for single or associated set of program units. INEGRATION TEST: Plan in the design phase, completed by developers and testers, and testing for different units and their interfaces. System Test: (can be considered as "availability and graphical user interface test") testing the entire system to confirm that it meets the features, quality, and performance of the requirements, quality, and performance. Regression Test: The system used to verify changes or their components still maintain the characteristics. Acceptance Test: Tested the entire system to ensure that it can deliver the status that can be delivered. The specific content and implementation of the tests of the above stages, readers can refer to SW-CMM and books on software engineering and software testing. Don't stay in the reference SW-CMM because the file is only about what to do, but not to describe how to do it. At the same time, all information discusses and methods are generally generalized. For a particular software test, it is necessary to vary and improve the use of the user to improve and improve the efficiency. Here, talk about some of the other aspects of software testing. An ignored software testing purpose is taking the test, many authors have quoted GRENFORD J. Myers as the following perspectives made on software test purposes: 1. Test is the execution process of the program, the purpose is to find errors; 2. A good The test case is that the error that can be found to date; 3. A successful test is to discover the error testing of the undiscovered error. This is a relatively narrow view. As a sober, looking at the global software developer or manager, we should test from the perspective of the software process. An ignored software test purpose is: Testing can help find the software processes used in current development work (also a "software") to make improvements. (In the following discussion, "Error" and "defect" basically considered the same meaning. How do I understand this statement? First, the test is not just to find out the error. Analysis of the causes of errors and errors are of great significance in which phase developed. By analyzing the cause of the error, we can correct it in development actions. At the same time, this analysis can help us in reasoning potential errors associated with the analyzed errors, thereby targeting the methods of detection.
By analyzing which development phase is generated on, while which phase is discovered, we can judge how many development phases have spanning from the incorrect discovery. An important principle of software development is to discover and correct errors as soon as possible. (Of course, a higher principle is to prevent the occurrence of mistakes.) An error can surpass this development stage without discovery, indicating that the detection method of the development phase is defective, and it is not difficult to determine it. Strengthening measures and methods. This is an important part of the software process improvement. If you find and correct errors at the same development phase, the development organization can expect a high quality product and a low-cost, high-efficiency software process. Some projects' hosts believe that all the development phases prior to the test were completed as soon as possible (actual and not completed), start testing as soon as possible to achieve fast and high quality (because there seems to have a longer time available for test). The actual effect will be the "desire of the speed" said by the saying. From common sense, you can know that the development time will continue to expand the income introduced in the previous stage, and it can only be a more large amount of error that takes time consuming. Therefore, the results of correctly analyzing and utilizing tests, we can improve software process very efficiently. Software development whole process detection, strive to correct mistakes from above, we are natural to understand, software errors have not been able to wait until the test begins (according to regular, the earliest test is the encoded unit test). Therefore, the author puts forward a code of software engineering: software development whole process detection, strive to correct errors in this stage. The unit test is started in the "Implementation Stage" developed by software. At this feature research and planning phase, "Demand Analysis Stage", "Summary Design Stage", and "Detailed Design Stage" must have Very clear and practical means and measures are tested to the development results to ensure the correct completion of the stage. How to judge the advantages and disadvantages of a software process, how to improve software process can be carried out under this guidance of this code. This code is simple and clear, but due to the different corporate background, the conditions are different, the implementation of the project products, the implementation method of the actual software process will change. When considering the method of achieving this principle, you can use more theoretical and experience, but when choosing the software processes used in the development of the company, you must have benefits according to whether it can give your own project. The conditions are considered. Don't just do some work without actual significance just to meet a "standard". To avoid cumbersome, striving for simple, organizing and having the greatest effect. Software test automation software test has a large amount of work (according to statistics, it will use 40% development time; some reliability requirements are very high, the test time does even account for 60% of the total development time), but the test is It is possible to apply a computer to automate the entire software, because many of the operations of the test are repeated, non-intellectual, demand for fine attention. Computers are best suited to replace humans to complete these tasks. In this regard, companies will have a very obvious effect on the quality, cost, and cycle of the entire development. Some test operations suitable for consideration of automation are: 1. Generation of test cases (including test input, standard output, test operation instruction, etc.). 2. Execution write control (including single-machine and network multi-machine distribution; night time and holiday operation. Test case call control; test object, range, version control, etc.).