Testing and quality assurance
Testing is heading into a new paradigm – one shaped by self-healing systems, observable platforms, and everything as code. Gone are the days when working software was enough of a barometer of quality. Recent years have seen the testing function move from the diagnosis of issues to their prevention. This trend is set to gather pace.
The rise in applications built with observability in mind allows for a broader perspective on the overall state of an application. In embracing observability, we accept that failures will always occur and direct our efforts towards making unknowns manageable when they arise. The modern tester will play a large part in the incremental improvements of such systems. This will require a shift of focus from more traditional independent components, such as user interfaces or APIs, towards incorporating the monitoring of overall platform health into test strategies.
Think ‘everything as code’
The advent of the ‘everything as code’ approach and the ever-increasing reliance on automation of process, application builds, type checking and test suites have drastically changed the test function. In a setting where a tester can spin up a production-like local test environment in seconds with tools such as Docker and Kubernetes, front-loading test-effort has never been easier.
Dare to test in production
Testing in production was once seen as a risky endeavour, but the increased adoption of feature flags has mitigated that risk. As a final quality gate, there’s no substitute for testing in the production environment, under real-world conditions. Feature flags are also an excellent enabler for A/B testing with real users who can provide invaluable insights you won’t always get from traditional testing.
Try out new tools
Finally, new tools such as Puppeteer and Cypress have the potential to overhaul UI testing for the better. Focussing on speed and reliability, automation can act as a conduit to continuous deployment and continuous delivery – like never before. For too long, UI automation has been a pain point to so many, as teams struggle with reliability and execution times.
If these tools live up to their promise, these struggles may become a thing of the past.