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