Behavior added with no test changed in the same change
Tests and verification: one of the ways AI coding agents bloat software, from lessloc's pattern catalog. lessloc gives every session the rule: new behavior gets one focused test.
What makes behavior added with no test changed in the same change a bad practice?
The standard that calls it a bad practice: Google engineering practices: tests ship with the change they test.
What does lessloc do about behavior added with no test changed in the same change?
lessloc gives every session the rule: new behavior gets one focused test. lessloc catches it as untested. It is not raised for refactors, for fixes that do not grow the code, or for projects without tests.
untested(tier 1): The change adds behavior and no test changed, with some exceptions.
Related patterns
The other patterns in Tests and verification:
- Tests that assert nothing, or assert a constant: lessloc catches it as
empty-test. - Deleted, skipped or force-passed tests: lessloc catches it as
weakened-tests. - Test-only branches in production code: lessloc catches it as
test-logic. - Tests that mock the code they test: lessloc catches it as
empty-test. - Production code that branches on a value from the tests: lessloc catches it as
test-logic. - Stopping short: a requested function never written: lessloc catches it as
unaddressed: names a request asks to exist ("add a--statusflag", "implementexport_csv()") are looked for in the final repository; one that appears nowhere holds the turn. - Stopping short: part of the problem left failing: lessloc catches it as
unfinished: in a turn that changed code, the agent's last reply is read sentence by sentence, with headings and lead-ins speaking for what is under them. - Saying "done" without a passing run on the final state: lessloc catches it as
tests-failedandunverified: the agent's own test runs, as its host reported them, are the evidence for the exact tree; a run that fails on the final state, or a change to how the tests run, holds the turn once, and a final state no run verified is written to the record;lessloc test,verifyandcirecord evidence too. - A refactor that changes existing tests: lessloc catches it as
refactor-tests.

