Welcome to the QA / Test Automation Engineer Challenge! ππ§Ό This challenge is designed to evaluate your ability to test modern web applications with a strong focus on automation, coverage, and clarity.
At NaNLABS, we believe quality is a shared responsibilityβbut we count on QA engineers to lead the way. We want to see how you approach building a realistic and maintainable test strategy, especially in modern JavaScript environments.
Your task is to design and implement an end-to-end test suite using a tool like Cypress (preferred) to automate UI and API flows. Youβll be working with a real or realistic frontend page and API.
You may test any of the following public pages. Choose one and briefly explain why you picked it.
Choose a known test site such as:
Focus on testing a specific user flow (e.g., form submission, login process, navigation, or data filtering) using Cypress or another modern test automation framework.
Note
You can choose a different public test site if you preferβjust make sure itβs stable, accessible, and has a clear user flow to automate.
π₯ Your submission must be a Pull Request that includes:
-
A folder with your automated test suite.
-
A
README.md
that describes:- What tool you used and why.
- How to run the tests locally.
- What the tests cover and what could be improved with more time.
-
Bonus (if API testing): include a few Postman, Swagger, or Cypress API tests that complement your UI flows.
-
Bonus (if exploratory): include an optional manual test plan or checklist with potential corner cases or exploratory notes.
Tip
You may use GitHub Actions or other CI tools to show test automation in action, but this is not required.
/
βββ .github/
β βββ workflows/
βββ tests/
β βββ e2e/
β βββ [your_test_file].spec.js
βββ docs/
β βββ TESTING_PLAN.md (optional)
βββ cypress.config.js (if using Cypress)
βββ README.md
βββ ...
π‘ Bonus Points For:
- Testing across multiple screen sizes or devices (mobile, tablet, desktop).
- Including edge cases and failure handling in your tests.
- Including basic test coverage metrics.
- Including Postman or Swagger examples for REST API validation.
- Using GitHub Actions or any CI to run the tests on pull request.
- Including tests that validate behavior after state changes or updates (e.g., after clicking a button, submitting a form).
Tip
Want extra inspiration? Check out our Awesome NaNLABS repository for tips on structure, testing tools, and automation examples.
π Follow these steps to submit your solution:
- Fork this repository.
- Create a feature branch with your test suite.
- Commit your changes with clear messages.
- Open a Pull Request following the provided template.
- Weβll review and provide feedback.
π What weβll be looking at:
- Coverage and clarity of your test strategy.
- Use of best practices in test structure and tool usage.
- Automation quality and ability to debug failing tests.
- Clarity of README and instructions.
- Proactive mindset: testing for edge cases, unexpected inputs, and accessibility.
Tip
Donβt overthink itβwe care more about how you think than about perfection!
A few tips:
- Pick something you're comfortable with or excited to try.
- Make your tests easy to read, run, and maintain.
- Call out assumptions or tradeoffs in your README.
If you have any questions, donβt hesitate to reach out. π§ͺπ¬