So we’re the Encyclopedia of Life (EOL) team: Josh (University of

Toronto), Jonathan (Ottawa University), Feng (York University), Tyler

and Will (both at Laurentian University) and our mentor is Dmitry

Mozzherin who is a programmer at Encyclopedia of Life.

Our project is to develop a general testing framework for the EOL

website – a site that is attempting to catalog every species on the

planet – with the intent that this framework be general enough to use

for any given website. We’re using a stack of technologies to

implement this goal:

Cucumber ( is a behaviour driven development testing

framework developed in Ruby. It allows a programmer to describe what a

particular feature is intended to perform in plain English, and given

a set of underlying ‘step definitions’ defined in Ruby, a test is

performed based on the plain English.

Selenium ( is an automated way to control a web

browser and ensure that the behaviour of a website is correct.

Capybara ( is a Ruby based driver

for the new version of Selenium. Our goal is to integrate Cucumber and

Capybara in such a way that automated tests can be performed using the

plain English descriptions mentioned above.

The potential benefits to combining these technologies are huge. Using

this software stack it should be possible to create an automated

testing framework that can be implemented in plain English and in a

generic way so that it can be used to test any website. The most

intriguing part of this whole project is that it is being started from

scratch. One of the administrators of the program noted that it was

almost unheard of for this to happen for Capstone projects but this

project seemed like a natural evolution from the current EOL testing

framework fit well with EOL’s goals.

Our time at the code sprint was spent for the most part getting

acquainted with Git, Ruby and the above technologies. Once we got

everything working in harmony we spent some time putting together some

initial tests which we’ll be able to use as templates for the bulk of

the work ahead us. The last day of the code sprint was spent dividing

up the work using the GitHub issue tracker which looks like it will be

an efficient way of distributing labour.

You can have a peek at our GitHub repository here:


Josh Zucker