
What motivates you to be a Cypress Ambassador?
As an Ambassador, I have the opportunity to give back to the community that has given me so much over the past five years.
Before Cypress, test automation would often be a chore, to put it lightly. Now, it's a breeze. I am looking forward to spreading the love with as many testers as possible, helping them to get the most out of their experience with Cypress!
How do you currently help others that are either using Cypress or interested in using Cypress?
As a freelancer, I have been helping companies automate their software testing using Cypress and the Best Practices as well as migrating existing test stacks to Cypress.
During my assignments, I set up internal workshops and provide mentorship to testers of any level -- from trainee to experts, so the companies I work with can be in control of quality assessments using Cypress.
What is your favorite Cypress feature?
That's a tough one, there's so many to choose from!
Within Cypress itself, my favorite command is cy.contains(). Within my current assignment, it has proven itself to be a critical component of our testing flows, as it is highly flexible while adhering to the Best Practices.
For Cypress Cloud, test parallelization is definitely my top pick. It speeds up testing in the CI/CD process so much, allowing testers and developers to get a gauge on quality faster than you can make a fresh cup of coffee.
My favorite part of Cypress itself is that it is easily extendible. This has allowed me to do all sorts of cool things over the past years, like packaging custom commands or configuration files to be used across teams, writing custom reporters for test results to be used in dashboards and utilizing Node on start-up to fetch and set-up dynamic test data from external sources like Gitlab.
What is your favorite "Cypress Best Practice" and why?
My favorite is the first -- "Test specs in isolation, programmatically log in, and take control of your application's state".
Tests should be fast, reliable and independent. To me, this means that flake should not occur within your spec files, you should only write code for the parts of the application you control, you are able to take shortcuts using cy.request() to bypass lengthy parts, like logging in via the UI, or setting up your testing state, for tests that do need to cover those specific parts.
Often overlooked, but most important to me, is the anti-pattern mentioned: do not use a page object model (POM).
Time and effort spent on writing the test code should be spent on writing the actual test code as much as possible, rather than creating and maintaining a POM. I always explain it as Cypress *being* the de facto page object model, which you are able to extend using custom commands if necessary, so there is no need for an additional layer of abstraction. The methods provided by Cypress also already allow you to chain in most cases, so there really is no need to wrap your Cypress code in page object models.
Adhering to this part of the Best Practice allows for readable and easily maintainable code which can be understood by anybody with any Cypress experience. This greatly increases the ability for you to work together with developers and other testers.
Outside of work, what are your favorite things to do (hobbies, passions, etc.)?
I have a passion for pop music (I am a massive Swiftie), food, travelling, and walking (to offset the food!). Trying out new food places around town with my fiancé, traveling to new places, hiking in the dunes of the Netherlands – you name it, I'm game!
Aside of that, I also really enjoy playing video games and watching American football. Tycoons and simulators are my favorite genre, the Houston Texans are my favorite team.
My current go-to game is Rollercoaster Tycoon 2 (OpenRCT2). I can spend hours building new rollercoasters.
What is one professional milestone you are proud of? (an accomplishment, celebration, recognition, etc.)
The obvious one being named a Cypress Ambassador of course!
My current assignment is my biggest one so far. Within the span of a year, together with Paul de Witt (hi Paul!), I set up a software testing and test automation strategy for an entire government organization, onboarded about a dozen new testers and got them started using Cypress and the Best Practices. We also worked on getting existing Page Object Models refactored and inspiring partnering companies and organizations to think about their test strategy.
All this work is allowing the government body to take charge of the critical process of quality control and auditing with their own testers, rather than test consultants, using cutting edge tools like Cypress and the best possible implementation of Best Practices I have encountered so far.
For new users - what is the best way to "get started" with Cypress?
Just do it! Make. Your dreams. Come true! </ShiaLaBeouf>
All kidding aside, start off somewhere you feel comfortable.
Whether you are working as a manual tester or are looking to migrate to Cypress, find a simple part of the application you often have to test manually, write some test scenarios for this part if you haven't already and *then* move to automating using Cypress.
If you test the login scenarios for your application on a weekly basis for instance, create a spec file for that section and write tests for a happy flow and an error flow.
In my first months, I always had the documentation for commands and the Best Practices open on the side of my screen, so I could glance over and look it up whenever I was in doubt of something. Nowadays we have the Cypress Discord to ask questions in of course, but back then that wasn't possible. While I had some amazing front-end developers reviewing my code, I had to find out how to use the Cypress commands properly myself.
Don't worry about not getting everything right or perfectly according to the Best Practices on your first attempt, writing any code trumps writing no code at all. I always tell my mentees to bring at least one line of code to talk about to any meeting I hold with them, so we can look at that and work from there.
Take your time, but keep on progressing on a daily basis by writing at least one line of code.
Little by little, a little becomes a lot!
What is your favorite quote or saying?
I'm afraid I don't have one!
About the Ambassador Program.
The Cypress Ambassador program supports the top Cypress advocates around the world. Through this program, Ambassadors are offered speaking opportunities, a personalized hub, and visibility within our extensive network.To learn more about these wonderful ambassadors visit our Official Ambassador webpage.
The Cypress Community Team has been working on the official Cypress Ambassador program to include a variety of new experiences, support resources, benefits, contribution areas, and much more. One of our main priorities is to highlight our current Ambassadors and the amazing work they are doing. They truly embody the community spirit through their advocacy to help empower others. We will be having more opportunities to connect with our Ambassadors this year. Make sure to stay updated and connect with the community.