This project aims to showcase the process used to test the website Automation Practice, including the creation of all the corresponding test documentation, such as wikis, describing each of the modules of functionality that make up the application, the user stories outlining such functionality, and the test cases derived from them.
The high priority test cases have also been translated into test scripts and automated. This project implements all such test scripts using the Cypress testing framework.
The tests include functional and e2e tests. As well as different test types such as accessibility, performance and visual tests.
Note: The Automation Practice website is a full-fledged website built for QA and test automation practice purposes.
In order to do a thorough testing of the functionality present in the Automation Practice website these steps have been taken:
- Create an account on the application
- Do exploratory testing / use the application as an user would
- Divide the app into different buckets of functionality
- Prioritize buckets of functionality depending on risk
- Create a wiki section for each of the buckets of functionality
- On each wiki section add a description and user stories outlining all the corresponding functionality
- Create test cases for each of the user stories
- Create detailed test cases in a spreadsheet
- Create automated test scripts from detailed test cases (only high prio)
I will now take you step by step and show you how each step has been taken.
- Main Page
- Authentication
- My Account
- Contact Us
- Search
- Catalogue
- Shopping Cart
- Product Detail Page(PDP)
- Checkout
- Subscribe
- Footer
High prio
- Checkout
- Shopping Cart
- Product Detail Page(PDP)
- Authentication
- Catalogue
- Search
Low prio
- My Account
- Contact Us
- Subscribe
- Main Page
- Footer
Each bucket of functionality has its own wiki section in this repository, where their description, user stories and test case names are displayed.
At the bottom of each wiki page there are links to both the spreadsheet test cases and the test scripts belonging to them:
High Prio Buckets of Functionality
-
Checkout:
Low Prio Buckets of Functionality
6. On each wiki section add a description and user stories outlining all the corresponding functionality: ✅
Example: Authentication wiki
As you can see from the above example, in which the wiki for the Authentication - Login module of functionality is displayed, each wiki section is made of a description(displayed below Login heading), followed by user stories and test cases related to such functionality.
The user stories in turn have at least as many test cases derived from them. Test case names can be found beneath the user story they belong to. Some test cases, like the first test case "should display all necessary elements" are standalone and do not belong to any user story.
Each test case name represents a full test case in a spreadsheet (complete with test data, test steps and expected and actual results, etc):
And a test script in a test suite (complete with test data, automated test steps and test assertions):
Links to both spreadsheets with test cases and test scripts can be found at the bottom of each wiki section as shown here:
So going from each bucket of functionality down to the user stories and then the test cases derived from them can be visualized the following way:
-
Bucket of functionality:
-
User Stories:
-
Test cases (spreadsheet):
- Test data
- Test steps
- Expected and actual results
-
Test scripts (code):
- Test data
- Automated test steps
- Automated test assertions
-
-
For installing cypress cd to the project's root folder and run:
npm install
For opening cypress client cd to the project's root folder and run:
npx cypress open
Or if running from the CLI:
npx cypress run
- Black Box tests
- Equivalence partitioning tests
- Boundary value analysis tests
- UI functional tests
- Accessibility tests (pending)
- Responsiveness tests (pending)
- Visual tests (pending)
- Cypress