'Few developers admit that they do only
random or partial testing and many will tell you that they do
complete testing for some assumed vision of complete. Such
visions include notions such as: "Every line of code has been
reached," which, from the perspective of theory of computation,
is pure nonsense in terms of knowing whether the code does
what it should.'
It is as if he had never heard of 'use cases', which in fact are not mentioned anywhere in the text - a pretty glaring omission. The portion of the code that is reached is irrelevant as long as you have covered all of the use cases of the system. Ideally code that is not run for any of the use cases should be removed but it does not prevent the software from being fit for purpose.
I was waiting for a nod towards the Derek Parfit paradox: The idea that even if avoiding WWII would have made for a better course of history from an abstract utilitarian point of view -- a world with less suffering and more pleasure -- it would be ethically problematic because virtually none of the people who are actually alive today would exist in the alternate no-Hitler scenario. People who actually exist are more valuable than people who only potentially exist (it is difficult otherwise to explain the vast moral difference between a couple deciding not to have a child and having a child then painlessly killing her).
Unfortunately, this seems to justify everything since (especially if coupled with chaos theory) we can prospectively say of the future that the set of people won't be the same at time X -- say, a hundred years hence -- if we don't go to war with Iran.
N.B. That this only form of justification can only work if you are not planning to annihilate everyone on the planet.
It seems pretty useful as a tool for spotting the kind of linguistic howlers that tumble out on first draft. I can see this sort of thing becoming more valuable when more advanced Natural Language Programming APIs become available. It would be cool to see an attempt to encode Orwell's rules from Politics and the English language:
(i) Never use a metaphor, simile, or other figure of speech which you are used to seeing in print.
(ii) Never use a long word where a short one will do.
(iii) If it is possible to cut a word out, always cut it out.
(iv) Never use the passive where you can use the active.
(v) Never use a foreign phrase, a scientific word, or a jargon word if you can think of an everyday English equivalent.
It is also worth noting that countries that are alleged to have spiralled downwards in terms of economic freedom are now far more pleasant places to live. From personal experience, I would cite Ecuador. The same streets of Quito that were mortally perilous are now must-see features of package tourism; the bus journeys that would have taken 14 hours across the country now take 8. Income taxes are still far lower than many who make the top of the index and even the wealthiest have enjoyed the benefits of sustained growth and a relatively stable political climate (given the country's previous history).
Yes, it is starting to look like these 'crony-populist regimes' that threaten economic freedom actually make people a good deal freer in material terms.
'Few developers admit that they do only random or partial testing and many will tell you that they do complete testing for some assumed vision of complete. Such visions include notions such as: "Every line of code has been reached," which, from the perspective of theory of computation, is pure nonsense in terms of knowing whether the code does what it should.'
It is as if he had never heard of 'use cases', which in fact are not mentioned anywhere in the text - a pretty glaring omission. The portion of the code that is reached is irrelevant as long as you have covered all of the use cases of the system. Ideally code that is not run for any of the use cases should be removed but it does not prevent the software from being fit for purpose.