XP Series Webinar

Unlocking Efficiency: Transitioning from Manual Testing to Test Automation with Cypress

February 28th, 2025

30 Mins

Watch Now

Listen On

prodcastspotifyMusicyouTube
Anna Patterson

Anna Patterson (Guest)

Principal Software Quality Engineer, EVERFI

Anna Patterson
Harshit Paul

Harshit Paul (Host)

Director of Product Marketing, LambdaTest

LambdaTest

The Full Transcript

Harshit Paul (Director of Product Marketing, LambdaTest) - Hello, everyone, and welcome to another exciting episode of the LambdaTest XP Podcast Series. Through XP Series, we dive into a world of insights and innovation, featuring renowned industry experts and business leaders in the testing and QA ecosystem. I'm your host, Harshit Paul, Director of Product Marketing here at LambdaTest, and it's a pleasure to have you with us today.

In today's session, we will explore how you can transition from manual to automated testing using Cypress. So you're looking your ways to enhance testing efficiency, improve coverage or accelerate time to market, then you're in the right place. Let me introduce you to our esteemed guest on the show, Anna Patterson. Anna is a Cypress ambassador and a seasoned QA expert with over a decade of experience.

She has worked with companies like IBM, Nationwide Insurance, and Applause and is currently leading QA at EVERFI as the Principal Software Quality Engineer. With a background in teaching, she has a unique ability to break down complex technical topics into digestible insights, helping teams and individuals embrace test automation with confidence.

Today, Anna will help us understand how we can unlock efficiency by transitioning from manual to test automation using Cypress. And let's jump straight into the heart of today's discussion. But before we do, Anna, how about you let our audience know a little bit about yourself and your journey in QA?

Anna Patterson (Principal Software Quality Engineer, EVERFI) - Hi, Harshit. Thank you for having me on this webinar today. It's a pleasure to be here with you and talk about test automation topics. Thank you for the introduction as well. You've already said a lot of good things about me. And as you said, I am currently a Principal Software Quality Engineer at EVERFI.

And I have about 10 years of experience, actually over 10 years now of experience and quality assurance. And I'm also an ambassador for both Cypress and Applitools. And I've had the opportunity to lead testing efforts across industries ranging from education to enterprise solutions.

My work focuses on leveraging modern automation tools to ensure product quality while accelerating release cycles. Today, I'll be sharing some practical insights on making the leap from manual testing to automation, focusing on how Cypress can be a game-changer for your testing strategy.

Harshit Paul (Director of Product Marketing, LambdaTest) - Thank you so much for that. And let's get this started. And when we speak of Cypress, a lot of people think of it as an open-source offering upfront, right? So it poses a question on the security aspect of things. How can organizations ensure the security of open-source tools like Cypress in their testing infrastructure? What are some best practices that you would suggest?

Anna Patterson (Principal Software Quality Engineer, EVERFI) - That is a great question since security is a crucial consideration when incorporating any open-source tool into a testing infrastructure. There are some ways that you can ensure security while using an open-source tool like Cypress or any other open-source tool.

So, first of all, keep it updated. So regularly update Cypress to the latest stable version to benefit from security patches and bug fixes. Another tip is to use dependency scanners and tools like Snyk, GitHub, and Dependabot. They can help identify and mitigate vulnerabilities in Cypress and its dependencies.

Another thing you can do to enforce security is to enforce secure test data handling. So if possible, avoid storing sensitive data such as API keys and credentials in test scripts and configuration files. Instead, try to use environment variables or secret management solutions.

Another way to enforce security would be to implement access controls to ensure that only authorized users have access to the test code, and results in a way to enforce security would be to implement access controls to ensure that only authorized users have access to desktop and results following the principle of police privilege.

And you can also want to follow the principle of least privilege. And you can also monitor network traffic. Since Cypress runs in the browser, monitoring network requests and restricting unnecessary external calls can prevent data leaks. So by following these best practices, you can leverage Cypress securely while maintaining the integrity of your testing infrastructure.

Harshit Paul (Director of Product Marketing, LambdaTest) - That makes a lot of sense, and I believe like every big organization has this as one of the biggest challenges, which is data leaks right there, so hard to prevent, but, of course, you have to be cautious. Better to be preventive than to be sorry later on.

So thanks for sharing those insights. And with that said, how does EVERFI implement data-driven testing using Cypress? Do you face any challenges? How were they resolved if you come across any?

Anna Patterson (Principal Software Quality Engineer, EVERFI) - Yeah, thank you for this question. So at EVERFI, there were a couple of ways that we use to implement data-driven testing, if you want to call it so. So we call of use fixtures and external data files. So you can store test data in JSON files and dynamically inject it into tests or utilize it in your tests allowing for scalable and reusable test scenarios.

We also create reusable Cypress commands to fetch and manipulate test data, which ensures consistency across tests. And we also use integration with APIs. So instead of relying solely on UI interactions, we leverage API calls to seed and verify test data, making tests more efficient and reliable.

So this way, we create new test data every time we run our tests. And then at the end of the test, we delete that data. So which leads us to one of the challenges that is typically faced when you are creating a lot of test data on the fly is how do you manage it? Right.

So how do you manage all of the data that's being created and potentially just left in the environment to hang around, right? So that's where it's important to have a good test data management strategy, which includes deletion of the data once the test is complete.

So in our case, for the tests that create new test data on the fly, we use a delete API call in the after hook for that test to make sure we clean up that test data after the test finished. And another layer of test data deletion is we run a regular scheduled job that tries to clean up any data that was not deleted in that API call for whatever reason.

Sometimes it could be the network was down or another reason that could cause the data to not be cleaned up immediately after the test. So that extra layer allows us to clean up any orphan data that was left over. There are some other things you can do. You can do database cleanup.

For example, so it really depends on your infrastructure and architecture of your application. And you can determine the best method to deal with that. Another thing that's faced as a challenge as far as data management is that managing test data for different environments is complex. The way we solved it in our organization is by implementing environment-specific fixture files and configuration settings.

So let's say if your data is different across different configurations, can use environment-specific configuration files. And that way, when you run Cypress, you can pass your configuration file to that particular environment as a command line argument that way, you will use the correct data for that particular environment.

Another challenge that we faced was handling dynamic data. So if you are generating your data on the fly, you need to make sure that you utilize some dynamic values. For example, you can add time stamps or unique IDs to the records you are creating.

So that way, you don't create just the same or depending on your setup, you might not be even allowed to, let's say, create the user, of course, with repeated user names, since that's supposed to be unique to that user or, for example, the user ID.

To handle that, we introduced custom commands, custom utilities to handle these cases and generate unique IDs. You can also use some tools and plugins. You can use to generate unique IDs so that way you don't have to write your own custom command.

So there are a couple of different ways you can handle it to make sure that the data you're generating has unique IDs, unique usernames, and timestamps, for example. Another issue that's you could face and we actually faced in our test data-driven execution is a potential slowing down of the test suite.

If you are creating test data every time you run the test, that adds on execution time to your test. To deal with that, as I already mentioned, first of all, we try to create the data via APIs and depending on your application infrastructure, you could be able to directly see your test data into the database instead of going through the UI.

Because going through the UI is much slower and it's also more prone to failures and flakiness in case something in the UI is not displaying properly or if the UI takes longer to load. So, one way, as I said, to address that is using APIs. And another one is to address that is using APIs. And another one is to make sure that you utilize parallel execution. Cypress has built-in parallelization features that you can use.

And you can utilize Cypress Cloud for that. That way, when your tests are running in parallel, it takes much faster to execute them. So this strategy is how EVERFI scales automated testing efficiently with Cypress.

Harshit Paul (Director of Product Marketing, LambdaTest) - Wow, that was a lot of insights right there in that question. That goes to show how much you had your hands dirty when it comes to Cypress. You talked about so many challenges there. And I'm sure a lot of our audience would be able to relate to pretty much all of it, depending on different aspects.

But of course, as we speak of challenges, there are bugs involved as well. And to fix them, we need to debug. Right! So, how do you share some effecting? What are your thoughts on some more effective methods that you would recommend for debugging using Cypress tests?

Anna Patterson (Principal Software Quality Engineer, EVERFI) - Great question. Debugging is definitely something that every test automation engineer has to face in their daily life when tests fail. I would say that debugging Cypress tests efficiently requires a combination of built-in Cypress features and best practices.

So one thing that you can use is commands like “cylog” and “cydebug” as these commands help track test execution and pinpoint failures. So that way you can dig deeper and pause on a certain step or log the output of a certain command to help you understand where exactly it's failing and where it's going wrong.

Another thing is of course Cypress Test Runner, the UI of Cypress Test Runner is very intuitive and useful. And it has this great feature called time traveling. So the time-traveling debugger lets you inspect snapshots of the test at each step before and after, making it easier to identify issues.

Another thing is console logs and network requests. You can use site intercept to capture API requests and responses and check the browser's DevTools console for errors. And you can see all of the request properties and response properties to help you understand where it's not working as expected.

Harshit Paul (Director of Product Marketing, LambdaTest) - Got it!

Anna Patterson (Principal Software Quality Engineer, EVERFI) - You can also use headless and headed mode for Cypress. As I mentioned, if you want to use Cypress's interactive debugging and time traveling, you can use the Cypress open command to run tests in headed mode. And then you can use headless mode to catch issues in CI environments.

So, for example, if you have a situation where the issue is only reproducible in CI, and you want to run it in headless mode on your local machine to see if you can reproduce this issue in the same environment in the same manner, you can use the headless mode. But also, Cypress has a great dashboard in the Cypress Cloud where you can use the feature called Test Replay.

It records a video for you. It records all of the network activity. So you can see the test running pretty much the same way as if you were running it on your machine in the Cypress Runner. So you can see all of the network activity. You can inspect the network activity. You can inspect the DOM.

Then, you can watch the video and, pause it, go back and forth between different parts of the video to see better exactly where it's failing and what happened before it failed and after it failed. And then also just video and screenshot recording as well, just some artifacts that Cypress automatically records as well. yeah, so there are some techniques.

Harshit Paul (Director of Product Marketing, LambdaTest) - Got it. Wow. So does Cypress do that by default, the recording of every test? Do folks need to turn on a capability or setting to see those videos on the cloud?

Anna Patterson (Principal Software Quality Engineer, EVERFI) - So as far as cloud goes, first of all, it's important to keep in mind that once you cross a certain threshold or the free tier of Cypress, how many runs you are allowed to record for free, then you will have to move on to the paid tier.

So all those great features might become unavailable if you are not at the paid tier. And I think that's one of the main gripes people have is that, especially for parallel testing, is that there's not that many runs you're allowed to do for free with Cypress.

As far as turning on and off this functionality, I believe it's turned on by default. And if you want to turn it off, there's a config setting that you can use. You can also configure it in a way that videos are only recorded for the failed tests, for example. And then, if a test has passed, don't record a video.

Basically, saying it's clear, but we don't need to record a video. If you want to save a little bit on that execution time. And then, if you are utilizing the Cypresses test replay feature, you basically don't even need to record separate videos and screenshots because I think if that feature is enabled for you, it automatically records everything. So you don't need additional video and screenshot recording to be turned on.

Harshit Paul (Director of Product Marketing, LambdaTest) - That makes sense. All right. And you also talked about how you start your data-driven testing by using API to leverage that sort of data. And how do you predict API testing would evolve? What are some best practices to keep in mind? Just let's be more specific about API, because everyone's relying on them. So how to go about integrating Cypress and other tools for API testing?

Anna Patterson (Principal Software Quality Engineer, EVERFI) - Great question. As far as the trends, I would say that API testing is evolving toward greater integration with CI/CD pipelines, improved contract testing, and AI-driven test generation. We have to talk about AI, because what kind of webinar it is if we don't talk about AI, right?

Harshit Paul (Director of Product Marketing, LambdaTest) - Right. Yeah, it has been the buzzword for quite some time and we've been seeing a lot of action happening recently, of course, so definitely.

Anna Patterson (Principal Software Quality Engineer, EVERFI) - Yeah. So as far as the AI-powered API test generation, I believe that right now, the trend is for AI-driven tools to analyze API schemas and generate intelligent test cases. I think like a year ago, maybe even more than that, maybe two years ago already, I did when that ChatGPT was just exploding for the first time.

I remember I was doing a webinar for Applitools and I was actually using ChatGPT and feeding it some API schemas for it to generate Cypress API tests. And I did a pretty good job. At that time, the main concern was knowing the main question from the audience was what about the privacy and security concerns something that we already talked about.

And I think, you now more and more models coming out and now the models that you can install on your machine and have them kind of closed out from the external world. And then also more and more companies use these models to generate their own tools, like internal tools.

And that was basically my answer back then is that yes, right now it is a concern, but I'm sure a couple of years or maybe even a year down the road, every company will have their proprietary LLM model that they can use without concerns about security and privacy.

Harshit Paul (Director of Product Marketing, LambdaTest) - Keeping everything within their own firewall and just making sure it stays there.

Anna Patterson (Principal Software Quality Engineer, EVERFI) - Exactly. So that's one of the trends I'm sure we will see more and more, now, automatically generating tests based on the API schemas. And then apart from the Cypress side of it, then contract testing is going to improve and become more and more important. So verifying API interactions between services to ensure stability in microservices architectures.

And then another trend is performance and load testing integration. So combining functional APIs tests with performance testing tools like artillery, k6, and so on. As far as Cypress and API testing integration, so Cypress supports API testing with Cyrequest command, Cyrequest, Cy-intercept like artillery, gunsticks, and so on.

As far as Cypress and AVI testing integration, Cypress supports AVI testing with Cyrequest commands, Cyrequest, Cyintercept. So that allows testers to intercept API calls and perform assertions on API responses. It also integrates with tools like Postman, Newman and Supertest for more comprehensive API testing and some other tools as well.

And you can also use Cypress in combination with database assertions to validate back-end changes. So I think that as API for development grows, tools like Cypress can continue to play an important role in ensuring seamless backend and frontend integration and kind of provide a good combination of using the same tool for both your end-to-end testing, UI testing, as well as doing some API validation. So basically, you can sprinkle in API validations and use the same tool for all of those types of testing.

Harshit Paul (Director of Product Marketing, LambdaTest) - Got it that makes a lot of sense and you know there's nobody better to answer this question really because you are a Cypress Ambassador but every time people are trying to switch from manual to automation they always have this question in their mind whether this framework is a long-term solution or whether it's just a precursor for more advanced tools in the hand.

So what are your takes on that when it comes to Cypress? Do you see any trends shaping up in the future of automation with so much happening around AI?

Anna Patterson (Principal Software Quality Engineer, EVERFI) - Right. That is a great question. And I think that question is on our minds a lot as test automation professionals. What does the future hold? Before I dive into the specifics of Cypress, I'd like to preface it by saying that I think one of the most important qualities for any software testing professional and for any IT professional these days is always learning, being curious and learning new tools.

I think it's important to not like get married to just one tool and hope that it will never go away but instead, try to expand your skill set, add more tools to your toolbox, and always be ready for new changes and some new tools coming on the horizon. With that being said, I Cypress is a powerful and evolving tool.

But like with any test automation framework, its long-term viability depends on project needs and emerging trends. In short to mid-term, Cypress is an excellent choice for modern web applications due to its ease of use, rich debugging capabilities that we have already discussed, and growing ecosystem.

For long term, the future of test automation is likely to involve AI-powered test generation, as we've already discussed, potentially self-healing tests, and broader cross-platform support. Cypress is evolving with these trends, and as long as it continues adapting, it will remain a strong contender in the automation space.

So, for example, Cypress already has that recording or Cypress Studio feature where you can basically turn it on and click around on your page and Cypress will record your interactions and will spit out a script for you. It might not be perfect, but there are more and more of those low-code, no-code features that I see being added.

And Cypress is working on adding more and more features like that and evolving with the trends to make it more accessible to everyone and make sure that we can integrate it earlier in the development lifecycle by creating tests faster and making it easy for everyone.

Harshit Paul (Director of Product Marketing, LambdaTest) - Yeah, and I think like, you know, Cypress is an active open-source framework out there, right? It is actively fixing things and upgrading things that it already has so when you think about opting for a particular framework and thinking whether this is going to stay with me for long.

I think you can definitely go and have a look at the version history, see how frequently they push things, what they are fixing, and get an idea about your project needs as to whether they fit or, you know, with your questions in mind regarding your projects.

And you also talked about, you know, Cypress Studio, which is intriguing because, you know, when people try to transition from manual to automation, there's always that learning curve that comes into play, right? So there's everybody feels like, do I get started? And is this really worth the time? Or I could be doing something else.

And that's where the power of Cypress Studio comes in. But there are frameworks, and, of course, if I really need Cypress to be more flexible, I have to get down and get my hands dirty with the code. So how can frameworks like Cypress evolve to be more accessible to, say, non-technical users to democratize test automation in the coming years?

Anna Patterson (Principal Software Quality Engineer, EVERFI) - That's a great question. I do see the test automation frameworks increasingly focusing on accessibility for non-technical users or people who are not very well-versed in coding. So tools including like Cypress and also Applitools, which is a visual testing tool, they keep adding more and more low-code, no-code features to help non-coders record test steps.

And I think expanding this with AI-assisted test generation could make automation even easier. And I see it being done a lot for a lot of tools. Another thing is that it could help every team member that's not sometimes not even like a technical team member to use tools like that is simplify in test execution and cloud environments, so without requiring deep DevOps knowledge.

So setting up easier, better integrations with CI/CD tools. Then another thing that's trending is natural language test scripting. And again, I feel like some variations of this have been around for a long time. It just keeps evolving and making things even faster and easier with AI, but basically using just the natural language to provide the test scenario to the tool.

And then the tool will create a test script for you. And then, of course, dashboards, reporting and analytics. If we can provide dashboards and AI-driven insights for non-technical stakeholders, that will definitely make it easier for everyone to process and understand the test results, the success of the QA efforts.

In general where we are with the quality in our organization because sometimes it's hard to share those test results without creating some complex dashboards or integrations. So if there's something that can automatically create a nice user-friendly dashboard that shares all of the insights into the test results and trends that will be great for sharing with stakeholders and ensuring everybody is aware of the state of quality.

Harshit Paul (Director of Product Marketing, LambdaTest) - Absolutely, that makes perfect sense and I guess those are all the questions we had for this session, and well, this turned out to be an extremely insight-packed session. I have to say a lot of best practices to note down and take back with us. Thanks a lot, Anna, for sharing your expertise.

I'm sure everyone in the audience has a clear roadmap about how they can go about implementing Cypress and transitioning from manual to automation, increasing their efficiency, right? And to our audience, thank you so much for being part of this session.

Stay tuned for more exciting episodes in the LambdaTest XP Series, where we bring you the latest trends, and strategies, in the world of testing & QA. Thanks again, Anna, for having us.

Anna Patterson (Principal Software Quality Engineer, EVERFI) - Yeah, thank you so much for inviting me. It was fun talking to you. And I'm looking forward to more Lambda test events like this.

Harshit Paul (Director of Product Marketing, LambdaTest) - Looking forward to hosting you more and more, and I'm sure our audience would be leaning on that as well. So until next time, keep learning everyone. Happy testing.

Guest

Anna Patterson

Principal Software Quality Engineer, EVERFI

Anna Patterson holds 10+ years in the field of quality assurance and is an Applitools and Cypress ambassador. Over her career, she has executed, led, and coordinated software testing activities across a wide spectrum of applications for companies like IBM, Nationwide Insurance, Applause, and WillowTree. Currently, Anna holds the title of Principal Software Quality Engineer at EverFi (a Blackbaud company), where she leverages modern test automation and continuous integration tools to bolster confidence in the quality of the products released to the end users. Anna’s educational background in teaching adds a unique dimension to her skill set, allowing her to translate complex technical concepts into easily digestible and well-structured forms. She resides in Columbus, Ohio, with her family and rescue pitbull.

Anna Patterson
Anna Patterson

Host

Harshit Paul

Director of Product Marketing, LambdaTest

Harshit Paul serves as the Director of Product Marketing at LambdaTest, plays a pivotal role in shaping and communicating the value proposition of LambdaTest's innovative testing solutions. Harshit's leadership in product marketing ensures that LambdaTest remains at the forefront of the ever-evolving landscape of software testing, providing solutions that streamline and elevate the testing experience for the global tech community.

LambdaTest
Harshit Paul

Share:

Watch Now

WAYS TO LISTEN

SpotifyApple Podcast
Amazon MusicYouTube