Tutorials

Practical Software Testing with Python

Wednesday, May 13th, 2026 1:30 p.m.–5 p.m. in Room 101B

Presented by

Paul Zuradzki

Description

Level up your testing skills and software design skills in this introduction to software testing techniques and principles. We will use pytest with brief comparisons to unittest. This workshop is aimed at newcomers to testing, but experienced programmers will also benefit from deeper understanding and proficiency through practice, side quests, and peer discussion.

Learning Goals. You will learn how to write, organize, and run tests with pytest. You will understand the differences between unit, integration, and end-to-end tests and when to use each. You will have practiced fixtures, parameterized tests, and test isolation. And you will have been introduced to test-driven development and designing code for testability through dependency injection and seams.

Why learn software testing? Testing is often under-appreciated until you are in an untested codebase where every change silently breaks something. Investing in this fundamental skill will help you code with confidence and encourage more flexible code design. Testing is arguably more important than writing implementation code itself.

Beyond vibe coding. Testing is especially relevant today if you're working with AI-assisted or agentic coding. You need to verify that AI-generated code actually works and enable agents to self-correct efficiently with good automated tests.

What the workshop looks like. The workshop is built around exercises, with short explanations between them. You will write tests from your very first exercise and keep writing them throughout. There are also optional side quests for those who want an extra challenge and time for peer discussion. The material moves through three parts: fundamentals of writing and running tests, practical tooling like fixtures and parameterized tests, and testing as a design discipline.

Prerequisites. You should be comfortable writing Python functions and able to run Python scripts. Familiarity with classes is helpful but not required.

Search