When the QA Team embarked on their journey to strengthen our community’s QA processes and tools, one of the first things they did was identify their goals as a team:
- Community-led.
- Sustainable and robust testing processes and framework.
- Foster a culture of quality assurance in developer and implementer practices.
- To produce high-quality OpenMRS products.
It’s one thing to make “community-led” one of our goals. It’s another thing to make it happen. Reflecting on the QA Support Team’s experience over the last year, here are some ideas about how they are turning theory into practice:
- QA from the beginning, not at the end. The QA Team started out by taking a closer look at the QA practices being used for a Reference Application release. Want to guess when QA came into the process? You’ve got it: towards the end. By the time the QA team spoke with the Ref App release managers and even some squads about using QA processes and tools, development was well underway. This leaves a small window of time to adopt some of the QA practices and community tools. The team turned this potential showstopper into an opportunity by working with TPMs to try out new community tools alongside their established practice. From there, the squad TPMs and release managers have information from this experience to inform future planning and use of tools like CucumberStudio for end-to-end testing. Now a new Ref App release is in the works and the QA Support Team is working hand in hand with the Ref App release manager to make a QA plan – from the beginning.
- Encourage the use of QA processes and tools that align with existing release teams and squad QA tools. One thing that makes CucumberStudio particularly attractive is that it gives implementers and squads the flexibility to use their existing automated test framework with new community tools like CucumberStudio. With the Reference Application, this meant that we could continue to use Selenium. For the OCL for OpenMRS squad, they discovered that they could use Cypress as their automated test framework. And after trying out CucumberStudio-Cypress integration, they had a better idea not only if the integration worked but the level of effort that would be needed to use these two tools for full, end-to-end testing.
- Support and grow QA capacity. Having a QA Team that takes care of all of the community’s QA needs might seem like the ideal solution – except that it can actually get in the way of integrating QA processes and tools into a squad or team’s development cycle, expanding the community’s QA capacity, and ultimately, creating a QA culture. Instead of being more efficient, the team can end up risking greater delays as they become stretched beyond their capacity. Providing QA support to release managers and squads early on can lead to greater ownership and capacity when it comes to QA, from establishing timelines to adapting processes to deciding on QA tools to identifying testers. Another benefit: this frees up our community QA specialists to work more teams, squads, and emerging QA engineers in the community.
Notice something about each of these approaches? They all put the release manager, the squad, the community in the driver’s seat when it comes to decisions about QA plans, processes, and tools. This is community-led QA.