Welcome to the QA Automation assessment. You will be testing a fictional e-commerce application, SauceDemo, to ensure its functionality and user experience are robust.
We would like you to write end-to-end (E2E) tests for the SauceDemo application at SauceDemo using Cypress. You have the freedom to choose a design pattern that you believe is suitable for this project. Your design choices will be assessed in the justification phase, so be mindful of your decisions.
- Technical Skills: Demonstrate your proficiency with Cypress by automating tests for the application.
- Prioritization: Show how you prioritize features to test, ensuring the most critical functionalities are covered.
- Future-proofing: Illustrate how your framework can be scalable and maintainable for future enhancements.
- Documentation: Include detailed documentation on how to set up and run your tests, ensuring that an interdepartmental team can easily follow your instructions.
-
Fork and Clone:
- Fork this repository to your GitHub account.
- Clone the forked repository to your local machine.
-
Create a Branch:
- Create a new branch named
firstName-lastName
(e.g.,john-doe
).
- Create a new branch named
-
Write Your Scripts:
- Write your Cypress test scripts in the
cypress/e2e
folder. - Design and implement a framework that you believe is appropriate for the project.
- Write your Cypress test scripts in the
-
Documentation:
- Provide comprehensive documentation on how to run the tests.
- Justify your design choices and explain how your framework can accommodate future needs.
-
Commit and Push:
- Commit your changes with a meaningful message.
- Push your branch to your GitHub repository.
-
Pull Request:
- Submit a pull request to the original repository.
- Focus on creating a robust and maintainable test suite.
- Think about how you would structure your tests to cover critical functionalities.
- Ensure your documentation is clear and detailed enough for an interdepartmental team to understand and follow.
Include the following in your documentation:
-
Installation:
- Steps to install Cypress and any other dependencies.
-
Running Tests:
- Commands to execute the test suite.
-
Framework Explanation:
- A brief overview of the design pattern used and its benefits.
-
Future-proofing:
- Explain how your framework can be extended or maintained as the application grows.
Good luck! 🍀