Stripe は,同社の Abba というJavaScript A/B テストフレームワークをオープンソースにした。このテスト用にWebアプリケーションをセットアップするには,メインページに次のようなコードを挿入する必要がある。
<script> Abba('test name') .control('Test A', function(){ /* ... */ }) .variant('Test B', function(){ /* ... */ }) .start(); </script>
このスクリプトでは Test A
というコントロールテストを定義して,すべての処理結果の報告対象にすると同時に,Test B
という別のバリアントを定義している。バリアントは複数あってもよい。テストでハンドラが参照される度に,必要に応じてこれがフレームワークからコールされる。コントロールテストではハンドラのない場合もある。
テストが開始されると,Abbaは別々のテストに関連付けられたハンドラをランダムに呼び出す。通常はこれによって,サイトで使用されているページが別々に呼び出される。フレームワークが各ユーザ毎に,テスト開始と終了ステータスを保持する。ユーザが改めてWebサイトを参照した時,前回と同じページを表示するようにAbbaを設定しておくことも可能だ。
データはMongoDBにストアされ,日毎のビジター数やコンバージョン率 (テストを完了したビジター) を,指定された時間範囲でグラフ表示によって可視化することができる。各バリアントの値は重み付けされ,テスト精度を評価するための標準スコア が計算される。結果を日付ないし使用ブラウザでフィルタリングすることも可能だ。
Abbaはローカルでもサーバ上でも実行可能である。Heroku上で動作させるための手順書も用意されている。動作にはRuby 1.9.3とMongoDBが必要だ。