Here is the infamous Nagappan TDD paper from Microsoft Research<p><a href="http:&#x2F;&#x2F;research.microsoft.com&#x2F;en-us&#x2F;groups&#x2F;ese&#x2F;nagappan_tdd.pdf" rel="nofollow">http:&#x2F;&#x2F;research.microsoft.com&#x2F;en-us&#x2F;groups&#x2F;ese&#x2F;nagappan_tdd....</a><p>Also discussed in this infoq article<p><a href="http:&#x2F;&#x2F;www.infoq.com&#x2F;news&#x2F;2009&#x2F;03&#x2F;TDD-Improves-Quality" rel="nofollow">http:&#x2F;&#x2F;www.infoq.com&#x2F;news&#x2F;2009&#x2F;03&#x2F;TDD-Improves-Quality</a><p>Here&#x27;s someone&#x27;s thesis paper on it, with data:<p><a href="http:&#x2F;&#x2F;www.nomachetejuggling.com&#x2F;files&#x2F;tdd_thesis.pdf" rel="nofollow">http:&#x2F;&#x2F;www.nomachetejuggling.com&#x2F;files&#x2F;tdd_thesis.pdf</a><p>There&#x27;s also interesting discussions like this<p><a href="http:&#x2F;&#x2F;programmers.stackexchange.com&#x2F;questions&#x2F;206355&#x2F;the-relative-cost-efficiency-of-acceptance-test-driven-development" rel="nofollow">http:&#x2F;&#x2F;programmers.stackexchange.com&#x2F;questions&#x2F;206355&#x2F;the-re...</a><p>&quot;it is my experience that the value proposition for TDD grows exponentially as the time and resources involved in a project grows linearly.&quot;<p>This has also been my own experience.<p>This person&#x27;s comment also is interesting and has data<p><a href="http:&#x2F;&#x2F;programmers.stackexchange.com&#x2F;a&#x2F;210756" rel="nofollow">http:&#x2F;&#x2F;programmers.stackexchange.com&#x2F;a&#x2F;210756</a><p>Some of the above is empirical (read: scientific, no-bullshit) data.<p>My opinion on it has grown to the point that I think TDD should literally be inseparable from programming, and the two together should simply be called, &quot;programming.&quot; Lacking any unit tests whatsoever (TDD or otherwise) should be called, &quot;taking stupid, extremely hazardous risks to save a little time, like reading your phone while driving&quot;<p>I&#x27;ve not found a programming task in at least 5 years that wasn&#x27;t waaaay better-written when done via TDD. Some things, like IO, can be a challenge to unit-test, but that&#x27;s why we have great ideas to solve that like Gary Bernhardt&#x27;s awesome &quot;Boundaries&quot; talk <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=yTkzNHF6rMs" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=yTkzNHF6rMs</a>