How to practice standard or formal testing techniques outside of a job?

There are standard testing techniques like equivalence partitioning testing (easy), pairwise testing, state transition testing, control flow testing etc. Techniques like the equivalence one are easy to test and don’t really need much practice.

How do I practice the relatively harder techniques like state transition, pairwise etc. outside of a job (i.e. during job search)? I am looking for multiple, realistic exercises with solutions for this. I have not come across any book or course which meets these requirements. The books I saw have just 1 or 2 realistic examples or just toy examples. None have solutions which I can use to compare my answer. This is just to test myself and build some memory.

one way to get realistic exercises with an answer key is to work backward from open-source apps that already have acceptance tests. pick a feature, hide the test folder, derive the partitions, state model, or pairwise set from the requirements and UI, then compare your cases with the existing suite.

for state transitions, use login lockout, cart and checkout, or a subscription lifecycle. for pairwise, combine browser, role, locale, payment method, and feature flag. keep a decision table explaining why each case exists. if the project has no clear business rules, skip it because there is no trustworthy oracle.

Why limit yourself to software? Testing principles such as those you’re describing can be applied to lots of different things. For example, consider the combinations of inputs that are available to you in a motor car, and establish what combinations should result in the car travelling forward.

Or at a very basic level, you could look at what is required for a fridge light to turn on. This sort of task not only makes you think about test conditions and outputs, but also trains you not to make assumptions. You can’t assume the fridge is plugged in and turned on…

I agree u try @dwaynesamuels method , one such open source project u can try ur hands on is : GitHub - spree/spree: Open Source eCommerce Platform for B2B, Marketplace, and Enterprise. REST API, TypeScript SDK, and production-ready Next.js storefront. Self-host it. Own your stack. No vendor lock-in. Zero platform fees. · GitHub @nsegal

Hmm, does your fridge even have a switch… and should some kinds of fridge have one while others should not. That’s a good one Simon.

spree is a strong pick because checkout has real state transitions without needing a toy oracle. i’d start with one product and map guest cart → sign-in → address → shipping → payment → order, then add one invalid transition and compare it with the existing request or system specs.

keep the model small enough that you can explain why every state and transition exists. that explanation is the useful practice, not just matching the suite.

Thanks. I saw that you and Komal agree on trying Spree commerce for my purpose. I explored Spree (Youtube demos and project overview) and the Github project a bit (saw an e2e folder for dashboard-ui). I see that it lets businesses create storefronts/online shopping websites for themselves. Spree has also showcased some 100 businesses which used them at some point.

But I have to admit, I am not sure where to start. Could you please give me some pointers? I’ll explore further meanwhile.