QA Automation Engineer interview question
How do you run tests in parallel safely?
Parallel tests need independent accounts, data namespaces, ports and files; deterministic setup, no global mutable state, bounded workers, resource-aware scheduling and unique cleanup. Shard by measured duration, not arbitrary file count.
Direct answer
What a strong answer covers
How it works
Parallel tests are safe when nothing they touch is shared. Each worker gets its own accounts, data namespace such as a tenant or prefixed identifiers, ports, temporary directories, and browser context, and setup is deterministic so order does not matter. Global mutable state in the test process, static caches, singletons, and environment variables, is the usual culprit when parallel runs start failing. Workers are bounded to what the machine and the system under test can handle, resource-hungry tests are scheduled apart, cleanup is unique per test rather than a global reset, and sharding across machines is done by measured duration so all shards finish together.
Example
A suite of 800 API tests moved from serial to 8 workers by giving each worker its own database schema created in a fixture and generating unique emails per test. Two tests that modified a shared feature flag were rewritten to use a per-tenant override. Sharding across four CI machines by historical duration brought the wall time from 40 minutes to 6, with the longest shard within a minute of the shortest.
Common mistakes
- Running in parallel against one shared database and getting order-dependent failures.
- Sharding by file count so one shard takes three times longer than the rest.
- Starting so many workers that the system under test becomes the bottleneck and everything times out.
A useful answer structure
Answer from your own work.
Do not memorise a script: use only examples you can explain honestly in follow-up questions.
Open the desktop workspace and rehearse a clear answer in your own words.