[Original] What is regression testing
The so-called regression testing means that, in the software life cycle, as long as the software changes, it may cause problems to the software; therefore, whenever the software changes,
We must re-test the existing functions to determine whether the modification has achieved the expected purpose and check whether the modification has damaged the original normal functions.
In fact, only from the English word regress is very easy to understand: return to a worse or less developed State. That is, degradation, recession,
Check the unstable state of the software from normal stability to degradation to abnormal operation.
Note: regression testing is more than just for functional testing. From the above definition, it is easy to find ^_^.
Note: The original post was posted on, mainly to ask 51testing "software testing every Monday", so modify this article here ^_^
How to design or select effective regression test cases? (08-05-23)
Http://bbs.51testing.com/thread-115662-1-1.html
Recently, when I got to work in a new company, the most prominent problem is the shortage of manpower. The company's products are used in Windows Mobile, MTK, kjava, Symbian, and website, test staff <5 (+ on me), how to efficiently organize the test team is indeed a challenge? Regression testing is an important part of software testing. Therefore, it takes some time to summarize this article, hoping to provide some suggestions for companies with few testers and numerous products or projects:
You are also welcome to come to my blog to explore software testing: selling barbecue fish testing blog: http://mayingbao.cnblogs.com/
The so-called regression testing means that, in the software life cycle, as long as the software changes, it may cause problems to the software; therefore, whenever the software changes,
We must re-test the existing functions to determine whether the modification has achieved the expected purpose and check whether the modification has damaged the original normal functions.
In fact, only from the English word regress is very easy to understand: return to a worse or less developed State. That is, degradation, recession,
Check the unstable state of the software from normal stability to degradation to abnormal operation.
Note: regression testing is not only for the system test phase, but for the software life cycle ^_^
If the above definitions are clear, effective regression testing should be based on these aspects:
In fact, the most effective regression testing method is based on the development and Test Library; development is based on the creation of the Test Library, each generationProgramThese use cases can be run in the new version.
Only effective regression tests can be conducted effectively to avoid risks from the source (currently, Chinese companies can engage in this level, too few)
1. Strengthen regression testing during unit testing and introduceCodeReview and introduce automatic testing;
2. Strengthen Test Case Review and regression test case selection during integration and system-level testing;
For specific options, refer to the following:
1. Set priorities for developing and designing test cases, such as high, medium, and low, to facilitate future automation or policy selection;
2. Introduce the test case baseline management during configuration management to effectively manage test cases;
3. regularly add and delete test cases to keep them updated;
In regression testing, efficiency and coverage must be effectively combined. There are usually the following strategies:
Risk-based selection test:
What features are software features?
Which functions are most commonly used by users?
Which of the following functions will lead to dissatisfaction?
Which programs are the most complex and error-prone?
Which programs are most likely to spread errors?
Which programs are least confident by developers?
Note: Only effective measures can be taken to avoid the greatest risks and users' dislike. The regression test can be said to have reached 70% tasks!
Tests based on the concept of regress decline:
When a developer modifies a local program, the symptoms may have been handled. Therefore, the developer mainly tests the Changed module and its interface;
However, the root cause may not be reached. Therefore, you need to test the peripheral program and its dependency;
Errors may be fixed, but they may also cause other errors. Therefore, it is necessary to design a regression test for each fixed error.
Based on the comprehensive test policy:
If you have sufficient time and resources, you can perform a comprehensive test to minimize the risk of missing regression errors. However, the test cost is the highest, which is not the best practice!
Other regression tests:
1. Automated regression testing technology based on GUI
2 ad hoc regression tests: Add random tests to avoid regression test vertices
Note: Ad hoc testing can refer to: sell barbecue fish test blog: http://www.cnblogs.com/mayingbao/archive/2006/04/25/384160.html
3. Cross-testing: regression testing of multi-person interactions, especially in core functions, interactive comparison
[This post was last edited by fish selling barbecues at, May 26 ,.]