/
Quality Assurance

Quality Assurance

At OpenMRS, we are trusted by our users to deliver a high-quality product every release. We believe in proactive quality assurance over reactive quality assurance, but acknowledge that in software delivery both are required at different times. As a community developed codebase, Quality is a shared responsibility between the developers, the quality assurance team, the release manager, the product managers and business analysts, and our partners and their users. Our mission is to ensure that every team member understands the importance of quality and feels a responsibility and ability to contribute to the development of exceptional software.

We'd love to hear from you. We hang out on the #qa channel and https://talk.openmrs.org/c/dev/qa/33 category on OpenMRS Talk.

Our Principles

  • Promote a Culture of Shared Quality Responsibility

    • Embed quality practices early in the development process.

    • Incorporate quality checkpoints throughout the development and release lifecycle.

    • Include the voice of our users, ensuring their feedback informs product improvements.

    • Advocate for strong software design, rigorous testing practices, and proactive bug prevention.

  • Enhance and Optimize Test Coverage

    • Ensure all tests are executed at the most impactful stages.

    • Provide clear and actionable test coverage reports to teams.

    • Continuously refine our testing processes to eliminate redundancies, address gaps, and improve stability.

  • Increase Team Efficiency and Engagement

    • Develop automated solutions to streamline core workflows and boost productivity, but acknowledging that not everything can or should be automated to preserve maintainability of our QA processes & solutions.

    • Maintain reliable tools and tests to support continuous integration and delivery.

    • Ensure our CI pipelines are efficient, stable, and provide comprehensive coverage.

  • Data-Driven Decision Making

    • Provide insights into defects, test stability, efficiency, and team performance through data.

    • Make actionable data transparently available to the team and community.

    • Use metrics to inform decision-making and drive continuous improvement.

 

QA Roadmap

Done

Recent Work Completed

Now

What We're Working on Today

 Next

Next Priorities*

Optimizing E2E Testing: Reducing Time and Resource Consumption

Optimized the E2E testing process by using a pre-filled Docker container with a pre-built frontend instead of the dev server. This change reduced test execution time by over 75% and minimized resource consumption by more than 80%, resolving the persistent failures in GitHub Action builds.

Openmrs3 FELLOWSHIP  

OpenMRS 3.0 E2E Test Automation

As development of OpenMRS 3.0 progressively evolves, so are the tests being developed using the Playwright integration. Ensuring the two processes are happening simultaneously.

Openmrs3 Volunteers  

Legacy selenium test rewrite to Cucumber Framework

Legacy selenium tests are being translated to the cucumber framework for the purposes of maintainability and eliminating dependencies that arose when the tests were migrated to the QAFramework module. 

 UW ITECH  Volunteers

Rest API Test Automation

The Platform team used to manually test and track the REST API end points.  The collaboration between the Platform team and QA support ensured that the tests are now tracked through the QA dashboard and automated missing REST API end points.

Platform team UW ITECH  OMRS Inc

OpenMRS QAFramework Module

Migrated the utilities and pages from RefApp distro, and uitestframework module into the openmrs-contrib-qaframework and integrated github action to run at every single pull request.

 UW ITECH  OMRS Inc

QA-KenyaEMR set up and support

The QA support team has been working collaboratively with Palladium Kenya to set up a QA automation framework for the KenyaEMR.

Palladium Ke. UW ITECH  OMRS Inc

 

 

Platform set-up wizard test

Modifying existing tests to meet current requirements of the platform team

 UW ITECH   OMRS Inc

 

Integration of Heroku

This is to assist in testing changes in unmerged pull requests before being merged to the master.

 

Opted to use github actions which replace heroku

 UW ITECH  OMRS Inc

 

Load Test Automation

Simulate 200 concurrent users to identify performance bottlenecks and ensure the software can handle high traffic without compromising functionality or speed. - Led by @Jayasanka Weerasinghe

  Openmrs3 OMRS Inc

Test Coverage for React Form Engine

Tests coverage for the React Form Engine ensures comprehensive testing of form interactions, validations, and user workflows, guaranteeing a seamless user experience. This thorough testing approach helps identify and resolve potential issues across the entire form submission process. - Led by @Jayasanka Weerasinghe; looking for more contributors for unit & integration test coverage

  Openmrs3 Volunteers OMRS Inc

Manual QA Guide

Step-by-step guide for people interested in helping with manual QA: Where to start from, which areas do you look out for, what exactly should you look for, some example test cases & scenarios. (Previous SURE TEST framework here). - Led by @Veronica Muthee

  Openmrs3OMRS Inc

Ticket Guidelines for Clear Testability

Guideline for expectations of OpenMRS community tickets: what they should contain to optimize clear requirements for better testing to confirm and check functionality. - Led by @Veronica Muthee

  Openmrs3OMRS Inc

“How to be an O3 Release Manager” Docs

Current guidance is a bit vague and seen as “magic” that “only certain people can do”. Should have clear guidance like for O2 that explain how to kick off, oversee, and technically complete an O3 RefApp release. - Led by @Veronica Muthee w/ co-support from @Jayasanka Weerasinghe

  Openmrs3OMRS Inc

Increase Number of Quality Manual Test Contributors in Release Testing Sprints

Led by @Veronica Muthee

  Openmrs3OMRS Inc

 

Operation September:

  • In September 2024: We will require that all PRs must have test coverage to be considered for RefApp review & merging.

    • Requires both some training at the In-Person Conference in Nairobi; and, work on the below:

  • Simpler QA Automation Tools for Developers

    • Current tooling could be easier for developers to start using. Also gaps with emulating situations that only happen in a browser and not during local machine testing.

  • More Re-Useable Sample E2E, Unit, and Integration Tests

    • Current examples we see being copy-pasted are mostly simple rendering E2E tests. Also more edge case coverage is needed beyond just “happy path” coverage.

    • Extend QA Automation course to include unit and integration testing training

    • Update O3 Dev Testing Docs to include more best practices

 Openmrs3 OMRS Inc Leaders: @Jayasanka Weerasinghe @Dennis Kigen @Ian Bacher

Consolidate All Test Metrics on One Dashboard

Currently, tests run independently on relevant repositories. The goal is to consolidate these test results into a single dashboard for a comprehensive view of the overall system health. We can utilize a tool like Xray in Jira to achieve this integration, providing a unified platform for monitoring and assessing the status of the product.

 Volunteers  OMRS Inc

Streamline Manual Testing

By utilizing a tool like Jira Xray, we will be able to effortlessly create, organize, and execute our manual tests. This will allow us to conduct tests as needed, such as before major releases or on a monthly basis.

 Volunteers  

Security XSS vulnerability Testing

Resurrection of sonarqube  with the aim of helping the team to identify and resolve code vulnerabilities.

 Volunteers  

Documentation Revamp

Developing and updating the QA documentation 

 UW ITECH   

Expanding the QA portfolio

Investigate and determine additional focus areas to be supported by OpenMRS under the QA testing pyramid. Proposed areas by the community: accessibility testing and performance testing

 QA support team Implementer X  

 

 

 

 

 

 

 

 

Related content