💡 Learn how to design great software in 7 steps: https://arjan.codes/designguide.
This video covers what software testing is and what it's not and how it relates to program correctness. I also talk about two less obvious testing techniques: mutation testing and property-based testing.
If you want to play around with mutation testing or property-based testing, take a look at these frameworks:
- Mutmut (Python mutation testing library): https://mutmut.readthedocs.io/en/latest/
- Hypothesis (Python property-based testing library): https://hypothesis.readthedocs.io/en/latest/
🎓 ArjanCodes Courses: https://www.arjancodes.com/courses/
🔖 Chapters:
0:00 Intro
0:52 What tests are and what they aren't
1:43 Code example: tests cannot prove that a program is correct
4:44 Proving that a program is correct: Hoare logic
7:23 Different types of testing
8:53 Code example: mutation testing
12:03 More types of testing
13:07 About invariants
14:13 Code example: property-based testing
18:01 Types of property-based testing
19:29 Final thoughts
#arjancodes #softwaredesign #python