Unit testing your e2e test framework 'Treat your test code like production code' is a really common saying. Lets tackle one facet of that rule: unit testing your e2e tests
The Future of Software Test Engineers and Codeless Tools A few months ago I was chatting with Evgeny Kim about some of the reservations I had while exploring a new codeless test automation tool. He was also exploring some codeless tool options and so he invited me onto his podcast to talk about it. We chatted about a wide
Running Reflect.run builds in CodeFresh CI For the last few months I’ve been using a no-code UI test automation service called Reflect.run to build out some UI tests (scenarios and such) with the goal of evaluating how well it works in in terms of feedback (and value) as part of our build process. While
Upgrading to WebDriverIO 6 In March I went through the process of upgrading to WebDriver v5. Last month I took the next step by upgrading our deployment to version 6 so we’d be current. I learned quite a bit from that first upgrade which made this upgrade a whole lot easier. Here’s
FAQs to How I Became An Automation Engineer (talk) I’ve given the talk on How I Became an Automation Engineer a few times. Each time I’ve gotten good feedback and a lot of questions from engaged participants. With each repeated question, I try to update my talk to address those points for future audiences. However often I
Upgrading to WebDriverIO 5 A few weeks ago I finished upgrading our implementation of WebDriverIO from version 4 to version 5. The impetus for the upgrade was an announcement by the WebDriverIO twitter account of a new beta version 6 to be quickly followed by a finished version (it’s already here). One thing
How I Became An Automation Engineer Have you ever wondered what an Automation Engineer is or what they do? I’ve never found a great definition so I shared my experiences on How I Became an Automation Engineer and what that first year has looked like: the good, bad and the ok. I also talked a
It’s easier to write about tooling It’s easier to write about tooling than it is to write about the decisions we took and models we made prior to choosing it. I can write about a specific test I designed with WebDriverIO far easier than I can write about the strategy taken, oracles used or even
Installing ChromeDriver on Windows Installing on Windows 7 & 10: The following are the best ways to install ChromeDriver on Windows so you can run Selenium: * The easiest way to install ChromeDriver is to use a package manager such as Chocolatey. You should really have a package manager if you don’t now: 1.
How To Run Your Selenium Tests with Headless Chrome The Problem If you want to run your tests headlessly on a Continuous Integration (CI) server you’ll quickly realize that you can’t with an out-of-the-box setup since there is no display output for the browser to launch in. You could use a third party library like Xvfb (tip
How To Run Your Selenium Tests Headlessly in Docker The Old Way It used to be that in order to get your Selenium tests running on a given machine you had to install each individual browser and then the browser drivers (for instance ChromeDriver for Chrome). Some of my most popular posts are about installing these drivers. However that’
8 Tools I use to Accelerate My Testing Inspired by Justin Rorhman’s post of a similar name with a slight twist focusing on tools that generally help accelerate my testing. As a test and quality specialist embedded in an engineering team I have a lot of work to do on any given day. Our engineering team’s
Good and Bad UI Test Automation explained - Inspired by Richard Bradshaw's Tweets Generally speaking there’s a scary trend with the influx of people interested in test automation where (seemingly) everyone wants to automate at the UI level. For example the phrase “Test automation” seems to be synonymous with UI automation which seems to mean using Selenium. To be fair there are
Opting out of A/B Tests while Running your Automated Tests At Laurel & Wolf, we extensively introduce & test new features as part of A/B or split testing. Basically we can split traffic coming to a particular page into different groups and then show those groups different variations of a page or object to see if those changes lead
A typical day of Testing (circa 2018) Recently I found myself repeatedly describing how I approach my testing role in a “typical day” and afterwards I thought it would be fun to capture some things I said to see how this might evolve over time: Background * At Laurel & Wolf our engineering team works in 2 week
Practice using Selenium Now! Have you ever wanted to learn a little bit about Selenium WebDriver but didn’t know where to start? Turns out there are some good tips / tutorials online for practicing writing Selenium in Ruby. One of those is a newsletter called Elemental Selenium that has something like 70 tips. You
Installing GeckoDriver on macOS Overview of naming conventions * GeckoDriver is the library you need to download to be able to use Selenium WebDriver with Firefox. These are the Selenium Bindings. * Marionette is the protocol which Firefox uses to communicate with GeckoDriver. Installed by default with Firefox. * FirefoxDriver is the former name of GeckoDriver. Ways
Selenium-WebDriver 2.53.x not working with Firefox 47 and beyond The problem I’m used to running selenium tests against Firefox locally (OS X Yosemite and now MacOS Sierra) both from the command line using RSpec and when using a REPL like IRB or Pry. I don’t use FF often so when I started having issues I couldn’t
Installing SafariDriver on macOS Safari + WebDriver aka SafariDriver comes included in Safari 10 which means as long as you have Safari 10 and later versions you can point your tests at Safari and run them without installing anything else. Safari now provides native support for the WebDriver API. Starting with Safari 10 on OS
Debugging Selenium code with IRB Occasionally something will change in our system under test that breaks a Selenium test (or two). Most of the time we can walk through the failure, make some tweaks and run it again – repeating the process until it passes. Depending on how long it’s been since we last worked
Review of The Selenium GuideBook: Ruby Edition tl;dr If you’ve ever wanted to learn Selenium but didn’t know where to start, The Selenium GuideBook is the place (doesn’t matter which edition you use, it’ll be good). Page Contents * 1 Learning Selenium * 2 Book Options * 3 The Book * 4 Applying the Book and
The Promise and Failure of Record and Playback I came across the below video of Bret Pettichord’s keynote presentation to the Selenium Conference in 2011 called “Science and Stories and Test Automation”. Much of the talk covers his experience with Test Automation, specifically the promise and failure of record and playback over the last 20 years (I
Running Rspec acceptance tests in TeamCity At work we use TeamCity as our CI service to automate the build and deployment of our software to a number of pre-production environments for testing and evaluation. Since we’re already bottling up all the build and deployment steps for our software, I figured we could piggy back on
Selecting a few Platform Configuration Tests I’ve been developing a GUI acceptance test suite to increase the speed of specific types of feedback about our software releases. In addition to my local environment I’ve been using Sauce Labs to extend our platform coverage (mostly by browsers and operating) and to speed up our tests
Screen resolution vs Resizing a window in Selenium The main product I test was designed to follow a responsive web design layout so it could theoretically be used on anything from desktop computers to tablets and smartphones. Practically speaking this means different viewable window sizes (viewport sizes) will result in the browser placing elements of our application in
Humans and Machines: Getting The Model Wrong It seems like one of the more prominent and perpetual debates within the software testing community is the delineation between what the computer and human can and should do. Stated another way, this question becomes “what parts of testing fall to the human to design, run and evaluate and what
The Apple Watch won’t change Testing Probably. The Apple Watch won’t change Testing, probably. Last month uTest announced a contest to win an Apple Watch. All you had to do was provide a response to this post: In just a paragraph, describe how the Apple Watch will or will not change software testing as we
Installing ChromeDriver on macOS The ChromeDriver getting started guide isn’t super helpful if you are unfamiliar with including the ChromeDriver location in your PATH environment variable. (The PATH variable helps Chrome find the downloaded ChromeDriver exe). Also it’s a lot of work for something so common. Never fear, here is a better
Including the ChromeDriver location in MacOS System PATH The ChromeDriver getting started guide isn’t super helpful if you are unfamiliar with including the ChromeDriver location in your PATH environment variable. The PATH variable helps Chrome find the downloaded ChromeDriver exe. Don’t get me wrong, I’ve updated PATH variables on Windows for years but never on
TDD and Software Testers I’ve been following along with the series of conversations with Martin Fowler, Kent Beck and David Heinemeier Hansson (DHH) entitled Is TDD Dead. The whole conversation about what’s good, bad and ugly with test driven development (TDD) is interesting in my role as a software tester and from
Installing Ruby and Watir on Windows 7 I recently started playing around with Web Application Testing in Ruby or Watir for short. As is recommended, I downloaded the Homebrewer’s Guide to Watir by Zeljko Filipin and started trying to install the latest versions of the RubyInstaller for Windows (currently 2.0.0) when I ran into
How do you handle regression testing? Matt Heusser sent the context-driven-testing email group a series of questions about handling regression testing. Specifically he asked: How do your teams handle regression testing? That is, testing for features /after/ the ‘new feature’ testing is done. Do you exploratory test the system? Do you have a standard way to