Unit, UI, and API Test Automation Framework Requirements
- You shall unit test your daily code before creating pull/merge requests.
- You shall get your pull requests reviewed by at least 2 senior developers.
- You shall incorporate GitHub Actions to implement a CI/CD pipeline.
- You shall adopt an API Test Automation tool to test the Business Layer of the application.
- You shall use headless browser mode to test the User Interface of the application.
- You shall use Synthetic as well as Production data to test the application.
- You shall perform Discovery as well as Usability Testing.
- The test automation framework shall distinguish between the role of test files, test cases, test results and provide respective behavior.
- The test automation framework shall include critical components such as a test runner and test driver.
- The test automation framework shall provide coverage information for each test case 10.1 The coverage report shall be automatically generated after each test run. 10.1.1 The coverage report shall be in HTML and PDF format to be viewed by software such as Web Browsers and PDF Viewers. 10.1.2 The coverage report shall automatically open in appropriate program after being generated. 10.2.1 The coverage report shall have three different types of statistics i. Percentage of classes covered ii. Percentage of code lines covered iii. Percentage of code missed
- The test automation framework shall allow a test to report its result automatically.
- The test framework shall be easily usable by testers of all ranks. a. The framework shall not be too complicated to set up in a new environment b. The framework shall contain multiple usability features i. Annotation Support ii. Test skipping support iii. Batch test case run support iv. Pre and Post condition support
Process Requirements
- You shall use the AGILE process to work on this project. 1.1 You shall use SCRUM methodology to complete this project 1.2 You shall hold daily meetings with the stakeholders 1.3 You shall report the progress to the stakeholders daily 1.4 You shall maintain minimum documentation and focus your efforts on development
- You shall use GitHub to host your project.
- You shall use 5 branches to maintain this project 3.1 First branch shall be Master, that hosts the most stable release source code 3.2 Second branch shall be Beta, that shall be made available to the testers and insiders who shall use this for testing 3.3 Third Branch shall be called Hotfix, which will be used to quickly patch critical issues 3.4 Fourth branch shall be called Features, which shall contain the code with newly introduced features 3.5 Fifth branch shall be Releases, which shall be used to issue releases to the users.
- You shall use GitHub Issues to assign tasks as well as manage schedule of the project. 4.1 You shall use 6 types of Issue labels to differentiate them 4.1.1 Urgent, for critical issues 4.1.2 Documentation, to document progress 4.1.3 Duplicate, to prevent redundancy 4.1.4 Enhancement, to mark a feature that, while not necessary, would be a good addition to the project 4.1.5 Question, to request for further information regarding the issue 4.1.6 Wontfix, to mark an issue that won’t be worked upon for the time being