Рет қаралды 1,609
Turning test writing into a consistently brief and pleasant experience
by Wilhelm Klopp
pretalx.com/dj...
Writing tests for our web apps can be painful, slow, and boring. In this talk we look at 10 tools and techniques to make writing django tests a consistently pleasant experience.
There's one thing I enjoy least about software development: Writing tests. I appreciate the tests I've written in the past, but I do not enjoy the process of creating new ones. How can we make test writing a pleasant, brief, and fun experience? This talk looks at over 10 tools and techniques to accomplish exactly that.
Engage the audience with some live poll questions:
How much time do you spend writing tests?
How much do you enjoy writing tests?
Have you spent time improving your own testing experience?
What existing software engineering research says about how much time we spend on tests
How we think about writing tests for our web applications:
What value do we get from tests, why do we write them at all?
How many tests should we write? What do we not want to test? How important is coverage?
What tests should we write? Unit tests, integration tests, Not too many, mostly integration
When does test driven development help us? When does it not?
Techniques for making test writing more brief and more pleasant:
Putting in some time to write testing abstractions to improve the testing experience of your colleagues and future you
Testing utilities for managing time: freezegun, time machine
Testing utilities for dealing with outbound http requests: httpretty, response, VCR
Testing utilities for managing with SQL queries
Property based testing and ghostwriting with hypothesis
Kolo to turn recorded requests into tests
Pytest and the best plugins for saving time
Browser based testing: Selenium, storybook, etc.
Generating tests with large language models - How useful is Chat GPT?
Further tools and techniques from user interviews with django developers (this research is ongoing)
I’m in the process of interviewing ~20 django developers about their experience with writing tests and the steps the’ve taken to improve their test setup. I plan to incorporate many of the learnings in this talk
Summary, Recap, Conclusion
Attendees will come away with practical tips for how to improve their own experience writing tests.