Quality Assurance Environment (QA)

Quality Assurance Environment (QA)

Purpose and Characteristics

The QA environment is dedicated to systematic testing of completed development work. According to OpenMRS documentation, the QA RefApp server (http://qa-refapp.openmrs.org ) is automatically deployed from continuous integration builds and serves as the primary automated testing environment.

●      Key Features:

○      Automatically updated when CI builds pass (green builds)

○      Contains structured test datasets designed for various testing scenarios

○      Database is automatically cleaned and reset with each deployment

○      Configuration mirrors production settings more closely than Dev

○      Runs automated end-to-end (E2E) tests using the QA Framework

○      Uses Docker image tag pattern: openmrs/openmrs-reference-application-distro:qa

Testing Framework and Tools

OpenMRS QA Framework: Implements workflow-based E2E testing approach that validates happy-path user stories from the user's perspective.

Test Organization: Tests are organized in test cycles including Automated Tests, Release Tests, and Regression Tests. Zephyr for JIRA tracks testing progress.

Automation Tools: Selenium for automated testing, Cypress for frontend testing, and CucumberStudio for behavior-driven development (BDD) test cases.

Continuous Integration: Bamboo CI server and Travis CI execute automated tests on every commit and pull request.

Testing Activities

●      Functional testing of new features and bug fixes

●      Regression testing to ensure existing functionality remains intact

●      Integration testing across modules and components

●      Performance baseline testing

●      Automated workflow testing from user perspective

●      Key Users:

○      QA engineers executing test plans

○      Developers investigating and fixing reported bugs

○      Business analysts validating requirements