Rooting through a test flake can be an arduous and frustrating experience. Staring at lines of code in an attempt to determine where or why a failure is occurring is mentally taxing. I have personally fallen victim to hours-long debugging sessions in order to fix a flakey set of tests.
But, what about a test that never fails?
Far more insidious than its flakey cousin, the test that never fails is always that beautiful shade of green which tells you that everything is quite alright. In fact, there is a quiet confidence that emanates from a test that never fails…
I have been reading through Agile Testing: A Practical Guide For Testers And Agile Teams, by Lisa Crispin and Janet Gregory, when I found a small portion that discussed the existence of a “Bill of Rights” for programmers and customers. Lisa Crispin noted that a “Tester Bill of Rights” was absent, so she and Janet set forth to create one.¹
The “Tester Bill of Rights” contains six articles, each describing a primary right or responsibility of the tester within an agile team. Unfortunately, there is a lack of detail regarding each article. …
Debugging — we have all been there. Staring at lines of code for hours on end wondering why something broke the way it did. Debugging automation code can be a frustrating and mentally exhausting experience. No matter the toolset, rooting through lines of code to determine where automation broke down is challenging.
I personally am guilty of spotting an error, then immediately running my code again. For some reason I continue to think that the second time around my code will pass without issue. As if a 50% failure rate is anything to feel confident about — it is not.
Are you feeling frustrated with getting ghosted when searching for a new job?
Trust me, I have been there. Getting ghosted hurts on both a personal and emotional level. It feels awful to know that a prospective employer did not take the time to notify you that you are not right for a position, or that they have found another candidate.
I was ghosted for the first handful of applications that I submitted after graduating from Northwestern University’s coding boot camp in 2017. I figured that I would receive a bunch of rejections, but nothing prepared me for being ignored…
Have you ever written a series of tests that were so similar, you wanted to join them together rather than run them separately?
I have, quite frequently. When I notice that I am falling into this pattern I turn to parameterization, something that I became familiar with while writing tests in Python using Pytest.
The act of parameterizing a test is to perform the same (or similar) series of actions with different values. An example would be writing a script for selecting three similar buttons on a screen. …
If you have used Cypress in the past you should be familiar with the
cy.route() methods. They enabled engineers to handle XHR requests within the browser for patterns such as mocking responses, aborting requests, and smart waiting.
Deprecated in Cypress 6.0.0, both
cy.server() have been replaced by a new method,
Released in November of 2020, the
cy.intercept() method allows engineers to monitor all network traffic, not just XHR requests.² Simply put, this is a game changer. …
Are you tired of maintaining a Postman collection for API testing outside of your automation framework?
I worked for a company that used Postman/Newman for API testing and Cypress for end-to-end. We would manually export Postman collections, then check the export into project repositories. The entire process was fairly brittle and cumbersome seeing as we had two locations for API documentation:
Why not consolidate tooling and use Cypress as our end-to-end and API test runner?
This tutorial will demonstrate how to use Cypress’ built-in request library to make API calls so it may act as…
Over the past five years, I have had the pleasure of maintaining and constructing a number of automation frameworks for a slew of companies. Each framework had its own distinct set of challenges and advantages. Some thrived, some failed.
The following items are what I…
A common practice in the field of test automation is to filter runs based on a set of criteria, whether it be to solely run UI tests or those for an API. Test filtering can be helpful in trimming down runs so that they are scoped properly to the work at hand.
Cypress does not offer the ability to filter test runs natively, an issue that has been ongoing since 2018.¹ Instead, engineers must write their own filtering methods to be used with Cypress.
I came across this issue while working for a start-up in Raleigh, North Carolina. The shop…
Running automated UI tests can be time consuming which can destabilize CI by causing new builds to take minutes to process rather than seconds. Thankfully, there is a solution, parallelization.
Test parallelization is the process of distributing test load across multiple processors, then running the tests all at one time. Parallelization can take a number of forms, including using individual processors or setting up sub-processes. The result leads to exorbitantly shorter execution times which will make CI builds much faster.
In this tutorial, we will learn how to run tests in parallel using Pytest, Pytest-Xdist, and Playwright. …