Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Stripe Open Sources Abba, an A/B Testing Framework

Stripe Open Sources Abba, an A/B Testing Framework

Leia em Português

This item in japanese

Lire ce contenu en français

 Stripe has open sourced their JavaScript A/B testing framework called Abba. In order to set up a web application for testing, the following code snippet needs to be inserted in main page:

  Abba('test name')
    .control('Test A', function(){ /* ... */ })
    .variant('Test B', function(){ /* ... */ })

This script defines a control test called Test A, against which all results are reported, and another test variant, Test B. There can be multiple variants. For each test a handler is specified, being called by the framework when necessary. The control test may lack a handler.

When the test is started, Abba randomly calls the handlers associated with different tests. This usually results in serving different pages to site users, and the framework keeps track of each user and their test start and completion status. If set accordingly, Abba can make sure a user sees the same page when visiting the website again.

Data is stored in MongoDB and can be visualized in a graph displaying  daily visitors and conversion rates (visitors that completed the test) for a certain period of time. Values for different variants are weighted and a standard score is computed to evaluate the accuracy of the test. The results can be filtered by date and/or browser.

Abba can be run locally or on a server, instructions being provided to run it on Heroku. The framework requires Ruby 1.9.3 and MongoDB.

Rate this Article