Category:

Smoke testing is an important part in Hootsuite’s Build Pipeline. During my work term at Hootsuite, I got a chance to be a part of the change from a PhantomJS based framework to a Selenium one. The purpose of this post is to share my learnings from this journey — and that there is no so-called ‘best’ framework that will work in any situation. Choose the right tool for your business.

Overview of Web Smoke Tests

The smoke test is under the category of end-to-end tests which inspect the basic functionalities of a project. It is similar to the functional test but not as detailed.

In the practice with web applications, the standard way is to automate a browser (either a headless one like PhantomJS or a real one like Chrome/Firefox) and simulate the actions as if a user is actually viewing and clicking the web pages. Smoke tests ensure that all the components and services collaborate together and the whole product behaves as expected. They are the last check before the product & service is delivered to customers. Therefore, it is a crucial piece in the overall testing strategy.

The Hootsuite dashboard has complex features that are highly interactive and work across multiple platforms. Choosing the right tool and writing smoke tests that are efficient, highly automatic, and easy to maintain is by no means a simple task. Through trial and error, Hootsuite has applied several popular tools to implement our own smoke tests architecture and finalized what we call the “Venkman” testing framework, which is built on top of Selenium and NightwatchJS. But first, we’ll start with discussing our previous PhantomJS framework, internally referred as “Casper”. Read More …