The test passed, why are there still many bugs online?

Most testers think that testing is to find bugs. Although this is the main task of testing, the most important task of testing is quality control, and finding bugs and verifying bugs is only an important part of quality control.

I think many testers have experienced such a scenario, that is, all the test environments can pass the test, but after the official launch, there will be various bugs. What is the problem?

In testing work, the common causes of problems are divided into the following categories:

  • Different versions of data are compatible

This is the most common problem. Generally, the iteration of the new version is not only at the code level, but also changes to the database. For the original online data, changes to the database may be affected.
  
For example:
  
if a field is added to the database, the new data will definitely be assigned a value to this field through a new program, but the field of the original data is often empty, and problems will occur when reading the data.
  
Of course, this is just the simplest case. In this case, the test environment can be tested with historical data to find the problem. But there are often more complicated situations, and sometimes it is necessary to manually create database data to simulate data compatibility issues. This is the point where the test is relatively easy to ignore, and it is also the most prone to problems.

  • The difference between the test environment and the production environment

The difference between the test environment and the formal environment is also a frequent occurrence.

There are 2 different cases:

In terms of hardware, the servers in the formal environment are generally better than those in the test environment, so the hardware is unlikely to be the same. Although the impact of this difference is relatively small, it does not rule out that it will affect the operation of the program.

In terms of software, including the version of the program language, the version of the server system, and even the authority control of the server will affect the operation of the program.

If the data compatibility of different versions can be predicted and tested in the test environment, then this situation may only be able to remind the development and operation and maintenance personnel, there is no way to do it in terms of hardware, and the software should be as consistent as possible to reduce the test environment The difference from the formal environment makes the programs in the formal environment run more stably.

  • server configuration

This is different from the programming language version mentioned above, but the configuration at the code level:

Configuration files, including the relative path of the code, the switch of a certain function, or the configuration of the server ip, etc. These are all configured relative to the test environment. If the configuration file is overwritten when it is released, it will also cause problems in the official environment.

The crontab script configured on the server, many programs need to be executed regularly through the crontab script, and the crontab needs to be configured on the server, so automatic configuration is inconvenient to control and maintain. Therefore, most of them still need to be configured manually. If this configuration is missed or misconfigured, it will also cause problems.

The above 3 points are only common. In fact, you may encounter more weird and incredible problems.

For example

  • The code of one of the multiple servers in the formal environment has not been updated, causing problems to appear and disappear from time to time.
  • The primary and secondary database data are inconsistent, and problems will occur when the primary and secondary databases are switched.

There are many problems like this, so at the very beginning, we need to understand the network architecture (click to read the original text). Every intermediate link may have problems, not just the code link.

Therefore, a good test should not only focus on the test at the code level, but from a higher perspective to see the various risks that exist when the entire project is released online. Some can be discovered through testing, but more development and operation and maintenance personnel should be reminded to avoid these online risks. I think this is what good testers should do.

If you see this, you will find that some of the people who thought it was the fault of the testers are actually not so wronged. Because you are lenient to others and strict with yourself, as an excellent tester, you can do more and better!

Finally : In order to give back to the die-hard fans, I have compiled a complete software testing video learning tutorial for you. If you need it, you can get it for free【保证100%免费】

Software Testing Interview Documentation

We must study to find a high-paying job. The following interview questions are the latest interview materials from first-tier Internet companies such as Ali, Tencent, and Byte, and some Byte bosses have given authoritative answers. Finish this set The interview materials believe that everyone can find a satisfactory job.


How to obtain the full set of information:

insert image description here

Guess you like

Origin blog.csdn.net/m0_53918927/article/details/131167431