📜 ⬆️ ⬇️

Quickly lifted fallen is not considered

It will be about the importance of thorough software testing in two different cases:
  1. when further product support is difficult
  2. when product development and support are merged into a single process

For convenience, I will continue to call the first option “Offline”, and the second - “Online”.

The main idea of ​​the article - for the “Offline” option, the availability of high-quality testing is vital, for the “Online” option - a well-established development process is more important than thorough testing .


')
I will give a few examples.
Option “Offline”

The “Online” option is a project on which developers work continuously, and updates get to users automatically.

It is clear that lately Online-solutions are becoming more and more popular, and Offline remain only where there is really no way to go without it. Recalling the previous article about the struggle for survival , we can say that Online are more flexible solutions than Offline, which gives them an advantage.

Online solutions remove a lot of problems from developers. After all, if a bug is found in the software - nothing terrible, you can roll back to the previous version and quickly correct the error. At the same time, most users may not even notice the problem (everyone has errors, but it is important that users are sure that the developers are already working on correcting the newly discovered error). In the offline version this is not possible. This leads to a natural conclusion - the requirements for testing developed software for Offline should be an order of magnitude higher than for Online. And vice versa - in Online-solutions you can transfer some of the forces from testing to the implementation of new features.

It seems that this is why in such products as Facebook developers do not seek to cover the whole code with reliable unit tests (I recently read about this on Habré).

Some personal experience:
Continuously modifying the internal portal of the organization, which is constantly used by a large number of employees, I felt like a “fitter at the plant”, who periodically received complaints and suggestions from employees “it would be nice to fix this pipe laid on the floor below the ceiling” or in this place, our flow is regulated by two taps, and let's make four taps for more convenience ”or“ urgent! assembly line does not work because of yesterday's improvement, you need to return everything as it was ".

That is, in this case, I do not turnkey “ready-made plants”, but continuously repair and improve the already working complex. And although, due to the lack of paranoid testing, the likelihood of problems with such an approach is quite high - that's okay, because the team of “fitters” is always at a low start and is ready to solve problems quickly (well, ideally).

Of course, having a good amount of automated testing is always necessary, especially for critical functions. But in online solutions, the organization of interaction between developers and users comes to the fore. If the interaction is close and operational - any problems will be quickly resolved.

Source: https://habr.com/ru/post/112629/


All Articles