Platinum sponsors
Gold sponsors
Silver sponsors
Institutional sponsors

TDD Randori And Fishbowl

Dave Nicolette

Participants explore the concepts and practices of TDD through direct application in hands-on programming challenges in a randori-style workshop, working in pairs. After the programming challenges, participants conduct a retrospective using the fishbowl discussion format.

Participants will hopefully gain an understanding of the following concepts:

  • Differences between testing for validation and testing to "drive" development.
  • DRY principle – don't repeat yourself
  • Evolutionary design vs predictive design, JEDI vs BDUF
  • Design debt / technical debt
  • The TDD cycle
    • write a test
    • make it compile
    • see that it fails for the right reasons
    • make the test pass
    • run all tests and ensure you haven't broken anything
    • refactor.
  • Refactoring vs general changes
  • Test isolation
    • Isolate the code under test using stubs, mocks, etc.
    • Each test is independent of other tests
    • Tests can run in any order
  • Simplest thing that can work
  • Avoid premature optimization, YAGNI
  • Favor behavioral (state, black box) testing over implementation (white box) testing
  • The current project's working test suite becomes the next project's regression test suite (for the same application)
  • Good practices
    • test behavior, not implementation
    • isolate tests
    • tests should not depend on other tests
    • tests should run fast (because they are run often)
    • run all tests before integrating
    • use hard-coded expected value in assert statements
  • Using test doubles
    • Stubs, mocks, crash test dummies, etc.
  • Testing for expected failures
  • Agile practices that help TDD work more effectively
    • Continuous integration
    • Pair programming

     

    Workshop / Taller

    Duración: 90 min
    Idioma: Inglés
    Día: 23/10
    Horario: 14:30 - 16:00
    Sala: Consular II