code-coverage

  • The test that had been quarantined since 2023

    A quarantine list with a deadline, three extensions, and one test covering a payment path that had been skipped for three years.

  • Coverage on changed lines only

    A merge gate on the coverage of lines the pull request touched, which is a different and better question. A global coverage threshold is satisfiable by testing the…

  • Deleting a module

    A module built in 2022 for a product line discontinued in 2024. Eight thousand lines, a database schema and two scheduled jobs, all still running.

  • A pipeline described in one file, after four years of five

    Five workflow files, two composite actions, and nobody able to say what runs when. A change that needed editing three files, one of them wrong.

  • Mutation testing on a third directory, and a worse score

    A technique applied to a third directory, with a score of thirty-eight per cent and a good reason. A low score on code whose correctness is asserted at…

  • A PHPUnit extension, and the event that does not exist

    An extension that needs coverage data, which the event system does not carry. The event system is about test lifecycle rather than about the runner’s outputs, which is…

  • The value object library, five years on

    32 value objects in 2021, 41 now, and a retrospective on which of them earned their place. No symptom — a deliberate look.

  • Writing a PHPUnit extension

    turkerdev/phpunit-json-coverage-report, and a coverage report a machine can read. Coverage as a percentage in a log, and no way to ask which paths changed.

  • A year of property hooks, and the three I would not write again

    218 methods became properties in December 2024, and a year of living with a syntax that hides work.

  • Reviewing code I did not write

    Review as the skill that matters, and a volume of code that needs it. A change that looks right, passes, and is subtly wrong.