129: How to Test Anything - David Lord
I asked people on twitter to fill in "How do I test _____?" to find out what people want to know how to test.
Lots of responses. David Lord agreed to answer them with me.
In the process, we come up with lots of great general advice on how to test just about anything.
Specific Questions people asked:
- What makes a good test?
- How do you test web app performance?
- How do you test cookie cutter templates?
- How do I test my test framework?
- How do I test permission management?
- How do I test SQLAlchemy models and pydantic schemas in a FastAPI app?
- How do I test warehouse ETL code?
- How do I test and mock GPIO pins on hardware for code running MicroPython on a device?
- How do I test PyQt apps?
- How do I test web scrapers?
- Is it the best practice to put static html in your test directory or just snippets stored in string variables?
- What's the best way to to test server client API contracts?
- How do I test a monitoring tool?
We also talk about:
- What is the Flask testing philosophy?
- What do Flask tests look like?
- Flask and Pallets using pytest
- Code coverage
Some of the resulting testing strategies:
- Set up some preconditions. Run the function. Get the result.
- Don't test external services.
- Do test external service failures.
- Don't test the frameworks you are using.
- Do test your use of a framework.
- Use open source projects to learn how something similar to your project tests things.
- Focus on your code.
- Focus on testing your new code.
- Try to architect your application such that actual GUI testing is minimal.
- Split up a large problem into smaller parts that are easier to test.
- Nail down as many parts as you can.
Special Guest: David Lord.
- Datadog: Modern monitoring & security. See inside any stack, any app, at any scale, anywhere.
Visit testandcode.com/datadog to get started.
- Talk Python Training: Online video courses for Python developers