Comprehensive tests and the cost of "Bug Free"

When I studied software development, we were taught that actual software “error free” was mathematically impossible for anything but the simplest programs. For the mathematical mind, it is very simple to understand how basic things, such as the number of possible inputs and the variability of the platforms, make a mistake not only impossible (in realistic time), but also economically stupid, aside from nuclear energy.

Nevertheless, I constantly hear how business people are draining themselves: "He understood that the software would be error-free, and if this is not all errors should be fixed for free." Usually I answer "No, we will fix any errors detected during the UAT (x) week period", where x is determined by the contract. This leads to many arguments and a loss of work for people who are ready to promise the impossible.

Does anyone know (or can express one thing) a good explanation of why the “error without errors” is NOT realistic or standard, as your average average manager understands?

+4
source share
3 answers

See Gödel Incompleteness Theorems

See also Hilbert's second problem.

See also Turing: problem with stop

See also the MSFT financial statements for number numbers and Microsoft Connect for reporting bugs in Microsoft products for a less intelligent explanation.

+1
source

Perhaps the best way to explain this would be to read a little places that really, really, really don't want software bugs and what they do with it. (You can use NASA as an example, and the first launch of Ariane 5 is an example of what happens with such software errors.) Mid-level managers generally refer to stories and parallel examples.

Alternatively, find out what happens to deals where one party promises the impossible (and this happens much more often than developers). If you can show that this is not suitable for a promise, this can help.

In addition, you may want to delve into what you will need as a minimum minimum to promise free software that would be a truly comprehensive specification.

+1
source

I usually go to managers through a simple explanation of how most programs are really state mechanisms, and that as soon as you start interacting with the real world, the number of possible input states quickly reaches infinity: since the user here enters X while Y happens here in flow 50 m from Z originating there ... etc. etc.

Of course, after about five minutes, their eyes tend to blur. But at least I tried.

+1
source

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


All Articles