Re: AI Coding Agents: Failing to Do the Most-Common Programming Tasks
Which tests, QA tests, Developer/programmer tests, unit tests to TDD. None are difficult, alright TDD is not difficult, it's beyond difficult, it's a bloody head-fuck*. But the rest, unit tests, there is a learning curve to writing tests. But it's not difficult, any programmer who finds writing unit tests for their code difficult should not be programming.
Developer/programmer tests Development perform before releasing to QA should not be difficult. Development at the very least know what they going to build does so write those tests and add them to the design, spec or whatever they build to. Then think of the all the possible scenarios that can happen it can't do, they need to be prevented or handled gracefully add tests for them. Try and think of all edge cases tests and add those tests.
This can and should be done before before starting to code. Writing code is a lot easier when you know every thing the code should and should not do. If some thing is missed the tests will catch it before its released to QA. Developers are not going think of every possibility scenario to test we focus on how the code works, QA focus on breaking our code they will run their own variants of the developer's tests along with their own tests. If they can't break your code they try every dodgy trick** they can to break it.
In my experience a lot of people aren't much good at it through choice. Developers choose not to test their code after all that's what QA is for. Coding is the same as long as the code does the thing it should do ship. No matter the code also does 11 things it should not do. But at the end of the day releasing buggy software due to insufficient testing is managements choice. Management choose the development process not the employees.
Testing for release takes time and people. It's not an automated box ticking a few boxes, run a few unit test and not even run the software Cloudstrike. Just the role that AI could fill. The only testing that AI might have a chance of doing is creating unit tests, TDD, Developer/programmer tests or QA tests no way.
*My employers made it a real head-fuck adopting TDD with Clean Code.
**One of the QA testers I worked with took testing really seriously if he couldn't find a bug he felt he wasn't doing his job. Any way he couldn't find a bug in a feature I developed and was getting just a little angry. That was my cue to wander over and wind him up. A couple of mins later I walked back to my desk mission accomplished, he was no longer a little angry he looked about ready to explode. 10 -15 min later an SCR pops up in my email for a bug fix.
When I saw what he did to get the bug I am WTF I get up to go over and argue the toss, too late he is at my desk. I the one that's angry now, "I not going to fix that", "that's not a bug", "no one in there right mind would do that", etc. My project lead was on the desk next to mine leans over to look at the SCR on my monitor, say "it's a bug you will have to fix it, so shut up and sit down" and tells the tester to piss of back to test.
What the tester did was ran the feature and then yank the power cord out of his PC, when a set of files were being written back to a database on a server. When the software restarted one of the files was corrupted.