Any good development process goes through the testing stage, whether that’s a trial-and-error review by your friends and family, or it’s a QA process done by a certified professional. More often than not, that testing is either done manually or it’s semi-automated by using tools like Selenium. You may have heard of automated testing tools, but it also might feel like a scary endeavour to design an automated UI test and, as a result, you’ve avoided setting one up.
Automatic UI testing requires more thinking and planning compared to other forms of automatic integration and unit tests that are sometimes easier and more straightforward to deploy, but the vast potential benefits more than compensate for this. Automatic Web UI testing saves a lot of time, ensures higher quality and higher precision, and further enables continuous deployment. This also has the added potential of transforming your business!
Getting started with your existing CI/CD pipeline
If you already have a CI/CD pipeline, the first thing that you should do is to establish separate steps in your code pipelines that only do UI testing. A good reason to have separate steps is to create the ability to optimize and maintain the tests in isolation from the other steps. Additionally, you can ensure that the build step doesn’t take too long and can run tests in parallel. A good example of this would be where you can run 50 simultaneous login tests to check for brute-force attacks, stability, and performance.
One of the best ways to implement this step in your CI/CD pipeline is by using a serverless approach, or more specifically AWS Lambda compute service. At Miracle Mill we like doing things serverless, so we always prefer this approach.
AWS Services for Automatic Web UI Testing
AWS Lambda offers a high-performance solution that can run as many tests as you need in parallel, and you will only pay for what you use. There is no need to have any pre-provisioned servers or devices that you pay for even when you don’t use them.
Together with AWS Fargate and AWS Device Farm, you have the ability to automatically launch Web UI tests on the devices you need, in the environment you want to test and get detailed reports instantly. AWS Device Farm enables you to test on a wide range of mobile phones, while AWS Fargate lets you set up containers that you can run tests on.
If you’re already using Selenium-based frameworks to maintain a large set of tests, you can also connect it to AWS Device Farm. You can easily integrate videos, logs, and performance data since AWS is compatible with the framework.
Choosing the right tools and services
AWS gives you a lot of freedom, but this in itself can be time-consuming and complex. It’s important to get the right tools and services and to plan things well ahead of time to ensure that any future tests don’t require a lot of additional changes, are equally accurate, and provide quantifiable, detailed reports.
This might be a daunting task for some, so we’ve built a template that is easily customizable to your requirements and it’s quick to deploy. The template configures the AWS Lambda function, the AWS Fargate containers, and the AWS Device Farm.
What if I don’t have a CI/CD pipeline?
If you don’t already have a CI/CD pipeline, you don’t need to worry about setting that up by yourself. We’ve also built a CI/CD pipeline template to get you started or we can establish the pipeline together, while also integrating automated Web UI tests into it.
What comes next?
You should now have a clearer view of the ideas and challenges involved in automating your Web UI Testing process, and the tools that AWS has to offer. Don’t hesitate to contact us at Miracle Mill to learn more about how we can make that transition easier, and to discuss how we can design your processes to be even more efficient.