First, software testing :
Testing is the inspection and evaluation of the quality of software products. On the one hand, it checks the quality of software product quality problems, on the other hand, the quality of the product objectively evaluated.
Test purpose: Simply put, is for the user, the ultimate goal of testing is to ensure that the final product to the user's function in line with the needs of the user, the problem of as many as possible before the product to the user to find and correct.
In particular, testing generally achieves the following objectives:
(1) ensure that the product has completed the functionality it promises or publishes, and that all users have access to features that have clear written instructions ------ in a sense with ISO9001 is the same kind of thought.
The lack of clear written documentation of the product is a short-term behavior of the manufacturer and is an irresponsible performance.
The so-called short-term behavior, refers to the lack of clear written documentation is not conducive to the final smooth delivery of products, easy to conflict with users, affecting the reputation of manufacturers and future cooperation with users ; at the same time, it is not conducive to the late maintenance of products, but also make the manufacturers spend more than the user training and technical support costs. In the long run, this is not a good deal.
Of course, the writing and maintenance of written documents is the most important, the most difficult, and the most easily overlooked for projects developed using rapid prototyping (RAD) .
Finally, the written documentation is not sound or even incorrect, but also the biggest and most headache problems encountered in the test work, its direct consequences are low test efficiency, unclear test objectives, insufficient testing scope, resulting in the final Test can not fully play the role of test results are not ideal.
(2) ensure that the products meet the performance and efficiency requirements.
Operating system is inefficient ( low performance ), or user interface is unfriendly, user operation is inconvenient ( low efficiency ) . Products can not be said to be a competitive product.
What users are most concerned about is not how advanced your technology is, how powerful it is, but how much he can benefit from these technologies and capabilities. In other words, the user is concerned about how much he can get out of it, not how much you have put in.
(3) ensure that the product is robust and adaptable to the user environment . Robustness, or stability, is a fundamental requirement for product quality, especially for a work environment that is critical to a transaction or time. It is also impossible to assume that the user's environment
( some items may be excluded ) .
Second, the principle of testing --good enough
For relatively complex products or systems,Zero-bug is an ideal,Good-enough is our principle.
The Good-enough principle is a principle that weighs the input-output ratio:
Inadequate testing is irresponsible ; Excessive testing is a waste of resources, which is also an irresponsible performance. Our operational difficulties lie in: how to define what kind of tests are inadequate and what tests are excessive. the only available answer to the current situation is to set minimum tests to pass standards and test content, and then to analyze specific issues.
In the software testing process, should pay attention to and follow the specific principles, can be summarized as the top ten items:
1. All testing standards are based on user requirements .
As we know, the goal of software testing is to verify the consistency of the product and confirm that the product meets the customer's needs, so testers should always stand in the user's perspective to see the problem, to determine the impact of software defects, the most serious errors in the system are those that cause the program can not meet the needs of users of the defect.
2. Software testing must be based on the idea of "quality first" to carry out the work, when time and quality conflict, time to obey the quality.
The concept and culture of quality (such as zero-defect "doing things right The first time") is also the basis for software testing.
3. define the quality standard of the product beforehand.
With the quality standard, we can analyze and evaluate the quality of the product according to the result of the test, for example, before performing the performance test, we should define various indexes related to the performance of the product. Similarly, test cases should determine the expected output and cannot be verified if the test results cannot be determined.
4. Once the software project is started, the software test begins, not when the program is finished, and the test begins.
Before the code is complete, the tester participates in the review of requirements analysis, system or program design, and prepares test plans, test cases, test scripts, and test environments, and the test plan can begin as soon as the requirements model is completed, with detailed
Test case definitions can begin when the design model is determined. "Early and continuous testing" should be the motto of testers.
5. Exhaustive testing is not possible.
Even a moderately sized program, with a very large number of path permutations, is not possible to run each combination of paths in the test, however, fully overwriting the program logic and ensuring that all the conditions used in the programming are possible.
6. testing by third parties will be more objective and effective.
Programmers should avoid testing their own programs for best results and should be tested by a third party. Testing is a "critical" behavior, and mental state is a barrier to testing your own programs. At the same time, the error of understanding the requirements specification is difficult to find in the programmer's own test.
7. Software test Plan is the precondition of doing software testing work.
Therefore, before conducting the actual testing, a good, practical test plan should be developed and strictly implemented, in particular to determine the test strategy and testing objectives.
8. test cases are designed, not written out, so according to the purpose of testing, the corresponding method to design test cases, so as to improve the efficiency of testing, more error detection, improve the reliability of the program.
In addition to checking whether the program did what should be done, but also to see whether the program did not do things, should not only choose reasonable input data, for illegal input should also design test cases for testing.
9. do not disregard the test cases, excluding arbitrariness.
In particular, when a modified program is re-tested, if the test case is not strictly executed, it is possible to ignore a large number of new errors caused by the modification errors. Therefore, the relevance of regression testing should also be given sufficient attention, and a significant portion of the resulting errors are missed in the early test results.
10. More in-depth testing should be performed on the segments that are found to be more erroneous.
In general, the more errors that have been found in a program, the greater the probability of errors that exist. The phenomenon that occurs in the error set may have a great relationship with the programmer's programming level and habits.
What are the basic principles of software testing and software testing?