QA Automation Internship Assignment
Objective
This assignment evaluates your ability to automate testing for real-world scenarios using
publicly accessible platforms, open-source projects, or mock/simulated environments. It also
assesses your knowledge of automation tools, CI/CD pipelines, and test reporting, while
ensuring compliance with ethical and legal guidelines. Preferred tool Selenium.
Assignment Overview
You are tasked with automating tests for a Patient Management Module commonly found in
hospital management systems. This module includes features like patient record creation,
searching, and managing workflows.
You have the flexibility to choose your testing environment from one of the following:
1. Public or Open-Source Platforms:
○ Applications or systems related to healthcare management, such as:
■ Appointment scheduling and management platforms.
■ Patient health record systems.
■ Telemedicine or doctor-patient interaction tools.
2. Mock/Simulated Environments:
○ Custom-built or publicly available tools to simulate workflows.
Important: Ensure all work complies with the ethical and legal guidelines of your region.
Avoid scraping data or automating unauthorized logins for public platforms.
Tasks and Requirements
1. Automated Functional Testing
Automate the following workflows:
1. Patient Record Creation:
○ Input valid and invalid data, such as missing required fields or incorrect
formats (e.g., invalid email addresses), and validate error messages.
2. Search Functionality:
○ Automate tests for searching by valid criteria (e.g., patient name or ID) and
invalid scenarios (e.g., nonexistent entries).
3. Pagination and Sorting:
○ Test pagination behavior for large datasets and sorting by columns such as
patient names or dates.
2. API Testing
Use tools like Postman, REST Assured, or equivalent to automate tests for relevant API
endpoints:
1. Create, update, and delete patient records.
2. Validate API responses, including:
○ Response status codes (e.g., 200, 400, 404).
○ Schema validation.
○ Handling edge cases like attempting to delete non-existent records.
3. UI Automation
Use tools like Selenium(Preferred), Cypress, or Appium to automate:
1. Form Validations:
○ Validate required fields, input formats, and dropdown options.
2. Button and Navigation Tests:
○ Automate navigation workflows, including form submissions and page
redirections.
3. Responsive Design Testing (Optional):
○ Test UI behavior on different screen sizes (e.g., desktop, tablet, mobile).
4. Continuous Integration (CI) Setup
Set up a CI/CD pipeline using a tool like Jenkins, GitHub Actions, or GitLab CI/CD:
1. Automate the execution of your scripts after every code push.
2. Generate and publish test execution reports.
3. (Optional) Configure notifications for test results (e.g., email or Slack alerts).
Note: If you're unfamiliar with CI tools, resources will be provided to help you get started.
Environment Options
Option 1: Public or Open-Source Platforms
Choose platforms related to:
● Healthcare Management:
○ Patient appointment scheduling or record management systems.
● Hospital Operations:
○ Platforms handling patient billing, inventory, or admissions.
● Telemedicine:
○ Systems for remote consultations or patient monitoring.
Ensure all testing is done within publicly accessible features, and avoid unethical practices
like scraping or unauthorized automation.
Option 2: Mock/Simulated Environments
Alternatively, create a custom environment using:
● Mock APIs:
○ Use Mockaroo or Reqres to generate realistic patient data.
● Simulated Interfaces:
○ Use tools like The Internet (Herokuapp) for form-based testing workflows.
● Provide sample data for workflows, including fields like name, age,
appointment_date, and doctor_name.
Deliverable Note: You may combine both options to demonstrate flexibility and skill.
Deliverables
1. Automated Test Scripts:
○ Submit scripts for:
■ Functional tests.
■ API tests.
■ UI tests.
○ Use frameworks like Selenium, Cypress, Appium, or REST Assured.
2. CI Configuration Files:
○ Include your CI configuration (e.g., Jenkinsfile, .yml) and describe your
pipeline setup.
3. Execution Report:
○ Include a generated report from your test framework with:
■ Pass/Fail results for each test case.
■ Test coverage details.
■ Any issues or exceptions.
4. Defect Reports:
○ Identify at least three edge cases or bugs (real or hypothetical). Include:
■ Description, steps to reproduce, expected vs. actual results, and
severity.
5. Video Recording:
○ Record a 5-minute video showing:
■ Your scripts in action.
■ Test results.
■ CI pipeline running the tests.
6. Documentation:
○ Submit a detailed PDF summarizing:
■ Your test plan.
■ Explanation of scripts and workflows.
■ CI pipeline setup process.
■ Defect reports.
Resources for Beginners
To assist candidates unfamiliar with certain tools:
1. Selenium Documentation: https://www.selenium.dev/documentation/
2. REST Assured API Testing Guide: https://rest-assured.io/
3. Jenkins Pipeline Tutorial: https://www.jenkins.io/doc/book/pipeline/
Evaluation Criteria
1. Automation Skills:
○ Clean, reusable scripts.
○ Proper handling of edge cases and dynamic data.
2. Problem-Solving:
○ Creative approaches to platform-specific challenges.
○ Thoughtful handling of defects and validations.
3. CI Skills:
○ Configuration and execution of CI pipelines.
○ Automated test execution and reporting.
4. Professionalism:
○ Quality of documentation, reports, and video explanation.
5. Thoroughness:
○ Comprehensive test coverage for workflows and APIs.
Common Questions (FAQs)
1. What if I don’t have access to healthcare platforms?
○ You can use mock APIs and simulated environments as described in Option
2.
2. What tools can I use for automation?
○ Popular tools like Selenium, Cypress, Appium, or REST Assured are
recommended, but you’re free to use any equivalent framework.
3. What if I’ve never used CI tools before?
○ Refer to the provided Jenkins tutorial or GitHub Actions documentation to get
started. Optional setup is acceptable for beginners.
4. Can I combine public platforms and mock environments?
○ Yes, you can mix both options to demonstrate your skills.