Then it came to the code review process. Nowadays there are plenty of automatic tools to help with that. We chose Sonar to do the static code analysis before the actual human looks at the code, so that main code smells, security vulnerabilities, and other bad practices are identified. This also created a stricter gateway to make sure that unit tests are written, and that they have good coverage. So that if any regressions were introduced into the code, they would be caught more quickly in the future.
There were some manual testing processes present already, so it was important to standardize them. So, we introduced a test case management tool that allowed us to create new test cases, group them into test suites, and track executions. We chose X-ray and are very happy with the features it provides.
I also introduced a layer of automatic integration tests that run after the code is deployed to the environment for the first time. Our QA team is constantly working to maintain and ensure good coverage when new features are added to the codebase.
Alongside that improvement, we started developing some end-to-end tests for existing and new products with limited coverage to be sure that our main business scenarios are working when the code is changing.