A Field Guide to the Distributed Development Stack

Tests Done in Code, Not by a QA Department

As described in the section on continuous deployment servers, running automated tests on each deploy or commit is an important way to ensure software quality.

Tools

The following table lists testing tools you’re likely to encounter:

  • CasperJS. “CasperJS is an open source navigation scripting and testing utility written in Javascript for the PhantomJS WebKit headless browser and SlimerJS (Gecko). It eases the process of defining a full navigation scenario and provides useful high-level functions, methods, and syntactic sugar for doing common tasks.”
  • PhantomJS. “PhantomJS is a headless WebKit scriptable with a JavaScript API. "
  • Canned. “Server to respond with fake API responses by using a directory of files for finding out what to say.”
  • Selenium. “Selenium automates browsers. Primarily, it is for automating web applications for testing purposes, but is certainly not limited to just that.”
  • Watir. “Watir, pronounced water, is an open-source (BSD) family of Ruby libraries for automating web browsers.”
  • Cucumber. “Cucumber is a tool that executes plain-text functional descriptions as automated tests. Cucumber itself is written in Ruby, but it can be used to “test” code written in Ruby or other languages including but not limited to Java, C# and Python.”
  • Behat. “Behat is an open source behavior-driven development framework for PHP 5.3 and 5.4.”