It is actually very difficult to test the stability of software. According to the conventional ideas, only long-term test of user scenarios can ensure the stability of the software to a certain extent, however, the software is stable. Software testing is limited and ended. Infinite testing can only bring about high costs and extend the program indefinitely. In fact, we can look at the stability of software from the opposite perspective. Let's start with a simple mathematical theorem:
If the original proposition is true, the inverse proposition is true.
Original proposition: The software has no obvious defects, so it is a sufficiently stable inverse negative proposition: the software is not very stable, so there are obvious defects. Assume that the original proposition is correct, then, your negative proposition should be correct. Starting from the original proposition, it is difficult for us to convince our team that the software is stable enough, because the stable software has no obvious defects, no data support or objective facts, A simple example is that we cannot discover all the defects in the software; and we cannot spend 2 ~ Three months later, the software was run and a report was generated, saying that the lab software after a long period of time was very stable and time was not allowed, even if time permits, we cannot guarantee that the program will remain stable after three months. It will be much simpler to start from the inverse negative proposition. We can invest enough energy in a short period of time to prove that the software is unstable, for example, to keep the software running under high load, different Stress and concurrent requests, damage operations, and so on. If the software does not have obvious defects, it means that the original proposition is also true, from this perspective, we can solve the problem of software stability verification with ease.
Thoughts on software stability testing