TDD Randori And Fishbowl
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
Idioma: Inglés
Día: 23/10
Horario: 14:30 - 16:00
Sala: Consular II