Primary mentor | Jayasanka |
Backup mentor | Brandon |
Assigned to |
Abstract
The current 3.x E2E tests can be further improved by doing the following,
Extending tests
The student should collaborate closely with the o3 team to identify new workflows and design tests.
Making tests more reliable
Current tests are less reliable because they are not very stable. Sometimes they pass, but there is still a chance that they will fail. Also, tests suddenly start to fail when there are new changes in the implementation. We need to look into ways to improve the reliability of tests.
Run tests against Pull requests
Currently, we don’t have a mechanism for running tests against Pull requests. As a result, no failures can be detected until the changes are merged and someone run the tests manually. It makes it difficult to detect root courses as well as to engage developers. We need a proper way to run these tests against the changes in pull requests.
Improve developer engagement
We do see a lack of engagement of O3 developers with E2E tests.
The possible reasons might be:
- The E2E tests are not yet a part of the current development cycle.
- It isn’t that easy for an O3 developer to easily get started with E2E tests due to lack of documentation.
- It is a bit hard to work with the local environment.
Required skills
We expect the student will have a thorough understanding of the following,
- Automated software testing
- CI/CD Pipelines
- Containerized applications
- Single-page applications and Micro-frontend architecture
Project Rating and length
Easy
175 hours
Objectives
- To improve developer engagement
- To improve the reliability of tests
- To run tests against 3.x related Pull requests
Apart from that, we do need to achieve the following as well
- Making local test runs repeatable despite data mutations
- Handling metadata of the dockerized DB
- Syncing local setup with the latest development version of O3
- Running tests against an unmerged version
- Fixing the screen recording feature.
Documentation
Detailed Project Report
Weekly Reports
Final Presentation
Resources
OpenMRS 3.0: A Frontend Framework that enables collaboration and better User Experience