As organisations move to adopt the Cloud, software testing continues to be a component part essential to its success. Indeed as they embrace a DevOps high-frequency release culture it becomes paramount to ensuring this faster working does not come at the expense of degraded quality and increased error rates.
As we wrote in previous blogs, like the role of testing in ‘Infrastructure as Code’ and a Cloud-Native microservices architecture, testing is a practice that can be applied at multiple levels in the new Cloud world, across the whole environment as well as a functional step to managing the release of new software.
This becomes evident as we take a quick, high-level look at testing within the domain of AWS Cloud services. They offer a wealth of blogs on the field, exploring a multitude of sub-topics, ranging from testing mainframe code through how to integrate the practices into your AWS environment and CI workflows through their own tools like CodeBuild and CodePipeline.
In our previous blog on microservices software testing, we highlighted the use of tools like Postman, and in this blog “Automating your API testing with AWS CodeBuild, AWS CodePipeline, and Postman”, they explain how it integrates with these services:
“In the install phase, we install the required Newman library. Recall this is the library that uses Postman collection and environment files to execute tests from the CLI. We also install the jq library that allows you to query JSON. In the pre_build phase, we execute commands that set up our test environment. In this case, we need to grab the Postman collection and environment files from Amazon S3. Then we use a shell script, update-postman-env-file.sh to update the Postman environment file with the API Gateway URL for the API created in the build stage.”
A brief round-up of other experts starts to define the full scope of testing considerations for AWS adoption:
- Test environments - The TestProject team walk through the basics of setting up an AWS test lab.
- Serverless - The Dev Coach explains how to do testing on Lambda, the AWS Serverless product, and Joyce Lin goes further to focus specifically on using it for HTTP API performance testing.
- Mobile - The SoftwareTestingTimes and ASTAQC both look at a use case of testing a mobile application, working with AWS Device Farm, where you can interact with real Android and iOS devices from your browser or run automated tests written in popular frameworks like Appium, Espresso, and XCTest.
- Performance - Distributed Load Testing on AWS helps you easily simulate thousands of users connecting to your application so that you can better understand your application performance under load.
- Security - Rhino Security explains what you need to know about penetration testing of AWS services, covering what can and can’t be tested.
Social Security Scotland
To examine the application of these practices we can look to a local keynote organisation pioneering the adoption of AWS for large-scale enterprise systems, the Scottish Government, in particular their Social Security Directorate.
The Scottish Government Social Security Programme is the largest and most complex exercise in devolution undertaken since the Scottish Parliament was reconvened twenty years ago. It will impact the lives of around 1.8 million people in Scotland and pay out an estimated £4 billion by 2024-25 when the Programme concludes and Social Security Scotland is running in a steady-state.
AWS provides a major component part of the Cloud infrastructure for the Social Security Directorate, hosting applications like the Low-Income Benefits (LIB) platform. It also enabled them to spin up a contact centre solution in only two weeks, to cope with the Covid crisis.
AWS works with a broad spectrum of vendor partners to deliver these types of solutions, such as Tricentis, one of 2i’s partners where we offer expert implementation and support services.
As they describe here Social Security is one of their key clients here in Scotland, where it is used to address key challenges such as unifying a quality process that crossed Jira, Jenkins, GitHub, Selenium and NeoLoad.
Selenium is a testing service that 2i is intimately familiar and expert with. Through their acquisition of TestProject, Tricentis absorbed capabilities built on the leading open-source test automation tools: Selenium and Appium, and 2i offers an in-depth specialism in utilising these tools within a complex, enterprise DevOps environment.
In particular AWS API testing is a critical building block for digital transformation solutions built on the Cloud, as interfacing with other government systems is an essential component to achieve end-to-end integrated business processes.
For example, 2i worked with Social Security to build and test API interfaces that performed lookups to the UK’s welfare systems, to establish eligibility for local Scottish welfare claims.
2i can assist organisations adopt these techniques to also develop the qualities, practices and approaches that your people need to form high-performing Agile Delivery Teams. As testing experts, we can help your organisation embed best practices throughout your DevOps life-cycle and infrastructure management.
This requires a holistic understanding of a large, complex enterprise environment, including multiple technologies, departments and workflow interactions. 2i specialises in mapping this complexity and from that defining a DevOps blueprint that synthesises them together to achieve faster throughput of successful code deployment.