C++11 Via Test-Focused Learning: Uniform Initialization
http://www.dzone.com/links/r/c11_via_tfl_testfocused_learning_uniform_initiali.html
Exploring the uniform initialization scheme of C++11 via unit tests
And even with TDD, I don't often find myself breaking a lot of things that were already working, though it does happen. In those infrequent cases, it's extremely valuable to know I broke stuff that was working. I.e., it's pretty sad to ship changes that broke other behaviors, things you had the faintest clue that you were impacting.
What I do see gobs of, when doing TDD, is the tests preventing crap code from getting integrated in the first place, i.e. when I or others first write the code (or change the code of others). From the testing perspective, that's the real thing they do--gate the defects from ever leaving your desktop, and in a far faster manner than most other routes.
Unless, of course, one is a perfect coder.
In any case, TDD has more important benefits that I've also gotten. Easily worth it for me.
Benefits--not pushing logic defects gives me more time to invest in other important stuff; I end up with tests that document all the intended behaviors of the stuff I'm working on (saves gobs of time otherwise blown trying to understand what code does so I can change it safely); I'm able to give a lot of attention to ensuring the design stays clean. Plus, it's enjoyable most of the time.
"They incur technical debt and bugs at the same rate as other code." Not at all true.
For me, it depends on the "stuff" and its longevity. E.G. for JetBrains, I'd rather pay ~$600 once and for all, since I doubt I'll move off of it any time soon. Instead, to get updates, I'll now pay $299 per year in perpetuity (after yr 2). So if I use it 10 more years, I plunk out almost $3000.
Even all the little junk adds up. $10 for Zoom, $12.50 for Slack, etc. etc. As a developer / consultant working in many different languages on a few platforms, I'm spending close to $2000 for subscriptions each year. It's a bit much.
https://searchcode.com can be useful in helping find repos based on code criteria.
Were it me, I'd build something small and interesting to me, write some unit tests against it after-the-fact. Then I'd do it again, using TDD the 2nd time to see how the approaches differed.
Find someone to pair with, particularly someone who's done a bit of TDD before. It'll be a lot quicker to work through.
At some point, as another poster suggested, read some of the debate on TDD. But learn it first, and from those who have succeeded with it in a professional capacity--so you can be better educated about where its value lies. It's a valuable tool, but no tool solves all problems. (While I currently teach/pair with devs on TDD, I spent at least 5 years doing TDD on professional, "real" systems.)
http://www.dzone.com/links/r/c11_via_tfl_testfocused_learning_uniform_initiali.html
Exploring the uniform initialization scheme of C++11 via unit tests