Manual Tests

From OpenEMR Project Wiki
Revision as of 21:37, 5 July 2016 by Matthew Vita (talk | contribs)

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 FAILED
and... so... on...

Links/Resources