How to tackle adding integration and end to end testing to a large UI project with 20+ microservices?

Posted by abl4k@reddit | ExperiencedDevs | View on Reddit | 11 comments

Hi all, software engineer with ~10YoE primarily with the same team. Currently in a senior/lead developer role for my application team. We have a very large Angular application and quite a few Spring microservices (current count is about 20), and we've started to have an issue with defects not being caught during the testing process. The application has no integration or end to end testing of any kind, only unit tests, and we are wholly reliant on manual business testing. This has always been an issue as business is not always available for quick testing turnaround, but as management has pushed us to move faster in order to meet some long term deadlines, and as CVEs pop up that are prod deployment blockers for our quality gates, defects have slipped past, especially when there's no defined way for us to handle, say, a Spring Boot dependency having a critical CVE and having to resolve it for 20 services in a 30 day business SLA. We've even had cases of our business team giving approval after testing but defects are found in production because business was not aware what pages in the application are dependent on which microservices. I've been given the task of trying to add integration testing for our microservices and end to end testing for our application. The problem is I can't even fathom how to start tackling it. Testing has never been my strength, but I am familiar with some tools/frameworks we can use. I've gotten Playwright stood up for our UI but business requirements of each page are not well defined, and I'm not sure how keen business is in trying to move to BDD in order to define Cucumber tests. Has anyone else had to add more robust testing to a large scale application?