Best of TestingJanuary 2026

  1. 1
    Article
    Avatar of devjourneyDeveloper's Journey·13w

    It Worked in Dev. It Worked in QA. Then Production Happened.

    A backend engineer shares a production incident where an appointment-fetching endpoint worked fine in dev and QA but caused 4-second response times in production. The issue was an N+1 query problem: the code made 6,000+ individual database calls to fetch patient details. The solution involved batching patient data retrieval into a single query using in-memory maps and adding proper projections, reducing latency to 500-600ms. The incident highlights the importance of testing with realistic data volumes, thorough code reviews, and anticipating edge cases during development.

  2. 2
    Article
    Avatar of addyAddy Osmani·14w

    My LLM coding workflow going into 2026

    A comprehensive workflow for using LLM coding assistants effectively in 2026. Start with detailed planning and specs before coding, break work into small iterative chunks, provide extensive context to the AI, choose appropriate models for each task, and maintain human oversight through rigorous testing and code review. Use version control aggressively with frequent commits, customize AI behavior with rules and examples, leverage automation as quality gates, and treat the AI as a powerful but fallible pair programmer requiring clear direction. The approach emphasizes that AI amplifies engineering skills rather than replacing them, with the developer remaining accountable for all code produced.

  3. 3
    Article
    Avatar of itnextITNEXT·11w

    Clean Code Is a Guide, Not a Gospel: A Reflection on Pragmatic Software Architecture

    Clean Code principles are valuable guidelines, not absolute rules. Architecture should serve business needs rather than dogmatic adherence to patterns. Over-engineering often stems from premature abstraction and complexity as status symbol. The best code prioritizes clarity and maintainability over cleverness. Start simple, evolve based on actual requirements, and apply principles thoughtfully rather than dogmatically. True engineering excellence means building understandable, maintainable systems that solve real problems, not demonstrating technical sophistication through unnecessary complexity.

  4. 4
    Article
    Avatar of rubylaRUBYLAND·13w

    How I Read A Pull Request

    A systematic approach to reviewing pull requests using the journalist's 5 Ws and H framework. The process covers when to review (start of day, between meetings, after submitting your own PR), what to look for based on PR intent, understanding your motivation as a reviewer, considering the author and audience, and a specific reading order: title/description first, then tests (test-driven review), followed by implementation alphabetically, and finally a big-picture pass to verify goals and overall structure.

  5. 5
    Article
    Avatar of addyAddy Osmani·14w

    AI writes code faster. Your job is still to prove it works.

    AI-generated code is becoming mainstream, with over 30% of senior developers shipping mostly AI-written code by early 2026. However, AI-generated code contains 75% more logic errors and 45% security flaws compared to human code. The key shift is that code review now focuses on verification and accountability rather than line-by-line inspection. Solo developers can ship at "inference speed" by relying on comprehensive automated testing, while teams must maintain human oversight for security, context sharing, and maintainability. The bottleneck has moved from writing code to proving it works through evidence like tests, manual verification, and clear documentation of AI's role.

  6. 6
    Article
    Avatar of nolanlawsonRead the Tea Leaves·10w

    Building a browser API in one shot

    An experiment demonstrates building a complete IndexedDB implementation from scratch using Claude AI with a single prompt and automated iteration loop. The implementation passes 95% of targeted Web Platform Tests and 77.4% of a more rigorous test suite, achieving results comparable to fake-indexeddb (82.8%) in just a few hours. The project cost approximately $7 and produced 4,395 lines of TypeScript code backed by SQLite. While the code quality is reasonable and the approach leverages Web Platform Tests as acceptance criteria, the author reflects on how AI tools are devaluing traditional software development efforts while acknowledging their inevitable dominance in the field.

  7. 7
    Article
    Avatar of steveklabnikSteve Klabnik·11w

    The most important thing when working with LLMs

    Working effectively with LLMs requires giving them objective ways to evaluate their own work. The key is providing quick feedback mechanisms that indicate success or failure and guide corrections when things go wrong. This mirrors human development workflows: write code, run tests/compiler, iterate based on feedback. Tools with clear error messages and minimal verbose output work best. Good practices like comprehensive test suites, strong type systems, and helpful compiler errors benefit both LLMs and human developers. By optimizing the feedback loop, you can safely auto-accept LLM actions and dramatically increase development velocity.

  8. 8
    Article
    Avatar of ploehploeh blog·12w

    Filtering as domain logic

    Complex database filtering logic can be split between server and client to balance performance and correctness. Keep simple, coarse-grained filtering in SQL queries for performance, while implementing precise filtering logic in the domain model where it's easier to test and maintain. This separation of concerns makes the filtering logic more testable through unit tests rather than slow integration tests, strengthens domain model contracts, and can improve cache hit ratios. The domain model should tolerate wider datasets and filter them down, ensuring correctness even if the database query is slightly imprecise.

  9. 9
    Article
    Avatar of weeklyvuenewsWeekly Vue News·11w

    Weekly Vue News #234 - Nuxt 4.3 Released, Vue Testing Insights & Free JavaScript Certification Weekend

    Weekly Vue newsletter covering Nuxt 4.3 release, Vue testing insights, and a free JavaScript certification opportunity. This is a curated collection of Vue ecosystem updates and resources for developers working with Vue.js and related frameworks.

  10. 10
    Article
    Avatar of mitsuhikoArmin Ronacher·13w

    Porting MiniJinja to Go With an Agent

    An experienced developer successfully ported MiniJinja, a Rust-based Jinja2 template engine, to native Go using AI agents with minimal manual intervention. The process took about 45 minutes of active guidance and 10 hours of autonomous agent work, leveraging snapshot tests for validation and incremental porting (lexer → parser → runtime). The agent evolved from literal code translation to behavioral porting, making idiomatic Go decisions like using reflection and tree-walking interpretation. The experience highlights how AI agents are making cross-language ports feasible with less effort, shifting value from code to tests and documentation, while changing the social dynamics of open source porting.

  11. 11
    Article
    Avatar of freecodecampfreeCodeCamp·13w

    Unit Testing in Go - A Beginner's Guide

    Go's testing approach is deliberately minimal, using regular Go code and the standard library's testing package. Tests live in files ending with `_test.go`, with functions starting with `Test` that take `*testing.T`. The guide covers writing basic tests, running them with `go test`, using table-driven tests for multiple cases, handling error returns, and checking for panics. Key patterns include using `t.Errorf` for failures, `t.Run` for subtests, and organizing test cases in struct slices. Best practices emphasize clear naming, focused tests, explicit error checking, and frequent test runs.

  12. 12
    Article
    Avatar of quarkusQuarkus·14w

    New Dev Services Api

    Quarkus 3.25 introduces a new Dev Services API that resolves port conflicts and excessive resource usage in test suites by deferring service startup until after augmentation. The new model eliminates the problem where all Dev Services started during JUnit discovery, causing multiple containers to run simultaneously. Extension authors benefit from a simpler programming model using builders, with Quarkus core handling discovery and container reuse. Migration requires implementing the Startable interface, using builder patterns instead of direct construction, and removing static variables from extension processors. Several extensions including Redis, Lambda, Narayana, and Kafka have already been converted, with ongoing work tracked for others.

  13. 13
    Article
    Avatar of eslintESLint·14w

    ESLint v10.0.0-rc.0 released

    ESLint v10.0.0-rc.0 introduces enhancements to RuleTester including a new requireData assertion option that enforces data objects for messages with placeholders, improved stack trace location reporting for failing tests, and a countThis option in the max-params rule for TypeScript this annotations. This release candidate is available for community feedback before the final version and includes breaking changes detailed in a migration guide.

  14. 14
    Article
    Avatar of lnLaravel News·12w

    Query Builder Expression Aliases in Laravel 12.48

    Laravel 12.48.0 adds query builder expression aliases for cleaner raw SQL, a BatchFinished event for batch lifecycle management, and JSON decoding flags for HTTP responses. The release includes a skipWhen method for CORS middleware, support for brackets and braces in translation strings, and isolated view compilation during parallel testing. Additional improvements include type safety enhancements across HTTP, Queue, and Collection components, performance optimizations through native class instantiation, and various bug fixes for validation rules, authentication guards, and cache locks.

  15. 15
    Article
    Avatar of planetpythonPlanet Python·13w

    PyCoder’s Weekly

    This weekly Python newsletter curates recent articles, tutorials, and projects. Featured topics include unit testing for performance with Big-O scaling, using the Cursor AI coding editor, recursive structural pattern matching, and optimizing Docker build cache. It also covers draft PEPs for dedented multiline strings, unified slot systems, and JSON package metadata, plus Django bugfix releases. Additional content includes speeding up Python's packaging library, debugging with f-strings, switching from Mypy to ty type checker, and several new Python projects for PDF forms, geocoding, and desktop automation.