JP2021174066A - テスト管理システム、テスト管理装置およびテスト管理方法 - Google Patents

テスト管理システム、テスト管理装置およびテスト管理方法 Download PDF

Info

Publication number
JP2021174066A
JP2021174066A JP2020074892A JP2020074892A JP2021174066A JP 2021174066 A JP2021174066 A JP 2021174066A JP 2020074892 A JP2020074892 A JP 2020074892A JP 2020074892 A JP2020074892 A JP 2020074892A JP 2021174066 A JP2021174066 A JP 2021174066A
Authority
JP
Japan
Prior art keywords
test
information
target
targets
influence
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
JP2020074892A
Other languages
English (en)
Inventor
貴也 井出
Takaya Ide
恵介 畑崎
Keisuke Hatasaki
佑樹 長沼
Yuki Naganuma
霽野 兪
Jiye Yu
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2020074892A priority Critical patent/JP2021174066A/ja
Publication of JP2021174066A publication Critical patent/JP2021174066A/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】複数のA/Bテストを同時実行するケースにおいて、テスト間の影響と交互作用を踏まえつつ、評価結果の算出時間を短縮可能とする。【解決手段】テスト管理システム10において、A/Bテストのテスト対象に関する情報を保持する記憶部120と、前記テスト対象のうち同時にA/Bテストが実行される、複数のテスト対象に関して、前記記憶部の前記情報が示す、テスト目標、当該テスト目標への影響度、及びテスト対象間の依存関係を参照し、テスト目標が一致し、当該テスト目標への影響度が所定基準のものであって、テスト対象間で依存関係があるものを、前記複数のテスト対象から抽出してテストグループを生成するグループ算出部102と、前記テストグループに関して多変量テストを実行するテスト実行部101を備えたテスト管理装置100を含む構成とする。【選択図】図2

Description

本発明は、テスト管理システム、テスト管理装置およびテスト管理方法に関するものである。
各種システムやウェブサイト、或いは広告等の施策に関して、その良否を評価するためにA/Bテストが行われている。
A/Bテストでは、施策対象のウェブサイトやシステムを複数パターン用意し、それを一定の割合ずつユーザに公開してその反応を観測する。そして、その観測結果(例:クリック率、応答速度等)を集計、評価することで、目標となる評価項目に対し、上記複数パターンのうちどのパターンが優れているかを評価する。
一方で、近年はマイクロサービスアーキテクチャのように、一つのシステムを複数のマイクロサービスの組として開発することが行われる。こうした構築体制では、マイクロサービスごとに開発チームが存在し、各チームが自律的に開発を行う。当該体制で業務を進めることにより、迅速な開発が実現される。
ここで、複数チームが自律的に開発を行うシステム開発においては、複数チームが同時にA/Bテストを行うケースがある。
これら同時実行される複数のA/Bテストのパターンが、互いに影響を及ぼす場合、そのテストの結果は不正確な可能性がある。
例えば、ユーザに商品を推薦する機能を持ったウェブサイトに関して、あるチームが商品推薦アルゴリズムの違いによる商品購入数についてA/Bテストを実行したとする。一方、同時期に別のチームが、当該ウェブサイトのデザインの違いによる商品購入数について、A/Bテストを実行したとする。すると、当該ウェブサイトでの商品購入数が向上したとしても、それがどちらのチームの施策による効果か判然としない。
他方、一度に実行するA/Bテストを1つだけに絞るとすれば、上述の各チームの各施策に関する全てのA/Bテストの完了までに、膨大な時間が必要となる。その結果、当該ウェブサイトに関する迅速な開発を阻害する。
そこで、上述のような問題を解決するために、例えば以下の技術を活用できる。非特許文献1においては、それぞれ異なるユーザハッシュを用いることで、対象ユーザを選定することにより、複数のA/Bテストを互いの影響なく実施する技術が開示されている。
また、特許文献1においては、多変量テスト(Multivariate testing)の概念を用いることで、テスト間の影響を除外して評価を実行する技術が開示されている。
Diane Tang, Ashish Agarwal, Deirdre O’Brien, Mike Meyer, "Overlapping Experiment Infrastructure: More, Better, Faster Experimentation", KDD’10, p.17−26 (2010)
US20140280862A1
しかしながら、非特許文献1で開示された手法では、複数のA/Bテスト間に存在する交互作用を評価できない。
一方、交互作用の考慮が可能な特許文献1の手法を採用しても、適宜な精度の結果を得るために、相応のサンプル数が必要となる課題は残る。すなわち、多変量テストを実施する場合、組み合わせる要素の数に比例して、評価に必要なサンプル数が増加するためである。このため、エンタープライズ向けサービスなど、想定されるユーザが少ないサービスの場合、評価に必要な数のサンプルを集めるまでに長時間を要する可能性がある。
また他方、同時に実行されるA/Bテストの数が増えると、評価結果の算出までに時間がかかってしまう問題もある。
そこで本発明の目的は、複数のA/Bテストを同時実行するケースにおいて、テスト間の影響と交互作用を踏まえつつ、評価結果の算出時間を短縮可能とする技術を提供することにある。
上記課題を解決する本発明のテスト管理システムは、A/Bテストのテスト対象に関する情報を保持する記憶部と、前記テスト対象のうち同時にA/Bテストが実行される、複数のテスト対象に関して、前記記憶部の前記情報が示す、テスト目標、当該テスト目標への影響度、及びテスト対象間の依存関係を参照し、テスト目標が一致し、当該テスト目標への影響度が所定基準のものであって、テスト対象間で依存関係があるものを、前記複数のテスト対象から抽出してテストグループを生成するグループ算出部と、前記テストグループに関して多変量テストを実行するテスト実行部と、を備えたテスト管理装置を含むことを特徴とする。
また、本発明のテスト管理装置は、A/Bテストのテスト対象に関する情報を保持する記憶部と、前記テスト対象のうち同時にA/Bテストが実行される、複数のテスト対象に関して、前記記憶部の前記情報が示す、テスト目標、当該テスト目標への影響度、及びテスト対象間の依存関係を参照し、テスト目標が一致し、当該テスト目標への影響度が所定基準のものであって、テスト対象間で依存関係があるものを、前記複数のテスト対象から抽出してテストグループを生成するグループ算出部と、前記テストグループに関して多変量テストを実行するテスト実行部と、を備えることを特徴とする。
また、本発明のテスト管理方法は、テスト管理装置が、A/Bテストのテスト対象に関する情報を保持する記憶部を備えて、前記テスト対象のうち同時にA/Bテストが実行される、複数のテスト対象に関して、前記記憶部の前記情報が示す、テスト目標、当該テスト目標への影響度、及びテスト対象間の依存関係を参照し、テスト目標が一致し、当該テスト目標への影響度が所定基準のものであって、テスト対象間で依存関係があるものを、前記複数のテスト対象から抽出してテストグループを生成し、前記テストグループに関して多変量テストを実行することを特徴とする。
本発明によれば、複数のA/Bテストを同時実行するケースにおいて、テスト間の影響と交互作用を踏まえつつ、評価結果の算出時間を短縮可能となる。
本実施形態における処理の概要の一例を示した図である。 本実施形態におけるシステム構成の一例を示した図である。 本実施形態における操作画面の一例を示した図である。 本実施形態におけるハードウェア構成の一例を示した図である。 本実施形態における依存関係情報の一例を示した図である。 本実施形態におけるテスト概要情報の一例を示した図である。 本実施形態におけるテスト対象情報の一例を示した図である。 本実施形態における目標情報の一例を示した図である。 本実施形態におけるメトリクス情報の一例を示した図である。 本実施形態における全体の処理の一例を示した図である。 本実施形態におけるテストグループ作成処理の一例を示した図である。 本実施形態におけるテストの実行処理の一例を示した図である。 本実施形態におけるシステム構成の一例を示した図である。 本実施形態におけるソフトウェア構成管理情報の一例を示した図である。 本実施形態におけるテスト履歴情報の一例を示した図である。
以下図面について、本発明の一実施の形態を詳述する。ただし、本発明は後述する実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例および同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。
なお、本実施例では各情報を「テーブル」または「JSON(JavaScript(登録商標) Object Notation)フォーマットのテキストデータ」形式にて説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、DB、キュー等のデータ構造や、Yaml、XML等フォーマットのテキストデータや、またそれ以外で表現されていても良い。
そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「DB」、「キュー」等について単に「情報」と呼ぶことがある。また、各情報の内容を説明する際に、「識別情報」、「識別子」、「ID(Identification)」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
また、本実施例において、GUI(Graphical User Interface)上のボタンの押下を起点に実行される処理は、対応するAPIの呼び出しを起点に実行されても良い。
また、各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また、前述した各構成、機能、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
また、以後の説明では「○○部」などのプログラムを主語とした説明を行う場合があるが、プログラムはプロセッサ201によって実行されることで定められた処理を主記憶デバイス204および通信制御デバイス202を用いながら行うため、プロセッサ201を
主語とした説明としてもよい。また、プログラムを主語として開示された処理はプログラミング装置が行う処理としてもよい。
また、異なる電子計算機間にてデータを取得する、あるいはプログラムの機能を呼び出しする際、実際にはWebAPI等の通信プロトコルを用いたリモートプロシージャコールを行っている場合がある。
<テスト管理方法の基本概念>
まず、図1を用いてテスト管理方法の概要を説明する。図1は、複数のサービス1540で構成されるシステムにおいて、サービスB、C、Dを含む複数のサービスが同時にA/Bテストを実行する場合、サービスBのA/Bテストのテストケースを算出する手順を表している。ここで、テストケースとは個別にサンプルを集計する必要があるパターンの組である。
パターンとは、クリック率や反応速度といった適宜な目標値の向上を意図して行われた、サービスごとのシステム等の改変のパターンを想定しうる。
本実施形態のテスト管理方法においては、まず、テスト対象となるシステム1511でA/Bテストを実施するサービス1540(サービスB、C、D)を列挙し、それらサービスが含むパターン(図中のv1、v2)の全組み合わせからなるテストケース1512を作成する。ここで作成したテストケース1512は、多変量テストのテストケースを網羅的に作成したマトリクスとなる。
次に、上述のシステムの依存関係、A/Bテストの目標、影響度、などの情報を基に、テストグループ1541を作成する。
このテストグループ1541に含まれるサービスが関係するテストケースの列は、テストケース1522の点線のようになる。
なお注意点として、当該テストグループ1541は、サービスごとに異なる。図の例では、サービスBのテストグループ1541には、サービスA、B、Cが含まれるが、サービスCのテストグループは、サービスBのテストグループ1541とは異なる可能性がある(例えばサービスCのテストグループは、サービスC単体となる場合がある)。これはテストグループの作成にテストの目標や影響度などの情報が関わっているためである。
最後に、上述のテストグループ1541に対応するようにテストケース1522を集約してテストケース1532を得て、後述の多変量テストを実行する。
なお注意点として、本発明の手法ではテストケース1532のように、テストグループごとにテストケースを集約するが、これは評価のタイミングで集約しているのであって、テスト自体は全てのテストケースでメトリクスを計測する。
このため、テストグループ外のサービスのA/Bテストの影響を受けると思われるが、この影響は個々のサービスへのユーザの振り方をランダムに行い、A/Bテスト間の相関係数をほぼ0とすることで回避する。
なお、多変量テストとは、例えば、ウェブサイトのタイトル文字とトップ画像のように複数の要素が同時に変更されたとき、最適な組み合わせを評価する手法である。
こうした多変量テストをする際は、変更された個々の要素の組み合わせをそれぞれテストケースとしてA/Bテストのように比較する。
例えば、上記のウェブサイトのタイトル文字が3パターン、トップ画像が2パターンあるときに多変量テストを行う場合、3と2の組み合わせである6パターンのテストケースを作成する。
その後、それぞれのパターンを特定の割合ずつユーザに公開し、目標に設定したメトリクス(例えばクリック率やエラー率)の値をテストケースごとに計測する。
その後、各テストケースをベースライン(変更前と同じパターンの組み合わせなど、基準となるテストケース)と比較し、目標のメトリクスがより良い値かどうか評価する。
多変量テストでは、複数のテストケースを組み合わせた場合の交互効果も評価できる。多変量テストは、例えば重回帰分析やロジスティック回帰、ベイジアンフィルタなどを用いて実現することができる。
<<実施例1>>
続いて、図2を用いてテスト管理システム10の構成の一例を説明する。本実施例1のテスト管理システム10は、テスト対象1、メトリクス収集システム3、及びテスト管理装置100から構成されている。また、これらテスト管理システム10の各構成要素は、ネットワーク5で通信可能に接続されている。
上述の各構成要素は、それぞれがCPU、メモリ、ハードディスクなどからなる計算機で実装された装置である(図4にて詳述)。その動作形態は、それぞれ物理的に異なる計算機上で動作していてもよいし、仮想サーバと呼ばれる物理的な計算機を論理的に分割された計算機の単位で動作していてもよい。もしくは1台の計算機または複数の計算機クラスタ上で実行されるタスク(プロセスやコンテナとも呼ばれる)単位であってもよい。
またネットワーク5は、インターネットやローカルエリアネットワーク(LAN)、専用の通信網、またはVLANなどに代表される仮想的なネットワークであってもよい。
テスト対象1は、A/Bテストを行う対象となるサービスであり、例えば図1におけるサービスBを表す。テスト対象1は、図1におけるサービスCやサービスDのように複数存在して良い。各サービスは、「Webページをユーザに送付する」、「推薦商品のリストを呼び出し元サービスに送付する」などの機能を提供するシステムといえる。
また、テスト対象1は、プロキシ2と2個以上のサービス3のパターン3−1、3−2から構成される。なお、サービス3のパターンを総称し、以降はサービス3と記載する場合がある。こうしたサービス3のパターンは、図1における各サービス中にあるv1、v2が該当する。
また、プロキシ2は、トラヒック分割部21とメトリクス送信部22を有し、トラヒックをサービス3の各パターン3−1、3−2に振り分ける役割を有する。
このうちトラヒック分割部21は、プロキシ2が受信したトラヒックを、テスト管理装置100から指定された割合でサービス3の各パターン3−1、3−2に送付する機能である。
このときの割合は、サービス3のパターン3−1(サービスA1)、3−2(サービスA2)ごとに異なっても良い。例えば、サービス3のパターン3−1(サービスA1)には90%、サービス3のパターン3−2(サービスA2)には10%、といった割合を想定して良い。
また、どのアクセスがどのサービスのパターン3−1、3−2に送付されるかは、テスト対象1ごとに異なる。
また、メトリクス送信部22は、指定された値を付加情報と共にメトリクス収集システム30に送付する機能である。送付するデータの構成は図9にて後述する。
上述のサービス3のパターン3−1(サービスA1)は、メトリクス送信部23−1を、同様にパターン3−2(サービスA2)は、メトリクス送信部23−2を有し、サービスの機能を実現するための処理を行う。
メトリクス送信部23−1、23−2は、プロキシ2のメトリクス送信部22と同一の機能を有する。メトリクス送信部23−1、23−2は、例えばサービスのパターン3内でのみ計測できるメトリクスをメトリクス収集システム30に送付する。
なお、サービス3のパターン3−1、3−2自体を、複数のコンポーネントで実装しても良い。また、プロキシ2はサービス3のパターン3−1、3−2における一機能として実装しても良い。
一方、メトリクス収集システム30は、メトリクス収集部31とメトリクス情報32を有している。メトリクス収集システム30は、テスト対象1からメトリクスを収集してメトリクス情報32として保持する。
上述のメトリクス収集部31は、上述のプロキシ2および各サービス3のパターン3−1、3−2のメトリクス送信部23−1、23−2からメトリクスを収集する機能を持つ。
また、メトリクス情報32は、メトリクス収集部31により収集されたメトリクスの情報を保持する。メトリクス情報32の詳細については図9に基づき後述する。
なお、テスト対象1が含む各構成要素は、それぞれが直接接続している必要はなく、例えばネットワーク5やそれ以外のネットワークを介して互いに接続されていても良い。
また、テスト管理装置100は、複数のテスト対象1が同時にA/Bテストをする際に、A/Bテストを管理する役割を有し、テスト実行部101、グループ算出部102、トラヒック制御部103、結果集計部104、GUI部105、依存関係情報106、テスト概要情報107、テスト対象情報108、及び目標情報109、で構成される。
このうちテスト実行部101は、多変量テストを実行する(図12にて詳述)。
また、グループ算出部102は、テストグループを作成する(図11にて詳述)。
また、トラヒック制御部103は、テスト実行部101により指定された割合でトラヒックを割り振るようテスト対象1のプロキシ2に指示を送る。
また、結果集計部104は、メトリクス収集システム30のメトリクス情報31を集計し、多変量テストの評価や画面への表示項目を算出する。
また、GUI部105は、テストのリクエストを入力するための画面をユーザに提示する(図3にて詳述)。
また、依存関係情報106は、テスト対象1を含むシステムにおけるサービス間の接続関係を示す情報である(図5にて詳述)。この依存関係情報106は、例えばテスト対象1の開発者など(以下、ユーザと表記する)による入力やネットワーク設定情報や分散トレーシングの出力結果などを利用して作成できる。
また、テスト概要情報107は、GUI部105を通してユーザから入力されたテスト要求の概要を示す情報である(図6にて詳述)。
また、テスト対象情報108は、テストの対象となるサービス3のパターンの情報である(図7にて詳述)。
また、目標情報109は、「クリック数」などの目標の情報をまとめたもので、予め登録されている情報である(図8にて詳述)。
<GUI例>
図3はGUI画面200の一例を示している。ここで例示するGUI画面200は、テスト管理装置100のGUI部105が生成したGUIの一例である。
このGUI画面200を用いることで、ユーザは多変量テストの実行および結果確認ができる。GUI画面200には、入力画面210、テスト範囲画面220、テスト結果概要画面230、及びテストケース画面240が含まれる。
このうち入力画面210には、複数の入力項目と実行ボタン211が含まれる。当該入力項目は、テキストボックスやリストボックスとして実装され、テスト概要情報107(変更箇所からバージョンまで)やテスト対象情報108(レート)のカラム名に対応した入力ができる。レートは各行においてテスト対象1が含むパターン3のパラメータである。当該レートの行は2行以上存在しても良い。
ユーザは本入力項目を用いて、テスト概要情報107やテスト対象情報108をテスト管理装置100に入力する。その後、ユーザが実行ボタン211を押下することにより、各入力項目がテスト概要情報107およびテスト対象情報108に登録されるとともにテスト実行部101にテストのリクエストが発行され、テストが実施される(図10にて詳述)。
また、入力項目のうち終了条件、期限、交互条件、レートは、テスト実行後であっても値を変更して実行ボタン211を押下することにより、ユーザはテストのパラメータを更新できる。この更新処理は図12のP1106にて詳述する。
これにより、例えばテスト完了までの期限を短くする必要が出た際に、ユーザはテストのパラメータを変更できる。
また、テスト範囲画面220は、テスト対象1を含むシステムの依存関係情報106が図示された画面である。テスト範囲画面220を用いてユーザは、リクエストした多変量テストのテストグループ1541が含むサービス1540を確認および変更できる。
テスト範囲画面220は、テスト対象1を含むシステムの依存関係情報106の図(以降、テスト範囲図221と呼称)と対象変更ボタン222を含む。
テスト範囲図221では、例えば各サービスは四角アイコン22Aで表され、その依存関係がサービス間の線22Bで表現される。
テストのリクエストが発行されているサービスは、サービスの枠内にテストに使用されるパターン3の情報が四角アイコン22Cで図示される(例えばサービスD内のD0やD1)。
同様に入力画面210の測定箇所に設定されているサービスにも、入力画面のレートとして記載されたパターンの情報が四角アイコンに記載される。入力画面210の測定箇所に設定されているサービスは、例えばサービスBのように外枠が二重線で表現されるなどして、ユーザが識別可能である。また、測定対象のテストグループ1541に含まれるサービスは背景色が黒色であるなどして、ユーザから識別可能である。
ユーザは、テスト範囲図221上でサービス3のアイコンを押下することにより、当該サービス3をテストグループ1541に含めるか否かを切り替えられる。この更新処理は図12のP1106にて詳述する。これにより、例えばテスト完了までの期限を短くする必要が出た際に、ユーザは指定したサービスの交互作用の確認を諦めることと引き換えにテストの終了時刻を前倒すことが可能となりうる。
テスト結果概要画面230には、テストの概要として、例えば改善割合や改善確率、終了予想時刻が表示される。
改善割合は、目標となる計測値が基準となるパターンから改善された割合のうち、テストパターン内で最大の値である。なお、基準となるパターンとは、例えば入力画面210のレートにて、基準の項目にbaseと入力されたパターンの組み合わせで構成されたテストケースである。
改善確率は、上述の改善割合が本当に改善されている確率である。A/Bテストではサンプルをもとに改善の有無を判断するため、サンプルにより算出した結果が正しいか否かは確率として出力される。終了予想時刻はサンプル数の増加速度から予測されるテストの終了時刻である。
テストケース画面240は、テストの実施状況がテストケースごとに表示される。各テストケースの情報には、組合せ名やサンプル数、計測値、改善割合、改善確率が含まれる。
組合せ名は、テストケースで評価されるパターンの組合せの情報である。サンプル数とは現在収集したA/Bテストの評価に必要なデータの数であり、例えばテストケースの組合せパターンへのユーザアクセス数などである。
計測値とは、目標となるメトリクスの現在値である。例えば目標値がクリック率の場合は、ユーザアクセスのうちユーザがクリックした割合が該当する。
改善割合は、目標となる計測値が基準となるパターンから改善された割合である。また、改善確率は、上述の改善割合が本当に改善されている確率である。この項目以外にも、例えば目標値に対するサービスごとの影響度を記載しても良い。当該影響度は例えばベイジアンフィルタやロジスティック回帰等で計算できる。
<ハードウェア構成>
図4はプロキシ2、サービス(を実装するシステム)、メトリクス収集システム30、テスト管理装置100のハードウェア構成の一例を示すブロック図である。
ただし、このハードウェア構成は物理的な計算機であっても良いし、仮想サーバと呼ば
れる物理的な計算機を論理的に分割された計算機の単位で動作していてもよい。もしくは1台の計算機または複数の計算機クラスタ上で実行されるタスク(プロセスやコンテナとも呼ばれる)であってもよい。
電子計算機300には、プロセッサ301、通信制御装置302、通信インターフェース303、主記憶装置304、および補助記憶装置305が設けられている。なお、プロセッサ301、通信制御装置302、通信インターフェース303、主記憶装置304、および補助記憶装置305は、内部バス306を介して相互に接続されている。
上述のうちプロセッサ301は、動作制御を司るハードウェアである。
また、主記憶装置304は、例えば、不揮発性の半導体メモリから構成され、各種プログラムやデータを保持する。
また、補助記憶装置305は、大容量の記憶容量を有する記憶装置であり、例えば、ハードディスク装置やSSD(Solid State Drive)である。この補助記憶装置305は、各種プログラムの実行ファイルを保持する。
補助記憶装置305および補助記憶装置305は、プロセッサ301からアクセス可能である。
また、通信制御装置302は、通信を制御する機能を有するハードウェアであり、図2に示すシステムのコンポーネントが互いに通信するために使用される。通信制御装置302は、通信インターフェース303を介してネットワーク5に接続される。
<データ構造の例>
図5は依存関係情報106のデータ構造の一例を示す図である。この依存関係情報106は、テスト管理装置100がA/Bテストを行う対象システムの構造の情報である。
こうした依存関係情報106は、サービスID401と依存先402を含む。このうちサービスID401は、サービス1540の識別子であり、テスト管理装置100内で一意の値を持つ。依存先402はサービスID401で示された当該サービスが呼び出している他のサービスのサービスID401である。
続いて図6に、テスト概要情報107のデータ構造の一例を示す。このテスト概要情報107は、GUI部105を通してユーザから送付されたテストの要求の概要を示す情報であり、各行がそれぞれ個別のテストを表す。
テスト概要情報107は、テストID501、変更箇所502、測定箇所503、目標504、影響タイプ505、影響度506、テストグループ507、期限508、交互条件509、及び終了条件510を含む。
このうち、テストID501はテストごとに発行される識別子であり、テスト管理装置100内で一意の値を持つ。また、変更箇所502はテスト対象1であるサービスのサービスID401である。
また、測定箇所503は、テストにおけるメトリクスの測定先となるサービスのサービスID401である。
なお、変更箇所502と測定箇所503は異なるサービスになりうる。例えば推薦商品を算出するアルゴリズムを変えたときのユーザのクリック率をテストする場合、推薦商品
を算出するサービスが変更箇所502で、ユーザが操作するWebページ生成するサービスが測定箇所503などとなる場合がある。
目標504は、テストにおいて評価するメトリクスの目標ID701(図8にて詳述)を指す。また、影響タイプ505は、テスト対象1の変更内容が与える影響のタイプであり、例えば、ユーザに影響を与える変更、速度に影響を与える変更、エラー率に影響を与える変更、リソース消費量に影響を与える変更、などの項目やその組合せが含まれる。
また、影響度506は、テスト対象1の変更が影響タイプ505に与える影響の大きさを表しており、例えば大、中、小などの項目が含まれる。
テストグループ507はテストグループに含まれるサービスのサービスID401のリストであり、GUI画面200のテスト範囲220でのユーザ入力をもとにグループ算出部109が算出する。
期限508は、テストの終了期限となる時刻であり、例えばISO8601の形式で表される。この期限508はタイムゾーンの情報を含んでも良い。
また、交互条件509は、当該テストが多変量テストとして参照する他のテストの条件であり、対象テストと影響度の情報の組で構成される。
対象テストとしては、例えば、全種、関連のみ、なし、があって良く、影響度は影響度506と同じ項目があって良い。
また、交互条件509および目標504、他のテストの影響タイプ505、影響度506、依存関係情報106は、グループ算出部102がテストグループ1542を算出するための情報である(図11にて詳述)。
終了条件510は、テストを終了させる条件であり、例えばテストケースの改善確率が95%以上になるなどの条件である。
図7はテスト対象情報108のデータ構造の一例である。このテスト対象情報108は、テストの対象となるサービス3のパターンの情報であり、各行が特定のテストにおける一つのパターンの情報を表す。
こうしたテスト対象情報108は、例えばGUI部105からのユーザ入力をもとに作成される。
テスト対象情報108は、テストID601、対象名602、アクセス先603、レート基準604、レート上限605、及びレート下限606の各値を含む。
このうちテストID601は、テストID501と同じくテストごとに発行される識別子であり、テスト管理装置100内で一意の値を持つ。
また、対象名602は、レコードが表すパターンの名称である。アクセス先603は当該パターンにアクセスするための情報であり、例えばFQDN(Fully Qualified Domain Name)やIPアドレス(Internet Protocol)で表される。
レート基準604は、当該パターンに流すトラヒックの割合の基準となる値である。同
じく、レート上限605は当該パターン3に流すトラヒックの上限であり、レート下限606は下限である。なお、こうしたレート604〜606の各値は、例えばパーセントで表現される。
ベースとなるパターンは、レート604〜606が存在せず、同一テスト対象1が有する他のパターンのレートの残量がレートに割り当てられる。
多変量テストの際は、テスト実行部101がテストの期限508を加味してレート上限605とレート下限606の中で、レート基準604に近くなるようにトラヒックのレートを算出する。
図8は目標情報109のデータ構造の一例である。この目標情報109は、「クリック数」などの目標の情報をまとめたもので、予め登録されている情報である。
目標情報109は、目標ID701、影響タイプ702、及び依存先703の各値を含む。このうち目標ID701は、目標の識別子であり、テスト管理装置100内で一意の値を持つ。
また、影響タイプ702は、当該目標が何の影響を受けるかを表した情報である。この影響タイプ702の項目は、影響タイプ505と同一である。
また、依存先703は、目標がどのような依存先のサービスに影響を受けるかを示した情報である。依存先のサービスとは、図5の依存関係情報101にて示したようにサービスが呼び出しているサービスである。
依存先703には、測定箇所の依存先サービス、変更箇所の依存先サービス、測定箇所から変更箇所までのサービス、測定箇所のみ、変更箇所のみ、などの項目が含まれる。
図9はメトリクス情報32のデータ構造の一例である。このメトリクス情報32は、メトリクス収集システム30が収集した、クリック数や応答時間、ユーザアクセス数などのメトリクス情報が保持される。
このメトリクス情報32にはタイムスタンプ801、対象名802、メトリクス名803、測定値804が含まれる。
このうちタイムスタンプ801は、メトリクスを収集したときの時刻の情報であり、例えばISO8601の形式で表される。
また、期限508は、タイムゾーンの情報を含んでも良い。対象名802は、メトリクス収集元のパターンの識別子である。
メトリクス名803は、収集したメトリクスの名称803である。また、測定値804は収集したメトリクスの値である。
<テスト管理方法のフロー>
続いて、テスト管理方法のフローについて、図10に基づき説明する。図10はテスト管理装置100がユーザからテストの要求を受信してから実際にテストが実行されるまでの全体の処理の一例を示した図である。
この場合、テスト管理装置100のGUI部105は、ユーザ向けにGUI画面200を当該ユーザの端末(ネットワーク5に接続した情報処理端末。図示なし)に出力する。
また、GUI部105は、当該ユーザが入力項目210を入力して実行ボタン211を押下したことを受けて、入力項目210の項目をテストの要求として取得する。また、GUI部105は、入力項目210のうち変更箇所から交互条件までのパラメータをテスト概要情報107に保存し、レートをテスト対象情報108に保存する(P901)。
その後、テスト管理装置100のテスト実行部101は、未実行のテストの要求が予め定められた一定数蓄積される、前回のテスト実行から予め定められた一定時間経過する、などの特定のテスト開始条件を満たすか判定する(P902)。
上述の判定の結果、テスト開始条件を満たす場合(P902:Yes)、テスト実行部101は未実行のテストの要求を読み込み、後続の処理を実行する(P903)。一方、テスト開始条件を満たさない場合(P902:No)、テスト実行部101は、当該ユーザの入力を待機する。
テストを実行すると、テスト実行部101は、グループ算出部102に対し、一つ以上の未実施のテストのテストID501を送付する。
一方、グループ算出部は、テスト実行部101から取得したテストID501をもとに、各テストのテストグループを算出する(P904)。本処理は図11にて詳述する。
その後、テスト実行部101は、テストの要求に対応した多変量テストを実行し、その結果をGUI画面200を通じてユーザ(の端末)に通知する(P905)。本処理は図12にて詳述する。
以上のように、入力された条件に基づいて作成したテストグループごとに多変量テストを行うことで、テストに必要なテストケースの数を削減できる。そのため、テスト管理装置100はサンプル数が少ない環境においても、複数のテスト対象1がA/Bテストを同時に実行する場合において、互いのテストの影響を除外し、交互作用を考慮しつつ、評価結果算出までの時間を短縮したテストの実行を可能にする。
図11はグループ算出部102がテストグループを算出する処理の一例を示した図である。本処理は、図10のP904を詳述したものである。
本処理では、グループ算出部102が、テスト実行部101から一つ以上のテストの要求として一つ以上のテストID501を受け取り、テストごとのテストグループ1541をテスト実行部101に返す。
なお、以降の説明は断りが無い限り、テストID501ごとの処理を示しており、その対象となるテストID501で示されたテストを対象テストと呼称し、レコードはテストID501に対応したテスト概要情報106のレコードを指す。
まず、グループ算出部102は、対象テストが依存するサービスのリストを算出する(P1001)。
具体的には、グループ算出部102が、対象テストのレコードの目標504と目標ID701に関して値が一致するレコードを、目標情報109から読み込み、その依存先703の値を取得する。
次にグループ算出部102は、依存関係情報106から後述の方法で当該依存先703の値に応じたサービスID402のリスト(以降、依存先サービスリストと呼称)を取得
する。当該依存先サービスリストの取得は、例えば、依存先703の値が「測定箇所の依存先サービス」の場合、対象テストの測定箇所503と同じ値のサービスID401および当該サービスID401が依存する全てのサービスID401を再帰的に全て取得し、取得した当該サービスID401群をリスト化することで実現される。なお、サービスID401の依存先402に示されたIDの値が、当該サービスID401の依存するサービス1540である。
次に、グループ算出部102は、テスト概要情報107にアクセスし、テストID501が対象テストのテストID501の値と異なり、かつ変更箇所502もしくは測定箇所503が依存先サービスリスト内のサービスID401の値と同じレコード(以降、依存テスト候補群)を全て取得する(P1002)。
最後に、グループ算出部102は、対象テストのレコードの交互条件509を満たすテストのレコードを依存テスト候補群の中から抽出し、その変更箇所502のサービスIDのリストをテストグループとして対象テストのレコードのテストグループ507に登録する(P1003)。
例えば、対象テストのレコードの交互条件509が「全種/影響度大」のとき、グループ算出部102は、依存テスト候補群のレコードから影響タイプ505の値が大のレコードを抽出し、その変更箇所をテストグループとする。
また、対象テストのレコードの交互条件509が「関連のみ/影響度中」のとき、グループ算出部102は、目標情報109から対象テストのレコードの目標504と目標ID701の値が同じレコードの影響タイプ702を取得し、その後、依存テスト候補群のうち、レコードの影響タイプ505が先ほど取得した当該影響タイプ702と一致し、かつ影響度が中以上のレコードを抽出し、その変更箇所をテストグループとする。
以上の処理により、グループ算出部102は、対象テストが依存するテストをテストグループとして算出できる。
図12はテスト実行部101が多変量テストを実施する処理の一例を示した図である。本処理は、図10のP905を詳述したものである。
このフローにおけるテスト実行部101は、テストの要求に対応した多変量テストを実行し、その結果をGUI画面200を通じてユーザに通知する。なお、以降の説明は断りが無い限り、テストID501ごとの処理を示しており、その対象となるテストID501で示されたテストを対象テストと呼称し、レコードはテストID501に対応したテスト概要情報106のレコードを指す。
まず、テスト実行部101は、各パターンに流せるトラヒックのレート上限605とレート下限606の中で、各テストの期限508の間に可能な限り当該テストの終了条件510を満たせるような、サービスのパターンに流すトラヒックのレートを算出する(P1101)。このとき、影響度506が大きいテストから優先して終わらせるようにトラヒックのレートを調整してもよい。
ここで、テストの終了条件510は、図3で示した基準となるテストケースからの改善確率の値が一定以上になることである。この改善確率は例えば、t検定や多因子分散分析(N−Way ANOVA)、多重比較など、多変量テストにて用いられる統計手法により、基準となるテストケースと対象のテストケースとのメトリクス集計値の間に有意差があるか検定したときの信頼水準を用いることができる。このため、この検定に必要なサン
プルサイズが必要なサンプル(例えばユーザアクセス)の数となる。
そこで、メトリクス情報32にある過去のメトリクスの計測値804から、サービスごとに単位時間(例えば毎分)あたりのサンプルの増加速度を算出することにより、測定箇所503のレートに応じた終了予測時間を算出できる。
そこで、テスト対象情報108のレート上限605とレート下限606およびサービス間の依存関係によるトラヒック流量の変化を制約条件として、実施する全てのテストについて終了予測時間が期限508より前になるような制約付き最適化問題を計算することにより、各パターンに流すトラヒックのレートを算出できる。
この計算は遺伝的アルゴリズムや焼きなまし法といったヒューリスティックな手法を用いても良い。このとき、影響度に応じた重み付けを行うことにより、影響度が大きいほどより終了予測時間を短くするようにトラヒックのレートを割り当てても良い。
次にトラヒック制御部103は、それぞれのテストに対応したテスト対象1のプロキシ2のトラヒック分割部21を制御し、パターンのアクセス先603に流れるトラヒックの量をP1101で算出したレートの割合に設定する(P1102)。
次に、結果集計部104は、メトリクス収集システム30からメトリクス情報32を取得し、その計測値804を対象名802ごとに集計し、テストの目標504に応じた値に変換する(P1103)。
この変換は、例えば、対象のテストの目標504がクリック数である場合、メトリクス情報32からタイムスタンプ801が一定時間内(例えば過去1分以内)で、対象名802が測定箇所503と同じ値であるレコードを取得し、メトリクス名803がクリック数のレコードの測定値804の合計を、メトリクス名803がユーザアクセスであるレコードの測定値804の合計で除算した値を算出する。
これらの計算手順は予め結果集計部104内に登録してあっても良いし、新しい計算手順をユーザが追加できるようにしても良い。
次に、結果集計部104は、テストごとに集計結果を算出し、その結果をGUI部105を経由してGUI画面200に出力する(P1104)。ここで出力する値は、テストケース画面240の計測値、改善割合、改善確率、またテスト結果概要画面230の改善割合、改善確率、終了予想時刻、が含まれる。
計測値はP1103で算出したテストの目標504に応じた値である。また終了予測時刻はP1101にて算出した時刻である。改善割合は基準となるテストケースとそれ以外のテストケースのメトリクスの差分値を算出することによりGUI画面200の改善割合を算出できる。
また、P1101で示した統計検定を用いて信頼水準を算出することによりGUI画面200の改善確率を算出できる。
ここで、テスト実行部101は、P1104にて算出した改善確率が当該テストの終了条件510を満たすか、もしくは当該テストの期限508を超過しているか判定し、どちらか一方でも真である場合は当該テストが終了したとしてP1106に移動する。
一方、両方とも偽である場合は、P1101から処理を繰り返す。P1101から繰り
返す際、GUI画面200の値がユーザにより更新されていた場合は更新後の値を用いる。またテストP1103にて取得したメトリクスの値をもとに、P1101にて統計値を算出し直すことにより、より正確な終了予測時刻を算出できうる。
テストが終了した場合(P1105:Yes)、テスト実行部101は、当該テストのテストグループ1542に含まれるテスト対象1が他のテストのテストグループに含まれていないか確認し、含まれていないテスト対象1についてはトラヒック制御を解除する(P1107)。
以上の処理により、テスト実行部101はテストグループごとの多変量テストを実施できる。
<<実施例2>>
実施例2においては、実施例1に加え、テスト管理装置100がメトリクス情報32、ソフトウェア構成管理情報210およびテスト履歴情報111を用いて、パラメータ推定部110により、テストのパラメータを推定する方法を説明する。
ただし、このパラメータの推定には、メトリクス情報32、ソフトウェア構成管理情報210およびテスト履歴情報111の全てが必要というわけではない。例えば、影響度など複数の項目から計算されるパラメータは、特定の情報が無くとも、残りの情報からパラメータを推定できる。
こうした実施例2の手法を用いることにより、ユーザはテストのパラメータの一部をGUI画面200に入力せずとも良いという効果がある。
図13は実施例2のシステム構成の一例である。本実施例において、テスト対象1とメトリクス収集システム30は、実施例1について示した図2のテスト管理装置100と同様のため、説明を省略する。
ソフトウェア構成管理システム200は、テスト対象1を含む対象システムのソースコードなどの成果物の変更履歴を管理するシステムであり、例えばGit(登録商標)やSubversion(登録商標)、Gitlab(登録商標)、GitHub(登録商標)である。
このソフトウェア構成管理システム200は、上述の変更履歴をソフトウェア構成管理情報210に保持する。ソフトウェア構成管理情報210の構成は、図14にて詳述する。
一方、テスト管理システム1221は、複数のテスト対象1が同時にA/Bテストをする際に、A/Bテストを管理する役割を有する。テスト管理装置100において、パラメータ推定部110とテスト履歴情報111以外の機能および情報は、図2で例示した構成と同様のため、説明を省略する。
実施例2において、テスト管理装置100のテスト履歴情報111は、過去に実行されたテストの情報である(図15にて詳述)。
また、パラメータ推定部110は、テストのパラメータを推定する機能を有する。具体的には、テスト履歴情報111を用いてテストの終了条件、期限、影響タイプ、交互条件を算出し、メトリクス情報32、ソフトウェア構成管理情報210およびテスト履歴情報111を用いてテストの重要度を算出する。
こうしたパラメータ推定部110は、GUI部105の更新状況を監視しており、GUI画面200の入力画面210にユーザが変更箇所、測定箇所、目標を入力したタイミングでパラメータの推定処理を実行する。その後、パラメータ推定部110は、推定したパラメータをGUI部105を介してGUI画面200に出力する。これによりパラメータ推定部110はユーザの入力動作を補助する。
以下、パラメータ推定部110による各パラメータの算出方法を示す。なお、一部のパラメータの算出式に後述の図14、図15にて詳述される項目を含む。
まず、前準備として、パラメータ推定部110は、テスト履歴情報111から、ユーザが入力した変更箇所、測定箇所、目標が一致し、かつ定められた条件(例えば直近10個など)のレコード(以降、履歴レコード群と呼称)を取得する。この履歴レコード群が取得できない場合は、推定不可能として影響度以外の推定処理を終了する。
上述の処理の結果、履歴レコード群が取得できた場合、パラメータ推定部110は、履歴レコード群に含まれる改善確率1407の平均値を終了条件として出力する。
同様に、パラメータ推定部110は、履歴レコード群に含まれるテスト終了時刻1412とテスト開始時刻1411の差の秒数をレコードごとに算出し、その平均の秒数を現在の時刻に加算した時刻を期限として出力する。
また、パラメータ推定部110は、履歴レコード群に最も多く出現する影響タイプ1408の値を影響タイプとして出力し、同様に最も多く出現する交差条件1410の値を交差条件として出力する。
なお、影響度の算出処理として、パラメータ推定部110は4種類の値の重み付け平均の値を用いる。1つ目は履歴レコード群に含まれる影響度1405の平均値である。平均を取る際は、例えば大を2、中を1、賞を0のように影響度の値を数値化し、その平均をとる。
2つ目はテストの対象システムにおけるテスト対象の影響の大きさである。これはメトリクス情報32のレコードをサービスごとにユーザの入力した当該目標の計測値を算出し、計測箇所となるサービスの計測値の大きさが、計測値を算出できた全てのサービスのうち、例えば上位5%なら2、上位50%なら1、それ以外は0となるように数値を割り振る。数値を割り振る基準は予めテスト管理装置100が定めていても良いし、ユーザが設定できても良い。
3つ目および4つ目はテスト対象の不安定さである。これは対象名1302がユーザの入力した変更箇所に等しいレコードをソフトウェア構成管理情報210から抽出し、そのうちタイムスタンプが最新のレコードとその一つ前のレコードを取得する。
その後3つ目の値として、最新の当該レコードとその一つ前の当該レコードのソースコードの差分を取り、コメント行を除き変更されている行数が、全体の3割以上なら2、1割以上なら1、それ以下なら0と数値を割り振る。
数値を割り振る基準は、予めテスト管理装置100に定めていても良いし、ユーザが設定できても良い。
4つ目の値は最新の当該レコードとその一つ前の当該レコードから、バージョン1304を取得し、メジャーバージョン(最初の数字)が変化していた場合2を、マイナーバー
ジョンが変化していた場合1を、それ以外の場合は0を付与する。
これは、ソースコードの変更量が多い場合や、メジャーバージョンアップが起きると動作が不安定になることやユーザへの影響が多いことを利用して影響度を算出している。予めテスト管理装置100が定めていても良いし、ユーザが設定できても良い。
以上により、パラメータ推定部110はテストのパラメータを推定し、推定したパラメータをGUI部105を介してGUI画面200に出力することで、ユーザの入力を補助する。
図14は実施例2のソフトウェア構成管理情報210のデータ構造の一例である。ソフトウェア構成管理情報210は、テスト対象1を含む対象システムのソースコードなどの成果物の変更履歴の情報であり、タイムスタンプ1301、対象名1302、ソースコード1303、バージョン1304を含む。
このうちタイムスタンプ1301は、成果物が変更された時刻を表し、例えばISO8601の形式で表される。このタイムスタンプ1301はタイムゾーンの情報を含んでも良い。
また、対象名1302は、ソフトウェア構成管理の対象となっているサービスの識別子であり、例えばソフトウェア構成管理を行う単位であるリポジトリの名前などを用いて保持する。
また、ソースコードは、対象名1302で表されるサービスのプログラムのソースコードの情報である。バージョン1304は、ソースコードに紐付けられたバージョンの情報であり、例えば<メジャー.マイナー.パッチ>の3個の値でバージョンを表記するセマンティックバージョニングの形式で表現される。
バージョン1304は、例えばGit(登録商標)やSubversion(登録商標)等のブランチ名やタグ名などとして保持する。
ソフトウェア構成管理情報210を用いてパラメータ算出部1220がテストの影響度を算出する方法は図13のパラメータ推定部110の通りである。
図15は実施例2のテスト履歴情報111のデータ構造の一例である。テスト履歴情報111は、過去実施されたテストの情報であり、テストID1401、変更箇所1402、測定箇所1403、目標1404、影響度1405、測定値1406、改善割合1407、改善確率1408、影響タイプ1409、交差条件1410、テスト開始時刻1411、テスト終了時刻1412が含まれる。
このうちテストID1401は、過去に実施されたテストの識別子であり、テスト管理装置100内で一意の値を持つ。以降、テストID1401で示されたテストを当該テストと呼称する。
また、変更箇所1402は、当該テストのテスト対象1となったサービスのサービスIDである。測定箇所1405は、当該テストのメトリクスの測定先となったサービスのサービスIDである。
また、目標1404は、当該テストの目標となるメトリクスの値であり、目標情報109の目標ID701で表される。
また、影響度1405は、当該テストの影響度を表す。測定値1406は当該テストの終了時に最も改善確率の高かったテストケースの測定値である。
また、改善割合1407は、測定値1406のテストケースの改善割合である。改善確率1408は測定値1406のテストケースの改善確率である。
また、交差条件1410は、当該テストの交差条件509である。テスト開始時刻1411は当該テストが開始された時刻であり、テスト終了時刻1412は当該テストが終了した時刻である。
テスト開始時刻1411とテスト終了時刻1412は例えばISO8601の形式で表される。これらの値はタイムゾーンの情報を含んでも良い。
テスト履歴情報110は、当該テストの開始時にテストID1401および変更箇所1402、測定箇所1403、目標1404、影響度1405、テスト開始時刻1411がテスト実行部101により登録される。
また、テスト終了時に、当該テストのレコードに測定値1406、改善割合1407、改善確率1408、交差条件1410、テスト終了時刻1412がテスト実行部101により登録される。
テスト履歴情報111を用いてパラメータ算出部1220がテストの影響度を算出する方法は図13のパラメータ推定部110の通りである。
以上の処理および情報を用いてテスト管理装置100はテストのパラメータの推定を行う。これにより、ユーザはテストのパラメータの一部をGUI画面200に入力せずとも良いという効果を得られる。
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
こうした本実施形態によれば、複数のA/Bテストを同時実行するケースにおいて、テスト間の影響と交互作用を踏まえつつ、評価結果の算出時間を短縮可能となる。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態のテスト管理システムにおいて、前記A/Bテストに関して予め規定された、トラヒックのレート上限及び下限と、前記A/Bテストの期限とに基づき、前記テスト対象ごとに存在するパターンに割り当てるトラヒックが、前記レート上限と前記レート下限の条件を満たしつつ、前記A/Bテストが前記期限までに完了するようトラヒックのレートを制御する処理を繰り返し、前記トラヒックのレートの割り当てを最適化するトラヒック制御部をさらに備える、としてもよい。
これによれば、ユーザ数の規模が小さいケースに適宜に対応し、そのトラヒックを効率的に制御可能となる。ひいては、複数のA/Bテストを同時実行するケースにおいて、テスト間の影響と交互作用を踏まえつつ、評価結果の算出時間をより短縮可能となる
また、本実施形態のテスト管理システムにおいて、前記トラヒック制御部は、前記トラヒックのレート割り当ての際、前記影響度がテスト対象間で相対的に大きいテスト対象に対し、優先的にトラヒックを割り当てるものである、としてもよい。
これによれば、結果に大きな影響を与えるテスト対象にトラヒックを多く割り当てることが可能となり、ひいては、複数のA/Bテストを同時実行するケースにおいて、テスト間の影響と交互作用を踏まえつつ、評価結果の算出時間をより短縮可能となる
また、本実施形態のテスト管理システムにおいて、前記テスト管理装置は、前記記憶部において、前記情報として、前記テスト対象のソフトウェアに関するソフトウェア構成管理情報と、前記多変量テストのテスト履歴情報と、前記多変量テストにおけるテスト結果を集計したメトリクス情報と、を格納し、前記記憶部における、前記メトリクス情報、前記ソフトウェア構成管理情報、及び前記テスト履歴情報の各情報のうち、ユーザが指定した、テスト対象における変更箇所、テスト目標及び当該テスト目標の測定箇所が一致するものを抽出し、当該情報における予め定めた項目の値を所定アルゴリズムに適用して、今回のテスト対象における前記影響度を推定するパラメータ推定部をさらに備える、としてもよい。
これによれば、ユーザが影響度を規定できない等の状況に適宜に対処し、影響度を推定することが可能となる。ひいては、複数のA/Bテストを同時実行するケースにおいて、テスト間の影響と交互作用を踏まえつつ、評価結果の算出時間をより短縮可能となる
また、本実施形態のテスト管理システムにおいて、前記パラメータ推定部は、前記記憶部における前記テスト履歴情報を参照し、前記記憶部における、前記メトリクス情報、前記ソフトウェア構成管理情報、及び前記テスト履歴情報の各情報のうち、ユーザが指定した、テスト対象における変更箇所、テスト目標及び当該テスト目標の測定箇所が一致するものを抽出し、当該情報における各項目を、今回のテスト対象に関するパラメータとして推定するものである、としてもよい。
これによれば、テスト対象に関するパラメータをユーザが指定できない場合に適宜に対応し、デフォルトの値を推定、提示することが可能となる。ひいては、複数のA/Bテストを同時実行するケースにおいて、テスト間の影響と交互作用を踏まえつつ、評価結果の算出時間をより短縮可能となる。
1 テスト対象
2 プロキシ
21 トラヒック分割部
22 メトリクス送信部
23 メトリクス送信部
3 サービス
5 ネットワーク
10 テスト管理システム
30 メトリクス収集システム
31 メトリクス収集部
32 メトリクス情報
100 テスト管理装置
101 テスト実行部
102 グループ算出部
103 トラヒック制御部
104 結果集計部
105 GUI部
106 依存関係情報
107 テスト概要情報
108 テスト対象情報
109 目標情報
110 パラメータ推定部
111 テスト履歴情報
120 記憶部
200 ソフトウェア構成管理システム
210 ソフトウェア構成管理情報
1540 サービス
1541 テストグループ

Claims (7)

  1. A/Bテストのテスト対象に関する情報を保持する記憶部と、
    前記テスト対象のうち同時にA/Bテストが実行される、複数のテスト対象に関して、前記記憶部の前記情報が示す、テスト目標、当該テスト目標への影響度、及びテスト対象間の依存関係を参照し、テスト目標が一致し、当該テスト目標への影響度が所定基準のものであって、テスト対象間で依存関係があるものを、前記複数のテスト対象から抽出してテストグループを生成するグループ算出部と、
    前記テストグループに関して多変量テストを実行するテスト実行部と、
    を備えたテスト管理装置を含むことを特徴とするテスト管理システム。
  2. 前記テスト管理装置において、
    前記A/Bテストに関して予め規定された、トラヒックのレート上限及び下限と、前記A/Bテストの期限とに基づき、
    前記テスト対象ごとに存在するパターンに割り当てるトラヒックが、前記レート上限と前記レート下限の条件を満たしつつ、前記A/Bテストが前記期限までに完了するようトラヒックのレートを制御する処理を繰り返し、前記トラヒックのレートの割り当てを最適化するトラヒック制御部をさらに備える、
    ことを特徴とする請求項1に記載のテスト管理システム。
  3. 前記トラヒック制御部は、
    前記トラヒックのレート割り当ての際、前記影響度がテスト対象間で相対的に大きいテスト対象に対し、優先的にトラヒックを割り当てるものである、
    ことを特徴とする請求項2に記載のテスト管理システム。
  4. 前記テスト管理装置は、
    前記記憶部において、前記情報として、前記テスト対象のソフトウェアに関するソフトウェア構成管理情報と、前記多変量テストのテスト履歴情報と、前記多変量テストにおけるテスト結果を集計したメトリクス情報と、を格納し、
    前記記憶部における、前記メトリクス情報、前記ソフトウェア構成管理情報、及び前記テスト履歴情報の各情報のうち、ユーザが指定した、テスト対象における変更箇所、テスト目標及び当該テスト目標の測定箇所が一致するものを抽出し、当該情報における予め定めた項目の値を所定アルゴリズムに適用して、今回のテスト対象における前記影響度を推定するパラメータ推定部をさらに備える、
    ことを特徴とする請求項1に記載のテスト管理システム。
  5. 前記パラメータ推定部は、
    前記記憶部における前記テスト履歴情報を参照し、前記記憶部における、前記メトリクス情報、前記ソフトウェア構成管理情報、及び前記テスト履歴情報の各情報のうち、ユーザが指定した、テスト対象における変更箇所、テスト目標及び当該テスト目標の測定箇所が一致するものを抽出し、当該情報における各項目を、今回のテスト対象に関するパラメータとして推定するものである、
    ことを特徴とする請求項4に記載のテスト管理システム。
  6. A/Bテストのテスト対象に関する情報を保持する記憶部と、
    前記テスト対象のうち同時にA/Bテストが実行される、複数のテスト対象に関して、前記記憶部の前記情報が示す、テスト目標、当該テスト目標への影響度、及びテスト対象間の依存関係を参照し、テスト目標が一致し、当該テスト目標への影響度が所定基準のものであって、テスト対象間で依存関係があるものを、前記複数のテスト対象から抽出してテストグループを生成するグループ算出部と、
    前記テストグループに関して多変量テストを実行するテスト実行部と、
    を備えることを特徴とするテスト管理装置。
  7. テスト管理装置が、
    A/Bテストのテスト対象に関する情報を保持する記憶部を備えて、
    前記テスト対象のうち同時にA/Bテストが実行される、複数のテスト対象に関して、前記記憶部の前記情報が示す、テスト目標、当該テスト目標への影響度、及びテスト対象間の依存関係を参照し、テスト目標が一致し、当該テスト目標への影響度が所定基準のものであって、テスト対象間で依存関係があるものを、前記複数のテスト対象から抽出してテストグループを生成し、
    前記テストグループに関して多変量テストを実行する、
    ことを特徴とするテスト管理方法。
JP2020074892A 2020-04-20 2020-04-20 テスト管理システム、テスト管理装置およびテスト管理方法 Ceased JP2021174066A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020074892A JP2021174066A (ja) 2020-04-20 2020-04-20 テスト管理システム、テスト管理装置およびテスト管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020074892A JP2021174066A (ja) 2020-04-20 2020-04-20 テスト管理システム、テスト管理装置およびテスト管理方法

Publications (1)

Publication Number Publication Date
JP2021174066A true JP2021174066A (ja) 2021-11-01

Family

ID=78281801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020074892A Ceased JP2021174066A (ja) 2020-04-20 2020-04-20 テスト管理システム、テスト管理装置およびテスト管理方法

Country Status (1)

Country Link
JP (1) JP2021174066A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110727590A (zh) * 2019-10-10 2020-01-24 北京字节跳动网络技术有限公司 异常试验方案的确定方法、设备及计算机可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110727590A (zh) * 2019-10-10 2020-01-24 北京字节跳动网络技术有限公司 异常试验方案的确定方法、设备及计算机可读存储介质
CN110727590B (zh) * 2019-10-10 2023-04-18 北京字节跳动网络技术有限公司 异常试验方案的确定方法、设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
US10762113B2 (en) Conversational knowledge graph powered virtual assistant for application performance management
US10158541B2 (en) Group server performance correction via actions to server subset
US9961017B2 (en) Demand policy-based resource management and allocation system
JP4900881B2 (ja) コンピュータシステム、管理装置、及びコンピュータプログラム
CA3089327A1 (en) Dynamic application migration between cloud providers
US9594663B2 (en) Apparatus and method for collecting log information from a plurality of servers
US20150067019A1 (en) Method and system for using arbitrary computing devices for distributed data processing
US10452463B2 (en) Predictive analytics on database wait events
US20110166952A1 (en) Facilitating dynamic construction of clouds
CN109240830A (zh) 基于服务器健康以及客户端信息的应用智能请求管理
US8606905B1 (en) Automated determination of system scalability and scalability constraint factors
US20160224400A1 (en) Automatic root cause analysis for distributed business transaction
US20180176289A1 (en) Information processing device, information processing system, computer-readable recording medium, and information processing method
US11960873B2 (en) System and method for managing a model for solving issues using a set of actions performed on the client environment
US11032152B2 (en) Machine-learning based self-populating dashboard for resource utilization monitoring in hyper-converged information technology environments
WO2018116460A1 (ja) 継続的インテグレーションシステム及びリソース制御方法
EP2808792A1 (en) Method and system for using arbitrary computing devices for distributed data processing
JP5112277B2 (ja) 再現処理方法、計算機システムおよびプログラム
US10476766B1 (en) Selecting and configuring metrics for monitoring
US10176067B1 (en) On-demand diagnostics in a virtual environment
US20150332280A1 (en) Compliant auditing architecture
JP2021174066A (ja) テスト管理システム、テスト管理装置およびテスト管理方法
JP2010224979A (ja) 情報分析装置及びその方法、情報分析システム、プログラム、記憶媒体
US11551271B2 (en) Feedback service in cloud application
JP6279816B2 (ja) ストレージ監視システムおよびその監視方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231214

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240130

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20240528