Start here. This is the direct spoken answer to practice first.
Why this question matters
Parallel execution exposes hidden coupling that sequential runs can mask. The solution is resource isolation, not merely a global switch that turns parallelism off.
Each test owns its data and external identifiers. I generate unique users, tenant keys, filenames, queue names, and idempotency keys instead of sharing one known record. Infrastructure such as a database server or application host may be shared, but mutable state is partitioned or reset within a test-owned boundary.