Designing with tests

6,724 views
6,747 views

Published on

Unit tests are great, they help a developer gain control over his code and catch bugs and regression issues.
Test Driven Development is a methodology that uses unit tests but it's not about writing unit tests - in fact the tests are only a design tool.
TDD is a methodology that solves problems in an iterative way, it's about emergent design that creates a maintainable solution.
In this session I'll talk about common mistakes and misconceptions, how to benefit from TDD and show how to design your code using unit tests.

The code for this talk can be found on GitHub: https://github.com/dhelper/DesignWIthTests

Published in: Software
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,724
On SlideShare
0
From Embeds
0
Number of Embeds
5,943
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • Only write the code you need
    Emergent design
    Design during development
  • Designing with tests

    1. 1. http://blog.drorhelper.com
    2. 2. Red Green Refactor
    3. 3. Red Green Refactor
    4. 4. Test Test Test Tests
    5. 5. is not
    6. 6. TDD is not about the tests It’s about Emergent Design
    7. 7. Phone rings User Accepts call User connects to call
    8. 8. And now for something completely different
    9. 9. underwater?
    10. 10. Sounds familiar?
    11. 11. Phone rings User Rejects call Call ends UserAccept Call Do Nothing
    12. 12. Phone rings User Accepts call Receive acknowledge from caller User connects to call
    13. 13. annoy
    14. 14. Phone rings User Accepts call Receive acknowledge from caller User connects to call
    15. 15. And most importantly
    16. 16. architect
    17. 17. Architecture is still needed functional requirements quality constraints principles http://www.codingthearchitecture.com/2014/02/19/software_architecture_provides_boundaries_for_tdd_bdd_ddd_rdd_and_clean_code.html
    18. 18. “ ” framework boundaries vision and guidance
    19. 19. Drives design – emergent design Help you stay on track Reduce distractions cost Enable change architecture
    20. 20. drorh@codevalue.net http://blog.drorhelper.com

    ×