Best of TestingMarch 2026

  1. 1
    Article
    Avatar of colkgirlCode Like A Girl·6w

    Technical Debt

    Using a home renovation analogy of discovering a labyrinth of old pipes behind a wall, this piece explains technical debt as the accumulated cost of past shortcuts. It distinguishes between intentional debt (a conscious tradeoff) and a mess (careless neglect), drawing on Uncle Bob's Clean Code philosophy. The key insight is that debt is painless until you try to change something, at which point it compounds. The recommended mitigation is writing tests to create a safety net that makes future changes less risky.

  2. 2
    Article
    Avatar of dailydaily.dev·3w

    How we built a Linear coding agent: the hard parts

    daily.dev built Huginn, a coding agent integrated into Linear that automates the full workflow from ticket to PR. The post covers the hard engineering problems encountered: wrapping Claude Code and Codex as child processes with their undocumented streaming formats, building a three-tier fallback parser for structured LLM output, debugging session continuity failures caused by working directory changes, and using Linear labels as a crash-resilient state machine. The team also describes their 'Digital Twin Universe' (DTU) testing approach — in-memory replicas of Linear, GitHub, and KMS running in Docker containers — which made a 99% AI-generated codebase viable. Known limitations include ongoing output parsing fragility, rough BYOK credential handling, and poor fit for tight iterative or architecturally complex tasks.

  3. 3
    Article
    Avatar of ontestautomationOn Test Automation·5w

    Writing tests with Claude Code - part 1 - initial results

    An exploration of using Claude Code to generate API tests for a Spring Boot banking application, starting from scratch with only a prompt. Claude produced 23 passing tests in minutes, achieving 95% line coverage and 91% mutation coverage as measured by PITest. However, analysis revealed gaps: several critical code paths were missed (HTTP 500 handling, empty account list, boundary values), and 4 of the 23 tests (17%) were dead weight that didn't uniquely contribute to coverage. The author emphasizes that evaluating AI-generated tests requires domain knowledge, testing experience, and tools like mutation testing — simply accepting passing tests at face value risks a test suite full of holes.

  4. 4
    Article
    Avatar of tkdodoTkDodo·3w

    Test IDs are an a11y smell

    Using data-testid attributes in tests is an accessibility smell because users can't see or interact with test IDs. Role-based selectors (via Testing Library or Playwright) are superior because they mirror how real users interact with apps, catch inaccessible markup like clickable divs lacking semantic roles, and provide implicit a11y testing. If a role-based selector can't find an element, that's a signal the UI itself is inaccessible. Practical tips include using semantic HTML for implicit ARIA roles, associating form labels, using headings and landmarks, leveraging Testing Playground, and navigating with the keyboard to catch issues.

  5. 5
    Article
    Avatar of softwaretestingmagazineSoftware Testing Magazine·5w

    Scaling Your QA Strategy: Why Open Source Cross Browser Testing Tools are the Future of DevSecOps

    Engineering teams are shifting from expensive SaaS-based testing clouds to self-hosted, open source cross-browser testing setups running on Kubernetes or Docker. This approach eliminates per-minute billing, enables elastic scaling via Horizontal Pod Autoscalers, and aligns with DevSecOps principles by keeping test artifacts and credentials within the organization's perimeter. Infrastructure-as-Code tools like Terraform and Helm charts allow ephemeral, disposable test environments that support zero-trust security. CI/CD pipelines using GitHub Actions, GitLab CI, or Jenkins can trigger browser containers within the same network boundary, enabling security scanning and compliance checks inline. The cultural shift also improves developer experience by using familiar tools like kubectl and Docker CLI, shortening feedback loops and reducing dependency on vendor platforms.