QA Engineer - Manual, API, Backend and UI Testing

QA portfolio focused on API testing, backend validation and UI regression. Below are QA artifacts, API demos and QA impact dashboards (no NDA data).

Start here - key QA artifacts

If you only have 2 minutes, start with these.

PDF

Regression checklist

Risk-based regression coverage for key user flows and typical breakpoints.

PDF

Test cases

Structured test cases with preconditions, test data, steps and expected results.

Postman

API E2E flow

End-to-end API scenario with request chaining and cleanup.

QA dashboards - mock data

Interactive charts that highlight QA impact: regression duration, defect resolution time and coverage trends. Data is anonymized and based on mock examples (no NDA).

Need fullscreen - open dashboards in a new tab.

QA documents

Concrete QA artifacts (no NDA): bug reports, test cases, regression planning and requirement mind maps.

API demo - Car_store

Two collections: stable E2E flow and CRUD exploration. Docs: E2E overview (Markdown) - CRUD overview (Markdown)

E2E stable - endpoints

A short chain that creates data, validates relations and cleans up after execution.

MethodPathDescription
POST/brandsCreate a brand - store {{brandId}} for chaining.
POST/carsCreate a car linked to the brand - store {{carId}}.
PATCH/cars/{{carId}}Update a field (example: price) and validate response schema.
GET/cars/{{carId}}?_expand=brand&_embed=reviewsValidate relations and data integrity (expand + embed).
DELETE/cars/{{carId}}Cleanup - delete created car.
DELETE/brands/{{brandId}}Cleanup - delete created brand.

CRUD endpoints

CRUD checks plus list validations (filters, sorting, pagination) and basic search.

AreaMethodPathWhat is validated
Health GET /health Service is alive, returns expected status and headers.
Admin POST /reset Database reset - stable baseline before test runs.
Cars GET /cars List - basic schema and typical fields.
Cars GET /cars?brandId={{brandId}}&price_gte=20000&price_lte=40000 Filters - result set matches constraints (brandId and price range).
Cars GET /cars?_sort=price&_order=asc&_page=1&_limit=3 Sorting and pagination - order is correct, page size is respected.
Cars POST /cars Create - required fields and generated id validated.
Cars GET /cars/{{carId}} Get by id - data matches created or updated entity.
Cars PATCH /cars/{{carId}} Partial update - only updated fields change, others stay same.
Cars PUT /cars/{{carId}} Replace - required fields enforced, missing fields behavior checked.
Cars DELETE /cars/{{carId}} Delete - follow-up GET returns 404 or empty response.
Brands GET /brands List brands - basic schema and expected fields.
Brands POST /brands Create brand - store {{brandId}} for chained requests.
Brands GET /brands/{{brandId}}/cars Relation endpoint - cars returned belong to the brand.
Brands PATCH /brands/{{brandId}} Update brand - validates response and persistence.
Brands DELETE /brands/{{brandId}} Cleanup - remove created brand after tests.
Search GET /cars?q=tesla Free-text search - relevant hits returned.

Project quick start - Car_store demo

Sources: car_store repository

OptionCommandsNotes
Node npm install then npm start Runs json-server demo locally
Docker docker build -t car_store . then docker run -p 3001:3001 car_store Build image and run container
Docker Compose docker compose up --build Runs demo via compose

Postman collections - import JSON, set the base URL, then run requests in order.