Skip to content
HomeVideos
AllLongsCategoriesPlaylists
BooksBlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits Β· Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    πŸš€ TDD, Where Did It All Go Wrong (Ian Cooper)

    DevTernity Conference

    11 HN recommenders Β· recommended in 15 months, 2018–2024

    YouTube

    1:03:55 Β· 619K views Β· Dec 20, 2017

    Ian Cooper's DevTernity talk revisits Kent Beck's original TDD ideas and shows where misunderstandings crept in. It argues tests should target behaviors through public interfaces rather than implementation details, so suites support refactoring instead of resisting it.

    HN repeatedly calls it the best talk on testing, and many say it changed how they approach tests, mocks and the meaning of a unit.

    Software Engineering & LanguagesTesting, debugging & developer toolsSoftware practice, open source & careers
    1. 1:02:27
      Procedural Programming: It Never Went Away β€” Kevlin Henney | Build StuffBuild Stuff - #1 Software Dev Conf28K views β€’ 8 years ago
    2. 43:04
      "Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)Strange Loop Conference468K views β€’ 4 years ago
    3. 30:26
      Is TDD dead?Thoughtworks192K views β€’ 12 years ago
    4. 20:59
      Jim Coplien and Bob Martin Debate TDDalexsmail163K views β€’ 14 years ago
    5. 27:29
      Software Engineering's Greatest HitsGreg Wilson25K views β€’ 5 years ago
    6. 32:23
      Rails Conf 2013 The Magic Tricks of Testing by Sandi MetzConfreaks145K views β€’ 13 years ago
    7. 1:04:36
      J B Rainsberger Integrated Tests Are A Scam HDChristopher Cabanne49K views β€’ 11 years ago
    8. 40:20
      "Testing Distributed Systems w/ Deterministic Simulation" by Will WilsonStrange Loop Conference56K views β€’ 12 years ago
    9. 29:21
      Hillel Wayne - Beyond Unit Tests: Taking Your Testing to the Next Level - PyCon 2018PyCon 201838K views β€’ 8 years ago
    10. 29:48
      Trace Driven Development: Unifying Testing and Observability - Ted Young, LightStepCNCF [Cloud Native Computing Foundation]2.4K views β€’ 7 years ago
    11. 54:20
      Bret Victor - Inventing on PrincipleRui Oliveira339K views β€’ 14 years ago
    12. 40:39
      Agile is Dead β€’ Pragmatic Dave Thomas β€’ GOTO 2015GOTO Conferences1.5M views β€’ 11 years ago
    13. 1:18:03
      Dtrace ReviewGoogleTalksArchive19K views β€’ 14 years ago
    14. 59:50
      Leslie Lamport: Thinking Above the CodeMicrosoft Research403K views β€’ 12 years ago
    15. 45:55
      Ruby Conf 12 - Boundaries by Gary BernhardtConfreaks58K views β€’ 13 years ago
    16. 8:19
      Code Bubbles: Rethinking the User Interface Paradigm of Integrated Development EnvironmentsAndrewBragdon284K views β€’ 16 years ago
    17. 32:02
      Autonomous Testing and the Future of Software Development - Will WilsonThe Linux Foundation6.9K views β€’ 7 years ago
    18. 38:25
      "The Clean Code Talks -- Inheritance, Polymorphism, & Testing"Google TechTalks438K views β€’ 17 years ago
    19. 49:09
      Debugging with the Scientific Method - Stuart HallowayClojureTV25K views β€’ 10 years ago
    20. 14:06
      Tomorrow Corporation Tech Demoretrogameinternals107K views β€’ 3 years ago

    20 comments from Hacker News

    1. @VHRangerAug 2020Β· in β€œIs TDD Dead? (2014)”

      The best talk on this topic, IMO is Ian Cooper: "TDD, Where did it all go wrong?" this video Couple of notes: - TDD, much like scrum, got corrupted by the "Agile Consulting Industry". Sticking to the original principles as laid out by Kent Beck results in fairly sane practices. - When people talk about "unit tests", a unit doesn't refer to the common pattern of "a single class". A unit is a piece of the software with a clear boundary. It might be a whole microservice, or a chunk of a monolith that is internally consistent. - What triggers writing a test is what matters. Overzealous testers test for each new public method in a class. This leads to testing on implementation details of the actual unit, because most classes are only consumed within a single unit. - Behavior driven testing makes most sense to decide what needs tests. If it's required behavior to the people across the boundary, it needs a test. Otherwise, tests may be extraneous or even harmful. - As such, a good trigger rule is "one test per desired external behavior of the unit, plus one test per bug fixed". The test for each bugfix comes from experience -- they delineate tricky parts of your unit and enforce workign code around them.

      Strongly recommendsView on HN
    2. @globular-toastMar 2021Β· in β€œCUPID – the back story”

      > Firstly if the dependency isn't doing any io, you can test your code as a whole along with its dependency. No need to mock. This the thing. People have a tendency to overuse mocks. The point of automated testing (whether it's unit tests or something else), is to enable refactoring. That's really the only reason. Code that you don't touch doesn't suddenly change its behaviour one day. In a previous jobs the developers started to go crazy with mocking and it reached a kind of singularity where essentially if a function called anything, that thing was mocked. It definitely tests each function in complete isolation, but what's the point? It makes refactoring impossible, which is the entire point of the tests in the first place! This excellent talk completely changed the way I approached testing. Every developer who writes tests needs to watch this now! this video

      Strongly recommendsView on HN
    3. @macca321Nov 2018Β· in β€œSigns you are doing continuous testing wrong”

      'Test Pyramid' considered harmful IMO. It discourages people from writing tests against the public interface of their system , and instead encourages testing against internals. This leads to a test pack that prevents refactoring, and can't be trusted to catch regression errors. This is partly down to the widely confused definition of a 'unit test' (which a lot of people interpret as 'one test per class'). If you haven't seen it, please watch Ian Cooper's "TDD, Where Did It All Go Wrong" this video Also, I thought continuous testing was having your test pack run all the time while coding, but hey ho.

      Strongly recommendsView on HN
    4. @globular-toastApr 2024Β· in β€œUnit Tests Considered Harmful”

      This the best talk I've ever seen about testing (Ian Cooper): this video I see he's done a much more recent follow up, which I intend to watch: [LINK] Not sure if it contains new ideas. He says the unit is not "a class" but a module. It's up to you to decide what the module does (ie. what level of abstraction it's at). More importantly, he argues against mocking and essentially "unit testing" in most cases.

      Strongly recommendsView on HN
    5. @globular-toastJan 2022Β· in β€œFavor real dependencies for unit testing”

      Ian Cooper talked about this (and more) 5 years ago: this video Well worth listening to this talk. It completely changed the way I did testing.

      Strongly recommendsView on HN