Project - Automated Testing

OpenEMR currently has an initial framework for automated testing which uses travis to run testing on all PHP versions, all MySQL versions, and all MariaDB versions. What is missing is the actual tests. Currently there are a couple unit tests and a couple e2e (functional) tests and no api tests. We are waiting for somebody to come along to pick and implement testing frameworks and design extensive automated unit, functional, and api testing.

Mentors:
@brady.miller
@stephenwaite

Hi, I am Jenniline Ebai. I am a Computer Engineering student and I have knowledge in Penetration Testing and Website Security as I have done it as course work and Also practical work. That is what has made me gain interests in this project.
My skill set is PHP, Laravel, MySQL, database design and querying, and JavaScript.
I am willing to share my knowledge on this project and also contribute to it. I will come up with a plan of action for this project which can also be known as my idea for this project.

But firstly, @brady.miller I will like to know if there is a Github repository for this project where other testing work has been going on. Or a document showing the progress of this work so far.
Also, I will like to know if you have any guides or the way forwards for someone interested in this project

Thanks, I await your reply.

1 Like

Hello this is the main project repository on [main project repo](github GitHub - openemr/openemr: OpenEMR is the most popular open source electronic health records and medical practice management solution. ONC certified with international usage, OpenEMR's goal is a superior alternative to its proprietary counterparts.), the organization is live here Github , I am Sure @brady.miller will be here soon to give more information on this project. Welcome!

hi @Jenniline_Ebai and welcome to the OpenEMR project!

Check out the links @prondubuisi posted for the github link.

For an overview of what is done currently via automated testing (and would be a good launching point of the project):

  1. Check out the travis testing that is done on each commit in github
  2. See here for the travis testing script: openemr/.travis.yml at master · openemr/openemr · GitHub
  3. See here for where the current Tests are stored: openemr/tests/Tests at master · openemr/openemr · GitHub
  4. See here where store some things, like docker setups, for the travis testing: openemr/ci at master · openemr/openemr · GitHub

This is a nice project since there is already a working very minimal solution with very minimal tests. The next step is to decide on and configure testing frameworks and markedly expand the testing.

-brady

btw, a good first step would be setting up and documenting how to run the testing locally.

Hi @brady.miller. I am Usman. I am a third year PHD (Software Engineering) student. I am working in the field of automated software verification and testing. I have taken relevant courses in verification and validation of software. I believe that I will be able to apply my skills to this project and at the same time enhance my knowledge and improve my software testing skills.

I have extensive experience in Java, Python, C++ and web technologies (HTML/CSS/JavaScript).

Please guide me about the next steps to apply for this project.

Thank you!

hi @usman and welcome to the OpenEMR project!

Check out my posts above for starting points. And you will likely add PHP to your skillsets if you take this project on :slight_smile:

-brady

Hi mentors,
I am willing to help in this project.I have an prior experience in writing test script using webdriver, PHP Unit & Endtest.I have worked with CircleCI in the past and i can easily shift to TravisCI.
Thanks
-Amit

I am planning on creating a readme for installation of travis ci locally.

1 Like

Hi,

This is really fun stuff. A neat thing to support would be for the easy development docker environment to support the following actions (akin to what travis does (openemr/.travis.yml at master · openemr/openemr · GitHub), but just for that environment):

  1. php syntax checking
  2. psr2 checking
  3. unit tests
  4. e2e tests
  5. api tests

Then the developer can run the command on their docker to check/test their code locally.

The time to do this would likely be extensive (ie. not a small project), but is something I’ve been thinking about supporting for awhile.

-brady

btw, I’m just thinking out loud regarding above post. There are a lot of other cool things to do regarding automated testing; ie. the sky is the limit.

Hi Brady,

I like your ideas. Is there a proposal template I should follow and are there any tasks I need to submit before submitting proposal?

Thanks,

Usman

hi @usman ,

No strict rules on templates. There is a sample template at the bottom of the following page:
https://summerofcode.withgoogle.com/organizations/6515750266732544/

Key thing is to have it reviewed by mentor(s) or community before submitting it.

For a successful application, try to fix bugs or issues or participate in code reviews. These are great ways to jump start your OpenEMR knowledge, begin to participate in the community, and show off your skills. And don’t worry about being wrong or making mistakes when participating and learning about OpenEMR; the community values passion more than skills since we are confident your skills will improve.

Also, check out my post above, where another way to work on a related issue to this project would be adding a couple simple tests to the current testing framework:
Project - Automated Testing

thanks!
-brady