I don't see unit tests "catch bugs" often, either, in the sense that the CI build fails due to defective code pushed up.
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.
Sure, still, 20 years on. Not dogmatically so to reach some coverage goal, but anything with real logic, yes. I don't test-drive React components, for example (instead the goal is to get all real logic out of them).
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.
The subscription model makes sense for the vendors--I get that it costs money to put out new versions and support things.
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.
There's a big difference between writing tests for existing code and TDD. I think it's a great idea to first try and write tests for someone else's existing code so you discover what a pain it is.
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.
Shore charges $24.95 a month--but you could probably get the core of what you need within a month or two, and for that it's well worth it. I believe there's also a 7-day trial.
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.)
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.