Automation has become an essential aspect of software development, helping teams speed up testing, reduce errors, and increase productivity. With the rise of new automation tools and frameworks, choosing the right one can be a daunting task.
At Capacitas we recognize that different initiatives require different tools and approaches to achieve the desired outcomes. We have developed automation solutions using a wide range of software, each catering to specific functionalities and objectives. Some of the key software tools we employ include:
- Generating Bookings and Test Data: To facilitate manual functional testing, our automation framework incorporates tools capable of generating bookings and test data automatically. This streamlines the testing process, eliminates the need for manual data entry, and ensures a consistent and reliable test setup. By automating this aspect, we save valuable time and resources while enhancing accuracy and repeatability.
- Image-Based Automation for Citrix Software: There are lots of challenges associated with automating Citrix software, which often lacks object-level accessibility. To overcome this limitation, we have developed image-based automation techniques. By analysing and interacting with screen elements visually, our automation framework can navigate through Citrix-based applications, perform actions, and extract relevant information. This objectless automation approach enables end-to-end automation of Citrix software, unlocking new levels of efficiency for our clients.
- Automated End-to-End (E2E) and API Testing: Manual testing can be a time-consuming and labour-intensive process. To alleviate this burden, Capacitas leverages automation for end-to-end (E2E) and API testing. By automating these testing scenarios, we significantly reduce manual effort while ensuring thorough and reliable validation of system functionalities. Our automation framework integrates with relevant APIs, enabling seamless execution of test cases and accelerating the overall testing process.
In this post, we will be focusing on the third point from above which is the most common form of automation used in the Quality Engineering space, some key factors to consider when selecting an automation framework and why Cypress, a (relatively) new popular and powerful automation tool, could be a good fit as it has been for a lot of our clients where we have implemented our Cypress framework.
Factors to Consider When Choosing an Automation Framework
Programming Language: Most automation frameworks support different programming languages, such as Java, Python, and JavaScript. Choosing a framework that supports your team’s preferred language can simplify the automation process and make it easier for developers to collaborate.
Test Execution Speed: Test execution speed is a critical factor to consider when selecting an automation framework. A framework that can execute tests quickly can save time and increase productivity, allowing teams to catch and fix issues faster.
Integration with Third-Party Tools: A good automation framework should be able to integrate seamlessly with other tools and services that you use in your development process, such as browser testing tools, CI/CD pipelines, and code repositories.
Ease of Use: An automation framework that is easy to set up, configure, and use can help your team get up and running quickly, reducing the learning curve and improving overall efficiency.
Community Support: A strong community around an automation framework can provide valuable resources, documentation, and support to help you overcome challenges and make the most of the tool.
Why Cypress Could Be a Good Fit
Cypress is a popular JavaScript-based automation framework that has gained significant traction in recent years. Here are some reasons why Cypress could be a good fit for your team:
JavaScript-based: Cypress is built using JavaScript, a widely used programming language that most developers are familiar with. This makes it easier to onboard new team members and collaborate on automation tests.
Fast Test Execution: Cypress is known for its fast test execution, thanks to its architecture, which runs tests directly in the browser. This eliminates the need for additional libraries or drivers, resulting in faster and more stable test runs.
Integration with BrowserStack: Cypress integrates seamlessly with BrowserStack, a popular cloud-based browser testing platform that allows you to run tests on a wide range of real devices and browsers. This integration helps ensure your tests are running on the same environments as your users, reducing the risk of issues in production.
Integration with GitHub Actions: Cypress can be easily integrated with GitHub Actions, a powerful CI/CD platform that enables teams to automate their software development workflows. With this integration, you can automatically run tests on every pull request and deployment, ensuring that your code is always production-ready.
Active Community: Cypress has a thriving community of developers and testers who actively contribute to the framework’s development, provide support, and share best practices. This community-driven approach ensures that Cypress remains up-to-date with the latest trends and technologies, making it a reliable and sustainable choice for automation testing.
What this looks like in practice
While completing some other automation opportunities with our client EasyJet, we were made aware of some manual testing for a platform called SSDM. Their manual testing was taking days to complete and was prone to human error. With agile sprint cycles and an increase demand for exploratory testing across the QE space were applying pressure to the delivery timelines the team wanted an open source easy to use and maintain solution to enable automated testing.
We stepped in and suggested cypress as a good fit for their requirements: free to use, a ton of well used and documented plugins, robust and easy to add to development pipelines.
We built out and demoed a POC that was incredibly well received as the value delivered was immediately tangible and with the full support of the teams went on to further build out the full pack. We integrated with GitHub to allow user to run the tests with no additional permissions, there is fast feedback in the form of mochawesome and BrowserStack reporting, and both scheduling and pipeline execution functionality to allow fully hands-off testing even out of hours.
In total we automated 33 user journeys and have taken the effort time from over 2 days to 20 minutes with no manual setup. The framework is fully robust and flexible to be manageable for all and any future changes.
Conclusion
Choosing the best automation framework is an important choice that can have a big impact on how productive and successful your team is. Consider variables like programming language, test execution speed, integration with third-party tools, usability, and community support when comparing various options.
Fast test execution, seamless integration with external tools like BrowserStack and GitHub Actions, and an active community are all features of the JavaScript-based automation framework Cypress. Cypress might be the best option for your team thanks to its intuitive interface and robust features.
About the Author
Catherine Brown
Catherine is part of our consultants' team. As a senior consultant, Catherine leads some of our most significant customer performance testing projects automating and improving their testing processes.
Also worth having a look at some of our recent case studies where we have saved our clients Millions of pounds in cloud spend.