Testing Without Being A Tester
You don't need to learn pytest to ship working software. You need a basic verification habit.
Software engineers write automated tests — code that checks the rest of the code. That's a worthwhile skill, but it's not the floor. The floor is the verification habit.
THE VERIFICATION HABIT:
Before shipping a feature, write down:
- The 3-5 happy paths (typical user flows).
- The 3-5 edge cases (unusual inputs).
- The 1-2 failure modes (what should happen when things go wrong).
For each item, manually try it. Does the software do what you wrote down? If not, the software is broken. Fix it before shipping.
A worked example for a customer signup form:
Happy paths: 1. Sign up with valid email and password — account created, email sent. 2. Sign up with the same email twice — second attempt rejected cleanly. 3. Sign up, log out, log back in — session works.
Edge cases: 4. Sign up with an email that has a + in it (alice+test@gmail.com) — handled correctly. 5. Sign up with a 100-character name including unicode characters — stored and displayed correctly. 6. Sign up, then immediately try to log in — works without "wait for email confirmation" weirdness.
Failure modes: 7. Sign up while the email service is down — user sees a clear error, account is NOT half-created. 8. Sign up with a clearly malformed email ("notanemail") — caught client-side with a nice error message.
Eight tests, manually run, before shipping. Five minutes of work. Catches 90% of the bugs that would otherwise show up in production.
Optional next step: ask the agent to convert your manual checklist into automated tests. "Here are my 8 verification steps for the signup flow. Write them as pytest tests against the FastAPI endpoints." The agent does the conversion. Now you have automated tests that run on every commit.
Don't skip the manual step on the way to the automated step. Manual verification teaches you what your software actually does. Automated tests will hide the same things from you that the agent's prose descriptions did.
Something wrong on this page? →
Curriculum last updated 2026-04-30