Against Testing
Software engineering is programming over time. It&#x27;s not so hard to write code that is correct today, if that&#x27;s all that tests did then they wouldn&#x27;t be worth the effort.<p>We write tests so that we know whether future changes have broken the system or not.<p>This article sounds like a reaction to the practice of writing many small, hermetic unit tests, which do little more than recapitulate the code under test. The weakest parts of a system are often in the joints, so the most important tests to write and to run are the integration tests, the ones that tell you with the most confidence whether the code works in the real world or not.<p>See, for example, this puzzling line from the article:<p>&gt; Other tests grow obsolete because the target platform is retired, but not the test. There&#x27;s even less pressure to remove stale tests than useless code. Watch as the workaround for Windows XP is removed from the code, but not the test checking it still works.<p>How do you remove the code for a feature, but not the test for that feature unless either you aren&#x27;t running your tests or your tests aren&#x27;t testing the things that you care about?