modern-fireman-99755
10/29/2026, 3:02 PMcalm-artist-7206
10/29/2026, 3:30 PMmodern-fireman-99755
10/29/2026, 4:20 PMI don't agree with the agent that more unit tests = good...I do think it is the case. But we should not give the agent possibility to write its own tests. The two task should be independents and in a loop. So you create the feature and then another the tests and then you iterate
modern-fireman-99755
10/29/2026, 4:20 PMmodern-fireman-99755
10/29/2026, 4:20 PMcalm-artist-7206
10/29/2026, 4:25 PMcalm-artist-7206
10/29/2026, 4:26 PMcalm-artist-7206
10/29/2026, 4:27 PMmodern-fireman-99755
10/29/2026, 4:38 PMmodern-fireman-99755
10/29/2026, 4:59 PMcalm-artist-7206
10/29/2026, 5:13 PMcalm-artist-7206
10/29/2026, 5:14 PMmodern-fireman-99755
10/30/2026, 1:13 PMOne thing I've asked the agent recently, was how many times did a PR add new tests and, in the same PR, change old tests. It was some unexpected number,
β’ 300+ where new tests were added, in the same with old tests changed
β’ 350+ where new tests were added, without changing old tests@calm-artist-7206 This is a very good point π Actually I did a deep search in internet and this is not measure, i..e, are LLM changing tests such that the PR pass the CI? (and so it is merged?) I'm running this analysis on our PRs Answer of the agent about that:
"Prior work measures test tampering in benchmarks or training rollouts, and measures test modification and assertion removal in real PRs syntactically. To our knowledge, none links test-weakening edits to CI state in real PRs."
calm-artist-7206
10/30/2026, 4:42 PMstuck check, and some old unit tests failed. If 5 failed, I was looking at each, one by one, in my editor, and decide: oh, those 2 actually should fail, but those 3, uh, shouldnβt have, it's a regression. So I fixed the 2 tests, and fixed the implementation for the other 3 to pass.
I chose the new behavior: the one where 2 old tests needed modified, too.
At the speed of a human reading and editing. At slow human speed. Slow is what allowed us humans to rely on tests: that I was looking into every red and chose what will make it green.
To note, I had the agent, OpenHands agent, doing stuff, but it was so amusingly hard to get it to run all tests, and fix all tests, nah, it kept declaring success with a few! π
Fast-forward to todayβ¦
We are not reading unit tests. I started to notice Iβm skimming them in September 2025. And that is many LLM eras ago. Humans are not going to read code, let alone unit tests.
In the same time, agents became so good. They always get tests green now. They always get them green.
The human doesnβt stop anymore, doesnβt painstakingly look at each of those 5 unexpected fails next time, let alone decide every bit of behavior. The agent chooses what to do with those 5 old tests. The agent chooses the shape of the new behavior.
Did it choose what I intended, the human intention, or not?
I find this question fascinating. Iβ¦ guess we trust them? I think it means we trust them, in a way, to know and choose what the human intention must have been. Because weβre obviously merging, and weβre not really reading tests, and we feel good when CI is green.
It feels safe when CI is green. π
Thoughts going forwardβ¦
Code has become more fluid. Testsβ code has become more fluid. We still call them deterministic, butβ¦ theyβre fluid.
I don't know if agents are weakening them, or change them in ways humans donβt, actually, intend. GPTs, at least until 5.x, treat many old tests as sacrosanct, and theyβd put a bunch of hacks in the implementation code, just so they pass without modification. That ainβt great either.π
I do think these beautiful models are pretty good, though; as they take the old tests in context, and theyβre heavily post-trained on tests, they can make ~reasonable choices on what the new behavior is. π€
I think of tests as prompts. Context snippets, in a formal language, nudging the LLM in a direction. Not asβ¦ βdeterministic testsββ¦ I mean, hey, theyβre fluid.
But I still want to know and verify the behavior. What I like a lot, is semi-strict context, like invariants in some long-forgotten language, scripts with agent-friendly CLI commands (e.g. verify API specs ), rather than fluid unit tests. (with some exceptions, e.g. unit tests for a parser continue to be great)
I feel the Testing Pyramid has inverted.
We can now run everything live, like we didnβt think possible before. End to end tests, real end to end, no mocks, where the agent uses the application / API as the end user does, are now on the base of the pyramid - we can set them up and run, I do think we can, actually, run all behaviors.
So, it flippedβ¦ Itβs like:
β’ base of the pyramid: e.g. verify-agent-server / daily self-healing, 800 + 950 + n user-facing behaviors
β’ middle: property tests / experiment with some βnicheβ types
β’ top of the pyramid: good unit tests: well targeted, etc - by the book.calm-artist-7206
10/30/2026, 5:00 PMmodern-fireman-99755
10/30/2026, 5:03 PMβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ¬ββββββββββββββ¬βββββββββββββ
β Area β Tests added β Bugs found β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββΌβββββββββββββ€
β llm / tool / mcp / security β 34 β 7 β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββΌβββββββββββββ€
β agent / conversation / event / critic / context / hooks β ~71 β 8 β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββΌβββββββββββββ€
β workspace / cross β 56 β 10 β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββΌβββββββββββββ€
β misc sdk (io, git, skills, plugin, utils, β¦) β 79 β 26 β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββΌββββββββββββββΌβββββββββββββ€
β agent_server β 32 β 6 β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ΄ββββββββββββββ΄βββββββββββββ
I just asked a flew of agents to add unit tests for non-happy pathsmodern-fireman-99755
10/30/2026, 5:03 PMmodern-fireman-99755
10/30/2026, 5:03 PMcalm-artist-7206
10/30/2026, 5:04 PMmodern-fireman-99755
10/30/2026, 5:04 PMmodern-fireman-99755
10/30/2026, 5:04 PMcalm-artist-7206
10/30/2026, 5:07 PMcalm-artist-7206
10/30/2026, 5:07 PMcalm-artist-7206
10/30/2026, 5:10 PMcalm-artist-7206
10/30/2026, 5:18 PMmodern-fireman-99755
10/30/2026, 10:04 PMmodern-fireman-99755
10/30/2026, 10:04 PM