Hi, I’m Beccy Stafford, Platform Test Lead for the Tax Platform in HMRC Digital. Testing services on the platform can be complex, challenging and fun. If that’s an area you’re interested in then let me share with you how we go about it!
Introduction to the tax platform
The tax platform is a collection of component technologies that form a reliable infrastructure from which HMRC operate their online tax services. It was created in 2013, and since then, it has evolved quickly - it currently consists of over 800 microservices, built by 60 teams across more than 5 geographic locations. Our teams are cross-functional and are responsible for both building and operating services on the Platform.
How do we test the tax platform
Testers in HMRC’s digital service are a force to be reckoned with. We have to be ready to solve unique technical problems, and apply our expertise in a fast-paced environment. Our services have to be performant, secure, functional and accessible. We value releasable code and frequent production releases - some of our teams release multiple times a day! With so many changes happening so often, our tests have to run fast, be reliable and give the team confidence they are releasing quality code.
So, as testers, we need to have a wide grasp of expertise within our field. We not only have to be able to write high quality code, we need to have domain knowledge, and be capable of collaboratively analysing business problems. We need to understand what makes a service accessible, how to analyse vulnerabilities in our services and infrastructure, and how to put our services under high volumes of traffic.
All of our digital teams use agile processes. This means testers are involved from the very beginning of defining a solution to a business problem. As a result, we use our expertise to feed in additional requirements that may not have been thought about, and can identify problems before they occur. This means teams are set up for success with every new feature that enters the backlog.
When a requirement is picked up by the team, testing is considered from the beginning, and the team collaborate to write appropriate automated functional tests, to help ascertain each feature is complete. These tests then run from this point on to ensure continual feedback on how the code is functioning. If a change is made that breaks one of the journeys these tests will let the team know before the code gets into production.
Our digital service is trusted with sensitive data about UK taxpayers, which we have to ensure is fully secure. Our teams write and run penetration tests regularly, and we also go through regular externally run security tests.
Part of being in a digital team, though, is not just writing and running these tests, it’s also about baking security in from the start of every new feature. Security is never an afterthought in our services.
As a platform, we often provide tools to make testing more effective across all of our teams. We have recently built a new security testing library so we do security testing in a more consistent and efficient way across our teams.
Throughout the year, HMRC has regular key business events, which means that at certain times the tax platform has to cope with unusually large amounts of traffic. Thanks to the underlying infrastructure, we are well prepared to deal with this additional traffic. However, teams also regularly prove their code changes have not made an impact on our resilience.
Teams need to understand what peak traffic looks like for their service, and write effective load tests that accurately model that traffic. As our teams operate their services in production, they have access to various monitoring tools they can use to analyse the shape of the traffic. We feed this into writing the load tests, and run them against every release so we are confident our services are performing. This means that when we come to a key business event, we are as ready as possible.
The digital test community
Testing in HMRC’s digital service is key to the continuing success of the tax platform. The unique business domain, coupled with the scale of operation, makes for an incredibly interesting and challenging role. We have around 100 testers working on our services across our digital delivery centres, and we meet regularly in both centre -specific forums, and cross-centre sessions, to discuss shared challenges and innovations.
I hope this post has given you an idea of how we do testing in our digital service. With such a fast-paced environment, and complex domain, we are always looking to improve our approach by bringing in new people with new ideas!