In this guide, we’ll go over the top email testing types and outline some basic steps for setting them up.
Why perform email testing?
Email testing is an important step for keeping your systems secure, testing their functionality, and maintaining a professional business. Without robust testing measures, you could end up with vulnerabilities that take a lot of effort to fix.
Making sure that emails are sent when needed and function as expected is crucial for maintaining any business. Mistakes in these communications can give your business a poor reputation with customers, which no organization wants.
No matter your reason, once you’ve decided to conduct email testing it’s important to find the right software tools to help.
Why use Cypress for email testing?
Cypress is one of the top tools for creating and running email testing for good reason. It’s flexible, adaptable, and can be tailored to run email tests for account verification, password resets, automated emails, marketing campaigns, and more. It’s also easy to build new tests starting from old ones, so expanding can be less resource-intense than you might expect.
One of the best things about testing with Cypress is how it mimics real user interactions. It’s a browser-based testing platform, not an internal test, so when it runs a test it can interact with your system like a real user might. This helps provide accurate test data that matches how your system performs in the real world.
While Cypress has a lot of built-in functionality, there are some instances where you might need it to do more than it can out of the box. Fortunately, Cypress can easily be customized to run specialized tests that can help pinpoint problems with emails before your users find them the hard way.
Common email testing scenarios with Cypress
Setting up tests in Cypress is fairly straightforward. You’ll need to download and install Cypress and familiarize yourself with the documentation on their website, which includes some examples to work through to get adjusted to their software. Setting up a test involves identifying the base state, what you plan to change, and what you are measuring after to see if the base state changed.
While Cypress can be set up to run many kinds of email tests, it’s easier to get started with some of the more common scenarios. We’ll go over the specifics for the most common email tests in the next few sections:
- Testing account verification emails
- Testing password reset systems
- Testing order and shipping notifications
- Testing email newsletters
- Testing surveys, links, and other interactive emails
Testing account verification emails with Cypress
Many account verification systems use automated emails for checking accounts. Verifying an email address is a relatively simple step to take to secure accounts. It’s usually implemented into the account creation process so that when a user inputs information, the account is created with limited permissions, and an email is sent to the user’s email address. Once the user proves they have access to that email address, their account is verified and permissions updated.
Outlining the process above can be used to set up the steps for a test in Cypress. Here is a list of steps to test based off the general overview of a simple account verification system:
- User clicks a link to create an account
- The website page for new account creation loads
- User inputs information into each of the fields
- User clicks a button to submit the data
- The account is created with permissions for unverified accounts
- An automated email is sent to the user’s email address
- The user clicks on the link in the email
- The account status is changed to verified
The steps needed to test your system may vary from these, and it should also be noted that this is only one scenario where the account created was made by a legitimate user. In order to test the system properly, it’s important to test what might happen if things did not go according to plan. What is the system supposed to do if a bot tries to create an account, if the information inputted into the form is incorrect, if the automated email times out before the user clicks the link, or other situations?
Testing password reset emails with Cypress
Like account verification emails, password reset emails are another part of keeping accounts secure. When a user forgets their password, as is bound to happen sometimes, the password can be reset by an automated system that allows the user to create a new password. Many times, this system relies on sending an email with a link that permits the user to reset the password. This helps keep accounts from being reset by people who are not tied to them, which can affect your system’s security.
When setting up password reset email tests, it’s important to consider what other steps the user may have to take to prove they are the owner of the account. Some systems may require the user to complete a captcha to prove they are not a bot. Other systems may require the user to confirm the answer to a security question or some other personal data associated with the account. Whatever means your system uses, you’ll probably want to make sure your test includes all of them.
Here is an example outline of the testing steps you might need when setting up a test in Cypress:
- User clicks a link to reset their password
- User completes a captcha
- User inputs an answer to a security question
- The security question is checked against a stored answer
- A password reset email is sent to the user
- The user clicks a link in the email
- The password reset page loads
- The user inputs a new password
- The password is checked against password requirements
- The new password is stored
- A confirmation email is sent to the user
Tips for testing other types of emails with Cypress
The process for setting up email tests in Cypress follows the same format as above – create an outline of the process and identify the steps a user might experience, then write the test in Cypress. Here are a few others you might need.
Order and shipping confirmation emails for online stores If you have an online store, you probably have some form of automated order confirmation emails and shipping emails. To set up tests for these kinds of emails, you may have to work with your payment processor to enter a test mode, which can be used to create fake orders without charging any real accounts. Alternatively, you could set up a fake product and set up test orders for it, check that the emails have sent properly, and then delete the fake orders and product.
Email newsletters, surveys, and interactive emails For some emails, you might choose to include additional elements like customized content based on the recipient, interactive inputs like surveys, and other interactive content like games, customized product lists, and more. When setting up Cypress tests for these types of emails, you may want to pay attention to what browsers and email providers are most commonly used by your recipients and run your tests to simulate emails under those conditions. This is important because how emails show up depends a lot on the provider and the user’s software and hardware.
Learn more about email testing
When setting up email tests, you might find it helpful to add some additional functionality to Cypress through integrations like those offered by Mailosaur. Mailosaur specializes in email and SMS testing, and provides an integration for Cypress that allows you to generate and check real email addresses directly within the testing environment, which means your tests can become more automated and efficient. If you have questions about email testing, Cypress, or integrating software with Cypress, please reach out to us