http://www.rbcs-us.com/documents/Why-Most-Unit-Testing-is-Waste.pdf
https://news.ycombinator.com/item?id=7353767
And on hacker news again later
https://news.ycombinator.com/item?id=11799272
"The object community had discovered the value of early feedback, propelled by the increasing speed of machines and by the rise in the number of personal computers."
On breaking into smaller methods to get better testing:
"It was no longer possible to reason about the execution context of a line of code in terms of the lines that precede and follow it in execution, since those lines of code are no longer adjacent to the one you are concerned about."
"People confuse automated tests with unit tests: so much so that when I criticise unit testing, people rebuke me for critising automation."
"You'll probably get better return on your investment by automating integration tests, bug regression tests, and system tests than by automating unit tests. "
" They may be lacking in analytical mental tools or in a discipline of thinking, and they want the machine to do their thinking for them"
"If you have comprehensive unit tests but still have a high failure rate in system tests or low quality in the field, don't automatically blame the tests (either unit tests or system tests). Carefully investigate your requirements and design regimen and its tie to integration tests and system tests. "
"Good testing, again, is based on careful thought and on basic principles of risk management. Risk management is based on statistics and information theory; if the testers (or at least the test manager) don't have at least rudimentary skills in this area, then you are likely to do a lot of useless tests."
paper-why-most-unit-testing-is-waste#test-has-never-failed1 2 3 "Most programmers want to "hear" the "information" that their program component works. So when they wrote their first function for this project three years ago they wrote a unit test for it. The test has never failed." paper-why-most-unit-testing-is-waste#test-has-never-failed1 2 3
"If you cannot tell how a unit test failure contributes to product risk, you should evaluate whether to throw the test away. There are better techniques to attack quality lapses in the absence of formal correctness criteria, such as exploratory testing and Monte Carlo techniques. (Those are great and I view them as being in a category separate from what I am addressing here.) Don't use unit tests for such validation."
paper-why-most-unit-testing-is-waste#assertions1 "When I look at most unit tests — especially those written with JUnit — they are assertions in disguise. When I write a great piece of software I sprinkle it with assertions that describe Why Most Unit Testing is Waste 15promises that I expect the callers of my functions to live up to, as well as promises that function makes to its clients. Those assertions evolve in the same artefact as the rest of my code. Most environments have provisions to administratively neuter those assertions when you ship. An even more professional approach is to leave the assertions in the code when you ship, and to automatically file a bug report on behalf of the end user and perhaps to try to re-start the application every time an assertion fails." paper-why-most-unit-testing-is-waste#assertions1
paper-why-most-unit-testing-is-waste#get-rid-of-unit-tests-that-are-tested-by-system-tests1 2 "get rid of unit tests that duplicate what system tests already do" paper-why-most-unit-testing-is-waste#get-rid-of-unit-tests-that-are-tested-by-system-tests1 2
"System tests drop you almost immediately into this position of reflection"
"Maybe Richard is one of those rare people who know how to think instead of letting the computer do your thinking for him — be it in system design or low-level design. I tend to find this more in Eastern European countries, where the lack of widely available computing equipment forced people to think."
" throwing a bunch of pasta at the wall without thinking much… in part due to an overconfidence in the level of risk mitigation that unit tests are achieving.""
"Keep unit tests that test key algorithms for which there is a broad, formal, independent oracle of correctness, and for which there is ascribable business value."
"Be humble about what tests can achieve. Tests don't improve quality: developers do."