Driving Your Code with Tests


TDDCT - Version:1
Description
Testing forms an integral part of the modern software development flow. From customer-facing acceptance tests to code-focused unit tests, automated testing is part of the fabric of a modern build process and deployment pipeline. But it's not enough that there are some tests: to be a help, not a hindrance, tests need to communicate not just verify, and testing needs to be a development habit, not an afterthought. In this online course, you will learn about good unit tests (GUTs) and test-driven development (TDD) by seeing what it takes, putting them into practice, and reviewing what you've learned. What practices support readable and maintainable tests? What test pitfalls hold developers and products back? How do you make testing fun and not a chore? Join us to answer these questions and more. The examples and hands-on exercises will use Python and pytest, but you don't need to be a Python guru to take part. Discussion and examples will also take in other languages and frameworks. The hands-on practices during the course will use pytest and an online code-and-test environment.
Intended audience
Developers, team leaders and architects who code and want to start unit testing or improve their existing practices
Expand All
  • What do we mean by unit tests?
  • How do unit tests fit into the testing and development landscape?
  • What do GUTs look like?
  • The elements of TDD
  • Core pytest features
  • Data-driven tests and how to choose test data
  • Test naming and nesting
  • The anatomy of test cases and test suites
  • Plain ol' unit testing (POUT), defect-driven testing (DDT), and iterative test-last (ITL)
  • Identifying and adjusting overfitting and underfitting tests
  • Reasons writing tests can be hard, and how to respond
  • Mocks, stubs and other test doubles
  • When to use values instead of test doubles
  • Testing and legacy code
  • Participants should have either good working knowledge of Python or some knowledge of Python along with skills in other languages
  • Appreciate the value of unit testing to developers
  • Understand how unit testing compares with other testing and quality-focused techniques and tools
  • Learn what good unit tests (GUTs) look like and how to write them
  • Reason about different testing workflows for developers, from defect-driven testing (DDT) to test-driven development (TDD)
  • Be able to put test-driven development into practice
  • Apply different techniques to legacy code
  • Other languages already receive a mention at the end of the Description paragraph, but let me know if you want to expand on that or add more elsewhere.