(57)【要約】【解決手段】本出願の実施形態は、複数ヴァージョンをテストするための方法と、複数ヴァージョンをテストするためのデバイスと、複数ヴァージョンをテストするためのコンピュータプログラム製品とに関する。複数ヴァージョンをテストするための方法が提供される。方法は、現行製品を訪問しているユーザの分岐タグ値を取得することであって、分岐タグ値は、前記対応するユーザを一意に識別する、ことと、分岐タグ値の分岐ハッシュ値を計算することと、現行製品の複数ヴァージョンをテストするために、現行製品のための既定の旧ヴァージョン対新ヴァージョン配分比と、分岐ハッシュ値とにしたがって、現行製品の旧ヴァージョン又は新ヴァージョンをユーザに配分することと、を含む。【選択図】図１
2016522475.tif 000002
【特許請求の範囲】
【請求項１】
複数ヴァージョンをテストするための方法であって、
現行製品を訪問しているユーザの分岐タグ値を取得することであって、前記分岐タグ値は、対応するユーザを一意に識別する、ことと、
前記分岐タグ値の分岐ハッシュ値を計算することと、
前記現行製品の複数ヴァージョンをテストするために、前記現行製品のための既定の旧ヴァージョン対新ヴァージョン配分比と、前記分岐ハッシュ値とにしたがって、前記現行製品の旧ヴァージョン又は新ヴァージョンをユーザに配分することと、
を備える方法。
【請求項２】
請求項１に記載の方法であって、
前記現行製品を訪問しているユーザの分岐タグ値を取得することは、
ユーザのウェブリクエスト内のクッキーが分岐タグ値を有するかどうかを判定することと、
前記ユーザの前記ウェブリクエスト内の前記クッキーが前記分岐タグ値を有する場合に、前記ユーザのクッキーから前記分岐タグ値を抽出することと、
前記ユーザの前記ウェブリクエスト内の前記クッキーが前記分岐タグ値を有さない場合に、
既定の分岐タグ値生成ステラテジーに基づいて、前記ユーザのための分岐タグ値を生成することと、
前記分岐タグ値を前記ユーザのクッキーに追加することと、
を行うことと、
を含む、方法。
【請求項３】
請求項２に記載の方法であって、
前記ユーザのための分岐タグ値を生成することは、
前記ユーザのインターネットプロトコル（ＩＰ）アドレス、前記現行製品への初回訪問日時、及び乱数を取得することと、
前記分岐タグ値を形成するために、前記ユーザのＩＰアドレスと、前記現行製品への初回訪問日時と、前記乱数とを結合することと、
を含む、方法。
【請求項４】
請求項１に記載の方法であって、
前記分岐タグ値の分岐ハッシュ値を計算することは、
前記分岐タグ値をハッシュコード値に変換することと、
前記ハッシュコード値に対応する初期ハッシュ値を計算することと、
前記分岐ハッシュ値を得るために、前記初期ハッシュ値に対して分岐最適化技術を実施することと、
を含む、方法。
【請求項５】
請求項４に記載の方法であって、
前記分岐ハッシュ値を得るために、前記初期ハッシュ値に対して分岐最適化技術を実施することは、
前記分岐ハッシュ値を得るために、既定のシフト幅にしたがって前記初期ハッシュ値をシフトさせる操作、
前記分岐ハッシュ値を得るために、既定の反転ルールにしたがって前記初期ハッシュ値を反転させる操作、
前記分岐ハッシュ値を得るために、既定の乗数で前記初期ハッシュ値を乗算する操作、又は
前記分岐ハッシュ値を得るために、既定の時間パラメータにしたがって前記初期ハッシュ値をハッシュ化する操作
のうちの１つを実施することを含む、方法。
【請求項６】
請求項１に記載の方法であって、
前記現行製品の複数ヴァージョンをテストすることは、
前記現行製品の前記旧ヴァージョン及び前記新ヴァージョンを、前記旧ヴァージョン及び前記新ヴァージョンへの訪問におけるユーザ変換率にそれぞれしたがってテストすることを含む、方法。
【請求項７】
請求項６に記載の方法であって、
前記現行製品の前記旧ヴァージョン及び前記新ヴァージョンを、前記旧ヴァージョン及び前記新ヴァージョンへの訪問におけるユーザ変換率にそれぞれしたがってテストすることは、
前記旧ヴァージョンを訪問しているユーザの旧ヴァージョン変換率及び新ヴァージョンを訪問しているユーザの新ヴァージョン変換率を取得することと、
前記旧ヴァージョン変換率及び前記新ヴァージョン変換率にしたがって、前記旧ヴァージョン及び前記新ヴァージョンをテストすることと、
を含む、方法。
【請求項８】
複数ヴァージョンをテストするためのデバイスであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合され、前記少なくとも１つのプロセッサに命令を提供するように構成されたメモリと、
を備え、
前記少なくとも１つのプロセッサは、
現行製品を訪問しているユーザの分岐タグ値を取得することであって、前記分岐タグ値は、対応するユーザを一意に識別する、ことと、
前記分岐タグ値の分岐ハッシュ値を計算することと、
前記現行製品の複数ヴァージョンをテストするために、前記現行製品のための既定の旧ヴァージョン対新ヴァージョン配分比と、前記分岐ハッシュ値とにしたがって、前記現行製品の旧ヴァージョン又は新ヴァージョンをユーザに配分することと、
を行うように構成される、デバイス。
【請求項９】
請求項８に記載のデバイスであって、
前記現行製品を訪問しているユーザの分岐タグ値を取得することは、
ユーザのウェブリクエスト内のクッキーが分岐タグ値を有するかどうかを判定することと、
前記ユーザの前記ウェブリクエスト内の前記クッキーが前記分岐タグ値を有する場合に、前記ユーザのクッキーから前記分岐タグ値を抽出することと、
前記ユーザの前記ウェブリクエスト内の前記クッキーが前記分岐タグ値を有さない場合に、
既定の分岐タグ値生成ステラテジーに基づいて、前記ユーザのための分岐タグ値を生成することと、
前記分岐タグ値を前記ユーザのクッキーに追加することと、
を行うことと、
を含む、デバイス。
【請求項１０】
請求項９に記載のデバイスであって、
前記ユーザのための分岐タグ値を生成することは、
前記ユーザのインターネットプロトコル（ＩＰ）アドレス、前記現行製品への初回訪問日時、及び乱数を取得することと、
前記分岐タグ値を形成するために、前記ユーザのＩＰアドレスと、前記現行製品への初回訪問日時と、前記乱数とを結合することと、
を含む、デバイス。
【請求項１１】
請求項８に記載のデバイスであって、
前記分岐タグ値の分岐ハッシュ値を計算することは、
前記分岐タグ値をハッシュコード値に変換することと、
前記ハッシュコード値に対応する初期ハッシュ値を計算することと、
前記分岐ハッシュ値を得るために、前記初期ハッシュ値に対して分岐最適化技術を実施することと、
を含む、デバイス。
【請求項１２】
請求項１１に記載のデバイスであって、
前記分岐ハッシュ値を得るために、前記初期ハッシュ値に対して分岐最適化技術を実施することは、
前記分岐ハッシュ値を得るために、既定のシフト幅にしたがって前記初期ハッシュ値をシフトさせる操作、
前記分岐ハッシュ値を得るために、既定の反転ルールにしたがって前記初期ハッシュ値を反転させる操作、
前記分岐ハッシュ値を得るために、既定の乗数で前記初期ハッシュ値を乗算する操作、又は
前記分岐ハッシュ値を得るために、既定の時間パラメータにしたがって前記初期ハッシュ値をハッシュ化する操作
のうちの１つを実施することを含む、デバイス。
【請求項１３】
請求項８に記載のデバイスであって、
前記現行製品の複数ヴァージョンをテストすることは、
前記現行製品の前記旧ヴァージョン及び前記新ヴァージョンを、前記旧ヴァージョン及び前記新ヴァージョンへの訪問におけるユーザ変換率にそれぞれしたがってテストすることを含む、デバイス。
【請求項１４】
請求項１３に記載のデバイスであって、
前記現行製品の前記旧ヴァージョン及び前記新ヴァージョンを、前記旧ヴァージョン及び前記新ヴァージョンへの訪問におけるユーザ変換率にそれぞれしたがってテストすることは、
前記旧ヴァージョンを訪問しているユーザの旧ヴァージョン変換率及び新ヴァージョンを訪問しているユーザの新ヴァージョン変換率を取得することと、
前記旧ヴァージョン変換率及び前記新ヴァージョン変換率にしたがって、前記旧ヴァージョン及び前記新ヴァージョンをテストすることと、
を含む、デバイス。
【請求項１５】
有体の非一時的なコンピュータ読み取り可能ストレージ媒体に盛り込まれた、複数ヴァージョンをテストするためのコンピュータプログラム製品であって、
現行製品を訪問しているユーザの分岐タグ値を取得するためのコンピュータ命令であって、前記分岐タグ値は、対応するユーザを一意に識別する、コンピュータ命令と、
前記分岐タグ値の分岐ハッシュ値を計算するためのコンピュータ命令と、
前記現行製品の複数ヴァージョンをテストするために、前記現行製品のための既定の旧ヴァージョン対新ヴァージョン配分比と、前記分岐ハッシュ値とにしたがって、前記現行製品の旧ヴァージョン又は新ヴァージョンをユーザに配分するためのコンピュータ命令と、
を備えるコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願の相互参照］
本出願は、２０１３年４月１２日に出願された、発明の名称を「Ａ  ＭＵＬＴＩ−ＶＥＲＳＩＯＮ  ＴＥＳＴＩＮＧ  ＭＥＴＨＯＤ  ＡＮＤ  ＤＥＶＩＣＥ（複数ヴァージョンをテストする方法及びデバイス）」とする中国特許出願第２０１３１０１２７５７７．４号の優先権を主張する。該出願は、あらゆる目的のために、参照によって本明細書に組み込まれる。
【０００２】
本出願は、複数ヴァージョンをテストするための方法及びデバイスに関する。
【背景技術】
【０００３】
インターネット上では、製品の開発が絶えず続いている。例えば、Ｔａｏｂａｏ．ｃｏｍにおいて、或る製品の旧ヴァージョンが最適化されると、該最適化されたヴァージョンの製品は、その製品の旧ヴァージョンに対して新ヴァージョンである。ウェブサイトの設計では、より優れたユーザ体験を提供するために、よりいっそう頻繁にウェブサイトのヴァージョンがアップデート又は最適化される。例えば、ウェブサイト上のボタンが赤であるか又は青であるか、ウェブサイト上のモジュールゾーンが水平に配置されるか又は垂直に配置されるか、及び重み付けが異なる複数のアルゴリズム間における選択又は何らかの重要な位置付けの文書の選別などがある。ウェブサイトの新ヴァージョンと旧ヴァージョンとの間の結果の差をテストするための方法は、１つには、新ヴァージョンと旧ヴァージョンとの間でフローを分岐させる（ｄｉｖｅｒｔ）こと、記録を格納すること、結果を解析することを伴う。
【０００４】
複数のヴァージョンをテストすること、すなわち複数ヴァージョンテストは、Ａ／Ｂテストと呼ばれるのが一般的である。通常、Ａは、ウェブサイトの旧ヴァージョンを言い、Ｂは、ウェブサイトの新ヴァージョンを言う。複数ヴァージョンテストは、新しいタイプの製品最適化方法である。別の言い方をすると、ユーザは、旧ヴァージョンの閲覧及び新ヴァージョンの閲覧の２グループに分けられる。旧ヴァージョンユーザは、ウェブサイトの旧ヴァージョンを与えられて見ることになり、新ヴァージョンのユーザは、ウェブサイトの新ヴァージョンを与えられて見ることになる。また、旧ヴァージョンユーザ及び新ヴァージョンユーザの動作が記録される。最終的には、どのヴァージョンのウェブサイトがより優れているかを決定するために、ウェブサイトの新ヴァージョン及び旧ヴァージョンは、旧ヴァージョン及び新ヴァージョンに対するユーザ動作のデータ解析に基づく比較テストを経る。
【０００５】
代表的なＡ／Ｂテストプロセスは、分岐、記録、及びデータ解析の３段階を含む。複数の分岐形態が存在する。一例では、分岐は、ユーザ比にしたがって起きる。すなわち、Ａ／Ｂテストにおいて、分岐は、ユーザ規模にしたがって行われる。もし、Ａ／Ｂテスト期間中にウェブサイトを訪問するユーザの総数が２００，０００であり、分岐比が５０％：５０％であるならば、１００，０００ユーザが新ヴァージョンに配分され、残る１００，０００ユーザが旧ヴァージョンに配分される。別の一例では、分岐は、ユーザリクエスト比にしたがって起きる。すなわち、Ａ／Ｂテストが起きるときに、分岐は、ユーザリクエスト規模にしたがって実行される。Ａ／Ｂテスト期間中にウェブサイトを訪問するユーザの数が２００，０００であるとすると、一人のユーザが幾度かにわたってウェブサイトを訪問しているだろう。各ユーザが７回にわたって訪問し、分岐比が５０％対５０％であると想定すると、７００，０００のリクエストが新ヴァージョンに配分され、残る７００，０００のリクエストが旧ヴァージョンに配分される。明らかに、「ユーザ比にしたがった分岐」と「ユーザリクエスト比にしたがった分岐」との間の主な違いは、「ユーザ比にしたがった分岐」では、どのユーザも、常に同じヴァージョンを使用するという点にある。更に、ユーザ数比は、分岐比に相当するが、ユーザリクエスト数比は、分岐比と異なる。また、「ユーザリクエスト比にしたがった分岐」では、１人のユーザが、異なるヴァージョンのウェブサイトを見ることがある。また、ユーザリクエスト数比と分岐比は、同じである可能性も又は異なる可能性もある。もちろん、Ａ／Ｂテストには、その他の分岐形態も存在する。通常は、「ユーザ比にしたがった分岐」が使用される。なぜならば、「ユーザ比にしたがった分岐」は、「リクエスト比にしたがった分岐」とは異なり、１人のユーザが同じヴァージョンを訪問し続けることを可能にし、これは、より優れたユーザ体験を提供するからである。
【０００６】
しかしながら、調査の過程において、各ユーザの挙動は変化し、ユーザ間の挙動の違いは、従来の複数ヴァージョンテストの結果の信頼性及び妥当性を損なう恐れがある。もし、テスト結果を検証するために、例えば統計に基づく検証などのデータ検証方法が引き続き使用されると、検証のプロセスが桁外れに複雑になる。
【図面の簡単な説明】
【０００７】
以下の詳細な説明及び添付の図面において、本発明の様々な実施形態が開示される。
【０００８】
本出願の実施形態における技術方式をより明確に説明するために、実施形態を説明するために必要とされる図面が以下で簡単に説明される。以下で説明される図面は、本出願の一部の実施形態にすぎないことが明白である。当業者ならば、これらの図面をもとにして、発明の労力を費やすことなくその他の図面を得られるだろう。
【０００９】
【図１】複数ヴァージョンをテストするためのプロセスの一実施形態を示したフローチャートである。
【００１０】
【図２】ユーザの分岐タグ値を取得するためのプロセスの一実施形態を示したフローチャートである。
【００１１】
【図３】ユーザのための分岐タグ値を生成するためのプロセスの一実施形態を示したフローチャートである。
【００１２】
【図４】変換率に基づいて複数ヴァージョンをテストするためのプロセスの別の一実施形態を示したフローチャートである。
【００１３】
【図５】現行製品の旧ヴァージョン及び新ヴァージョンをテストするためのプロセスの一実施形態を示したフローチャートである。
【００１４】
【図６】複数ヴァージョンをテストするためのプロセスの更に別の一実施形態を示したフローチャートである。
【００１５】
【図７】複数ヴァージョンをテストするためのデバイスの一実施形態を示した構造図である。
【００１６】
【図８】取得モジュールの一実施形態を示した構造図である。
【００１７】
【図９】生成モジュールの一実施形態を示した構造図である。
【００１８】
【図１０】テストモジュールを含む、複数ヴァージョンをテストするためのデバイスの一実施形態を示した構造図である。
【００１９】
【図１１】テストモジュールの一実施形態を示した構造図である。
【００２０】
【図１２Ａ】複数ヴァージョンをテストするためのデバイスの更に別の一実施形態を示した構造図である。
【００２１】
【図１２Ｂ】最適化モジュールの一実施形態を示した構造図である。
【００２２】
【図１３】複数ヴァージョンをテストするためのシステムの一実施形態を示した図である。
【００２３】
【図１４】複数ヴァージョンをテストするためのコンピュータシステムの一実施形態を示した機能図である。
【発明を実施するための形態】
【００２４】
本発明は、プロセス、装置、システム、合成物、コンピュータ読み取り可能ストレージ媒体に実装されたコンピュータプログラム製品、並びに／又は結合先のメモリに記憶された命令及び／若しくは結合先のメモリによって提供される命令を実行するように構成されたプロセッサなどのプロセッサのような、数々の形態で実現可能である。本明細書では、これらの実現形態、又は本発明がとりえるその他のあらゆる形態を、技術と称することができる。総じて、開示されるプロセスの各ステップの順番は、本発明の範囲内で変更可能である。別途明記されない限り、タスクを実施するように構成されるものとして説明されるプロセッサ又はメモリなどのコンポーネントは、所定時にタスクを実施するように一時的に構成される汎用コンポーネントとして、又はタスクを実施するように製造された特殊コンポーネントとして実装可能である。本明細書で使用される「プロセッサ」という用語は、コンピュータプログラム命令などのデータを処理するように構成された１つ以上のデバイス、回路、並びに／又は処理コアを言う。
【００２５】
本発明の原理を例示した添付の図面とともに、本発明の１つ以上の実施形態の詳細な説明が以下で提供される。本発明は、このような実施形態との関連のもとで説明されるが、いずれの実施形態にも限定されない。本発明の範囲は、特許請求の範囲によってのみ限定され、本発明は、数々の代替形態、変更形態、及び均等物を包含している。以下の説明では、本発明の完全な理解を与えるために、数々の具体的詳細が明記されている。これらの詳細は、例示を目的として提供されるものであり、本発明は、これらの詳細の一部又は全部を伴わずとも、特許請求の範囲にしたがって実施可能である。明瞭を期するために、本発明に関連した技術分野で知られる技工物は、本発明が不必要に不明瞭にされないように、詳細な説明を省略されている。
【００２６】
複数ヴァージョンをテストするための方法及びデバイスは、以下を含む。すなわち、現行製品を訪問しているユーザの分岐タグ値を取得した後、該分岐タグ値の分岐ハッシュ値を計算し、次いで、現行製品の旧ヴァージョン及び新ヴァージョンの複数ヴァージョンのテストを実施するために、現行製品のための既定の旧ヴァージョン対新ヴァージョン配分比と、分岐ハッシュ値とにしたがって、現行製品の旧ヴァージョン及び新ヴァージョンをユーザに配分する。一部の実施形態では、製品は、ネットワークを通じてウェブサイトサーバによってユーザクライアントに送られるウェブページ情報を含む。一部の実施形態では、分岐ハッシュ値は、各ユーザの分岐タグ値をハッシュ化することによって得られる。分岐ハッシュ値に基づいて複数ヴァージョンをテストするための方法が提供される。
【００２７】
図１は、複数ヴァージョンをテストするためのプロセスの一実施形態を示したフローチャートである。一部の実施形態では、プロセス１００は、図１３のサーバ１３２０によって実行され、以下を含む。
【００２８】
１１０において、サーバは、現行製品を訪問しているユーザの分岐タグ値を取得する。分岐タグ値は、ユーザの一意な識別に相当する。
【００２９】
先ず、サーバは、現行製品を訪問している全ユーザの分岐タグ値を取得する。一部の実施形態では、分岐タグ値は、現行製品を訪問している現ユーザを一意に識別するために使用される。例えば、ユーザＡが、現行製品を訪問するためのリクエストをトリガする。この場合、サーバは、ユーザＡからのアクセスリクエストを受信した後、訪問対象とされる現行製品の旧ヴァージョン又は新ヴァージョンをユーザＡに配分するのではなく、ユーザのＩＰ（インターネットプロトコル）アドレス、ユーザの初回訪問日時、及び乱数に基づいて、分岐タグ値を作成する。したがって、分岐タグ値は、ユーザを一意に識別することができる。
【００３０】
図２は、ユーザの分岐タグ値を取得するためのプロセスの一実施形態を示したフローチャートである。一部の実施形態では、プロセス２００は、図１の操作１１０を実行に移したものであり、以下を含む。
【００３１】
２１０において、サーバは、ユーザのウェブリクエスト内のデータクッキーが分岐タグ値を有するかどうかを判定する。ユーザのウェブリクエスト内のデータ（クッキー）が分岐タグ値を有する場合、制御は２２０に引き渡される。ユーザのウェブリクエスト内のデータ（クッキー）が分岐タグ値を有さない場合、制御は２３０に引き渡される。
【００３２】
一部の実施形態では、サーバは、ユーザからウェブリクエストを受信した場合、先ず、分岐タグ値が存在するかどうかを判定するためにウェブリクエスト内のアクセスデータ（クッキー）を読み出す。分岐タグ値が既に存在する場合、該分岐タグ値の存在は、ユーザが現行製品を初めて訪問するのではないことを示す。この場合、サーバは、分岐タグ値をクッキーから直接抽出する。分岐タグ値が存在しない場合、該分岐タグ値の不在は、ユーザが現行製品を初めて訪問することを示す。この場合、サーバは、分岐タグ値の生成に使用される既定の技術に基づいて、ユーザのための分岐タグ値を生成する。
【００３３】
２２０において、ウェブリクエスト内のユーザのクッキーが分岐タグ値を有する場合、サーバは、分岐タグ値をユーザのクッキーから直接抽出する。
【００３４】
２３０において、ウェブリクエスト内のユーザのクッキーが分岐タグ値を有さない場合、サーバは、分岐タグ値の生成に使用される既定の技術に基づいて、ユーザのための分岐タグ値を生成する。
【００３５】
一部の実施形態では、ユーザのクッキーが分岐タグ値をまだ有さない場合、サーバは、分岐タグ値の生成に使用される既定の技術に基づいて、ユーザを一意に標識する文字列、すなわち分岐タグ値を生成する。
【００３６】
図３は、ユーザのための分岐タグ値を生成するためのプロセスの一実施形態を示したフローチャートである。一部の実施形態では、プロセス３００は、図２の２３０を実行に移したものであり、以下を含む。
【００３７】
３１０において、サーバは、ユーザのＩＰアドレスと、現行製品への初回訪問日時と、乱数とを取得する。
【００３８】
一部の実施形態では、ユーザのための分岐タグ値は、ユーザのＩＰアドレスと、現行製品への初回訪問日時と、乱数とに関係している。一部の実施形態では、実際の状況又は様々なユーザ状況にしたがって、異なる分岐タグ値生成技術が使用される。一部の実施形態では、ユーザのＩＰアドレス及び現行製品への初回訪問日時は、サーバによってクッキーから直接得られ、乱数は、無作為に生成される。例えば、乱数は、Ｊａｖａ（登録商標、以下同じ）言語乱数生成機能に基づいて生成される。
【００３９】
３２０において、サーバは、分岐タグ値を形成するために、ＩＰアドレスと、現行製品への初回訪問日時と、乱数とを結合する。
【００４０】
一部の実施形態では、分岐タグ値を形成するために、得られたＩＰアドレスと、現行製品への初回訪問日時と、乱数とが結合される。例えば、ユーザのＩＰアドレスが１２１．０．２９．１９９であり、製品への初回訪問日時が「１３３５１６３１３５３６１」であり、取得された乱数が３であると想定する。例えば、日時は、Ｊａｖａ言語データ及び日時生成機能に基づいて生成される。その場合、これら３つの数値は、「．」を区切り記号として使用して結合されるだろう。例えば、ユーザの分岐タグ値は、１２１．０．２９．１９９．１３３５１６３１３５３６１．３である。ＩＰアドレスと、現行製品への初回訪問日時と、乱数とを結合することによって、分岐タグ値は、一意で尚且つハッシュ化可能になる。別のい方をすると、分岐タグ値は、ハッシュ化可能にされることによって、無作為に分布される。
【００４１】
図２に戻り、２４０において、サーバは、分岐タグ値をユーザのクッキー内に追加する。
【００４２】
一部の実施形態では、生成された分岐タグ値は、サーバがユーザからのリクエストに応答するときにユーザのクッキー内に書き込まれる。このようにすれば、分岐タグ値は、ユーザが現行製品を次に訪問するときに、ユーザのクッキーから直接得られる。
【００４３】
図１に戻り、１２０において、サーバは、分岐タグ値の分岐ハッシュ値を計算する。
【００４４】
ユーザの分岐タグ値を得た後、サーバは、分岐タグ値に対応する分岐ハッシュ値を得るために、分岐タグ値をハッシュコード値に変換し（ここで、もし、変換して得られたハッシュコード値が負であるならば、該変換して得られたハッシュコード値の絶対値が計算されて、正のハッシュコード値が得られる）、次いで、正のハッシュコード値をハッシュ化する。分岐ハッシュ値は、このユーザが現行製品の旧ヴァージョン又は新ヴァージョンのいずれに進むかを示す。例えば、事前に割り振られた旧ヴァージョン対新ヴァージョンの比が５０％：５０％であると想定する。一部の実施形態では、この比は、Ａ／Ｂテストや、必要性の実証的テストなどに基づいて決定される。この事前に割り振られた比は、ユーザの５０％が旧ヴァージョンを訪問し、ユーザの５０％が新ヴァージョンを訪問することを示す。この場合、分岐ハッシュ値は、０から９９までの数字であってよい。実践では、分岐ハッシュ値の計算は、ユーザのクッキー値を正のハッシュコード値に変換すること、及び次いで、分岐タグ値が０〜９９の分岐ハッシュ値にハッシュ化されるように、正のハッシュコード値を１００で割った余りを使用することを、必然的に伴う。例えば、サーバは、ハッシュコードの絶対値をとり、正のハッシュコード値を１００で割って余りを計算する。一部の実施形態では、分岐タグ値が０〜９の分岐ハッシュ値にハッシュ化されるように、１０を基準にするなどして余りがとられる。この例では、サーバは、ハッシュコードの絶対値をとり、正のハッシュコード値を１０で割った余りをとる。
【００４５】
１３０において、サーバは、現行製品の複数ヴァージョンをテストするために、現行製品のための既定の旧ヴァージョン対新ヴァージョンの配分比と、分岐ハッシュ値とにしたがって、現行製品の旧ヴァージョン又は新ヴァージョンをユーザに配分する。
【００４６】
もし、ユーザが「ユーザ比にしたがった分岐」に基づく複数ヴァージョンテストを受け、現行製品の既定の旧ヴァージョン対新ヴァージョンの配分比が２０％：８０％であるならば、それは、ユーザの２０％が旧ヴァージョンＡに分岐され、ユーザの８０％が新ヴァージョンＢに分岐されることを意味する。実際の用途では、現行製品の旧ヴァージョン対新ヴァージョンの配分比を入力又は表示するためのグラフィックユーザインターフェースが提供されてよい。
【００４７】
実際の用途では、事前に割り振られた旧ヴァージョン対新ヴァージョンの比が２０％：８０％であると想定すると、ユーザＡのためのハッシュ値が１８である場合、ユーザＡは、常に０〜１９の範囲内に入る。したがって、この操作では、現行製品の旧ヴァージョンＡが、ユーザＡに配分されることになる。したがって、ユーザＡは、現行製品を訪問するときは、常に、旧ヴァージョンＡを見ることになる。別の態様では、別のユーザＢのハッシュ値が５９である。したがって、ユーザＢは、２０〜９９の範囲内に入る。したがって、この操作では、現行製品の新ヴァージョンＢが、ユーザＢに配分されることになり、このユーザＢは、現行製品を訪問するときは、常に、新ヴァージョンＢを見ることになる。
【００４８】
なお、旧ヴァージョン対新ヴァージョンの配分比は、多くのやり方で事前に設定可能であることに留意せよ。例えば、配分は、ユーザの数、すなわちどれくらいの割合のユーザが旧ヴァージョンＡに配分され、どれくらいの割合のユーザが新ヴァージョンＢに配分されるかにしたがってなされる。配分比がユーザリクエストの数にしたがって設定される場合、配分比は、現行製品を対象とする特定の数のリクエストのうち、幾つのリクエストが旧ヴァージョンＡに配分され、幾つのリクエストが新ヴァージョンＢに配分されるかを表しているだろう。配分比の決定には、その他のやり方もある。例えば、ユーザは、ビジネスロジックにしたがって、現行製品の正規メンバーが旧ヴァージョンＡを訪問することになる一方で仮ユーザは新ヴァージョンＢを訪問することになるように、分岐される。一部の実施形態では、登録済みのユーザが正規メンバーであり、一時的に訪問しているユーザが仮メンバーである。別の例では、ユーザは、地理的な位置にしたがって、地元ユーザ（地理的に地元の地域内に位置するユーザ）が旧ヴァージョンＡを訪問することになる一方で外部ユーザ（地理的に地元の地域外に位置するユーザ）は新ヴァージョンＢを訪問することになるように、分岐される。ユーザが地元ユーザであるか外部ユーザであるかを判定するために、ユーザのＩＰアドレスが使用される。一部の実施形態では、地元ユーザが新ヴァージョンを訪問する。更に別の例では、ユーザは、ブラックリストやホワイトリストなどにしたがって分岐される。
【００４９】
現行製品の旧ヴァージョン又は新ヴァージョンにユーザが配分された後は、旧ヴァージョンへの訪問におけるユーザ動作対新ヴァージョンへの訪問におけるユーザ動作に基づいて、ユーザが現行製品の旧ヴァージョン及び新ヴァージョンのテストを実施する。例えば、現行製品の複数ヴァージョンのテストは、旧ヴァージョンへの訪問及び新ヴァージョンへの訪問におけるユーザ変換率に基づいて実施される。変換率は、対応する動作を伴う訪問の数を訪問の総数で割ったものに相当する。変換率は、訪問者にとってウェブサイトの内容がどの程度魅力的であるかを測定するために使用される。現行製品の複数ヴァージョンのテストは、現行製品の旧ヴァージョンのウェブページ及び新ヴァージョンのウェブページにおいてユーザがマウスをクリックした回数又はユーザが過ごした時間を監視することによっても実施可能である。現行製品に対する複数ヴァージョンのテストは、現行製品の旧ヴァージョンのウェブページ及び新ヴァージョンのウェブページにおけるユーザの閲覧時間又はその他の情報を記録することによっても実施可能である。
【００５０】
一部の実施形態では、各ユーザの分岐タグ値をハッシュ化することによって、分岐ハッシュ値が得られる。分岐ハッシュ値に基づく便利な複数ヴァージョンテストが提供される。
【００５１】
図４は、変換率に基づいて複数ヴァージョンをテストするためのプロセスの別の一実施形態を示したフローチャートである。一部の実施形態では、プロセス４００は、図１３のサーバ１３２０によって実行に移され、以下を含む。
【００５２】
一部の実施形態では、図１の操作１１０、１２０、及び１３０が、図４の操作４１０、４２０、及び４３０に相当する。
【００５３】
４４０において、現行製品の旧ヴァージョン及びヴァージョンをユーザに配分した後、サーバは、旧ヴァージョン及び新ヴァージョンへの訪問におけるユーザ変換率にそれぞれ基づいて、現行製品の旧ヴァージョン及び新ヴァージョンをテストする。
【００５４】
操作１３０による配分結果に照らし、どのユーザが現行製品の旧ヴァージョンを訪問するか及びどのユーザが現行製品の新ヴァージョンを訪問するかがわかる。旧ヴァージョンを訪問する全ユーザについての変換率及び新ヴァージョンを訪問する全ユーザについての変換率に照らし、現行製品の旧ヴァージョン及び新ヴァージョンをテストすることが可能である。要するに、旧ヴァージョン変換率と新ヴァージョン変換率とを比較することによって、現行製品の旧ヴァージョン及び新ヴァージョンの有効性と商業的価値とが解析される。
【００５５】
図５は、現行製品の旧ヴァージョン及び新ヴァージョンをテストするためのプロセスの一実施形態を示したフローチャートである。一部の実施形態では、プロセス５００は、図４の４４０を実行に移したものであり、以下を含む。
【００５６】
５１０において、サーバは、旧ヴァージョンへの訪問におけるユーザ変換率に基づいて、旧ヴァージョンを訪問している全ユーザの旧ヴァージョン変換率を、及び新ヴァージョンへの訪問におけるユーザ変換率に基づいて、新ヴァージョンを訪問している全ユーザの新ヴァージョン変換率を取得する。
【００５７】
一部の実施形態では、サーバは、現行製品の旧ヴァージョン又は新ヴァージョンへの各ユーザ訪問を記録するので、旧ヴァージョン変換率及び新ヴァージョン変換率は、サーバによって記録されたユーザ訪問情報を通じて取得される。ウェブサイト製品についてのユーザ変換率を計算するために使用される技術は、適切な動作が実施された訪問の回数を訪問の総数で割ったものに相当する。一部の実施形態では、旧ヴァージョン変換率及び新ヴァージョン変換率は、旧ヴァージョンのウェブサイト変換率及び新ヴァージョンのウェブサイト変換率に相当する。ウェブサイト変換率には、多くのタイプがある。一例では、登録ウェブページを伴うウェブサイトのウェブサイト変換率は、登録に成功したユーザの数を登録ウェブページの訪問者の総数で割ったものに相当する。別の一例では、電子商ウェブサイトの詳細な製品情報ページについてのウェブサイト変換率は、詳細な製品情報ページを閲覧した後に購入ボタンをクリックするユーザがどれだけいるかである。発注変換率を取得する一例として、サーバは、特定の製品に関する詳細な情報ページを閲覧するためのユーザリクエストの総数（例えば１，０００のユーザリクエストを想定する）、及び上記多数のユーザリクエストに対応する閲覧総数のうち、どれだけのユーザが注文をリクエストしたか（例えば３５のユーザリクエストを想定する）をカウントする。したがって、注文変換率は、３５／１，０００＝３．５％に相当する。
【００５８】
一部の実施形態では、ウェブサイト変換率は、その他にも多くのタイプの技術を含む。これらのその他のタイプの技術は、当業者によって理解され、簡潔を期するために省略される。
【００５９】
５２０において、サーバは、旧ヴァージョン変換率及び新ヴァージョン変換率にしたがって、旧ヴァージョン及び新ヴァージョンをテストする。
【００６０】
全旧ヴァージョンについての旧ヴァージョン変換率及び全新ヴァージョンについての新ヴァージョン変換率に基づいて、これら２つのヴァージョンの変換率が比較され、旧ヴァージョン及び新ヴァージョンの有効性がテストされる。一部の実施形態では、ヴァージョン変換率が、問題となるヴァージョンの有効性を示す。例えば、新ヴァージョン変換率が旧ヴァージョン変換率よりも高いと想定する。この場合、新ヴァージョンの有効性又は商業的価値は、旧ヴァージョンの有効性又は商業的価値よりも高い。通常は、ユーザ間に個人差があるため、新ヴァージョン変換率が旧ヴァージョン変換率よりも所定の数値だけ高い場合、有効性テストの結果は比較的信頼できる結果になる。数値の例には、３％や５％などがある。もちろん、異なる製品は異なる特性を有するので、経験値もまた異なる。一部の実施形態では、異なる製品は、ユーザ総数、差、製品自体の特性などに基づいて決定される異なる経験値を有する。例えば、経験値は、同じ内容を有する２つのヴァージョンに対してＡ／Ｂテストを実行するなどの何らかの実験に基づいて決定され、２つのヴァージョン間の経験的変換率の差は、２つのヴァージョンの経験値間の差に相当する。有効性テストの結果を信頼できると見なすために、或る製品についての新ヴァージョン変換率が旧ヴァージョン変換率よりもどれくらい高いべきであるかの一例では、当業者は、基本的な評価及び期待を形成するために、製品変換率の増加に関する過去の経験を参照することができる。
【００６１】
比較対象とされるウェブサイト変換率のタイプはもちろん、テストされるウェブサイト製品のタイプも異なる（例えば、登録ページの場合は登録変換率が比較されてよく、詳細な製品情報ページの場合は発注変換率が比較されてよい）ことが理解される。当業者が新ヴァージョン及び旧ヴァージョンの有効性テストを実施するときは、実際の景況又はユーザニーズにしたがって、比較に適したウェブサイト変換率が選択可能である。
【００６２】
実際の用途では、複数ヴァージョンのテスト中に得られるテスト結果は、新ヴァージョン変換率が旧ヴァージョン変換率よりも高いことを必要としない。もし、新ヴァージョンの有効性の増加が、例えば有効性の増加が旧ヴァージョンと比べて約４％であるなどのように大きくないならば、このテスト結果は、個々のサンプルの差によって引き起こされた可能性が高いので、テストの信頼性が確証されたと結論付けられる。このような状況では、ユーザ分岐タグ値は、テスト結果を検証するために最適化することができる。図６は、複数ヴァージョンをテストするためのプロセスの更に別の一実施形態を示したフローチャートである。一部の実施形態では、プロセス６００は、サーバ１３２０によって実行に移され、以下を含む。
【００６３】
６１０において、サーバは、現行製品を訪問しているユーザの分岐タグ値を取得する。一部の実施形態では、分岐タグ値は、対応するユーザを一意に識別する。
【００６４】
一部の実施形態では、分岐タグ値は、図１の操作１１０によって取得される。
【００６５】
６２０において、サーバは、分岐タグ値をハッシュコード値に変換する。
【００６６】
一部の実施形態では、取得された分岐タグ値は、図１の操作１２０で論じられたように、正のハッシュコード値に変換される。
【００６７】
６３０において、サーバは、ハッシュコード値に対応する初期ハッシュ値を計算する。
【００６８】
６４０において、サーバは、分岐ハッシュ値を得るために、初期ハッシュ値に対して分岐最適化技術を実施する。
【００６９】
一部の実施形態では、プロセス１００は、プロセス６００では、最適化された分岐ハッシュ値を得るために初期ハッシュ値が分岐最適化技術を経るという点で、プロセス６００と異なる。
【００７０】
分岐最適化技術には、少なくとも４つの手法がある。第１の手法は、既定のシフト幅にしたがって初期ハッシュ値をシフトさせた後に、シフトされた分岐ハッシュ値を得ることを含む。
【００７１】
このような最適化の手法が適用されるときは、得られた初期ハッシュ値は、旧ヴァージョンに及び新ヴァージョンに配分されるユーザ範囲を変更する目的を達成するために、既定のシフト幅にしたがってシフトされることになる。例えば、既定の新ヴァージョン対旧ヴァージョン配分比が２０：８０であり、既定のシフト幅が５０である。サーバは、既定の配分比にしたがってユーザの２０％を新ヴァージョンへ分岐させるが、追加される既定のシフト幅は、５０である。したがって、実際の状況は、以下のようになる。すなわち、ユーザＡの初期ハッシュ値が１８に設定されたままシフトされない場合、このユーザには新ヴァージョンが配分されることになる。しかしながら、初期ハッシュ値が既定のシフト幅だけシフトされた後は、初期ハッシュ値は６８になり、このユーザには旧ヴァージョンが配分されることになる。別の例では、ユーザＢの初期ハッシュ値が、５９に設定される。ユーザＢの初期ハッシュ値に対してシフトが実施されない場合、このユーザには旧ヴァージョンが配分される。しかしながら、第１の最適化手法が利用され、ユーザＢの初期ハッシュ値が５０だけシフトされた場合、結果は１０９になる。要するに、分岐ハッシュ値は、９に設定される。したがって、最適化が起きるときは、このユーザには新ヴァージョンが配分されることになる。
【００７２】
もちろん、実際の用途では、実際の状況、ユーザニーズ、又は新旧ヴァージョン配分比にしたがって、シフト幅の数値を設定することが可能である。通常、先のテスト結果の信頼性が検討に値する場合は、第１の最適化手法の採用は、複数ヴァージョンテストの無作為性を保証し、新ヴァージョンのテストに比較的新しいユーザ群を採用することを可能にすることができる。第１の最適化手法は、こうして、複数ヴァージョンのテストが個人差に影響されるかどうかを検証することができる。シフト係数に基づくテスト結果が前と同じ有効性を有する場合、信頼性は高められている。シフト係数に基づくテスト結果が前と同じ有効性を有さない場合、複数ヴァージョンをテストした先の結果は正確ではない。個人差は、テスト結果を不正確にする恐れがあるので、テスト結果は、より正確になるように調整されるべきである。一部の実施形態では、幾度かのシフトが実施され、シフトの幅は臨機応変に割り当てられる。
【００７３】
第２の手法では、サーバは、反転された分岐ハッシュ値を得るために、既定の反転ルールにしたがって初期ハッシュ値を反転させる。
【００７４】
第２の手法は、初期ハッシュ値を最適化するために反転を使用する。第２の手法は、通常は、旧ヴァージョン及び新ヴァージョンが１つずつ存在する状況に適している。例えば、分岐タグ値が旧ヴァージョン範囲内に入る全てのユーザが、新ヴァージョンに配分され、分岐タグ値が新ヴァージョン範囲内に入る全てのユーザが、旧ヴァージョンに配分される。したがって、旧ヴァージョンのユーザ範囲と新ヴァージョンのユーザ範囲とを切り替えることが可能である。判定による最適化がなされた後のテスト結果が、新ヴァージョンが旧ヴァージョンよりも優れているままである場合、一般的に、最適化プロセスが有効であったと結論付けることが可能である。反転による最適化は、シフトによる最適化の一例である。通常は、第２の手法は、新旧２つのヴァージョンのみが存在し、複数ヴァージョンのテストの検証が迅速に実施されるべきであるときに使用される。反転による最適化の手法は、全製品ユーザに影響を及ぼすので、この第２の手法は、特定の条件に基づく適切な選択肢である。
【００７５】
第３の手法では、サーバは、乗算された分岐ハッシュ値を得るために、既定の乗数で初期ハッシュ値を乗算する。
【００７６】
第３の手法は、既定の乗数で初期ハッシュ値を乗算し、乗算された分岐ハッシュ値を得て、該乗算された分岐ハッシュ値を最終の分岐ハッシュ値であると見なす。例えば、全ての初期ハッシュ値が、数値「３」で乗算される。旧ヴァージョン又は新ヴァージョンに配分されるユーザは、初期ハッシュ値を最終分岐ハッシュ値に変更することによって変えることができる。留意すべきは、既定の乗数の数値が、実際の条件にしたがって調整可能であることである。既定の乗数の数値は、指定の数とされる。通常、第３の手法は、同じ製品に対して並列に実施される複数の複数ヴァージョンテストの分岐からの相互干渉を防ぐために使用される。
【００７７】
第４の手法では、サーバは、ハッシュ化された分岐ハッシュ値を得るために、既定の時間パラメータにしたがって初期ハッシュ値をハッシュ化する。
【００７８】
初期ハッシュ値を最適化する第４の手法は、既定の時間パラメータにしたがって初期ハッシュ値をハッシュ化し、ハッシュ化された分岐ハッシュ値を得ることを含む。一部の実施形態では、既定の時間パラメータは、数値である。既定の時間パラメータは、乗数がひとたび設定されたら常に同じ数である第３の手法とは異なる。一態様として、時間パラメータが現在の日付として事前に設定される場合、異なる日付で実施される複数ヴァージョンテストにおいて初期ハッシュ値が乗算される数は、現在の日付である。現在の日付は、可変とされる。この例では、第４の手法は、時間パラメータ、すなわち現在の日付を乗数として使用する。時間パラメータは、毎日変わるので、乗数は、固定値から変動値に変わる。第４の手法は、ウェブサイト製品がユーザグループ動作によってどのように影響されるかの変動を解析する。時間パラメータは、最適化の単位が「日付」であることに限定されない。一部の実施形態では、時間パラメータは、最適化を実施するための「時間」又は「週」などの単位に相当する。例えば、もし、時間パラメータとして「時間」が使用されるならば、異なる時間における初期ハッシュ値に、その時間を表す数が乗算される。別の一例では、「週」が使用される場合、異なる週における初期ハッシュ値に、週を表す数が乗算される。
【００７９】
なお、最適化プロセスでは、上記４つの手法のいずれかが選択されてよいことに留意せよ。最適化を実施した後、旧ヴァージョン及び新ヴァージョンのテストの結果の信頼性が依然として高くない場合、シフト幅、乗数、時間パラメータなどに基づいて、その他の最適化手法を実施することが可能である。
【００８０】
一部の実施形態では、図６の操作６２０〜６４０は、図１の操作１２０を実行に移したものである。
【００８１】
６５０において、サーバは、現行製品の既定の旧ヴァージョン対新ヴァージョン配分比と、分岐ハッシュ値とに基づいて、現行製品の旧ヴァージョン及び新ヴァージョンをユーザに配分する。
【００８２】
６６０において、サーバは、現行製品の旧ヴァージョン及び新ヴァージョンを、旧ヴァージョン及び新ヴァージョンへの訪問におけるユーザ変換率にそれぞれしたがってテストする。
【００８３】
一部の実施形態では、サーバは、分岐ハッシュ値を得るために、全ユーザの分岐タグ値をハッシュ化し、その結果、元は旧ヴァージョンに配分されていたであろうユーザが、ハッシュ値の変化ゆえに新ヴァージョンに配分され、元は新ヴァージョンに配分されていたであろうユーザが、ハッシュ値の変化ゆえに旧ヴァージョンに配分される。このようにして、テスト結果に対してユーザ間の挙動の差が及ぼす影響を軽減し、複数ヴァージョンのテストの信頼性及び妥当性を検証することが可能である。
【００８４】
実際の用途では、複数ヴァージョンをテストするためのプロセスにおける１つのユーザリクエストが、複数の異なるテスト内容を伴うことがある。例えば、複数ヴァージョンをテストするためのプロセスは、複数ヴァージョンをテストするための或るプロセスを入力し、次いで、複数ヴァージョンをテストするための別のプロセスを入力する。ここでは、時間を削減するために並列テスト手法が用いられる。例えば、或るウェブサイト製品に対し、複数ヴァージョンをテストするための２つの並列プロセスが同時に実施され、用いられる手法の１つが「ユーザ比にしたがった分岐」であると想定する。したがって、一度のユーザ訪問の場合に、そのユーザは、複数ヴァージョンをテストするための１つのプロセスを入力し（旧ヴァージョンがｓｅｌｌｐｏｐＡであり、新ヴァージョンがｓｅｌｌｐｏｐＢであると想定する）、その後すぐに、複数ヴァージョンをテストするための別のプロセスを入力する。
【００８５】
したがって、ウェブサイトを訪問するユーザについて、それらのユーザが、先ず、５０％のユーザがｓｅｌｌｐｏｐＡを訪問するように配分され残りの５０％のユーザがｓｅｌｌｐｏｐＢを訪問するように配分されるｓｅｌｌｐｏｐテストを経ると想定する。要するに、ｓｅｌｌｐｏｐＡ対ｓｅｌｌｐｏｐＢの比が、５０％：５０％である。ｓｅｌｌｐｏｐＢのユーザ群は、次いで、ｐｏｐｐ４ｐに関する第２の複数ヴァージョンテストプロセスを経る。これらのｓｅｌｌｐｏｐＢユーザの２０％がｐｏｐｐ４ｐＡを訪問するように配分され、ｓｅｌｌｐｏｐＢユーザの別の２０％がｐｏｐｐ４ｐＢを訪問するように配分され、ｓｅｌｌｐｏｐＢユーザの残りの６０％がｐｏｐｐ４ｐＣを訪問するように配分される。要するに、ｐｏｐｐ４ｐＡ：ｐｏｐｐ４ｐＢ：ｐｏｐｐ４ｐＣの比は、２０％：２０％：６０％である。実際の操作では、実際のｓｅｌｌｐｏｐテストユーザの配分比が既定の配分比に関係付けられるのに対し、ｐｏｐｐ４ｐテスト用の実際のユーザ配分比は変則的である。実際は、ｐｏｐｐ４ｐＡ及びｐｏｐｐ４ｐＢを訪問するユーザはおらず、ユーザの２０％という各ウェブサイトにおける期待に見合わない。これは、実践では、複数ヴァージョンをテストするための並列プロセスによって、分岐フローの相互干渉が生じることを示している。２つのテスト間における干渉を説明すると、ｓｅｌｌｐｏｐのテストが存在し、ｓｅｌｌｐｏｐテストとｐｏｐｐ４ｐテストとが依存関係にあるゆえに、ｓｅｌｌｐｏｐＢユーザのみがｐｏｐｐ４ｐテストに入り、期待される数のユーザ訪問をｐｏｐｐ４ｐテストが得られなくなる。
【００８６】
以下の例は、最適化プロセスが並列テストにおける分岐フローの相互干渉をどのように回避するかを示している。
【００８７】
上記の例におけるユーザ分岐フローの異常の理由を解析すると、上記の例においてウェブサイト製品に入るユーザは、先ず、ｓｅｌｌｐｏｐテストを経る。ウェブサイト製品に入るユーザの５０％がｓｅｌｌｐｏｐＡを訪問するように分岐され、ウェブサイト製品に入るユーザの残る５０％がｓｅｌｌｐｏｐＢを訪問するように分岐される。次に、ｓｅｌｌｐｏｐＢへ分岐されたユーザは、次いで、ｐｏｐｐ４ｐテストを経て、それらのユーザの２０％がｐｏｐｐ４ｐＡを訪問するように分岐され、２０％がｐｏｐｐ４ｐＢを訪問するように分岐され、残る６０％がｐｏｐｐ４ｐＣを訪問するように分岐される。ｓｅｌｌｐｏｐ及びｐｏｐｐ４ｐの複数ヴァージョンテストは、同じ期間中に実施されるので、ウェブサイト製品を訪問するためのユーザリクエストは、先ず、ｓｅｌｌｐｏｐテストを経て、次いで、ｐｏｐｐ４ｐテストを経る。
【００８８】
次に、ユーザＡが分岐ハッシュ値２５を有し、０〜５０の範囲内に属すると想定される。したがって、ユーザＡは、ｓｅｌｌｐｏｐテストでは、ｓｅｌｌｐｏｐＡを訪問するように割り当てられる。要するに、ユーザＡは、第２の複数ヴァージョン（ｐｏｐｐ４ｐ）テストプロセスに入らない。ユーザＢが分岐ハッシュ値６９を有し、５０〜９９の範囲内に属する場合、このユーザは、ｓｅｌｌｐｏｐテストでは、ｓｅｌｌｐｏｐＢを訪問するように割り当てられる。続いて、複数ヴァージョンのｐｏｐｐ４ｐをテストする第２のプロセスに入るときに、ユーザＢは、ｐｏｐｐ４ｐＣを訪問するように割り当てられる。結果は、ｐｏｐｐ４ｐテストに入ることができるためには、ユーザのハッシュ値は、５０〜９９の範囲内になければならない。別の言い方をすると、ユーザのハッシュ値は、０〜１９の範囲内又は２０〜３９の範囲内に属していない。その結果、ｐｏｐｐ４ｐＡヴァージョン又はｐｏｐｐ４ｐＢヴァージョンを訪問する機会はない。
【００８９】
ｐｏｐｐ４ｐの複数ヴァージョンをテストする第２のプロセスに一続きで入るときに、第３の手法を使用して最適化が実施される。既定の乗数が１５であると想定する。したがって、新ヴァージョン対旧ヴァージョンの比は依然として２０：８０であるが、ユーザ分岐タグ値は全て既定の乗数１５で乗算される。このような状況で、ユーザ分岐タグ値の分岐ハッシュ値が５０〜９９の範囲内にあり、初期分岐タグ値が１９６（分岐ハッシュ値は６９であり、これは、５０〜９９の範囲内である）であると想定する。既定の乗数で乗算された分岐タグ値は、１６９×１５＝２，５３５である。分岐ハッシュ値は、次いで、１００で割った余りを計算することによって算出される。計算結果は３５である。したがって、対応するユーザがｐｏｐｐ４ｐテストに入るときに、ユーザの分岐ハッシュ値は２０〜３９の範囲内にあり、ユーザは、ｐｏｐｐ４ｐＢを訪問するように割り当てられる。
【００９０】
ユーザの初期分岐タグ値が、例えば１６９、１８２、１９１、及び１９９などの、その他の数値であると想定する。最適化された分岐ハッシュ値と、それらの対応関係とが、表１に示されている。
【表１】
2016522475.tif 000003
【００９１】
表１に示されるように、最適化されていない元の分岐ハッシュ値は、５０〜９９の範囲内にある。最適化後、分岐ハッシュ値は、０〜９９の範囲内にある。したがって、ｐｏｐｐ４ｐＡ及びｐｏｐｐ４ｐＢの両方が、ユーザによって訪問可能である。要するに、並列の複数ヴァージョンテストにおいて生じる分岐フローの相互干渉が回避される。
【００９２】
分岐ハッシュ値を得るために全ユーザ分岐タグ値の初期ハッシュを最適化することによって、元は旧ヴァージョンに配分されていたであろうユーザがハッシュ値の変化ゆえに新ヴァージョンに配分されること、及び元は新ヴァージョンに配分されていたであろうユーザがハッシュ値の変化ゆえに旧ヴァージョンに配分されることが可能になる。したがって、従来のプロセスと比較すると、複数ヴァージョンをテストするためのプロセスは、妥当性及び精度が増している。複数ヴァージョンをテストするためのプロセスは、効果的な検証方法を提供し、複数ヴァージョンをテストするための複数のプロセスが並列に行われているときに生じる分岐フローの相互干渉を軽減する。
【００９３】
図７は、複数ヴァージョンをテストするためのデバイスの一実施形態を示した構造図である。一部の実施形態では、デバイス７００は、プロセス１００を実行に移し、取得モジュール７１０と、計算モジュール７２０と、配分モジュール７３０とを含む。
【００９４】
取得モジュール７１０は、現行製品を訪問しているユーザの分岐タグ値を取得する。一部の実施形態では、分岐タグ値は、対応するユーザを一意に識別する。
【００９５】
図８は、取得モジュールの一実施形態を示した構造図である。一部の実施形態では、モジュール８００は、図７の取得モジュール７１０を実現したものであり、評価モジュール８１０と、抽出モジュール８２０と、生成モジュール８３０と、追加モジュール８４０とを含む。
【００９６】
評価モジュール８１０は、ユーザアクセスデータクッキーが分岐タグ値を有しているかどうかを判定する。
【００９７】
抽出モジュール８２０は、評価モジュール８１０がユーザアクセスデータクッキーが分岐タグ値を有していると判定した場合に、ユーザアクセスデータクッキーから分岐タグ値を直接抽出する。
【００９８】
生成モジュール８３０は、評価モジュール８１０がユーザアクセスデータクッキーが分岐タグ値を有していないと判定した場合に、既定の分岐タグ値生成技術にしたがってユーザのための分岐タグ値を生成する。
【００９９】
追加モジュール８４０は、分岐タグ値をユーザアクセスデータクッキーに追加する。
【０１００】
図９は、生成モジュールの一実施形態を示した構造図である。一部の実施形態では、モジュール９００は、図８の生成モジュール８３０を実現したものであり、パラメータ取得モジュール９１０と、結合モジュール９２０とを含む。
【０１０１】
パラメータ取得モジュール９１０は、ユーザのＩＰアドレスと、現行製品への初回訪問日時と、乱数とを取得する。
【０１０２】
結合モジュール９２０は、分岐タグ値を形成するために、ユーザのＩＰアドレスと、現行製品への初回訪問日時と、乱数とを結合する。
【０１０３】
図７に戻り、計算モジュール７２０は、分岐タグ値の分岐ハッシュ値を計算する。
【０１０４】
配分モジュール７３０は、現行製品の複数ヴァージョンをテストするために、現行製品のための既定の旧ヴァージョン対新ヴァージョン配分比と、分岐ハッシュ値とにしたがって、現行製品の旧ヴァージョン又は新ヴァージョンをユーザに配分する。
【０１０５】
一部の実施形態では、計算モジュール７２０は、更に、全ユーザの分岐タグ値をハッシュ化することによって、分岐ハッシュ値を得る。デバイス７００は、クッキー及びハッシュ値に基づいて、便利に実現可能であり、このようにして、分岐ハッシュ値に基づいて複数ヴァージョンをテストするための便利なプロセスが提供される。
【０１０６】
図１０は、テストモジュールを含む、複数ヴァージョンをテストするためのデバイスの一実施形態を示した構造図である。一部の実施形態では、デバイス１０００は、図４のプロセス４００を実行し、取得モジュール１０１０と、計算モジュール１０２０と、配分モジュール１０３０と、テストモジュール１０４０とを含む。
【０１０７】
一部の実施形態では、取得モジュール１０１０、計算モジュール１０２０、及び配分モジュール１０３０は、図７の取得モジュール７１０、計算モジュール７２０、及び配分モジュール７３０にそれぞれ相当する。
【０１０８】
テストモジュール１０４０は、現行製品の旧ヴァージョン及び新ヴァージョンを、旧ヴァージョン及び新ヴァージョンへの訪問におけるユーザ変換率にそれぞれしたがってテストする。
【０１０９】
図１１は、テストモジュールの一実施形態を示した構造図である。一部の実施形態では、テストモジュール１１００は、図１０のテストモジュール１０４０を実現したものであり、変換率取得モジュール１１１０と、第２のテストモジュール１０２０とを含む。
【０１１０】
変換率取得モジュール１１１０は、旧ヴァージョンを訪問している全ユーザの旧ヴァージョン変換率及び新ヴァージョンを訪問している全ユーザの新ヴァージョン変換率を取得する。
【０１１１】
第２のテストモジュール１１２０は、旧ヴァージョン変換率及び新ヴァージョン変換率にそれぞれしたがって、旧ヴァージョン及び新ヴァージョンに関するテストを実施する。
【０１１２】
図１２Ａは、複数ヴァージョンをテストするためのデバイスの更に別の一実施形態を示した構造図である。一部の実施形態では、デバイス１２００は、プロセス６００を実行し、取得モジュール１２０５と、変換モジュール１２１０と、計算モジュール１２２０と、最適化モジュール１２３０と、配分モジュール１２４０と、テストモジュール１２５０とを含む。
【０１１３】
一部の実施形態では、取得モジュール１２０５は、図７の取得モジュール７１０に相当し、現行製品を訪問しているユーザの分岐タグ値を取得する。一部の実施形態では分岐タグ値は、対応するユーザを一意に識別する。
【０１１４】
変換モジュール１２１０は、分岐タグ値をハッシュコード値に変換する。
【０１１５】
計算モジュール１２２０は、ハッシュコード値に対応する初期ハッシュ値を計算する。
【０１１６】
最適化モジュール１２３０は、分岐ハッシュ値を得るために、初期ハッシュ値に対して分岐最適化技術を実施する。
【０１１７】
図１２Ｂは、最適化モジュールの一実施形態を示した構造図である。一部の実施形態では、最適化モジュール１２３０は、シフトモジュール１２３１０、反転モジュール１２３２０、乗算モジュール１２３３０、又はハッシュ化モジュール１２３４０のうちの、１つ以上を含む。
【０１１８】
シフトモジュール１２３１０は、シフトされた分岐ハッシュ値を得るために、既定のシフト幅にしたがって初期ハッシュ値をシフトさせる。
【０１１９】
反転モジュール１２３２０は、反転された分岐ハッシュ値を得るために、既定の反転ルールにしたがって初期ハッシュ値を反転させる。
【０１２０】
乗算モジュール１２３３０は、乗算された分岐ハッシュ値を得るために、既定の乗数で初期ハッシュ値を乗算する。
【０１２１】
ハッシュ化モジュール１２３４０は、ハッシュ化された分岐ハッシュ値を得るために、既定の時間パラメータにしたがって初期ハッシュ値をハッシュ化する。
【０１２２】
一部の実施形態では、配分モジュール１２４０は、図７の配分モジュール７３０に相当し、現行製品のための既定の旧ヴァージョン対新ヴァージョン配分比と、分岐ハッシュ値とにしたがって、現行製品の旧ヴァージョン及び新ヴァージョンをユーザに配分する。
【０１２３】
一部の実施形態では、テストモジュール１２５０は、図１０のテストモジュール１０４０に相当し、旧ヴァージョン及び新ヴァージョンへの訪問におけるユーザ変換率にそれぞれしたがって、現行製品の旧ヴァージョン及び新ヴァージョンをテストする。
【０１２４】
一部の実施形態では、全ユーザの分岐タグ値の初期ハッシュ値を最適化することによって分岐ハッシュ値が得られ、その結果、元は旧ヴァージョンに配分されていたであろうユーザがハッシュ値の変化ゆえに新ヴァージョンに配分され、元は新ヴァージョンに配分されていたであろうユーザがハッシュ値の変化ゆえに旧ヴァージョンに配分される。このようにして、テスト結果に対してユーザ間の挙動の差が及ぼす影響が軽減され、複数ヴァージョンのテストの信頼性及び妥当性の検証が可能である。
【０１２５】
図１３は、複数ヴァージョンをテストするためのシステムの一実施形態を示した図である。一部の実施形態では、システム１３００は、ネットワーク１３３０を通じてサーバ１３２０に接続されたクライアント１３１０を含む。
【０１２６】
クライアント１３１０を使用しているユーザは、対応する分岐タグ値を、現行製品を訪問しているサーバ１３２０にネットワーク１３３０を通じて送信する。ウェブページの複数ヴァージョンのテストは、受信された分岐タグ値に基づいて実施される。
【０１２７】
図１４は、複数ヴァージョンをテストするためのコンピュータシステムの一実施形態を示した機能図である。明らかなように、複数ヴァージョンのテストには、その他のコンピュータシステムアーキテクチャ及び設定が使用可能である。後述のような様々なサブシステムを含むコンピュータシステム１４００は、少なくとも１つのマイクロプロセッササブシステム（プロセッサ又は中央演算処理装置（ＣＰＵ）とも呼ばれる）１４０２を含む。例えば、プロセッサ１４０２は、シングルチッププロセッサによって又は複数のプロセッサによって実現可能である。一部の実施形態では、プロセッサ１４０２は、コンピュータシステム１４００の動作を制御する汎用デジタルプロセッサである。メモリ１４１０から取り出された命令を使用して、プロセッサ１４０２は、入力データの受信及び操作と、出力デバイス（例えばディスプレイ１４１８）へのデータの出力及び表示とを制御する。
【０１２８】
プロセッサ１４０２は、メモリ１４１０に双方向に結合され、該メモリ１４１０は、通常はランダムアクセスメモリ（ＲＡＭ）である第１の一次ストレージと、通常は読み出し専用メモリ（ＲＯＭ）である第２の一次ストレージとを含むことができる。当該分野で周知のように、一次ストレージは、通常のストレージエリアとして及びスクラッチパッドメモリとして使用可能であり、入力データ及び処理済みデータを格納するためにも使用可能である。一次ストレージは、プログラミング命令及びデータを、プロセッサ１４０２で動作するプロセスのためのその他のデータ及び命令に加えて、データオブジェクト及びテキストオブジェクトの形態で格納することもできる。当該分野で周知のように、一次ストレージは、通常は、プロセッサ１４０２がその機能（例えばプログラム命令）を実施するために使用する基本的な動作命令、プログラムコード、データ、及びオブジェクトを含む。例えば、メモリ１４１０は、例えば、データアクセスが双方向又は単方向のいずれである必要があるかに応じ、後述の、任意の適切なコンピュータ読み取り可能ストレージ媒体を含むことができる。例えば、プロセッサ１４０２は、頻繁に必要とされるデータの取り出し及び格納を、直接に且つ非常に迅速にキャッシュメモリ（不図示）で行うことができる。
【０１２９】
着脱式の大容量ストレージデバイス１４１２は、コンピュータシステム１４００のための追加のデータストレージ容量を提供し、双方向（読み出し／書き込み）に又は単方向（読み出しのみ）にプロセッサ１４０２に結合される。例えば、ストレージ１４１２は、磁気テープ、フラッシュメモリ、ＰＣカード、携帯用大容量ストレージデバイス、ホログラフィックストレージデバイス、及びその他のストレージデバイスを含むこともできる。固定の大容量ストレージ１４２０も、例えば、追加のデータストレージ容量を提供することができる。大容量ストレージ１４２０として最も一般的な例は、ハードディスクドライブである。大容量ストレージ１４１２、１４２０は、一般に、プロセッサ１４０２が通常は能動的に使用していない追加のプログラミング言語やデータなどを格納する。大容量ストレージ１４１２、１４２０内に保持される情報は、もし必要であれば、メモリ１４１０（例えばＲＡＭ）の一部に仮想メモリとして標準的に組み込まれてもよいことがわかる。
【０１３０】
バス１４１４は、ストレージサブシステムへのアクセスに加えてその他のサブシステム及びデバイスへのアクセスもプロセッサ１４０２に提供するためにも使用可能である。図に示されるように、これらには、ディスプレイモニタ１４１８、ネットワークインターフェース１４１６、キーボード１４０４、及びポインティングデバイス１４０６はもちろん、必要に応じ、補助入出力デバイスインターフェース、サウンドカード、スピーカ、及びその他のサブシステムがある。例えば、ポインティングデバイス１４０６は、マウス、スタイラス、トラックボール、又はタブレットであってよく、グラフィカルユーザインターフェースとやり取りするのに有用である。
【０１３１】
ネットワークインターフェース１４１６は、図に示されるようなネットワーク接続を使用してプロセッサ１４０２が別のコンピュータ、コンピュータネットワーク、又は電気通信ネットワークに結合されることを可能にする。例えば、ネットワークインターフェース１４１６を通じて、プロセッサ１４０２は、方法／プロセスのステップを実施する過程において、別のネットワークから情報（例えばデータオブジェクト若しくはプログラム命令）を取り出す又は別のネットワークに情報を出力することができる。情報は、多くの場合、プロセッサで実行される一連の命令として表され、別のネットワークから取り出される又は別のネットワークに出力されることが可能である。コンピュータシステム１４００を外部ネットワークに接続するために、及び標準プロトコルにしたがってデータを転送するために、インターフェースカード又は類似のデバイスと、プロセッサ１４０２によって実装される（例えばプロセッサ１４０２で実行される／実施される）適切なソフトウェアとが使用可能である。例えば、本明細書で開示される様々なプロセス実施形態は、プロセッサ１４０２で実行可能である、又は処理の一部を共有するリモートプロセッサと協働してインターネット、イントラネットネットワーク、若しくはローカルエリアネットワークなどのネットワークで実施可能である。プロセッサ１４０２には、また、ネットワークインターフェース１４１６を通じて追加の大容量ストレージデバイス（不図示）が接続可能である。
【０１３２】
コンピュータシステム１４００と協働して、補助的な入出力デバイスインターフェース（不図示）が使用可能である。補助的な入出力デバイスインターフェースは、プロセッサ１４０２が、マイク、タッチセンサ式ディスプレイ、トランスデューサカードリーダ、テープリーダ、音声又は手書き文字認識装置、生体認証リーダ、カメラ、携帯用の大容量ストレージデバイス、及びその他のコンピュータなどの、その他のデバイスにデータを送信すること、又はより一般的にはこれらのその他のデバイスからデータを取り出すことを可能にする、汎用又は専用のインターフェースを含むことができる。
【０１３３】
図１４に示されたコンピュータシステムは、本明細書で開示される様々な実施形態との使用に適したコンピュータシステムの一例に過ぎない。このような使用に適したその他のコンピュータシステムは、更に多い又は更に少ないサブシステムを含むこともできる。また、バス１４１４は、サブシステムをつなぐ働きをするあらゆる相互接続方式を例示したものである。異なる構成のサブシステムを有するその他のコンピュータアーキテクチャも利用可能である。
【０１３４】
上述されたユニットは、１つ以上の汎用プロセッサ上で実行されるソフトウェアコンポーネントとして、又はプログラマブルロジックデバイス及び／若しくは特定の機能を実施するように設計された特殊用途向け集積回路などのハードウェアとして、又はそれらの組み合わせとして実装可能である。一部の実施形態では、ユニットは、本発明の実施形態で説明される方法を（パソコン、サーバ、ネットワーク機器などの）計算装置に実行させるための幾つかの命令を含み尚且つ（光ディスク、フラッシュストレージデバイス、モバイルハードディスクなどの）不揮発性のストレージ媒体に記憶させることができるソフトウェア製品の形で具現化可能である。ユニットは、１つのデバイス上に実装されてよい、又は複数のデバイスに分散されてよい。ユニットの機能は、互いに統合されてよい、又は複数のサブユニットに更に分けられてよい。
【０１３５】
本明細書で開示された実施形態に照らして説明される方法又はアルゴリズム的ステップは、ハードウェア、プロセッサによって実行されるソフトウェアモジュール、又はこれら両方の組み合わせを使用して実現可能である。ソフトウェアモジュールは、ランダムアクセスメモリ（ＲＡＭ）、メモリ、読み出し専用メモリ（ＲＯＭ）、電気的にプログラム可能なＲＯＭ、電気的に消去可能でプログラム可能なＲＯＭ、レジスタ、ハードドライブ、着脱式ディスク、ＣＤ−ＲＯＭ、又は当該技術分野で知られるその他の任意の形態のストレージ媒体にインストール可能である。
【０１３６】
以上の実施形態は、理解を明瞭にする目的で幾らか詳細に説明されてきたが、本発明は、提供された詳細に限定されない。本発明を実現するには、多くの代替的手法がある。開示された実施形態は、例示的であり、限定的ではない。
【図１】
2016522475.tif 000004
【図２】
2016522475.tif 000005
【図３】
2016522475.tif 000006
【図４】
2016522475.tif 000007
【図５】
2016522475.tif 000008
【図６】
2016522475.tif 000009
【図７】
2016522475.tif 000010
【図８】
2016522475.tif 000011
【図９】
2016522475.tif 000012
【図１０】
2016522475.tif 000013
【図１１】
2016522475.tif 000014
【図１２Ａ】
2016522475.tif 000015
【図１２Ｂ】
2016522475.tif 000016
【図１３】
2016522475.tif 000017
【図１４】
2016522475.tif 000018
【手続補正書】
【提出日】平成27年11月10日(2015.11.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数ヴァージョンをテストするための方法であって、
現行製品を訪問しているユーザの分岐タグ値を取得することであって、前記分岐タグ値は、対応するユーザを一意に識別する、ことと、
前記分岐タグ値の分岐ハッシュ値を計算することと、
前記現行製品の複数ヴァージョンをテストするために、前記現行製品のための既定の旧ヴァージョン対新ヴァージョン配分比と、前記分岐ハッシュ値とにしたがって、前記現行製品の旧ヴァージョン又は新ヴァージョンをユーザに配分することと、
を備える方法。
【請求項２】
請求項１に記載の方法であって、
前記現行製品を訪問しているユーザの分岐タグ値を取得することは、
ユーザのウェブリクエスト内のクッキーが分岐タグ値を有するかどうかを判定することと、
前記ユーザの前記ウェブリクエスト内の前記クッキーが前記分岐タグ値を有する場合に、前記ユーザのクッキーから前記分岐タグ値を抽出することと、
前記ユーザの前記ウェブリクエスト内の前記クッキーが前記分岐タグ値を有さない場合に、
既定の分岐タグ値生成ステラテジーに基づいて、前記ユーザのための分岐タグ値を生成することと、
前記分岐タグ値を前記ユーザのクッキーに追加することと、
を行うことと、
を含む、方法。
【請求項３】
請求項２に記載の方法であって、
前記ユーザのための分岐タグ値を生成することは、
前記ユーザのインターネットプロトコル（ＩＰ）アドレス、前記現行製品への初回訪問日時、及び乱数を取得することと、
前記分岐タグ値を形成するために、前記ユーザのＩＰアドレスと、前記現行製品への初回訪問日時と、前記乱数とを結合することと、
を含む、方法。
【請求項４】
請求項１に記載の方法であって、
前記分岐タグ値の分岐ハッシュ値を計算することは、
前記分岐タグ値をハッシュコード値に変換することと、
前記ハッシュコード値に対応する初期ハッシュ値を計算することと、
前記分岐ハッシュ値を得るために、前記初期ハッシュ値に対して分岐最適化技術を実施することと、
を含む、方法。
【請求項５】
請求項４に記載の方法であって、
前記分岐ハッシュ値を得るために、前記初期ハッシュ値に対して分岐最適化技術を実施することは、
前記分岐ハッシュ値を得るために、既定のシフト幅にしたがって前記初期ハッシュ値をシフトさせる操作、
前記分岐ハッシュ値を得るために、既定の反転ルールにしたがって前記初期ハッシュ値を反転させる操作、
前記分岐ハッシュ値を得るために、既定の乗数で前記初期ハッシュ値を乗算する操作、又は
前記分岐ハッシュ値を得るために、既定の時間パラメータにしたがって前記初期ハッシュ値をハッシュ化する操作
のうちの１つを実施することを含む、方法。
【請求項６】
請求項１に記載の方法であって、
前記現行製品の複数ヴァージョンをテストすることは、
前記現行製品の前記旧ヴァージョン及び前記新ヴァージョンを、前記旧ヴァージョン及び前記新ヴァージョンへの訪問におけるユーザ変換率にそれぞれしたがってテストすることを含む、方法。
【請求項７】
請求項６に記載の方法であって、
前記現行製品の前記旧ヴァージョン及び前記新ヴァージョンを、前記旧ヴァージョン及び前記新ヴァージョンへの訪問におけるユーザ変換率にそれぞれしたがってテストすることは、
前記旧ヴァージョンを訪問しているユーザの旧ヴァージョン変換率及び新ヴァージョンを訪問しているユーザの新ヴァージョン変換率を取得することと、
前記旧ヴァージョン変換率及び前記新ヴァージョン変換率にしたがって、前記旧ヴァージョン及び前記新ヴァージョンをテストすることと、
を含む、方法。
【請求項８】
複数ヴァージョンをテストするためのデバイスであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合され、前記少なくとも１つのプロセッサに命令を提供するように構成されたメモリと、
を備え、
前記少なくとも１つのプロセッサは、
現行製品を訪問しているユーザの分岐タグ値を取得することであって、前記分岐タグ値は、対応するユーザを一意に識別する、ことと、
前記分岐タグ値の分岐ハッシュ値を計算することと、
前記現行製品の複数ヴァージョンをテストするために、前記現行製品のための既定の旧ヴァージョン対新ヴァージョン配分比と、前記分岐ハッシュ値とにしたがって、前記現行製品の旧ヴァージョン又は新ヴァージョンをユーザに配分することと、
を行うように構成される、デバイス。
【請求項９】
請求項８に記載のデバイスであって、
前記現行製品を訪問しているユーザの分岐タグ値を取得することは、
ユーザのウェブリクエスト内のクッキーが分岐タグ値を有するかどうかを判定することと、
前記ユーザの前記ウェブリクエスト内の前記クッキーが前記分岐タグ値を有する場合に、前記ユーザのクッキーから前記分岐タグ値を抽出することと、
前記ユーザの前記ウェブリクエスト内の前記クッキーが前記分岐タグ値を有さない場合に、
既定の分岐タグ値生成ステラテジーに基づいて、前記ユーザのための分岐タグ値を生成することと、
前記分岐タグ値を前記ユーザのクッキーに追加することと、
を行うことと、
を含む、デバイス。
【請求項１０】
請求項９に記載のデバイスであって、
前記ユーザのための分岐タグ値を生成することは、
前記ユーザのインターネットプロトコル（ＩＰ）アドレス、前記現行製品への初回訪問日時、及び乱数を取得することと、
前記分岐タグ値を形成するために、前記ユーザのＩＰアドレスと、前記現行製品への初回訪問日時と、前記乱数とを結合することと、
を含む、デバイス。
【請求項１１】
請求項８に記載のデバイスであって、
前記分岐タグ値の分岐ハッシュ値を計算することは、
前記分岐タグ値をハッシュコード値に変換することと、
前記ハッシュコード値に対応する初期ハッシュ値を計算することと、
前記分岐ハッシュ値を得るために、前記初期ハッシュ値に対して分岐最適化技術を実施することと、
を含む、デバイス。
【請求項１２】
請求項１１に記載のデバイスであって、
前記分岐ハッシュ値を得るために、前記初期ハッシュ値に対して分岐最適化技術を実施することは、
前記分岐ハッシュ値を得るために、既定のシフト幅にしたがって前記初期ハッシュ値をシフトさせる操作、
前記分岐ハッシュ値を得るために、既定の反転ルールにしたがって前記初期ハッシュ値を反転させる操作、
前記分岐ハッシュ値を得るために、既定の乗数で前記初期ハッシュ値を乗算する操作、又は
前記分岐ハッシュ値を得るために、既定の時間パラメータにしたがって前記初期ハッシュ値をハッシュ化する操作
のうちの１つを実施することを含む、デバイス。
【請求項１３】
請求項８に記載のデバイスであって、
前記現行製品の複数ヴァージョンをテストすることは、
前記現行製品の前記旧ヴァージョン及び前記新ヴァージョンを、前記旧ヴァージョン及び前記新ヴァージョンへの訪問におけるユーザ変換率にそれぞれしたがってテストすることを含む、デバイス。
【請求項１４】
請求項１３に記載のデバイスであって、
前記現行製品の前記旧ヴァージョン及び前記新ヴァージョンを、前記旧ヴァージョン及び前記新ヴァージョンへの訪問におけるユーザ変換率にそれぞれしたがってテストすることは、
前記旧ヴァージョンを訪問しているユーザの旧ヴァージョン変換率及び新ヴァージョンを訪問しているユーザの新ヴァージョン変換率を取得することと、
前記旧ヴァージョン変換率及び前記新ヴァージョン変換率にしたがって、前記旧ヴァージョン及び前記新ヴァージョンをテストすることと、
を含む、デバイス。
【請求項１５】
複数ヴァージョンをテストするためのコンピュータプログラムであって、
現行製品を訪問しているユーザの分岐タグ値を取得するための機能であって、前記分岐タグ値は、対応するユーザを一意に識別する、機能と、
前記分岐タグ値の分岐ハッシュ値を計算するための機能と、
前記現行製品の複数ヴァージョンをテストするために、前記現行製品のための既定の旧ヴァージョン対新ヴァージョン配分比と、前記分岐ハッシュ値とにしたがって、前記現行製品の旧ヴァージョン又は新ヴァージョンをユーザに配分するための機能と、
をコンピュータに実現させるコンピュータプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１３６
【補正方法】変更
【補正の内容】
【０１３６】
以上の実施形態は、理解を明瞭にする目的で幾らか詳細に説明されてきたが、本発明は、提供された詳細に限定されない。本発明を実現するには、多くの代替的手法がある。開示された実施形態は、例示的であり、限定的ではない。
［適用例１］
複数ヴァージョンをテストするための方法であって、
現行製品を訪問しているユーザの分岐タグ値を取得することであって、前記分岐タグ値は、対応するユーザを一意に識別する、ことと、
前記分岐タグ値の分岐ハッシュ値を計算することと、
前記現行製品の複数ヴァージョンをテストするために、前記現行製品のための既定の旧ヴァージョン対新ヴァージョン配分比と、前記分岐ハッシュ値とにしたがって、前記現行製品の旧ヴァージョン又は新ヴァージョンをユーザに配分することと、
を備える方法。
［適用例２］
適用例１に記載の方法であって、
前記現行製品を訪問しているユーザの分岐タグ値を取得することは、
ユーザのウェブリクエスト内のクッキーが分岐タグ値を有するかどうかを判定することと、
前記ユーザの前記ウェブリクエスト内の前記クッキーが前記分岐タグ値を有する場合に、前記ユーザのクッキーから前記分岐タグ値を抽出することと、
前記ユーザの前記ウェブリクエスト内の前記クッキーが前記分岐タグ値を有さない場合に、
既定の分岐タグ値生成ステラテジーに基づいて、前記ユーザのための分岐タグ値を生成することと、
前記分岐タグ値を前記ユーザのクッキーに追加することと、
を行うことと、
を含む、方法。
［適用例３］
適用例２に記載の方法であって、
前記ユーザのための分岐タグ値を生成することは、
前記ユーザのインターネットプロトコル（ＩＰ）アドレス、前記現行製品への初回訪問日時、及び乱数を取得することと、
前記分岐タグ値を形成するために、前記ユーザのＩＰアドレスと、前記現行製品への初回訪問日時と、前記乱数とを結合することと、
を含む、方法。
［適用例４］
適用例１に記載の方法であって、
前記分岐タグ値の分岐ハッシュ値を計算することは、
前記分岐タグ値をハッシュコード値に変換することと、
前記ハッシュコード値に対応する初期ハッシュ値を計算することと、
前記分岐ハッシュ値を得るために、前記初期ハッシュ値に対して分岐最適化技術を実施することと、
を含む、方法。
［適用例５］
適用例４に記載の方法であって、
前記分岐ハッシュ値を得るために、前記初期ハッシュ値に対して分岐最適化技術を実施することは、
前記分岐ハッシュ値を得るために、既定のシフト幅にしたがって前記初期ハッシュ値をシフトさせる操作、
前記分岐ハッシュ値を得るために、既定の反転ルールにしたがって前記初期ハッシュ値を反転させる操作、
前記分岐ハッシュ値を得るために、既定の乗数で前記初期ハッシュ値を乗算する操作、又は
前記分岐ハッシュ値を得るために、既定の時間パラメータにしたがって前記初期ハッシュ値をハッシュ化する操作
のうちの１つを実施することを含む、方法。
［適用例６］
適用例１に記載の方法であって、
前記現行製品の複数ヴァージョンをテストすることは、
前記現行製品の前記旧ヴァージョン及び前記新ヴァージョンを、前記旧ヴァージョン及び前記新ヴァージョンへの訪問におけるユーザ変換率にそれぞれしたがってテストすることを含む、方法。
［適用例７］
適用例６に記載の方法であって、
前記現行製品の前記旧ヴァージョン及び前記新ヴァージョンを、前記旧ヴァージョン及び前記新ヴァージョンへの訪問におけるユーザ変換率にそれぞれしたがってテストすることは、
前記旧ヴァージョンを訪問しているユーザの旧ヴァージョン変換率及び新ヴァージョンを訪問しているユーザの新ヴァージョン変換率を取得することと、
前記旧ヴァージョン変換率及び前記新ヴァージョン変換率にしたがって、前記旧ヴァージョン及び前記新ヴァージョンをテストすることと、
を含む、方法。
［適用例８］
複数ヴァージョンをテストするためのデバイスであって、
少なくとも１つのプロセッサと、
前記少なくとも１つのプロセッサに結合され、前記少なくとも１つのプロセッサに命令を提供するように構成されたメモリと、
を備え、
前記少なくとも１つのプロセッサは、
現行製品を訪問しているユーザの分岐タグ値を取得することであって、前記分岐タグ値は、対応するユーザを一意に識別する、ことと、
前記分岐タグ値の分岐ハッシュ値を計算することと、
前記現行製品の複数ヴァージョンをテストするために、前記現行製品のための既定の旧ヴァージョン対新ヴァージョン配分比と、前記分岐ハッシュ値とにしたがって、前記現行製品の旧ヴァージョン又は新ヴァージョンをユーザに配分することと、
を行うように構成される、デバイス。
［適用例９］
適用例８に記載のデバイスであって、
前記現行製品を訪問しているユーザの分岐タグ値を取得することは、
ユーザのウェブリクエスト内のクッキーが分岐タグ値を有するかどうかを判定することと、
前記ユーザの前記ウェブリクエスト内の前記クッキーが前記分岐タグ値を有する場合に、前記ユーザのクッキーから前記分岐タグ値を抽出することと、
前記ユーザの前記ウェブリクエスト内の前記クッキーが前記分岐タグ値を有さない場合に、
既定の分岐タグ値生成ステラテジーに基づいて、前記ユーザのための分岐タグ値を生成することと、
前記分岐タグ値を前記ユーザのクッキーに追加することと、
を行うことと、
を含む、デバイス。
［適用例１０］
適用例９に記載のデバイスであって、
前記ユーザのための分岐タグ値を生成することは、
前記ユーザのインターネットプロトコル（ＩＰ）アドレス、前記現行製品への初回訪問日時、及び乱数を取得することと、
前記分岐タグ値を形成するために、前記ユーザのＩＰアドレスと、前記現行製品への初回訪問日時と、前記乱数とを結合することと、
を含む、デバイス。
［適用例１１］
適用例８に記載のデバイスであって、
前記分岐タグ値の分岐ハッシュ値を計算することは、
前記分岐タグ値をハッシュコード値に変換することと、
前記ハッシュコード値に対応する初期ハッシュ値を計算することと、
前記分岐ハッシュ値を得るために、前記初期ハッシュ値に対して分岐最適化技術を実施することと、
を含む、デバイス。
［適用例１２］
適用例１１に記載のデバイスであって、
前記分岐ハッシュ値を得るために、前記初期ハッシュ値に対して分岐最適化技術を実施することは、
前記分岐ハッシュ値を得るために、既定のシフト幅にしたがって前記初期ハッシュ値をシフトさせる操作、
前記分岐ハッシュ値を得るために、既定の反転ルールにしたがって前記初期ハッシュ値を反転させる操作、
前記分岐ハッシュ値を得るために、既定の乗数で前記初期ハッシュ値を乗算する操作、又は
前記分岐ハッシュ値を得るために、既定の時間パラメータにしたがって前記初期ハッシュ値をハッシュ化する操作
のうちの１つを実施することを含む、デバイス。
［適用例１３］
適用例８に記載のデバイスであって、
前記現行製品の複数ヴァージョンをテストすることは、
前記現行製品の前記旧ヴァージョン及び前記新ヴァージョンを、前記旧ヴァージョン及び前記新ヴァージョンへの訪問におけるユーザ変換率にそれぞれしたがってテストすることを含む、デバイス。
［適用例１４］
適用例１３に記載のデバイスであって、
前記現行製品の前記旧ヴァージョン及び前記新ヴァージョンを、前記旧ヴァージョン及び前記新ヴァージョンへの訪問におけるユーザ変換率にそれぞれしたがってテストすることは、
前記旧ヴァージョンを訪問しているユーザの旧ヴァージョン変換率及び新ヴァージョンを訪問しているユーザの新ヴァージョン変換率を取得することと、
前記旧ヴァージョン変換率及び前記新ヴァージョン変換率にしたがって、前記旧ヴァージョン及び前記新ヴァージョンをテストすることと、
を含む、デバイス。
［適用例１５］
有体の非一時的なコンピュータ読み取り可能ストレージ媒体に盛り込まれた、複数ヴァージョンをテストするためのコンピュータプログラム製品であって、
現行製品を訪問しているユーザの分岐タグ値を取得するためのコンピュータ命令であって、前記分岐タグ値は、対応するユーザを一意に識別する、コンピュータ命令と、
前記分岐タグ値の分岐ハッシュ値を計算するためのコンピュータ命令と、
前記現行製品の複数ヴァージョンをテストするために、前記現行製品のための既定の旧ヴァージョン対新ヴァージョン配分比と、前記分岐ハッシュ値とにしたがって、前記現行製品の旧ヴァージョン又は新ヴァージョンをユーザに配分するためのコンピュータ命令と、
を備えるコンピュータプログラム製品。
【国際調査報告】
2016522475.tif 000019
2016522475.tif 000020