If you still can't fully understand what is the essence of smoke testing and regression testing, then you are doing it for nothing

foreword

For many testers who have just entered the industry, they may not be very familiar with smoke testing and regression testing. Boweifeng will share with you what are smoke testing and regression testing? How can we do them well?

1. What is a smoke test

Smoke testing is a type of free testing. Smoke testing finds problems in testing, a bug is found, and developers come and fix the bug. At this time, if you want to know whether this fix really solves the bug of the program, or whether it will affect other modules, you need to conduct a special test for this problem. This process is called a smoke test. In many cases, when doing smoke testing, when developers try to solve a problem, it causes a series of chain reactions in other functional modules. The reason may be that they only focus on the problem at the beginning and ignore other problems. This may cause new bugs.

The introduction of smoke testing into software testing means that testers invest less manpower and time to verify the main functions of a software before formally testing a new version. If the main functions are not implemented, they will call back to the development team for redevelopment . The advantage of this is that it can save a lot of time and labor costs.

2. What is regression testing

Regression testing refers to retesting after modifying old code to confirm that the modification did not introduce new bugs or cause other code to generate errors. Regression testing, as an integral part of the software life cycle, occupies a large proportion of workload in the entire software testing process, and multiple regression tests will be performed at each stage of software development. In incremental and rapid iterative development, successive releases of new versions make regression testing more frequent, while in extreme programming methods, several regression tests per day are required. Therefore, it is very meaningful to improve the efficiency and effectiveness of regression testing by choosing the right regression testing strategy.

Regression testing generally begins with the second round of software testing to verify that the problems found in the first round have been fixed. Of course, regression is also a cyclic process, interspersed in the entire life cycle of software testing. If the regression question is not passed, the developer needs to modify it and return it again until it passes.

3. What is the difference between the two

Smoke testing is to test the most basic functions of a new version after the development of a new version is completed to ensure that the basic functions and processes can go through. If it fails, call back to the development side for re-development; if it passes the test, the next test (functional test, integration test, system test, etc.) will be carried out. The advantage of smoke testing is to save testing time and prevent build failure. The disadvantage is that the coverage is still relatively low.

I have two understandings of regression testing. One is that when you fix a bug, apply the previous test cases to the fixed version again for testing. Second, when a new version is developed and the smoke test passes, you can use the test cases of the previous version to test the new version to see if there are any bugs! In fact, regression testing is used a lot, such as adding a new functional module, etc., so automated testing can perform regression testing efficiently.

4. How to do a good smoke test

The smoke test must be executed before submitting a new test version each time, and the execution specification must be required according to the requirement design document. When the development accepts a new development requirement each time, the smoke test point must be strictly sorted out according to the requirement document, and also It is the basic function points. After all, these function points are to be completed by developers, and they may think that this work is not important. If these basic function points are sorted out, there will be no missing functions in later versions, or there will be problems in function implementation. For problems such as defects, only by keeping all the problems in the early requirement review stage can the user's needs be fulfilled more efficiently, and the probability of problems in the later stage will be greatly reduced.

The specification of the smoke test, in fact, depends on the person, not the process. If the demand analysis is done in a detailed manner, it is impossible to be non-standard, there will be no smoke standard, and there will be no controversial issues. So this requires the development to grasp the requirements at the design stage, what kind of functions to achieve, and what kind of effects to achieve. In fact, development is expected before doing it, but whether it meets the needs of users depends on the relationship with users. Requirements communication and review, so the preparation mentioned here is still the smoke test point generated in the design stage, and then the implementation situation is defined, and the final review is given. Of course, different projects are different, but the principle is that the smoke test does not Passed, the product cannot be submitted to the tester for testing because it does not have the test conditions.

Who should do the execution of the smoke test? Strictly speaking, the tester must do the smoke test, because this is the first stage in the test process, and it is also a necessary condition. Before the tester fails to perform the smoke test , it means that the version does not meet the test conditions, and it will be sent back to the developer. But if this kind of problem occurs every time, it will definitely delay everyone’s time because the smoke test fails to pass the test. In order to save this time, improve To improve the efficiency of version release, developers need to do their own smoke test. Only when developers do a version self-examination before releasing the version can the version be released in a healthy manner. This will effectively improve everyone's work efficiency. Developers It is necessary to do the smoke test, because this is also a responsible attitude towards their own work. Through the smoke test, they can check that those requirements have not been fulfilled and whether there are any omissions, and they will not send the invalid version to the test. , leading to the final retrial, which is a waste of time and greatly reduces efficiency.

5. How to do a good job of regression testing

Regarding how to do a good job of regression testing, generally people think that it is necessary to verify the bug first, and then return to the place related to this modification, but how to evaluate the risks related to this modification is a relatively important test of the system. A question of awareness. How do we do this in our usual regression testing?

(1) Communicate and confirm with the development and project leaders in the project.

This is a very critical link. Good developers will indicate possible impacts when submitting tests.

(2) Test of key points.

It is a very important part. Even if it does not seem to be directly related to this modification, it is best to go through the basic process. Because this is the point that customers care about the most, and it is also where the profit lies. For example, the focus of the test: bug modification, related functions, newly added functions, modified functions, functions with more bugs in the last round of testing. (Testers need to understand which bugs have been modified in this round of development, and pay attention to changes in our bug management tools.)

(3) Evaluation of the developer's ability.

Good developers, when modifying defects, will pay attention to the modification of other places during the modification process. But less capable developers may think less. As a result, after the modification, there are more bugs caused twice. At this time, it is necessary to increase the testing efforts, and if possible, the basic functions of the entire module must be returned.

(4) Maintenance of test cases at the initial stage of the project.

At the beginning of a project, writing test cases is often a process of fully understanding the system. At this time, there is plenty of time, so when writing test cases, mark the associated test cases as much as possible. This is especially important in large projects.

(5) Changing testers, the regression is cumbersome, and the testers can take turns to relieve the boredom of one person doing regression.

Finally, I would like to thank everyone who has read my article carefully. Reciprocity is always necessary. Although it is not a very valuable thing, you can take it away if you need it:

These materials should be the most comprehensive and complete preparation warehouse for [software testing] friends. This warehouse has also accompanied tens of thousands of test engineers through the most difficult journey, and I hope it can help you! Partners can click the small card below to receive  

Guess you like

Origin blog.csdn.net/okcross0/article/details/131382124