|
|
|
|
|
by tomkwong
2203 days ago
|
|
>You've just introduced an exponential explosion into your testing burden. The pay-off: additional functionality that might be useful later.
> edit On reflection I suppose it's not a 'exponential explosion', it's merely a 'multiplicative explosion'. This statement seems rather inaccurate and misleading. What you thought about 'multiplicative explosion' is the number of integration tests required. Generally, software testing focus more on unit tests, and so in this case, the number of tests is still linear. > The article doesn't go into detail on what it means here, but the more serious the software work, the less the artistic mindset applies. [1] This claim seems to be too opinionated. I doubt seriousness makes a difference. I have seen artistic/creative design in some very serious projects before. |
|
I don't follow. The new function has 9 different modes of operation to be tested. I don't see the relevance of the distinction between unit tests and integration tests.
The alternative is to decline to test them all, of course, risking a trade-off between bugs and baggage.
Even in this trivial example, there's a bug resulting from inadequate testing. [0] Perhaps in this example we might be confident enough in the independence of the two parameters that we wouldn't bother testing all 9 combinations, but my general point stands.
> I have seen artistic/creative design in some very serious projects before.
What kinds of projects? Avionics? Formally verified systems?
Formal development solutions like SPARK, and informal frameworks like MISRA C and other restrictive coding standards like [1], greatly restrict the programmer's freedom.
[0] https://news.ycombinator.com/item?id=23365655
[1] https://news.ycombinator.com/item?id=22192656