Skip to content

Instantly share code, notes, and snippets.

@romankierzkowski
Created May 6, 2026 11:59
Show Gist options
  • Select an option

  • Save romankierzkowski/26c7da4afb41202f2aef7c3903fbb8f9 to your computer and use it in GitHub Desktop.

Select an option

Save romankierzkowski/26c7da4afb41202f2aef7c3903fbb8f9 to your computer and use it in GitHub Desktop.
Test Automation Engineer — Live Coding Assessment

Live Coding Assessment: Test Automation Engineer

Duration: 60–90 minutes
Format: Screen share, you code, we observe and ask questions
Tools: Your own machine, any editor, Python 3.10+, PyTest, any libraries you want


Setup (do before the interview)

Make sure you have these ready before we start:

python --version   # 3.10 or higher
pip install pytest requests

You do not need any accounts or API keys.


The Task

You will write an automated test suite in Python + PyTest for a public REST API:

Base URL: https://reqres.in

Treat it as a real backend service you are responsible for testing.


What to build (in order)

Work through these in order. It is okay if you do not finish everything — we care more about how you work than how much you finish.

Part 1 — Project setup (5 min)

  • Create a PyTest project structure
  • Add any dependencies you need
  • Make sure pytest runs without errors

Part 2 — SSL / Security tests

Write tests that verify:

  1. The service has a valid, trusted SSL certificate
  2. The TLS version is 1.2 or higher
  3. HTTP traffic is redirected to HTTPS (or plain HTTP is rejected)

Part 3 — API tests

Write tests for these endpoints:

Endpoint What to test
GET /api/users?page=2 Status code, response schema, data is a list
GET /api/users/{id} Existing user (e.g. id=2), non-existent user (e.g. id=999)
POST /api/users Create a user, verify returned fields match what you sent

For each: test at least one happy path and one negative/error case.

Part 4 — Code quality (ongoing, not a separate step)

As you write, use:

  • A fixture for the base URL or shared session
  • @pytest.mark.parametrize for at least one test
  • Descriptive test names

Notes

  • Talk through your thinking as you go — we want to understand your decisions
  • Ask questions if anything is unclear
  • If you get stuck on something minor, say so and move on — time management matters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment