<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1665604367028265&amp;ev=PageView&amp;noscript=1">

Test Automation: Exploring options to reduce cost and improve quality

Date: 15th Mar 2019

Gauge and Taiko, a perfect balance of feature-rich, but easy to get started.

While I am not a QA Analyst and have no deep experience in browser automation setup, I am continuously looking for ways to improve quality while reducing complexity, with the ultimate purpose of identifying cost-effective solutions. Reducing the costs associated with development allows us to reduce the overall cost of the solution, which we can then use to support our customers, who we know have to operate under constant reimbursement pressure and need to operate as efficiently as possible.

After several hours of acceptance & regression testing for a new release, I took a break this weekend to explore some of the automation options that exist. ( I thought it would be a fun and distracting way to spend a few early morning hours on Saturday). We, of course, have a QA Analysts who work on browser-based regression automation suites & tests with Selenium, the de facto standard, but I was searching for a toolset that would enable broader participation in the process and with fewer maintenance needs.

There are many proprietary options out there, some of which are using interesting approaches with AI. However, one option surfaced and caught my attention: Gauge, I took a quick look and was intrigued, the approach defined by the ThoughtWorks Team made sense to me. When used in combination with Taiko, it provides a simple yet powerful alternate toolset with a different philosophy.

Setup

Gauge supports multiple languages, IDEs, CI/CD tools, and automation drivers. I opted to go with JavaScript, Taiko, and VS Code. The Get Started docs are comprehensive and easy to follow; For that reason, I won’t recount all of my setup steps

First Impression

In a short period, less than an hour, I was able to write and run two specifications with seven scenarios, I was amazed at how much sense this all made to me.

First of all, with VS Code it is pure magic, the ability to write a spec in markdown, which then generates a corresponding JS function that requires minimal editing, or to be in a JS file and “peak” into the references for any specific function, makes it very easy to keep track of what you are attempting to achieve.

Write Specifications

 Business Test Cases are written using markdown, a simple example of a Spec file I created to explore the setup and syntax are shown below. 

Several elements make this logical and easy: Using the VS Code plugin alerts you that no implementation step is found, and prompts you to create one, as shown in image 2.

Each spec file must have a heading and a minimum of one scenario, with each scenario containing one or more steps. A spec file heading is denoted using # (markdowns H1 tag), a scenario heading is ## (markdowns h2), and steps are identified using markdown unordered list syntax, the asterisk (*)

The corresponding implementation of these steps is shown in image 4. Note the variable defined in markdown using quotes, is passed to the JS function within the angle brackets (the variable within the JS function can be renamed to something that is easier to read when working within the JS file)

Running the Test

Once you have completed writing a specification and corresponding implementation, the test can be run from the command line using gauge run specs, which will run all of the specifications within the project, or you can specify specific scenarios by merely adding the name of one or more specs to run, for example, gauge run specs Admin and Master Files.

The results of the test are viewable within the terminal (Image 5) or via an HTML report that provides additional details (Images 6 & 7)

Guage and Taiko are exciting tools, definitely, worth further exploration — a perfect balance of feature-rich, but easy to get started. I will follow up with a video overview. As someone just evaluating these tools at a high-level, I would also welcome any additional input or guidance. awharton@saviicare.com 

* Please enter an email address