The importance of testing is undisputed in the world of development with little doubt that testing functionality, happy and unhappy paths of user flows, and front-end display is vital to any development work. However, what is tested and to what limits, is seemingly less well understood.
Recently, nearly 16,000 coronavirus cases went unreported (with potentially huge consequences for contacts of those individuals blissfully going about their day to day lives without knowing that they could be spreading the virus) because of an old file format that was not able to handle a large number of data entries.
You can read more about the specifics of what went wrong from the BBC here.
The system that was put in place initially was clearly able to handle small amounts of data – either with test data, or with the smaller number of cases that were being reported in the summer. However, with an increase in cases as winter approaches being highly predictable, making sure that additional capacity was available in the system should have been a core part of the testing. This incident certainly doesn’t help build trust among the population who are being actively encouraged to download the test and trace app.
It is of course very difficult to predict the future, and things do go wrong, but there should always be a predefined acceptable upper limit when testing that is significantly beyond your current levels. Some examples and types of testing where this would be needed are as follows:
- Load testing – if during previous key campaigns you have received a peak of users visiting the site at any one time, you should make sure to test to include at least 50% more users than the previous year’s peak (this is particularly important for campaigns this year with supporters being encouraged to participate or donate online rather than face to face)
- Content – when planning a new website, there should be enough capacity allowed for the existing content to grow, both in amount (i.e. the number of pages) and the complexity (i.e. more interactive content, images videos etc.). This is a key part of the capabilities of a content management system but also the hosting environment (there is no point in provisioning a server that only has a small amount of space left for additional content)
- File transfers – as shown above, expectations for growth in data records should be catered for. This includes ensuring the format can handle the amount of data expected, and that the destination can handle the file size.
What the unreported coronavirus cases issue does show is the importance of monitoring and tracking when transferring data. Fortunately the issue was found relatively soon through the data being monitored, and a temporary measure has been used to break up the data to ensure this doesn’t happen again while a new solution is put in place.