Manual Tests
Objective
High-quality manual test cases need to be built up and maintained moving forward. A group of testers can run through them before releases are shipped and developers can also use them as a point of reference/sanity check when doing the big codebase refactor project.
Test Suites
- (COMPLETE) Patient Demographics
- (Matthew) Facility Registration
- (UNASSIGNED) Add QA Seed Data
- (UNASSIGNED) Patient Scheduling
- (UNASSIGNED) Electronic Medical Records
- (UNASSIGNED) Prescriptions
- (UNASSIGNED) Medical Billing
- (UNASSIGNED) Clinical Decision Rules
- (UNASSIGNED) Patient Portal
- (UNASSIGNED) Reports
- (UNASSIGNED) Multilanguage Support
- (UNASSIGNED) Security
- (UNASSIGNED) HL7
- (UNASSIGNED) Procedures
- (UNASSIGNED) Custom Forms
- (UNASSIGNED) Calendar
- (UNASSIGNED) Preferences
- (UNASSIGNED) MU2 Testing
- (UNASSIGNED) System Upgrades
Test Development
The tests will be built up in the following fork (for now): https://github.com/MatthewVita/openemr. There is a top-level "/Tests/Manual_Tests" folder that contains folders for each test suite. Individual test cases are to be placed in these folders (or sub-folders, when needed). For example:
- /Tests/Manual_Tests/Electronic_Medical_Records/Medications/1_Add_Medications_Test_Case.md
- /Tests/Manual_Tests/Electronic_Medical_Records/Medications/2_Edit_Medications_Test_Case.md
- /Tests/Manual_Tests/Electronic_Medical_Records/Medications/3_Remove_Medications_Test_Case.md
- /Tests/Manual_Tests/Electronic_Medical_Records/Medications/4_Prescribe_Medications_Test_Case.md
The tests are written in markdown format. It turns out that bulleted lists in markdown tables are not supported (http://stackoverflow.com/questions/19950648/how-to-write-lists-inside-a-markdown-table), so plain old HTML tables are leveraged instead (markdown can handle basic HTML).
Use the following WYSIWYG HTML editor (http://bestonlinehtmleditor.com/) and Markdown check (https://stackedit.io/editor) tools like so: https://raw.githubusercontent.com/openemr/openemr/tree/master/Test/Manual_Tests/test-writing-tools.gif
Philosophy & Approach
- Keep tests elegant and within appropriate boundaries.
- Test cases should cover realistic happy paths and negative paths.
- Tests cases are to be ran serially inside of a suite (open for feedback).
- It is acceptable to have the tester query the database when the UI can't satisfy an assertion.
- Each test case is simply a markdown table with columns "Step Number", "Description", and "Expectation".
- Assume that the tester that runs the test is familiar with the system and terms.
Test Execution
Let's keep this _dead simple_. When the manual tests are ran before each release, the following table (which is mocked up for now) will represent testers, assigned test suites, and execution status. If a suite has a FAILED status, tester is responsible for submitting a bug and keeping an eye out for a fix so the suite can be re-ran.
Tester | Suite | Status |
---|---|---|
John Doe | Facility Registration | IN PROGRESS |
Sue Bob | Patient Demographics | PASSED |
Sue Bob | Patient Scheduling | IN PROGRESS |
Mark Smith | Electronic Medical Records | IN PROGRESS |
Mark Smith | Prescriptions | FAILED |
Sue Bob | Medical Billing | FAILED |
John Doe | Clinical Decision Rules | PASSED |
Mary Swanson | Patient Portal | IN PROGRESS |
John Doe | Multilanguage Support | PASSED |
John Doe | Security | PASSED |
Links/Resources
- Target browser for test: Firefox 40+ (we don't have to be too precise with this)
- Project thread https://sourceforge.net/p/openemr/discussion/202506/thread/5f706dff/