One of the often overlooked but crucial differences between B2C and enterprise software is a level of responsibility. Especially when it comes to food tech and food safety, where issues with QC software may affect the business but also the consumer in ways that go beyond cost, all the way to health- and life-threatening situations.
To ensure that an enterprise application works flawlessly and provides the user with relevant experience, it must be tested thoroughly. To meet this challenge, the best method is using Automated Quality Assurance Testing.
This case study is dedicated to our work with Corvium, a leading platform created to monitor and analyze food quality and safety.
.
Brief summary
- Corvium is a food risk management platform used by food safety producers to streamline and optimize product testing, environmental sampling, and sanitation workflows.
- Our main task was to start developing automation tests as soon as possible, maintaining both high quality and high coverage, to reduce the burden on manual testers.
- More than 900 executed pipelines and 400 test cases are automated. Automation covered 100% of Smoke Testing and approximately 60% of Regression Testing.
.
About the project
Corvium provides unified access to a full range of food safety applications, reporting, and analytics. Corvium’s fully integrated food risk intelligence solution is used by food safety professionals and executives to streamline and optimize product testing, environmental sampling, and sanitation workflows.
Environmental Monitoring: Schedule, run and audit the environmental monitoring plan in one, easy to use, workflow system.
Product Testing: From raw materials to finished products and COA’s, Corvium’s platform meets all product testing needs.
Sanitation: Manage and monitor the sanitation workflow and verify effectiveness within one interface.
Conformance: Proactively identify compliance & conformance challenges so they can be resolved before they become issues that affect the business.
Reporting & Analytics: Transform data into actionable information with reports that help focus on what is important now, and use analytics to see trends and issues before they cause problems.
.
.
What was the environment
When we started to work on this project, the key challenge was the absence of GUI and API automation testing. We began by creating a test plan to analyze the scope of work. We decided to combine a few patterns as a part of the structured approach to build the test framework.
The project was already massive, with a lot of functionality and relations inside and outside each module, and continued to expand, so the number of test cases was growing rapidly.
While beginning the effort to scope out and develop automation tests as quickly as possible while maintaining high quality and coverage to reduce the burden on manual testers, we also started training team members to use and maintain the Automation framework.
.
Challenges we faced
- There were no automation tests, so we started an automation testing from scratch.
- A large number of distributed modules and relations inside and outside them.
- Existing test cases were more focused on manual testing instead of automation. Some of them were outdated/uninformative.
- The initial approach of the created environment for testing did not allow executing automation tests in parallel
- The development team was not using the advantages of automation reporting.
.
Solution we provided
- Created scalable structure of test using App Action and Page Object patterns.
- All the tests are independent and after all test specs the database is cleaned automatically.
- Our colleagues on the manual team are integrated in the code review process, in order to verify the logic accuracy of automated scenarios
- Maximized test automation coverage.
- Smoke suite covered 100% of the website.
- Regression suite covered for 60% of the website approximately, and growing.
- Manual run of test cases reduced. Automated test execution increased.
- Jenkins, Cypress Dashboard, Bitbucket runs were synchronized after each push to master and have a scheduled run every day. Each team member is able to run the pipeline at will and review the results.
- With the help of the developer team, we created an approach that allows to execute tests in parallel
- Test Results are stored in Cypress Dashboard. Now notifications pop up in Microsoft Teams channel after each execution.
- Utilization of API to prepare state for tests.
- Manual QA switches focus on hard-to-automate testing: UI, Usability, Localization, Compatibility, and partly regression.
- Automation team regularly reviews the written tests, refreshes them to be sure of their relevance and constantly looks for ways to optimize and improve them.
- For the near future, we plan the implementation of localization testing, load testing and expansion of API testing
.
.
The tech stack
JavaScript
Main programming language we used for test automation.
Cypress 12
Cypress has a good community, so if you want to start automation testing from scratch you benefit from well-organized documentation. We worked close together with the manual testing team, during the automation process allowing them to learn automation with ease.
Cypress Dashboard (Cloud)
Every day the automation team checks out the test results. Cypress Dashboard offers a good analysis functionality, allowing users to see detailed reports by day, week, or month at will.
Postman
The developer’s endpoints are collected and documented in Postman, enabling the automation team to figure out their operation easily.
Eslint
We use ESlint to keep the quality of the code we write, to not put too much emphasis on small syntax details. ESLint offers many rules presets, while also providing users with a lot of customization features.
Husky
To avoid merging bad code into the master branch, we use the Husky library, which checks the code for syntactic and logical errors before committing. This is how we keep our code clean.
Mochawesome
Used as a secondary reporter within the project itself.
Jenkins
Automation team may kindly ask Mr. Jenkins to regularly execute their tests on his machine when the team cannot do it themselves, such as at night, so now, thanks to Mr. Jenkins, even free time can be used productively. In addition, he agreed to help keep our secrets safe from strangers. What a great helper!
Jira
As a tracking system, we chose Jira. It allowed us to easily record and track bugs and assign them at the right time with the bug tracking template. For the customer, Jira allowed monitoring of work progress and always being up to date with team tasks through a sprint cycle. It helped all team members to keep everyone aligned on each issue’s status and ensure that the highest priority work is being tackled first.
.
.
Achievements
From the start to this very moment, we already have more than 900 executed pipelines. More than 400 test cases are automated. Smoke suite covered by 100%. Approximately, 60% of the regression suite covered.
We have our colleagues from the manual team fully integrated into the automation testing process. Our team generated more than 20 bug reports.
We have set up proper and convenient workflow for automation testing, including:
- Logically separated file structure for selectors, models, scenarios, data, project settings, creds that can be easily scaled as needed.
- Tools for keeping code clean.
- Jenkins pipeline to execute all/specific tests by tags or file paths on master/specific branches.
- Jenkins runs results saved in Cypress Dashboard where you can monitor the detailed test results, error descriptions, statistics, etc.
- When the Jenkins pipeline is completed, the message with a summary of the results will be sent to Teams channel in order to notify our colleagues about the health of the product.
We are still working with Corvium to ensure proper operation of the application and assist with new updates and feature releases.
Just like in this case with Corvium, our Automation QA team continues to elevate the quality of products for dozens of enterprises and startups in 8+ industries.
If you need fast, continuous, and visible quality verification of your software, you can schedule a call and get a free POC, just drop us a note to hello@pecodesoftware.com