JP2019075035A - ソフトウェアテスト装置および方法 - Google Patents

ソフトウェアテスト装置および方法 Download PDF

Info

Publication number
JP2019075035A
JP2019075035A JP2017202563A JP2017202563A JP2019075035A JP 2019075035 A JP2019075035 A JP 2019075035A JP 2017202563 A JP2017202563 A JP 2017202563A JP 2017202563 A JP2017202563 A JP 2017202563A JP 2019075035 A JP2019075035 A JP 2019075035A
Authority
JP
Japan
Prior art keywords
software
model
input data
output value
value range
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.)
Granted
Application number
JP2017202563A
Other languages
English (en)
Other versions
JP6937659B2 (ja
Inventor
啓伸 來間
Hironobu Kuruma
啓伸 來間
秀人 小川
Hideto Ogawa
秀人 小川
雄一郎 中川
Yuichiro Nakagawa
雄一郎 中川
伊藤 信治
Shinji Ito
信治 伊藤
佐藤 直人
Naoto Sato
直人 佐藤
智之 明神
Tomoyuki Myojin
智之 明神
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 JP2017202563A priority Critical patent/JP6937659B2/ja
Priority to CN201810835884.0A priority patent/CN109684190B/zh
Priority to GB1814758.7A priority patent/GB2568366B/en
Priority to US16/129,141 priority patent/US11055210B2/en
Publication of JP2019075035A publication Critical patent/JP2019075035A/ja
Application granted granted Critical
Publication of JP6937659B2 publication Critical patent/JP6937659B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3616Software analysis for verifying properties of programs using software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】予測不能性を有するソフトウェアが、期待通りの動作をしているかを判定するソフトウェアテスト装置を提供する。【解決手段】ソフトウェアテスト装置1は、テスト入力データ102を受け取り、ソフトウェア入力データ106とモデル入力データ108に変換するデータ変換部105と、ソフトウェア入力データに基づいてテスト対象のソフトウェアを実行し、実行結果110を出力するソフトウェア実行部107とを備える。また、ソフトウェアテスト装置1は、ソフトウェアについての参照モデル103とモデル入力データとに基づいて、ソフトウェアを実行した実行結果のモデル許容出力値範囲111を生成するモデル実行部109と、ソフトウェア実行部が出力した実行結果とモデル許容出力値範囲とに基づいて、差異情報を生成する差異解析部112と、評価基準104に基づいて、ソフトウェアの動作の判定をする判定部114とを有する。【選択図】図1

Description

本発明は、ソフトウェアテスト装置および方法に関わり、特に、入力データ値に対する出力データ値に予測不能性があるソフトウェアをテストするソフトウェアテスト装置および方法に関する。
情報処理装置の性能向上により、計算機システムは実世界と密接に接続して動作することが求められるようになった。処理対象には、例えば次の3項目が含まれる。(1)多数のセンサを使った実世界からのデータ収集、(2)多数のアクチュエータを介した実世界への作用、(3)膨大な量のデータを対象としたデータマイニング。このようなシステムでは、複数のサブシステムが連携することで、複雑に関連しあった大量のデータを処理する。実世界と密接に接続して動作するソフトウェアを設計する場合、複雑に関連しかつ大量のデータを処理するアルゴリズムを、従来のように設計者が人手で構成するのは困難である。この問題を解決するため、機械学習を使って生成した判定アルゴリズム(人工知能)を利用するソフトウェアも出現している。一般に、機械学習における「教師あり学習」では、入力値に対する出力値を定めた学習データセットを訓練データセットとテスティングデータセットに分け、前者を使って学習した結果の精度を後者により評価する。
特許文献1に記載のシステムは、機械学習を使って判定アルゴリズムを生成する際の効率的な学習方法と、学習によって構成されたアルゴリズムのテスト方法を提供する。このシステムおよび方法では、学習データセットを訓練データセットおよびテスティングデータセットに分割し、訓練データセットを用いて判定アルゴリズム(例えば人工ニューラルネットワーク)を生成するとともに、テスティングデータセットを用いて適合スコアを評価する。この後、これらデータセットのデータに遺伝的アルゴリズムを適用してデータセットを組み替え,最適の適合スコアになる訓練データセットとテスティングデータセットを共通の学習データセットから生成する。これにより、学習データセットを最適に分割する方法を与え、高精度の学習を効率良く行うことを可能にする。
特表2006−518062号公報
背景技術で述べたように、複数のサブシステムが連携することで、複雑に関連しあった大量のデータを処理するシステムを構成するソフトウェアについては、その全体の動作を把握する設計者が存在せず、ソフトウェアへの入力値に対する出力値が明確には予測できない。このようなソフトウェアは、予測不能性を持つソフトウェアである。一般に、ソフトウェアのテストは、入力値に対して設計上想定された出力値が得られることを検証する行為であり、ソフトウェアが設計通りに動作すること、すなわちソフトウェアの信頼性を、テストを通じて確認することができる。しかし、予測不能性を持つソフトウェアでは入力値に対する出力値を設計時点で決定できず、ソフトウェアが、期待通りの動作をすることを確認できるだけの十分なテストを行なうことができない。
特許文献1の技術は、機械学習により生成した判定アルゴリズムを、予め与えられたデータセットから選択したテスティングデータセットにより評価する。このため、判定アルゴリズムを利用するソフトウェアのテストで利用できる入力値と出力値も、与えられたデータセットの範囲内に限られる。これは、このようなソフトウェアに想定される入力値の一部をカバーするに過ぎず、ソフトウェアの信頼性を確保するためのテストとしては不十分である。一方、機械学習の結果は学習に依存するため入力値に対する出力値を予測することが難しく、与えられたデータセットに含まれない入力値についてのテストは先行技術では扱えない。機械学習により生成した判定アルゴリズムを利用するソフトウェアに代表される、入力値に対する出力値が設計時に決定できない予測不能性を有するソフトウェアの信頼性を確保するためには、出力値が予測不能な入力値を含む膨大な数のテストデータに基づくテストを行う必要がある。
本発明の目的は、予測不能性を有するソフトウェアが、期待通りの動作をしているかを判定するソフトウェアテスト装置および方法を提供することにある。
本発明の好ましい一例は、コンピュータにより、テスト対象であるソフトウェアへソフトウェア入力データを与え、ソフトウェアからの出力データに基づいてソフトウェアの動作の判定をするソフトウェアテスト装置であって、テスト入力データを受け取り、テスト入力データを、ソフトウェアに与えるソフトウェア入力データとモデル入力データに変換するデータ変換部と、ソフトウェア入力データを受け取り、ソフトウェア入力データに基づいてテスト対象のソフトウェアを実行し、実行結果を出力するソフトウェア実行部と、ソフトウェアについての参照モデルを受け取り、モデル入力データと、参照モデルとに基づいて、ソフトウェアを実行した実行結果の許容出力値範囲を含むモデル許容出力値範囲を生成するモデル実行部と、ソフトウェア実行部が出力した実行結果とモデル実行部が生成したモデル許容出力値範囲とに基づいて、差異情報を生成する差異解析部と、評価基準を受け取り、差異情報と評価基準に基づいて、ソフトウェアの動作の判定をする判定部とを有するソフトウェアテスト装置である。
本発明によれば、予測不能性を有するソフトウェアが、期待通りの動作をしているかを判定できるソフトウェアテスト装置および方法を得ることができる。
実施例に係るソフトウェアテスト装置の構成を示す図である。 ソフトウェアテスト装置におけるソフトウェアテスト方法を示すフロー図である。 参照モデルの記法の一例を示す図である。 評価基準の記法の一例を示す図である。 モデル許容出力値範囲の構造の一例を示す図である。 差異情報の構造の一例を示す図である。 データ変換部が行う手続き1の手順を示すフロー図である。 ソフトウェア実行部が行う手続き2の手順を示すフロー図である。 モデル実行部が行う手続き3の手順を示すフロー図である。 手続き3から呼び出される手続き3Aの手順を示すフロー図である。 手続き3Aから呼び出される手続き3Bの手順を示すフロー図である。 差異解析部が行う手続き4の手順を示すフロー図である。 一致性判定部が行う手続き5の手順を示すフロー図である。 手続き5から呼び出される手続き5Aの手順を示すフロー図である。 手続き5から呼び出される手続き5Bの手順を示すフロー図である。 実施例1における入出力データの例を示す図である。 実施例1における第1の参照モデルと第1の評価基準の記述例を示す図である。 実施例2における参照モデルの記述例を示す図である。 実施例2における評価基準の記述例を示す図である。 実施例3における入出力データの例を示す図である。 実施例3における第2の参照モデルと第2の評価基準の例を示す図である。 実施例5における入出力データの例を示す図である。 実施例5における第3の参照モデルと第3の評価基準の例を示す図である。 実施例6における入出力データの例を示す図である。
以下に、本発明の実施例を、図面を用いて詳細に説明する。
図1は、ソフトウェアテスト装置1の構成を示す図であり、テスト対象ソフトウェア101、参照モデル103、評価基準104を入力し、テスト入力データ102についてテストを行い、判定結果115を出力する。一般に、一つのテスト対象ソフトウェア101に対してテスト入力データ102は複数個あり、それらについてテストした結果を評価基準104に基づいて評価し、判定結果115を生成する。データ変換部105は、テスト入力データ102から、テスト対象ソフトウェア101の入力データとなるソフトウェア入力データ106と、参照モデルの入力データとなるモデル入力データ108を抽出する。
ソフトウェア実行部107は、ソフトウェア入力データ106のもとでテスト対象ソフトウェア101を実行し、ソフトウェア出力データ110を生成する。モデル実行部109も、期待されるソフトウェア出力データの範囲をモデル入力データ108から算出し、モデル許容出力値範囲111を生成する。差異解析部112は、ソフトウェア出力データ110が、モデル許容出力値範囲111を満たすかあるいは逸脱するかを解析し、解析結果を差異情報蓄積部113に格納する。一致性判定部114は、入力された評価基準104にしたがって差異情報蓄積部113の差異情報を評価し、判定結果115を出力する。ソフトウェアテスト装置1の各機能部は、ハードウェア資源であるコンピュータのCPU(プロセッサー)がソフトウェアを実行することで実現される。
本実施例では、利用者は、テスト対象ソフトウェア101とテスト入力データ102に加えて参照モデル103と評価基準104を用意し、テスト対象ソフトウェア101の出力値が評価基準104の下で参照モデルが許容する範囲内にあることを、ソフトウェアテスト装置を用いて検証する。
図1において、同一のテスト対象ソフトウェア101とテスト入力データ102について複数の観点からのテストを行う場合には、モデル実行部109、差異解析部112、一致性判定部114を複数用意し、同じソフトウェア出力データ110に対して複数の参照モデル103と評価基準104を用いたテストを同時に行っても良い。また、モデル許容出力値範囲111がソフトウェア出力の履歴に依存する場合には、ソフトウェア出力データ110をデータ変換部105に戻し、モデル入力データ108として利用しても良い。
図2は、ソフトウェアテスト装置1におけるソフトウェアテスト方法を示すフロー図である。ソフトウェアテスト装置1はテスト入力データ102を読み込み(202)、入力データがない(202)場合には、手続き5に示す手順で一致性判定を行い(209)、終了する(210)。
入力データがある場合、テスト入力データ102をテスト対象ソフトウェア101の入力値に変換し(204)、手続き2に示す手順でテスト対象ソフトウェア101の出力データを得る(205)。同様に、テスト入力データ102を参照モデル103の入力値に変換し(206)、手続き3に示す手順で参照モデル103のモデル許容出力値範囲111を得る(207)。
次に、ソフトウェア出力データ110とモデル許容出力値範囲111の間の差異解析を手続き4の手順で行い(208)、ステップ202に戻って次のテスト入力データ102を読み込む。
図3は、参照モデル103の記法の一例であり、利用者はこの記法に基づいて記述した参照モデル103を入力する。参照モデル103の例を、図17に示す。実施例では、計算機の動作を抽象化した形式モデルである抽象機械によって、参照モデル103を表現する。本実施例では、抽象機械の一種である有限状態機械を用いる。有限状態機械は、抽象化した計算機の状態と計算機への入力および状態が遷移するための条件ならびに計算機からの出力によって構成される。図3の記法は、実施例を具体的に記述するために用いるものであり、本実施例が利用する抽象機械の記法を限定するものではない。図3では記法を拡張BNFによって表した。ここで、「{}」は{}内の要素の0回以上の繰り返しを、「[]」は[]内の要素がなくても良いことを、「|」は「または」を、「””」はキーワードを表す。
参照モデル103は、一つ以上の遷移の並び301であり、遷移は遷移前の状態名を左辺に、一つ以上の遷移先を右辺に持つ等式302である。ここで、遷移先は条件付遷移先か無条件遷移先のいずれか303である。条件付遷移先は、入力、遷移条件、許容出力値範囲と状態名から構成され304、入力が遷移条件を満たす時、ソフトウェア出力値に期待される出力範囲を出力し、状態名の状態へ遷移することを表す。ここで、遷移条件と許容出力値範囲はなくても構わない。無条件遷移は、状態名のみから構成され305、無条件で状態名の状態へ遷移する。入力は、一つ以上の入力変数の並び306であり、入力変数は遷移条件で参照される。許容出力値範囲は、一つ以上の出力値の並び307、状態名は、任意の識別子または開始状態である308。ここで、開始状態は、モデルの動作の開始点を表す特別な識別子であり、本実施例では「S0」と表記する。参照モデル103には、許容出力値範囲の代わりに、許容しない出力値範囲を記述してもよい。
図4は、評価基準104の記法の一例であり、利用者はこの記法に基づいて記述した評価基準104を入力する。評価基準104の例を、図17に示す。図4の記法は本実施例において実施例を具体的に記述するために用いるものであり、本実施例が利用する評価基準104の記法を限定するものではない。図3と同様、図4でも記法を拡張BNFによって表した。
評価基準104は、一つ以上の重み指定の並び(401)である。重み指定は、遷移元状態名と遷移先状態名ならびに誤り重みから構成され(402)、参照モデル103上で遷移元状態名の状態から遷移先状態名の状態への遷移が起こる時、それに対応するテスト対象ソフトウェア101の出力との差異情報に付与する誤り重みを指定する。
図5は、モデル許容出力値範囲111の構造の一例を示す。この情報は、モデル実行部109が生成し、差異解析部112が利用する。モデル許容出力値範囲111は、テスト入力データ102における入力データを識別する入力番号と、遷移元状態名、遷移先状態名、許容出力値範囲、次状態名の組の並びである(501)。参照モデル103の遷移元状態名の状態に対して入力番号の入力データが遷移条件を満たす条件付遷移があるとき、遷移先状態名と出力される許容出力範囲を組にする。次状態名は遷移後に次の入力データを待つ状態の状態名であり、遷移先状態に続く無条件遷移がないときには遷移先状態名と一致する。無条件遷移があるときには、条件付遷移に到達するまで無条件遷移を繰り返し、最後の無条件遷移の状態名を次状態名とする。なお、図5の構造は本実施例において処理手続きを具体的に記述するために参照モデル103と対応付けて用いるものであり、本実施例のモデル許容出力値範囲111の構造を限定するものではない。
図6は、差異情報蓄積部113に格納される差異情報の構造の一例を示す。差異情報は差異解析部112が生成し、一致性判定部114が参照する。差異情報は、モデル許容出力値範囲111と同様、入力番号と、遷移元状態名、遷移先状態名、次状態名、差異評価値、ソフトウェア出力データ110の組の並びである(601)。モデル許容出力値範囲111の許容出力値範囲とテスト対象ソフトウェア101の出力値の差異を差異情報解析部が評価して、差異情報を生成する。遷移元状態名、遷移先状態名、次状態名は、当該モデル許容出力値範囲の遷移元状態名、遷移先状態名、次状態名と同一である。図5と同様、図6の構造は本実施例において処理手続きを具体的に記述するためにモデル許容出力値範囲111の構造ならびに評価基準104と対応付けて用いるものであり、本実施例の差異情報の構造を限定するものではない。
図7は、データ変換部105が行う処理のフローである。データ変換部105は、利用者から与えられたテスト入力データ102を読み込み(702)、処理すべきテスト入力データ102がなければ(703)、処理を終了する(708)。処理すべきテスト入力データ102が存在する場合、それをテスト対象ソフトウェア101が処理できる入力値に変換し(704)、変換した入力値をソフトウェア入力データ106としてソフトウェア実行部107に送る(705)。次に同じテスト入力データ102を参照モデル103が処理できる入力値に変換し(706)、変換した入力値をモデル入力データ108としてモデル実行部109に送る(707)。その後、ステップ702に戻って次のテスト入力データ102を読み込む。
図8は、手続き2の処理フローであり、テスト対象ソフトウェア101に入力値を与え、出力値を得る。この処理は、ソフトウェア実行部107が行う。ソフトウェア実行部107は、利用者から与えられたテスト対象ソフトウェア101を読み込む(802)。次にデータ変換部105からソフトウェア入力データ106を受け取り(803)、もし入力値がなければ(804)処理を終了する(807)。入力値があれば、入力値についてテスト対象ソフトウェア101を実行し出力値を得る(805)。得られた出力値をソフトウェア出力データ110として差異解析部112に送り(806)、ステップ803に戻って次のソフトウェア入力データ106を受け取る。
図9は、手続き3の処理フローであり、与えられた入力値に対して参照モデル103の状態を遷移させ、参照モデル103に記載されたテスト対象ソフトウェア101の出力値の要件であるモデル許容出力値範囲111を得る。この処理は、モデル実行部109が行う。この処理フローでは、処理に必要な情報を一時的に格納する変数として、現状態セットと次状態セットを使う。モデル実行部109は、利用者から与えられた参照モデル103を読み込み(902)、初期値として現状態セットに開始状態を入れ(903)、次状態セットを空にする(904)。データ変換部105からモデル入力データ108を受け取り(905)、もし入力値がなければ(906)処理を終了する(913)。入力値があれば、現状態セットの中の状態名を一つ選んで現状態セットから除き(907)、選んだ状態名を引数にして手続き3Aを行う(908)。現状態セットが空でなければ(909)ステップ907に戻り、残りの状態名について処理を繰り返す。現状態セットが空になれば、次状態セットに格納されている状態名を全て現状態セットに入れ(910)、手続き3Aが生成したモデル許容出力値範囲111を出力する(911)。現状態セットが空でなければ(912)ステップ904に戻り、処理を続行する。現状態セットが空であれば、処理を終了する(913)。
図10は、図9の手続き3から呼び出される手続き3Aの処理フローである。手続き3Aは手続き3から遷移元となる状態名を引数として受け取り、モデル許容出力値範囲111を生成する。この過程で、出力値セットを一時変数として使う。まず引数の状態名を左辺に持つ遷移を参照モデル103から選び(1002)、右辺の条件付遷移先を一つ選ぶ(1003)。条件付遷移先が参照モデル103に存在しないならば(1004)、手続き3に戻る。そうでない場合、手続き3で受け取った入力値を条件付遷移先に記載された入力変数に入れ、遷移条件を評価する(1005)。遷移条件が満たされないとき(1006)は、ステップ1003に戻って次の条件付遷移先を選ぶ。遷移条件が満たされるときは、条件付遷移先に記載された許容出力値範囲と遷移の状態名、遷移先状態名を組にして、許容出力値情報を生成する(1007)。ここで、参照モデル103に、許容しない出力値範囲が記述してある場合には、許容しない出力値範囲であることを示すマークを付ける。許容出力値情報を出力値セットに格納し(1008)、遷移先状態名を次状態名として(1009)、次状態名を引数に手続き3Bを行う(1010)。手続き3Bから戻った後に、出力値セットの許容出力値情報をモデル許容出力値範囲111に加え(1011)、ステップ1003に戻って残りの条件付遷移先について処理を行う(1003)。
図11は、図10の手続き3Aから呼び出される手続き3Bの処理フローである。手続き3Bは次状態名を引数として受け取り、無条件遷移先をたどって、次の入力データを待つ状態の状態名で次状態名を置き換える。まず引数の状態名を左辺に持つ遷移を参照モデル103から選び、無条件遷移先を選ぶ(1102)。無条件遷移先が存在しないならば(1103)、次状態名を次状態セットに加え(1107)、出力値セットの許容出力値範囲に次状態名を加えて(1108)、モデル許容出力値範囲111の組を完成し、呼び出し元に戻る。選んだ遷移に無条件遷移先が存在するならば、遷移の全ての無条件遷移先についてステップ1105から1106を行う(1104)。次状態名を無条件遷移先の遷移先状態名で置き換え(1105)、置き換えた次状態を引数として手続き3Bの処理を再帰的に行う(1106)。処理が終われば、呼び出し元に戻る(1109)。
図12は、手続き4の処理フローであり、ソフトウェア実行部107から受け取ったソフトウェア出力データ110とモデル実行部109から受け取ったモデル許容出力値範囲111を照合し、差異情報を生成して差異情報蓄積部113に格納する。この処理は、差異解析部112が行う。まずソフトウェア実行部107からソフトウェア出力データ110を受け取り(1202)、ソフトウェア出力データ110が、無いならば(1203)、処理を終了する(1211)。ソフトウェア出力データ110が、あるならば、モデル実行部109からモデル許容出力値範囲111を受け取り(1204)、受け取ったモデル許容出力値範囲111全てについてステップ1206以降を行う(1205)。ソフトウェア出力データ110が、モデル許容出力値範囲111の許容出力値範囲の範囲内にあるならば(1206)差異評価値を0とし(1207)、モデル許容出力値範囲111外ならば差異評価値を1とする(1208)。ただし、許容出力値範囲に許容しない出力値範囲であることを示すマークが付いている場合には、範囲内にあるときの差異評価値を1、範囲外ならば差異評価値を0とする。モデル許容出力値範囲111の遷移元状態名、遷移先状態名、次状態名、差異評価値、ソフトウェア出力データ110を組にして差異情報を生成し(1209)、差異情報蓄積部113に格納する(1210)。その後ステップ1202に戻り、次のソフトウェア出力データ110を受け取る。なお、本実施例では差異評価値を、ソフトウェア出力データ110が、モデル許容出力値範囲111内にあるならば0、そうでないならば1としているが、モデル許容出力値範囲111との距離に基づく差異評価値を使っても良い。
図13は、手続き5の処理フローであり、差異情報蓄積部113に格納された差異情報からテスト入力データ102を全てカバーする差異情報系列を探し出し、評価基準104のもとに評価して判定結果115を出力する。この処理は一致性判定部114が行う。この過程で、一時変数として差異情報セットを使う。一致性判定部114は、利用者から与えられた評価基準104を読み込み(1302)、次に差異情報蓄積部113から差異情報を受け取る(1303)。差異状態セットを空にし(1304)、最初の入力番号を持つ差異情報全てについてステップ1306以下を行う(1305)。まず入力番号と差異情報を引数に手続き5Aを行い(1306)、差異情報セットの全ての差異情報系列について手続き5Bを行う(1307)。ここで、差異情報セットに差異情報系列がない場合には手続き5B以下は行わず、ステップ1305の次の差異情報の処理へと進む。手続き5Bが返す判定結果115を受け取り(1308)、判定結果115を出力する(1309)。ステップ1305で最初の入力番号を持つ差異情報が存在しない場合、あるいは全ての差異情報についての処理が終了した場合には、処理を終了する(1310)。
図14は、図13の手続き5から呼び出される手続き5Aの処理フローである。手続き5Aは、テスト入力データ102を全てカバーする差異情報系列を探し出し、差異情報セットに格納する。手続き5Aは入力番号と差異情報を引数とし、入力番号が最後のテスト入力データ102の入力番号であるならば(1402)、最初の入力番号から最後の入力までリンクされた差異情報の系列を構成して差異情報セットに格納し(1408)、呼び出し元に戻る(1409)。引数の入力番号が最後の入力番号でないとき、引数の差異情報の次状態名が遷移元名に一致する次の入力番号の差異情報を得る(1403)。そのような差異情報が存在しないとき(1404)、何もしないで呼び出し元に戻る(1409)。
差異情報が存在するならば、そのような差異情報全てについてステップ1406以下を行う(1405)。引数の差異情報を前差異情報、ステップ1403で得られた差異情報を後差異情報として両者をリンクで結び(1406)、次の入力番号と後差異情報を引数として手続き5Aを再帰的に行う(1407)。その後、呼び出し元に戻る(1409)。
図15は、図13の手続き5から呼び出される手続き5Bの処理フローである。手続き5Bは、手続き5Aで生成された差異情報系列に評価基準104を適用して評価値を生成する。手続き5Bでは一時変数として処理入力番号を使い、処理中の入力番号を管理する。まず、処理入力番号の初期値を最初の入力番号とし(1502)、評価の初期値を0とする(1503)。引数として与えられた差異情報系列から処理入力番号と一致する差異情報を選ぶ(1504)。選んだ差異情報の遷移元状態名と遷移先状態名を評価基準104と照合し誤り重みを得て(1505)、差異情報の差異評価値に誤り重みをかけて評価に足し合わせる(1506)。処理入力番号が最後の入力番号ならば(1507)、評価を入力データ数で割った値を出力して(1509)呼び出し元に戻る(1510)。処理入力番号が最後の入力番号でないならば、次の入力番号を処理入力番号として(1508)ステップ1504に戻り、処理を続ける。
入力された画像を認識するソフトウェアをテスト対象ソフトウェア101とする実施例を示し、本実施例の概要を述べる。実施例の目的は、任意に与えたテスト入力データ102について、テスト対象ソフトウェア101の出力データが要件を満たすことを、評価基準104の下で評価することである。本実施例のテストは、テスト対象ソフトウェア101が、参照モデル103を満たすことの検証なので、参照モデル103は、テスト対象ソフトウェア101の信頼性の根拠を与える。
以下、実施例1の目的を達成する手順を説明する。テスト対象ソフトウェア101は、入力された対象物の画像から、対象物の状態を次の5つの区分のいずれかに判定するものとする。
L1:衝突危険あり、L2:衝突危険なし、L3:接近可能性あり、L4:接近可能性なし、L5:不明
テスト対象ソフトウェア101は、機械学習等により生成した判定アルゴリズムを有しており、対象物のどのような特徴をどのように評価して判定するのかを論理的に解析することはできないとする。すなわち、入力である対象物の画像からは出力である判定結果を予測することができない、予測不能性を持つソフトウェアであることを前提とする。
テスト対象ソフトウェア101に対する要件は、画像中の対象物が大きいときには衝突危険の有無が判定されていること、画像中の対象物が小さい時には「不明」を含めてどのような判定でもかまわないこと、両者の中間である時は「不明」以外の判定であること、とする。テスト対象ソフトウェア101が、予測不能性を持つとき、その出力値が部分的に要件を満たさなくても、短絡的にテスト不合格とすることが妥当であるとは限らない。例えば画像を認識する場合、不適切な特徴量に影響された誤判定を完全になくすことは、現実的には困難である。一方、要件と照らし合わせて誤判定の影響が大きい場合には、テスト不合格とするのが妥当である。ここでは、画像中の対象物が大きい時には誤判定の評価を厳しく、小さい時には評価を緩くするものとする。
本実施例のソフトウェアテスト装置は、テスト対象ソフトウェア101、参照モデル103および評価基準104、テスト入力データ102を入力し、判定結果115を出力する。要件は、具体的には画面の縦方向の長さhに対して画面中の対象物の縦方向の長さoが、
・h/5より小さいとき、判定値はL1,L2,L3,L4,L5のいずれでも良い、
・h/5以上でh/2より小さいとき、判定値はL1,L2,L3,L4のいずれかであること、
・h/2以上であるとき、判定値はL1,L2であること、とする。図17の1701は、この要件を図3に掲載の記法を使って記述した、第1の参照モデルの例である。例えば、第1の参照モデル1701の第1行目は、現状態名はS0である。モデル入力データ1605は、対象物の縦方向の長さoと、画面の縦方向の長さhである。遷移条件は、oがh/5より小さいことである。モデル入力データ1605が遷移条件を満たすときソフトウェア出力データ1604に期待される出力範囲である許容出力値範囲1606は、L1,L2,L3,L4,L5である。そして、モデル入力データ1605が遷移条件を満たすとき次状態名S1の状態に遷移することを表す。
評価基準104については、画像中の対象物が大きいとき判定値が要件を満たさないならば誤り重みを重く、画像中の対象物が小さい時に判定値が要件を満たさないならば誤り重みを軽くして、総合的にテスト合否を判定するものとする。このような合否判定のための重み付けを、図4に掲載の記法を使って表現する。図17の1702は、第1の評価基準の例である。テスト入力データ102の例を、図16に示す。この例では、入力番号1601が1から5の5つの画像を、テスト入力データ1602として入力するものとする。
データ変換部105は、図7に掲載の手続き1の手順で、テスト入力データ102をテスト対象ソフトウェア101の入力値と参照モデル103の入力値に変換する。本実施例のテスト対象ソフトウェア101は、テスト入力データ102から切り出した対象物の画像を入力値として受け取るものとする。一方、参照モデル103は、前述のようにテスト入力データ102の画面の高さhと対象物の高さoを入力値として受け取る。データ変換部105が出力するソフトウェア入力データ106を1603に、モデル入力データ108を1605に示す。
ソフトウェア実行部107は、図8に掲載の手続き2の手順にしたがい、データ変換部105から受け取ったソフトウェア入力データ106についてテスト対象ソフトウェア101を実行し、出力値をソフトウェア出力データ110として差異解析部112に送る。本実施例では、テスト対象ソフトウェア101は、ソフトウェア入力データ1603を入力した場合にソフトウェア出力データ1604を出力するものと仮定し、出力値をテストする。この場合、ソフトウェア実行部107が出力するソフトウェア出力データ1604は、次のようになる。
入力番号1の入力値に対しL5、
入力番号2の入力値に対しL1、
入力番号3の入力値に対しL5、
入力番号4の入力値に対しL3、
入力番号5の入力値に対しL2
モデル実行部109は、図9に掲載の手続き3の手順にしたがい、データ変換部105から受け取ったモデル入力データ108についてモデル許容出力値範囲111を生成し、差異解析部112に送る。モデル実行部109が受け取る入力値を1605に、図17に掲載の参照モデル103のもとで計算した許容出力値範囲を1606に示す。モデル実行部109が出力するモデル許容出力値範囲111は、以下である。
入力番号1 (S0, S1, {L1,L2,L3,L4,L5}, S0)
入力番号2 (S0, S3, {L1,L2}, S0)
入力番号3 (S0, S2, {L1,L2,L3,L4}, S0)
入力番号4 (S0, S2, {L1,L2,L3,L4}, S0)
入力番号5 (S0, S3, {L1,L2}, S0)
差異解析部112は、図12に掲載の手続き4の手順にしたがい、ソフトウェア実行部107が出力するソフトウェア出力データ110と、モデル実行部109が出力するモデル許容出力値範囲111を照合して差異情報を生成する。差異情報蓄積部113に格納される差異情報は、以下である。
入力番号1 (S0, S1, S0, 0, L5)
入力番号2 (S0, S3, S0, 0, L1)
入力番号3 (S0, S2, S0, 1, L5)
入力番号4 (S0, S2, S0, 0, L3)
入力番号5 (S0, S3, S0, 0, L2)
この例では、入力番号3の入力値について、テスト対象ソフトウェア101の出力値が参照モデル103の許容出力値範囲を満たしていない。
一致性判定部114は、図13に掲載の手続き5の手順にしたがい、差異情報蓄積部113に格納された差異情報から全てのテスト入力データ102をカバーする差異情報系列を探し出し、評価基準104のもとに評価して判定結果115を出力する。この例では、差異情報蓄積部113に格納されている差異情報系列は一つのみで、それは入力番号1から5をカバーしているので、この差異情報系列について1702の第1の評価基準による重み付けを行う。差異情報と適用される評価基準104を、下記に示す。
入力番号1 (S0, S1, S0, 0, L5)についてS0 -> S1 / 0.0を適用、
入力番号2 (S0, S3, S0, 0, L1)についてS0 -> S3 / 0.7を適用、
入力番号3 (S0, S2, S0, 1, L5)についてS0 -> S2 / 0.3を適用、
入力番号4 (S0, S2, S0, 0, L3)についてS0 -> S2 / 0.3を適用、
入力番号5 (S0, S3, S0, 0, L2)についてS0 -> S3 / 0.7を適用
入力番号3については、参照モデル103の許容出力値範囲を満たしていないので、図15の1506のステップにより、差異評価値1に誤り重み0.3をかけて評価は0.3となり、1509のステップで、この評価を、入力データ数である5で割った値である0.06が、判定結果115となる。この例では、テスト対象ソフトウェア101の出力値が、全てモデル許容出力値範囲111内にあるとき、判定結果115が0になる。本実施例では、0でない判定結果115が得られた場合にテスト合格とするか不合格とするかはソフトウェアテスト装置の利用者が判断するものとし、ソフトウェア装置は、上記の判定結果115を出力する。
なお、ここで例示したテスト入力データ102と、それに対するテスト対象ソフトウェア101の出力データは、本実施例の手順を説明するために仮定したものである。上記の手順によれば、任意のテスト入力データ102に対し、テスト対象ソフトウェア101の実行前には出力データが不明である場合についても、テストを行うことができる。
以上の過程により、実施例1は、任意に与えたテスト入力データ102について、テスト対象ソフトウェア101の出力データが、要件を満たすことを、評価基準104の下で評価することを可能にし、テスト対象ソフトウェア101の信頼性の検証に寄与する。参照モデル103は、テスト対象ソフトウェア101の信頼性の根拠を与える。
実施例1は、独立した画像をテスト入力データ102とするが、実施例2は、時系列にしたがって順序付けられた画像について、参照モデル103を記述してテストをする例である。このような参照モデル103の例を、図18に示す。参照モデル103を有限状態機械で表記することから、この例では順序付けを状態間の遷移を使って表現した。状態S0は開始状態、S1は対象物が小さく現れる状態、S2はS1の後に対象物が大きく現れる状態、S3はS2の後に対象物がさらに大きく現れる状態を意味する。
1801は、開始状態の後に最初に対象物が小さく現れることを表し、その後に対象物はさらに大きくなる1802か、大きさが変わらない1803か、のいずれかである。1802で対象物が大きくなった場合、その後に対象物はさらに大きくなる1804か、大きさが変わらない1805か、小さくなる1806かのいずれかである。対象物がさらに大きくなった場合1804、その後に対象物の大きさが変わらない1807か、小さくなる1808のいずれかである。
図19は、このような順序付けられた入力データに対して、テスト対象ソフトウェア101の出力値が、モデル許容出力値範囲111を満たさないときの誤り重みを規定した、評価基準104の例である。この参照モデル103のもとでは、順序付けにしたがわないテスト入力データ102は不適切であるとして、実施例2のソフトウェアテスト装置はテストを拒絶する。例えば、S1の対象物が現れた状態からS3の対象物が画面の半分以上に現れる状態への直接の遷移は参照モデル103には存在せず、対象物が小さく現れるテスト入力データ102の次に対象物が大きく現れるテスト入力データ102は不適切と判断する。すなわち、このようなテスト入力データ102が与えられた場合、一致性判定部114の手続き5においてテスト入力データ102を全てカバーする差異情報系列が存在せず、判定結果115を出力しない。実施例2によれば、時系列にしたがって順序付けられたテスト用入力データを、テスト対象のソフトウェアに提供する場合において対象ソフトウェアのテストができる効果がある。
図20および図21は、参照モデル103と評価基準104を複数入力してテスト対象ソフトウェア101のテストを並行して行う実施例3を説明する図である。図20は、実施例3における入出力データの例を示し、テスト入力データ2001、ソフトウェア出力データ2002、第1の参照モデル用の第1モデル入力値2003、第1の参照モデル用の許容出力値範囲a2004、第2の参照モデル用の第2モデル入力値2005、第2の参照モデル用の許容出力値範囲b2006からなる。実施例3では、実施例1の参照モデル103と評価基準(以下では、第1の参照モデルと第1の評価基準と呼ぶ)に加えて、図21に示す第2の参照モデル2101と第2の評価基準2102を入力する。
第2の参照モデル2101は対象物の進行方向の観点から、対象物が横方向を向いていると推定される場合にはソフトウェア出力値がL2(衝突危険なし)かL4(接近可能性なし)かL5(不明)であることを求める。すなわち、画面中の対象物の横方向の長さwに対し縦方向の長さoが、
・w/2より小さいとき、ソフトウェア出力データ110はL2,L4,L5のいずれかであること、
・w/2以上であるとき、ソフトウェア出力データ110はL1,L2,L3,L4,L5のいずれかであること、とする。第2の参照モデル2101では、T0が開始状態である。
図20に示すように、実施例3では、一連のテスト入力データ2001についてソフトウェア出力データ2002を得ると同時に、第1と第2の参照モデルに関して並行してモデル実行部109から第1の参照モデルの許容出力値範囲2004と第2の参照モデルの許容出力値範囲2006を得る。差異解析と一致性判定は、各参照モデル103の許容出力値範囲について行い、第1の参照モデルについては実施例1に示したとおり判定結果115として、0.06が得られる。
第2の参照モデルについても同様の手順を適用すると、4番目のテスト入力データ2001に対してソフトウェア出力データ2002が許容出力値範囲内にないことから、第2の評価基準の重み0.5を適用し、判定結果115として、0.1が得られる。テストの合否は、これら2つの異なる観点からの判定結果115に基づいて決定する。実施例3によれば、複数の参照モデルと評価基準に基づいた判定結果を得ることができるので、判定結果の信頼性を高めることができる。
本実施例は、参照モデル103を、テスト対象ソフトウェア101から導出することで参照モデル103の入力を省略する実施例である。図1のソフトウェアテスト装置を用いて、次の二段階でテスト対象ソフトウェア101をテストする。
(1)参照モデル導出段階
参照モデル導出のためのテスト入力データ102と参照モデル103の雛形を用意し、テスト対象ソフトウェア101と評価基準104のもとで参照モデル103を導出する。
(2)テスト対象ソフトウェア101のテスト段階
導出された参照モデル103を使い、テスト対象ソフトウェア101について実施例1に記載のテストを行う。
ここで、参照モデル導出段階では、モデル実行部109が行う手続き3の手順を示すフロー図(図9)のステップ902で、参照モデル103の替わりに参照モデル雛形を読み込む。また、一致性判定部114が行う手続き5の手順を示すフロー図(図13)のステップ1309で、判定結果115を出力する替わりに、判定結果115を最小にする差異情報系列のソフトウェア出力データ110から許容出力値範囲307を算出して参照モデル103を導出する。以下、実施例1で示したテスト対象ソフトウェア101から参照モデル103を導出する過程を示す。
参照モデル雛形の一例を、下記に示す。
S0 = (o, h) o < h/5 (L1,L2,L3,L4,L5) -> S1
S1 = -> S0
S0 = (o, h) h/5 <= o < h/2 (L1,L2,L3,L4,L5) -> S2
S2 = -> S0
S0 = (o, h) h/2 <= o (L1,L2,L3,L4,L5) -> S3
S3 = -> S0
この例では、雛形の中の許容出力値範囲をテスト対象ソフトウェア101の出力値を使って絞り込む。評価基準104は、図17と同一とする。また、参照モデル103の導出のためのテスト入力データ102として、図16の入力番号1から5のデータを利用する。
これらの5個のテスト入力データ102に対して参照モデル雛形が出力するモデル許容出力値範囲111は、
入力番号1(S0,S1,{L1,L2,L3,L4,L5},S0)
入力番号2(S0,S3,{L1,L2,L3,L4,L5},S0)
入力番号3(S0,S2,{L1,L2,L3,L4,L5},S0)
入力番号4(S0,S2,{L1,L2,L3,L4,L5},S0)
入力番号5(S0,S3,{L1,L2,L3,L4,L5},S0)
である。一方、ソフトウェア出力データ110は、図16に示したとおり入力番号1から5まで順に、L5,L1,L5,L3,L2である。
これから、差異情報蓄積部113には次の差異情報系列が格納される。
入力番号1(S0,S1,S0,0,L5)
入力番号2(S0,S3,S0,0,L1)
入力番号3(S0,S2,S0,0,L5)
入力番号4(S0,S2,S0,0,L3)
入力番号5(S0,S3,S0,0,L2)
この差異情報系列は、判定結果115を最小にするので、一致性判定部114はソフトウェア出力データ110から参照モデル103の許容出力値範囲307を算出して参照モデル103を導出する。これは、遷移元状態名と遷移先状態名を参照モデル雛形と照合し、ソフトウェア出力データ110から参照モデルの許容出力値範囲307を算出することで行える。
このようにして、下記の参照モデル103をテスト対象ソフトウェア101から導出できる。
S0 = (o, h) o < h/5 (L5) -> S1
S1 = -> S0
S0 = (o, h) h/5 <= o < h/2 (L3, L5) -> S2
S2 = -> S0
S0 = (o, h) h/2 <= o (L1, L2) -> S3
S3 = -> S0
テスト対象ソフトウェア101のテスト段階では、導出した参照モデルを図1の参照モデル103として使い、新たなテスト入力データ102についてテスト対象ソフトウェア101をテストする。この時、テスト対象ソフトウェア101と評価基準104は、参照モデル導出段階のものと基本的に同一である。実施例4によれば、雛形の参照モデルに基づいて、テスト用の参照モデルを導出できるため、たとえば、元のソフトウェアをバージョンアップしたソフトウェアをテストする場合に、参照モデル103を作成する手間を省力化することができる
テスト対象ソフトウェア101の出力値の一部を、データ変換部105を介して参照モデルのモデル入力データ2205として利用する実施例5を、図22、図23を用いて説明する。図22は、入力番号2201、テスト入力データ2202、ソフトウェア出力データ2204、モデル入力データ2205、許容出力値範囲2206からなる入出力データの例を示す。
実施例5は、手書きの数字を識別する例であり、識別対象は西暦1990年から2009年までの4桁の数字である。テスト入力データ2202に対するテスト対象ソフトウェア101の出力値は、L0:0,L1:1,L2:2,L3:3,L4:4,L5:5,L6:6,L7:7,L8:8,L9:9のいずれかである。第3の参照モデルを図23に示す。開始状態はS0であり、モデル入力データ2205であるcが、与えられると、その値に関わらず許容出力値範囲2206は、L1、L2を出力し、状態S1に遷移する(2301)。これは、最初の数字は1または2と識別されなければならないことを示す。
状態S1におけるcがL1であれば許容出力値範囲2206はL9のみであり、状態S2に遷移する(2302)。状態S2におけるモデル入力データcがL9であれば、許容出力値範囲2206はL9のみであり、状態S3に推移する(2303)。状態S3におけるモデル入力データcがL9であれば、許容出力値範囲2206はL0からL9であり、状態S4に推移する(2304)。状態S4は、無条件に状態S0に推移する(2305)。
一方、状態S1におけるモデル入力データ2205であるcがL2であれば、許容出力値範囲2206はL0のみであり、状態S5に遷移する(2306)。状態S5におけるモデル入力データcがL0であれば、許容出力値範囲2206はL0のみであり、状態S6に推移する(2307)。状態S6におけるモデル入力データcがL0であれば、許容出力値範囲2206はL0からL9であり、状態S7に推移する(2308)。状態S7は、無条件に状態S0に推移する(2309)。もしソフトウェア出力値が、第3の参照モデルの許容出力値範囲内にない場合、次のテスト入力データ2202において参照モデルの入力データ値が遷移条件を満たさなくなるので、テストを終了する。
この時、一致性判定部114の手続き5においてテスト入力データ2202を全てカバーする差異情報系列が存在せず、判定結果115は、出力しない。なお、テスト終了までの差異情報系列について判定結果115を出力するよう手続き5を変更すると、図23の第3の評価基準から図15のステップ1509の効果により、テスト終了までに認識した数字の数に反比例して低い(適合性が高い)判定値が出力される。
図22は、4つの手書き数字から構成されるテスト入力データ2202に対する、実施例5によるテストの概略である。まず、入力番号1のテスト入力データ2202に対して、データ変換部105は、テスト開始を示すダミーの入力データ値を生成してモデル実行部109に送り、モデルの状態をS0からS1へと遷移させるとともに、許容出力値範囲L1、L2を得る。一方、ソフトウェア実行部107では、入力番号1のテスト入力データ2202に対してソフトウェア出力データ2204としてL1を得る。これ以降、データ変換部105は、ソフトウェア出力データ2204を参照モデル103のモデル入力データ2205として利用する。
すなわち、入力番号2のテスト入力データ2202について参照モデル103のモデル入力データ2205は、L1であり、参照モデル103から許容出力値範囲L9を得る。一方、入力番号2のテスト入力データ2202についてソフトウェア出力データ2204が、L9であれば、許容出力値範囲内にある。このソフトウェア出力データ2204を、入力番号3のテスト入力データ2202に対する参照モデル103のモデル入力データ2205として利用する。このようにして4つの手書き数字が全て許容出力値範囲内にあれば、評価基準104に基づいて判定結果115として、0が得られる。
この実施例では、図1のソフトウェア出力データ110をデータ変換部105に送り、モデル入力データ108を作成する。一方、テスト入力データ102の情報は、テスト開始を示す最初のダミーデータを除き、モデル入力データ108の作成には使っていない。実施例5によれば、テスト入力データ102から直接に、モデル入力データ108を作成することが困難な場合、テスト対象ソフトウェア101を、モデル入力データ108を作成する手段として利用することができる。
差異情報蓄積部113に蓄積した差異情報を解析し、テスト入力データとして利用する場合の実施例を実施例6として説明する。図24は、実施例6における入出力データの例を示し、入力番号2401、テスト入力データ2402、ソフトウェア入力データ2403、ソフトウェア出力データ2404、モデル入力データ2405、許容出力値範囲2406からなる。実施例1では、入力番号1から入力番号5までのテスト入力データ2402に対するテストが終わった後、差異情報を解析して入力番号3のテスト入力データ2402に対するソフトウェア出力データ2404が、許容出力値範囲2406内には無いことが分かる。
そこで、実施例6では、入力番号3に類似するテストを重点的に行うため、入力番号3の入力データをわずかに変形したテスト入力データ310,312,313を一致性判定部114において生成し、追加入力データとしてテスト入力データ102に追加する。図24は、入力番号3のテスト入力データについて、画像の拡大(入力番号310、312)と縮小(入力番号311)を行った例である。実施例6によれば、許容出力値範囲2406の範囲外のテスト入力データについては、テスト入力データを追加できる。そのため、許容出力値範囲外となった場合のテスト入力データについて、深く掘り下げたテストをすることできる。
1:ソフトウェアテスト装置、101:テスト対象ソフトウェア、102:テスト入力データ、103:参照モデル、104:評価基準、105:データ変換部、106:ソフトウェア入力データ、107:ソフトウェア実行部、108:モデル入力データ、109:モデル実行部、110:ソフトウェア出力データ、111:モデル許容出力値範囲、112:差異解析部、113:差異情報蓄積部、114:一致性判定部、115:判定結果

Claims (13)

  1. コンピュータにより、テスト対象であるソフトウェアへソフトウェア入力データを与え、前記ソフトウェアからの出力データに基づいて前記ソフトウェアの動作の判定をするソフトウェアテスト装置であって、
    テスト入力データを受け取り、前記テスト入力データを、前記ソフトウェアに与える前記ソフトウェア入力データとモデル入力データに変換するデータ変換部と、
    前記ソフトウェア入力データを受け取り、前記ソフトウェア入力データに基づいてテスト対象のソフトウェアを実行し、実行結果を出力するソフトウェア実行部と、
    前記ソフトウェアについての参照モデルを受け取り、前記モデル入力データと、前記参照モデルとに基づいて、前記ソフトウェアを実行した実行結果の許容出力値範囲を含むモデル許容出力値範囲を生成するモデル実行部と、
    前記ソフトウェア実行部が出力した実行結果と前記モデル実行部が生成した前記モデル許容出力値範囲とに基づいて、差異情報を生成する差異解析部と、
    評価基準を受け取り、前記差異情報と前記評価基準に基づいて、前記ソフトウェアの動作の判定をする判定部とを有することを特徴とするソフトウェアテスト装置。
  2. 請求項1に記載のソフトウェアテスト装置において、前記テスト入力データは、時系列に順序付けられたデータであり、前記参照モデルには、状態間の遷移で順序付けが記述されており、前記テスト入力データの順序に従い、前記ソフトウェア実行部が出力した実行結果と、前記モデル許容出力値範囲とに基づいて、前記差異解析部が前記差異情報を生成することを特徴とするソフトウェアテスト装置。
  3. 請求項1に記載のソフトウェアテスト装置において、前記参照モデルには、現状態名、前記モデル入力データ、遷移条件、前記実行結果の出力値範囲、前記遷移条件を満たした場合の次状態名が記述されており、前記出力値範囲は、前記ソフトウェアを実行した前記実行結果の許容出力値範囲もしくは許容しない出力値範囲であり、
    前記モデル実行部は、
    前記モデル入力データと前記参照モデルに基づいて、前記遷移条件を満たした場合には前記現状態名と前記次状態名に基づいて、前記モデル許容出力値範囲を生成し、
    前記差異解析部は、
    前記モデル許容出力値範囲と、前記ソフトウェアを実行した前記実行結果とに基づいて、前記差異情報を生成することを特徴とするソフトウェアテスト装置。
  4. 請求項1に記載のソフトウェアテスト装置において、前記参照モデルは、第1の参照モデルと第2の参照モデルを有し、前記評価基準は、第1の評価基準と第2の評価基準を有し、
    前記判定部は、
    前記第1の参照モデルと前記第1の評価基準に基づいた第1の判定結果と、前記第2の参照モデルと前記第2の評価基準に基づいた第2の判定結果とを出力することを特徴とするソフトウェアテスト装置。
  5. 請求項1に記載のソフトウェアテスト装置において、前記モデル実行部が、第1の参照モデルと前記モデル入力データに基づいて、第1のモデル許容出力値範囲を生成し、
    前記差異解析部は、前記ソフトウェア実行部が出力した実行結果と前記第1のモデル許容出力値範囲とに基づいて、複数の前記テスト入力データに対応した第1の差異情報からなる差異情報系列を生成し、
    前記判定部が、前記差異情報系列と第1の判定基準に基づいて、前記テスト入力データに対応した許容出力値範囲を算出し、前記許容出力値範囲を含んだ第2の参照モデルを導出し、
    前記モデル実行部が、前記第2の参照モデルと、前記モデル入力データに基づいて第2のモデル許容出力値範囲を生成し、
    前記差異解析部が、前記ソフトウェア実行部が出力した実行結果と前記第2のモデル許容出力値範囲に基づいて、第2の差異情報を生成し、
    前記判定部が、前記第2の差異情報と前記第1の判定基準に基づいて、前記ソフトウェアの動作の判定をすることを特徴とするソフトウェアテスト装置。
  6. 請求項1に記載のソフトウェアテスト装置において、前記ソフトウェア実行部が出力した実行結果を前記モデル入力データとすることを特徴とするソフトウェアテスト装置。
  7. 請求項1に記載のソフトウェアテスト装置において、前記ソフトウェア実行部が出力した実行結果が前記許容出力値範囲の範囲外の場合には、前記判定部が、範囲外となった前記テスト入力データに基づいて、新たな前記テスト入力データを生成することを特徴とするソフトウェアテスト装置。
  8. 請求項1に記載のソフトウェアテスト装置において、テスト対象である前記ソフトウェアは、入力データに対する出力データに予測不能性があり出力データをソフトウェア実行前に決定できないソフトウェアであることを特徴とするソフトウェアテスト装置。
  9. コンピュータにより、テスト対象であるソフトウェアへソフトウェア入力データを与え、前記ソフトウェアからの出力データに基づいて前記ソフトウェアの動作の判定をするソフトウェアテスト方法であって、
    テスト入力データを受け取り、前記テスト入力データから、前記ソフトウェアに与える前記ソフトウェア入力データとモデル入力データを生成し、
    前記ソフトウェア入力データを受け取り、前記ソフトウェア入力データに基づいてテスト対象のソフトウェアを実行して、実行結果を出力し、
    前記ソフトウェアについての参照モデルを受け取り、前記モデル入力データと、前記参照モデルとに基づいて、前記実行結果の許容出力値範囲を含むモデル許容出力値範囲を生成し、
    前記実行結果と前記モデル許容出力値範囲とに基づいて、差異情報を生成し、
    評価基準を受け取り、前記差異情報と前記評価基準に基づいて、前記ソフトウェアの動作の判定をすることを特徴とするソフトウェアテスト方法。
  10. 請求項9に記載のソフトウェアテスト方法において、第1の参照モデルを受け取り、第1のモデル入力データと、前記第1の参照モデルとに基づいて、第1のモデル許容出力値範囲を生成し、
    前記実行結果と前記第1のモデル許容出力値範囲とに基づいて、第1の差異情報を生成し、
    第1の評価基準を受け取り、前記第1の差異情報と前記第1の評価基準とに基づいて、第1の判定をし、
    第2の参照モデルを受け取り、前記第1のモデル入力データと、前記第2の参照モデルとに基づいて、第2のモデル許容出力値範囲を生成し、
    前記実行結果と前記第2のモデル許容出力値範囲とに基づいて、第2の差異情報を生成し、
    第2の評価基準を受け取り、前記第2の差異情報と前記第2の評価基準とに基づいて、第2の判定をすることを特徴とするソフトウェアテスト方法。
  11. 請求項9に記載のソフトウェアテスト方法において、第1の参照モデルと前記モデル入力データに基づいて、第1のモデル許容出力値範囲を生成し、
    前記実行結果と前記第1のモデル許容出力値範囲とに基づいて、複数の前記テスト入力データに対応した第1の差異情報からなる差異情報系列を生成し、
    前記差異情報系列に基づいて、前記テスト入力データに対応した許容出力値範囲を算出し、前記許容出力値範囲を含んだ第2の参照モデルを導出し、
    前記第2の参照モデルと、前記モデル入力データに基づいて第2のモデル許容出力値範囲を生成し、
    前記実行結果と前記第2のモデル許容出力値範囲とに基づいて、第2の差異情報を生成し、前記評価基準を受け取り、前記第2の差異情報と前記評価基準とに基づいて、前記ソフトウェアの動作の判定をすることを特徴とするソフトウェアテスト方法。
  12. 請求項9に記載のソフトウェアテスト方法において、前記実行結果が前記許容出力値範囲の範囲外の場合には、前記テスト入力データの追加データを生成することを特徴とするソフトウェアテスト方法。
  13. 請求項9に記載のソフトウェアテスト方法において、テスト対象である前記ソフトウェアは、入力データに対する出力データに予測不能性があり出力データをソフトウェア実行前に決定できないソフトウェアであることを特徴とするソフトウェアテスト方法。
JP2017202563A 2017-10-19 2017-10-19 ソフトウェアテスト装置および方法 Active JP6937659B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2017202563A JP6937659B2 (ja) 2017-10-19 2017-10-19 ソフトウェアテスト装置および方法
CN201810835884.0A CN109684190B (zh) 2017-10-19 2018-07-26 软件测试装置和方法
GB1814758.7A GB2568366B (en) 2017-10-19 2018-09-11 Software test equipment and software testing method
US16/129,141 US11055210B2 (en) 2017-10-19 2018-09-12 Software test equipment and software testing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017202563A JP6937659B2 (ja) 2017-10-19 2017-10-19 ソフトウェアテスト装置および方法

Publications (2)

Publication Number Publication Date
JP2019075035A true JP2019075035A (ja) 2019-05-16
JP6937659B2 JP6937659B2 (ja) 2021-09-22

Family

ID=63921256

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017202563A Active JP6937659B2 (ja) 2017-10-19 2017-10-19 ソフトウェアテスト装置および方法

Country Status (4)

Country Link
US (1) US11055210B2 (ja)
JP (1) JP6937659B2 (ja)
CN (1) CN109684190B (ja)
GB (1) GB2568366B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021100597A1 (ja) * 2019-11-22 2021-05-27 有人宇宙システム株式会社 人工知能システムの安全性検証システム、安全性検証方法、および安全性検証プログラム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377526A (zh) * 2019-07-31 2019-10-25 赛汇检测(广州)有限公司 一种ai智能软件的测试方法
CN111027277B (zh) * 2019-11-12 2024-07-05 天津大学 一种软硬件协同的验证方法
US11010286B1 (en) 2020-02-18 2021-05-18 International Business Machines Corporation Software testing with machine learning models
CN111506514B (zh) * 2020-07-01 2020-10-27 深圳云步互娱网络科技有限公司 一种应用于消除类游戏的智能测试方法及系统
CN112560393B (zh) * 2020-12-17 2023-01-24 中科芯云微电子科技有限公司 Eda软件工具的比对验证方法及装置
US11874931B2 (en) * 2021-02-11 2024-01-16 Bank Of America Corporation Electronic system for identifying faulty code and vulnerabilities in software programs using linked evaluation tools
CN115113921B (zh) * 2022-08-29 2022-11-08 云账户技术(天津)有限公司 代码重构价值的评估方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0713809A (ja) * 1993-06-28 1995-01-17 Nec Corp プログラム評価方式
JP2007058615A (ja) * 2005-08-25 2007-03-08 Advanced Telecommunication Research Institute International 行動指針決定装置及びコンピュータプログラム
JP2015005189A (ja) * 2013-06-21 2015-01-08 株式会社オートネットワーク技術研究所 Ecu評価装置、コンピュータプログラム及びecu評価方法
JP2016115175A (ja) * 2014-12-16 2016-06-23 株式会社東芝 ソフトウェアテスト装置およびソフトウェアテストプログラム
JP2016153984A (ja) * 2015-02-20 2016-08-25 株式会社デンソーアイティーラボラトリ ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置、検出方法、および、車両

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7711662B2 (en) 2003-01-15 2010-05-04 Bracco Imaging S.P.A. System and method for optimization of a database for the training and testing of prediction algorithms
US7979849B2 (en) * 2004-10-15 2011-07-12 Cisco Technology, Inc. Automatic model-based testing
US7908596B2 (en) * 2007-01-05 2011-03-15 International Business Machines Corporation Automatic inspection of compiled code
US8595559B2 (en) * 2007-08-23 2013-11-26 International Business Machines Corporation Method and apparatus for model-based testing of a graphical user interface
US20110145653A1 (en) * 2008-08-15 2011-06-16 Verum Holding B.V. Method and system for testing complex machine control software
US8549476B2 (en) * 2009-07-30 2013-10-01 Hewlett-Packard Development Company, L.P. Comparison of result of program operation to result of an operation of a different version of the program
US20130007772A1 (en) * 2011-06-28 2013-01-03 Unisys Corporation Method and system for automated system migration
US8930765B2 (en) * 2012-07-31 2015-01-06 Oracle International Corporation Systems and methods for feedback driven regression testing
US9317410B2 (en) * 2013-03-15 2016-04-19 International Business Machines Corporation Testing functional correctness and idempotence of software automation scripts
JP5894954B2 (ja) * 2013-03-22 2016-03-30 株式会社日立製作所 テストケース生成方法、テストケース生成装置およびプログラム
US9310433B2 (en) * 2014-04-18 2016-04-12 Breker Verification Systems Testing SOC with portable scenario models and at different levels

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0713809A (ja) * 1993-06-28 1995-01-17 Nec Corp プログラム評価方式
JP2007058615A (ja) * 2005-08-25 2007-03-08 Advanced Telecommunication Research Institute International 行動指針決定装置及びコンピュータプログラム
JP2015005189A (ja) * 2013-06-21 2015-01-08 株式会社オートネットワーク技術研究所 Ecu評価装置、コンピュータプログラム及びecu評価方法
JP2016115175A (ja) * 2014-12-16 2016-06-23 株式会社東芝 ソフトウェアテスト装置およびソフトウェアテストプログラム
JP2016153984A (ja) * 2015-02-20 2016-08-25 株式会社デンソーアイティーラボラトリ ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、検出装置、検出方法、および、車両

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021100597A1 (ja) * 2019-11-22 2021-05-27 有人宇宙システム株式会社 人工知能システムの安全性検証システム、安全性検証方法、および安全性検証プログラム
JPWO2021100597A1 (ja) * 2019-11-22 2021-05-27
KR20220034246A (ko) * 2019-11-22 2022-03-17 유우징 우쮸우 시스템 가부시키가이샤 인공 지능 시스템의 안전성 검증 시스템, 안전성 검증 방법, 및 안전성 검증 프로그램
KR102442416B1 (ko) 2019-11-22 2022-09-14 유우징 우쮸우 시스템 가부시키가이샤 인공 지능 시스템의 안전성 검증 시스템, 안전성 검증 방법, 및 안전성 검증 프로그램
US11593253B2 (en) 2019-11-22 2023-02-28 Japan Manned Space Systems Corporation Safety verification system for artificial intelligence system, safety verification method, and safety verification program

Also Published As

Publication number Publication date
CN109684190A (zh) 2019-04-26
CN109684190B (zh) 2022-02-22
GB201814758D0 (en) 2018-10-24
US11055210B2 (en) 2021-07-06
JP6937659B2 (ja) 2021-09-22
GB2568366A (en) 2019-05-15
GB2568366B (en) 2020-04-08
US20190121722A1 (en) 2019-04-25

Similar Documents

Publication Publication Date Title
JP2019075035A (ja) ソフトウェアテスト装置および方法
US20100235814A1 (en) Apparatus and a method for generating a test case
JP7353946B2 (ja) アノテーション装置および方法
CN109491905A (zh) 前端测试方法、装置及电子设备
JP4418591B2 (ja) 技術システムの予め設定された特性と第1の特性とを比較するための方法及び装置
CN110737818A (zh) 网络发布数据处理方法、装置、计算机设备和存储介质
CN110287104A (zh) 测试用例生成方法、装置、终端及计算机可读存储介质
CN112686317A (zh) 神经网络训练方法、装置、电子设备及存储介质
CN110533184B (zh) 一种网络模型的训练方法及装置
CN109743200B (zh) 基于资源特征的云计算平台计算任务成本预测方法及系统
CN113297061A (zh) 测试用例生成方法、装置、系统、离线服务器及存储介质
CN115016950B (zh) 一种基于多线程模型的数据分析方法及系统
JPH1063537A (ja) プロパティ検証方法および装置
CN112733454B (zh) 一种基于联合学习的设备预测性维护方法及装置
Runeson et al. A classification scheme for studies on fault-prone components
CN114237182A (zh) 机器人调度方法及系统
US20220147850A1 (en) Hypothesis verification apparatus, hypothesis verification, and computer-readable recording medium
CN113569053A (zh) 用于创建知识图谱的计算机实现的方法和设备
CN113408562A (zh) 一种模型训练的样本增强方法、装置与系统
KR20200021132A (ko) 인공지능을 이용한 예측 방법
Tvardovskii et al. Testing systems of interacting timed finite state machines with the guaranteed fault coverage
CN105160163B (zh) 一种用于机组的覆盖度测试方法、装置和系统
KR102444495B1 (ko) 영상 인식 검출기 및 그 동작방법
CN112651412A (zh) 基于深度学习的多标签分类方法、装置以及存储介质
CN115796228B (zh) 算子融合方法、装置、设备以及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200325

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210416

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210803

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210831

R150 Certificate of patent or registration of utility model

Ref document number: 6937659

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150