---
title: "Discussion on \"Why I Don't do TDD\" | Hashnode"
description: "Discussion on \"Why I Don't do TDD\". Test Driven Development puts emphasis on unit over integration tests. The result can be lower quality featuring bugs that are baked into the product."
url: "https://hashnode.com/posts/why-i-dont-do-tdd/6373af8a4a2eb420e8853ec0"
---

[Feed](https://hashnode.com/feed) /

Discussion

# [Why I Don't do TDD](https://debugagent.com/why-i-dont-do-tdd?utm_source=hashnode&utm_medium=feed)

Test Driven Development puts emphasis on unit over integration tests. The result can be lower quality featuring bugs that are baked into the product.

Nov 15, 2022 · 6 min read · debugagent.com  
Updated Nov 22, 2022  
Read the article

-   [#testing](https://hashnode.com/tag/testing)
-   [#tdd](https://hashnode.com/tag/tdd)
-   [#best-practices](https://hashnode.com/tag/best-practices)
-   [#java](https://hashnode.com/tag/java)
-   [#unit-testing](https://hashnode.com/tag/unit-testing)

## Written by

[Shai Almog](https://hashnode.com/@codenameone)

@codenameone

  
[View profile](https://hashnode.com/@codenameone)

25 years ago I was lucky. I faced my debugging ignorance. It's a skill we don't learn at school. Hopefully I can help you reach a similar ep

Entrepreneur, author, blogger, open source hacker, speaker, Java rockstar, developer advocate and more. ex-Sun/Oracle guy with 30 years of professional development experience. Shai built virtual machines, development tools, mobile phone environments, banking systems, startup/enterprise backends, user interfaces, development frameworks and much more. Shai is an award winning highly rated speaker with a knack for engaging the audience and deep technical chops.

## Responses 6

Markdown supported · ⌘↵ to post

[Chukwudume Adaeze](https://hashnode.com/@Penathought)

[Dec 9, 2022](https://hashnode.com/posts/why-i-dont-do-tdd/6373af8a4a2eb420e8853ec0/comment/6393707715750808b2698d3e)

Great opinion, Shai who's to say that a test designed pre code can't have it's own fault

[Julian Ewers-Peters](https://hashnode.com/@ewerspej)

[Nov 17, 2022](https://hashnode.com/posts/why-i-dont-do-tdd/6373af8a4a2eb420e8853ec0/comment/63764a91f0820773cfb15732)

TDD at its core is not about testing, it's about how to approach better code design. The idea is to think about the required structure of your code before you write it, based on incremental steps. TDD only looks at the public interface and thus is compatible with unit and integration testing. I believe that many people have a misconception of what TDD is. Andrea Laforgia has an interesting view on this: [dev.to/andrealaforgia/why-test-driven-design-386c](https://dev.to/andrealaforgia/why-test-driven-design-386c)

[Shai Almog](https://hashnode.com/@codenameone)

[Nov 22, 2022](https://hashnode.com/posts/why-i-dont-do-tdd/6373af8a4a2eb420e8853ec0/comment/63764a91f0820773cfb15732#reply-637cf1fa144aebc44d19302e)

I have a paragraph specifically about that point. It doesn't make much sense either. You can't debug a design but visually you can understand it. So it isn't great but it's clear.

You can't "test the tests". So you have a "design by tests" that hardcodes the bugs but isn't clear as a design.

[Ákos Kőműves](https://hashnode.com/@akoskm)

[Nov 17, 2022](https://hashnode.com/posts/why-i-dont-do-tdd/6373af8a4a2eb420e8853ec0/comment/637632d9559c02733a0ad8d7)

> Writing lots of tests. How can that be bad?

TDD is good only if you're testing the right thing.

While good coverage/documentation, as you said, is just good programming.

[Julian Ewers-Peters](https://hashnode.com/@ewerspej)

[Nov 17, 2022](https://hashnode.com/posts/why-i-dont-do-tdd/6373af8a4a2eb420e8853ec0/comment/637632d9559c02733a0ad8d7#reply-63764b6edc823473f485b1d2)

TDD is not about code coverage, it's about how you design your code. The TD stands for "test-driven", meaning that tests are used as a tool to push implementation forward. It doesn't focus on the tests itself, they are only the measure of completion for a specific unit of code when applying TDD. The code coverage and documentation are merely welcome and useful side effects. Obviously, it takes practice and you need to know how to write tests well. The latter is true for code of any kind, but knowing how to write good tests and applying TDD can also foster better production code.

[Ákos Kőműves](https://hashnode.com/@akoskm)

[Nov 17, 2022](https://hashnode.com/posts/why-i-dont-do-tdd/6373af8a4a2eb420e8853ec0/comment/637632d9559c02733a0ad8d7#reply-63765201dc823473f485b3c2)

I don't think about test coverage in terms of covered lines when I'm doing my _kind of_ TDD.

For apps that need to be delivered fast, I write only a few integration tests to cover the main flows, nothing else.

On the other hand, I always thought that TDD is closely related to unit tests, that I rarely write for full-stack apps.

[Julian Ewers-Peters](https://hashnode.com/@ewerspej)

[Nov 19, 2022](https://hashnode.com/posts/why-i-dont-do-tdd/6373af8a4a2eb420e8853ec0/comment/637632d9559c02733a0ad8d7#reply-6378cfe8ce6f5c939e281830)

[Ákos Kőműves](https://hashnode.com/@akoskm) It all depends on the complexity of the app and the business logic. Small apps with a lot of reused (and hence tried & tested code) may need less unit tests and integration tests may be sufficient. However, I believe that practice makes perfect and it would be wise in my opinion to apply TDD whenever possible to come up with a solid code design.

[Alvaro](https://hashnode.com/@kanekotic)

[Nov 17, 2022](https://hashnode.com/posts/why-i-dont-do-tdd/6373af8a4a2eb420e8853ec0/comment/63762d4e126f207301489ab9)

I think this is missing a point that actually TDD is a desing tool to do minimal code that solves a neas and not so much a testing tool.

[Harrison Obetta](https://hashnode.com/@Mrjiks)

[Nov 17, 2022](https://hashnode.com/posts/why-i-dont-do-tdd/6373af8a4a2eb420e8853ec0/comment/63761a783ac67e7204e58a48)

Great opinion. Please minor edit is required from your part. In your post's title, I guess autocomplete inserted "Driver" instead your intednded word "Driven".

[Shai Almog](https://hashnode.com/@codenameone)

[Nov 22, 2022](https://hashnode.com/posts/why-i-dont-do-tdd/6373af8a4a2eb420e8853ec0/comment/63761a783ac67e7204e58a48#reply-637cf24d144aebc44d193046)

Thanks. Totally missed that and for some reason I no longer get email notifications from Hashnode so only saw that now...

[Sadra Yahyapour](https://hashnode.com/@lnxpy)

[Nov 15, 2022](https://hashnode.com/posts/why-i-dont-do-tdd/6373af8a4a2eb420e8853ec0/comment/6373e3d0d81a95516cadf650)

That's a great point of view [Shai Almog](https://hashnode.com/@codenameone)! I've always been looking for opportunities to get my hands on TDD in practice by contributing to the open source. To be clear, we always do a little TDD in our minds. We implement based on the way want to use the components. The first time I heard about that (TDD), that seemed so stupid to me! Why would I write tests first? What am I going to even test then? Over time, I thought that would be a cool approach though. You're structuring your components and specifying the ways you want to use your utilities then you implement them by passing each test. I still believe in that way of development but that DOES NOT ensure the quality of my code for sure. Of course, I need to refactor once I wrote the components. I'm more of a unit-test guy than an integration-test. Looking forward to having your thoughts on mine. Thanks for sharing this awesome article again. :)

[Sadra Yahyapour](https://hashnode.com/@lnxpy)

[Nov 15, 2022](https://hashnode.com/posts/why-i-dont-do-tdd/6373af8a4a2eb420e8853ec0/comment/6373e3d0d81a95516cadf650#reply-6373e88c747bca51e27ca0b4)

I also have an article about "How TTD helped me clean my code" drafted! LOL
