Summary and Schedule
This lesson provides an introduction to testing in the context of developing scientific software.
| Setup Instructions | Download files required for the lesson | |
| Duration: 00h 00m | 1. Introduction to Testing as a Design Tool |
Why should you write tests first? What are the 3 phases of TDD? |
| Duration: 00h 40m | 2. Why We Test: Verification and Validation | Why do we test software? |
| Duration: 00h 57m | 3. Parameterized Testing |
What is a test framework? How does a test framework like pytest make writing test cases easier? |
| Duration: 01h 22m | 4. Property-Based Testing |
What is property-based testing (PBT)? How to write property-based tests? |
| Duration: 01h 57m | 5. Testing and Design | |
| Duration: 02h 17m | 6. Mocking and Isolation | |
| Duration: 02h 37m | 7. Refactoring Legacy Code | Why are long methods hard to test? |
| Duration: 03h 12m | 8. Brittle Tests and Bugs |
How should you respond to bugs? What does it mean if you have to change a lot of tests while adding features? What are the advantages of testing an interface? |
| Duration: 03h 42m | 9. Co-Authoring with LLMs: AI and TDD | |
| Duration: 04h 02m | 10. Summary and Next Steps | |
| Duration: 04h 12m | Finish |
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.
- Install pytest
- Install Coverage.py