4 ms·
Yeah, after working in semiconductor industry (computational lithography) where test-driven design is the norm... I'm not convinced. I'm not saying that writin
by romwell 3y ago
Yeah, after working in semiconductor industry (computational lithography) where test-driven design is the norm... I'm not convinced.
I'm not saying that writing tests before the production code is something that should always be done.
But tests are just as much a part of the codebase as anything else, and absolutely must be written alongside the code being tested.
The most important part of the test is that it showcases intent of the developer. A test suite demonstrates the following:
* How the code should be used
* What the code does
* What the code doesn't do
* What it was written for
Then when that code is used or modified by another developer, they don't have to hunt for clues in the codebase like they're Sherlock Holmes.
If the tests aren't telling a story, you're writing tests wrong.
And until the computers gain the ability to read your mind and do a better job at understanding what you want to do, AI/LLM-based generators can't do this job for you.
Of course, if the only goal of your test suite is getting a green checkmark on a pre-commit check (and being able to show great coverage numbers), then yeah, you can double your productivity with AI.
Automatic code generators will surely help you write more bad code at lightning speed.
And if others complain that tons of boilerplate make the code bloated and hard to understand — just tell them to use AI to deal with it. Worked for you!
That really does seem to be the future of development. But not the future I'm looking forward to.
- azeirah 3y agoI agree with almost everything you said, although I do think this type of testing has a place. There are different types of testing, what you're describing sounds to me like testing the "core" of your code, part documentation, part validation, part stability, etc. Other types of testing like fuzzing provide an entirely kind of value. I believe this AI- driven testing can inherit a space to target tests at the tail end of the distribution, many tests with little value. Providing extra coverage where human energy and time is lacking. That is how I see the current state of AI tooling regardless, as a cognitive assistant. I'd be surprised if this line of research doesn't end up being very fruitful in the coming years.
- romwell 3y agoThat I can fully agree with (particularly, comparison with fuzzing). Your comment presents a way more grounded perspective on the future of LLMs in programming than the article does.