Best of TDD2025

  1. 1
    Article
    Avatar of freecodecampfreeCodeCamp·1y

    Learn Software Design Basics: Key Phases and Best Practices

    Good software design is essential to avoid inefficiencies and bottlenecks. It involves creating scalable, maintainable, and easy-to-debug systems. Key elements include defining the problem statement, identifying use cases, stating requirements, designing the architecture, and drafting a detailed design. Assumptions and thorough documentation are crucial for clarity and long-term success. A practical example of designing a financial expense categorization system illustrates these principles.

  2. 2
    Article
    Avatar of yegor256Yegor's Blog·50w

    Write Unit Tests, Don't Waste Our Money!

    Automated tests serve as a warranty system that protects business investments in code. When developers write code without tests, they risk breaking previously fixed functionality, essentially wasting employer money on repeated fixes. Test coverage ensures that paid-for code continues working during refactoring and modifications, making it a crucial business protection rather than just a development practice.

  3. 3
    Article
    Avatar of thoughbotthoughbot·23w

    Testing is software engineering

    Testing should be treated as a core engineering practice, not an afterthought. Writing tests early improves code design by providing immediate feedback on interfaces, enables confident refactoring through reliable CI checks, and facilitates collaboration by uncovering edge cases and serving as living documentation. Tests that are hard to write often signal poorly designed code. Integrating testing throughout development leads to better software design, reduced stress when making changes, and earlier discovery of hidden requirements.

  4. 4
    Article
    Avatar of searlsJustin Searls·27w

    TDD is more important than ever

    Test-driven development skills are becoming critical for working effectively with AI coding agents. Developers experienced in TDD are both the most skeptical of AI code generation and the most successful at using it, because they understand how to build verification into workflows. AI agents, like human developers, need independent ways to verify their work—without verification, they resort to guessing, which compounds errors rapidly. The ability to establish automated testing and verification mechanisms, once a hallmark of agile practices, is now essential for enabling AI agents to produce reliable code through reinforcement learning.

  5. 5
    Article
    Avatar of rubylaRUBYLAND·40w

    Do you guys really do TDD?

    A developer explores a Reddit discussion about Test-Driven Development adoption, analyzing various perspectives on TDD implementation. The post examines common misconceptions about TDD, discusses the differences between frontend and backend testing approaches, and critiques AI-generated tests. Key insights include focusing on test failure cases, treating code as a liability, and understanding that TDD doesn't require knowing the implementation beforehand. The author emphasizes that effective testing should provide value and support code changes, while acknowledging that TDD isn't always the right approach for every situation.

  6. 6
    Article
    Avatar of ghblogGitHub Blog·52w

    GitHub for Beginners: Test-driven development (TDD) with GitHub Copilot

    This post explores the use of GitHub Copilot for test-driven development (TDD), providing an overview of testing types and explaining how Copilot can automate unit test creation. It introduces the concept of TDD with a focus on the 'red, green, refactor' method, demonstrating how Copilot aids each step of the process. The post offers practical prompts for using Copilot and emphasizes best practices for writing unit tests.

  7. 7
    Video
    Avatar of webdevcodyWeb Dev Cody·1y

    If you don''t write tests, you're NGMI

    Writing tests is crucial in software development to ensure new changes don't break existing functionality. The post walks through the process of using the v-test framework to write a test for a game, fixing a bug related to ammo management. It highlights setting up tests, writing expect statements, and the importance of maintaining small, manageable tests. Practical steps are provided to demonstrate test driven development in a game server scenario.

  8. 8
    Article
    Avatar of searlsJustin Searls·32w

    A cruel irony of coding agents is that…

    AI coding agents face a paradox: developers who historically avoided automated testing now instruct AI to follow test-driven development practices. However, since large language models were trained on decades of poorly written tests, the resulting AI-generated tests are equally problematic, perpetuating the cycle of low-quality test code.

  9. 9
    Article
    Avatar of habrhabr·1y

    Build better, faster using TDD

    Test-Driven Development (TDD) is a methodology that aims to improve software quality and development speed through a cycle of writing tests, implementing code to pass those tests, and then refactoring. Despite challenges such as steep learning curves and integrating TDD into existing projects, its benefits include increased code confidence, adaptability to changing requirements, improved usability, and preventing bugs from reappearing. Tips for effective TDD include writing fast tests, moving quickly from failing to passing tests, abstracting external dependencies, and combining unit and acceptance testing. TDD should be seen as a tool that complements the developer's workflow.

  10. 10
    Article
    Avatar of watercoolerWatercooler·40w

    LinkedIn has changed 😂

  11. 11
    Article
    Avatar of appliedgoApplied Go·1y

    Beyond the Debugger: A Comprehensive Guide to Debugging Go Applications

    Effective debugging in Go involves a variety of strategies beyond just using a debugger. Writing clear, readable code, leveraging test-driven development, and employing strategic logging can make bugs easier to spot and resolve. For complex bugs, understanding the root cause through log examination and reproducible test cases is crucial. Delve into tools and techniques like Git bisect and the Go-specific debugger, Delve, to streamline the process, while also addressing concurrency and sporadic issues with specialized methods.

  12. 12
    Article
    Avatar of 8thlight8th Light·52w

    TDD: The Missing Protocol for Effective AI Assisted Software Development

    Test Driven Development (TDD) provides a strong framework for enhancing AI-assisted coding by offering clear specifications, manageable scope, and well-defined edge cases. By writing tests first, developers can establish a structured communication protocol that improves collaboration between humans and AI tools, reducing conflicts and enhancing code quality. TDD breaks complex problems into small, testable behaviors, ensuring focused and useful AI-generated solutions while allowing developers to concentrate on creativity and architecture.

  13. 13
    Article
    Avatar of rubylaRUBYLAND·47w

    You should delete tests

    Challenges the common belief that tests should never be deleted, arguing that tests exist primarily to build confidence in code changes. When tests become flaky, overly brittle, too slow to run regularly, or test outdated requirements, they actually decrease confidence and should be removed. The key principle is that any test that harms rather than helps developer confidence in their changes should be deleted rather than maintained.

  14. 14
    Article
    Avatar of collectionsCollections·1y

    Essential Software Engineering and Coding Books for Developers

    Continuous learning is crucial for software developers to excel in both technical skills and career growth. This post provides a recommended list of essential books that cover software engineering principles, coding practices, refactoring techniques, and personal branding strategies. It aims to help developers achieve maintainable software creation and enhance their professional development.