JP6857598B2 - カバレッジテスト支援装置およびカバレッジテスト支援方法 - Google Patents

カバレッジテスト支援装置およびカバレッジテスト支援方法 Download PDF

Info

Publication number
JP6857598B2
JP6857598B2 JP2017248710A JP2017248710A JP6857598B2 JP 6857598 B2 JP6857598 B2 JP 6857598B2 JP 2017248710 A JP2017248710 A JP 2017248710A JP 2017248710 A JP2017248710 A JP 2017248710A JP 6857598 B2 JP6857598 B2 JP 6857598B2
Authority
JP
Japan
Prior art keywords
coverage
test
neurons
value
index
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.)
Active
Application number
JP2017248710A
Other languages
English (en)
Other versions
JP2019114158A (ja
Inventor
佐藤 直人
直人 佐藤
智之 明神
智之 明神
雄一郎 中川
雄一郎 中川
啓伸 來間
啓伸 來間
秀人 野口
秀人 野口
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 JP2017248710A priority Critical patent/JP6857598B2/ja
Priority to EP18214895.7A priority patent/EP3506104B1/en
Priority to US16/230,803 priority patent/US10789155B2/en
Publication of JP2019114158A publication Critical patent/JP2019114158A/ja
Application granted granted Critical
Publication of JP6857598B2 publication Critical patent/JP6857598B2/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/3676Test management for coverage analysis
    • 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/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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
    • G06N3/084Backpropagation, e.g. using gradient descent

Description

本発明は、カバレッジテスト支援装置およびカバレッジテスト支援方法に関するものであり、具体的には、機械学習によって作成した任意のプログラムのバグを、効率的に検出可能とする技術に関する。
従来、プログラムのテストにおいては、発見しにくいバグ(ある入力に対して、期待する出力が得られないこと)を検出するための手段として、カバレッジテストが用いられている。
カバレッジテストでは、テスト対象となるプログラムの実行パターンを、カバレッジと呼ばれる指標(以後、カバレッジ指標)で定量的に定義する。そして、そのカバレッジ指標の値が向上するようテストを重ねることで、上記実行パターンの確認をできる限り網羅的なものとする。
そうしたテスト対象となるプログラムのうち、従来の手続き型のプログラムにおいては、IF文等の条件分岐に基づくカバレッジ指標が、バグ検出に有効であると知られている。また、カバレッジテストにあたっては、カバレッジ率100%の達成に必要なテストケース数を、テスト対象プログラムの制御フローから予め決定できる。さらに、例えば、c0⊂c1⊂c2と、カバレッジ指標の間は(概ね)包含関係にある。そしてテストケース数の増加に比例して、バグ検出可能性も向上する。つまり、従来の手続型のプログラムに関しては、各カバレッジ指標の有効性はカバレッジテスト実施前に明白であった。
しかし、ニューラルネットワーク等の機械学習によって作成されたプログラムに関して、従来のカバレッジテストを行った場合、上記条件分岐に基づくカバレッジ指標の値は、常に100%になってしまう。よって、機械学習によって作成されたプログラムにおいては、従来のカバレッジ指標に基づくカバレッジテストは有効ではない。
そこで、ニューラルネットワークで作成したプログラム向けのカバレッジ指標や、そのカバレッジ指標を向上するためのテスト入力値の自動生成方法が提案されている(非特許文献1参照)。
また他にも、カバレッジテストに関する従来技術として、例えば、ハードウェア及びソフトウェアを協調させて論理検証を行う論理検証システムであって、乱数テストデータ生成部と、ソフトウェアカバレッジ情報出力部と、ハードウェアカバレッジ情報出力部とを備え、論理検証実行時のカバレッジ出力情報の変化から、テストデータの有効性を評価し、有効なテストデータのみを選別して蓄積し、テスト再実行時は、有効なテストデータのみ再実行することにより検証効率を向上し、論理検証期間を短縮することを特徴とする論理検証システム(特許文献1参照)などが提案されている。
また、対象プログラムの仕様情報に基づいて入力条件を生成する入力条件生成手段と、該入力条件に基づいて、前記対象プログラムに適用するテスト技法を決定するテスト技法決定手段と、前記決定したテスト技法による前記対象プログラムのテストパターンを生成するテストパターン生成手段と、を有することを特徴とするソフトウェア試験支援システム(特許文献2参照)なども提案されている。
DeepXplore:Automated Whitebox Testing of Deep Learning Systems、SOSP’17、コロンビア大
特開2010−146037号公報 特開2015−200984号公報
ところが、上述の従来技術が提案する、ニューラルネットワークで作成したプログラム向けのカバレッジテスト手法は、ニューラルネットワークで作成した任意のプログラムに有効であるかは不明なままである。つまり、そうしたカバレッジテストを採用しても、効率的にバグを検出できない可能性が残されている。
そこで本発明の目的は、機械学習によって作成した任意のプログラムのバグを、効率的に検出可能とする技術を提供することにある。
上記課題を解決する本発明のカバレッジテスト支援装置は、テスト入力値および期待出力値の複数ペアからなるテストケースと、ニューラルネットワーク由来のプログラムに関する複数のカバレッジ指標各々の規定内容とを保持する記憶装置と、ニューラルネットワーク由来のプログラムに対し、前記テストケースにおける各ペアのテスト入力値を順次与えて所定件数のテストを実行し、そのテスト結果およびテスト実行時におけるニューロン情報を取得する処理と、前記取得したニューロン情報を、前記複数のカバレッジ指標それぞれの規定内容に適用し、各カバレッジ指標の値を算定する処理と、前記テストの実行件数または前記テスト結果におけるバグ件数のいずれかが所定基準を超えた場合、前記カバレッジ指標のうち、前記算定した値の伸び率が所定の傾向を示すものを、優先的に用いるべき優先カバレッジ指標と特定する処理と、を実行する演算装置と、を備えることを特徴とする。
また、本発明のカバレッジテスト支援方法は、テスト入力値および期待出力値の複数ペアからなるテストケースと、ニューラルネットワーク由来のプログラムに関する複数のカバレッジ指標各々の規定内容とを保持する記憶装置を備えた情報処理装置が、ニューラルネットワーク由来のプログラムに対し、前記テストケースにおける各ペアのテスト入力値を順次与えて所定件数のテストを実行し、そのテスト結果およびテスト実行時におけるニューロン情報を取得する処理と、前記取得したニューロン情報を、前記複数のカバレッジ指標それぞれの規定内容に適用し、各カバレッジ指標の値を算定する処理と、前記テストの実行件数または前記テスト結果におけるバグ件数のいずれかが所定基準を超えた場合、前記カバレッジ指標のうち、前記算定した値の伸び率が所定の傾向を示すものを、優先的に用いるべき優先カバレッジ指標と特定する処理と、を実行することを特徴とする。
本発明によれば、機械学習によって作成した任意のプログラムのバグを、効率的に検出する可能性を高めうる。
本実施形態のカバレッジテスト支援装置の構成例を示す図である。 本実施形態におけるカバレッジテスト支援装置のハードウェア構成例を示す図である。 本実施形態のテストケースのデータ構成例を示す図である。 本実施形態のテスト結果のデータ構成例を示す図である。 本実施形態のテスト評価結果のデータ構成例を示す図である。 本実施形態のニューロン情報のデータ構成例を示す図である。 本実施形態のカバレッジ指標のデータ構成例を示す図である。 本実施形態のカバレッジテスト支援方法のフロー例1を示す図である。 本実施形態のカバレッジ計算結果のデータ構成例を示す図である。 本実施形態における画面例1を示す図である。 本実施形態における画面例2を示す図である。 本実施形態のカバレッジテスト支援方法のフロー例2を示す図である。
−−−カバレッジテスト支援装置の機能構成−−−
以下に本発明の実施形態について図面を用いて詳細に説明する。図1は、本実施形態のカバレッジテスト支援装置100の構成例を示す図である。図1に示すカバレッジテスト支援装置100は、機械学習によって作成した任意のプログラムのバグを、効率的に検出可能とするコンピュータ装置である。
このカバレッジテスト支援装置100は、図1に示すように、テスト対象プログラム保持部110、テストケース保持部111、期待出力値編集部112、スト入力値生成部113、テスト実行部114、ニューロン情報保持部115、複数カバレッジ計測部116、カバレッジ指標保持部117、テスト結果保持部118、テスト結果評価部119、テスト評価結果保持部120、カバレッジ計算結果保持部121、優先カバレッジ指標選択部122、および、優先カバレッジ指標保持部123、を備えている。これらは、カバレッジテスト支援装置100が備えるプログラムおよびハードウェアを協働させ実装される機能部である。
このうちテスト対象プログラム保持部110は、テスト対象プログラム1101を保持している。このテスト対象プログラム1101は、ニューラルネットワークにより生成されたプログラムである。本実施形態では、このテスト対象プログラム1101の一例として、画像認識プログラムを想定する。
また、テストケース保持部111は、テストケース1111を保持している。このテストケース1111は、テスト入力値および期待出力値の複数ペアから構成されている。本実施形態で一例として想定するテストケースは、数字を表示している画像データをテスト入力値とし、これを上述の画像認識プログラムに与えた場合に認識される数字として、期待している数字を期待出力値とする。テスト対象プログラムたる画像認識プログラムにバグが含まれている場合、テスト入力値を与えても、その出力値が期待出力値とは異なる数字となってしまう。
また、期待出力値編集部112は、上述のテストケース1111の期待出力値に対し、その編集をユーザから受け付け、当該テストケース1111を更新する。
また、テスト入力値生成部113は、上述のテストケース1111のテスト入力値を、詳細は後述する優先カバレッジ指標の値を向上させるべく算定し、これをテストケース1111に反映させる。
また、テスト実行部114は、上述のテスト対象プログラム1101に、テストケース1111のテスト入力値を入力として与えて実行させ、その出力値をテスト結果として取得する。また、テスト実行部114は、このテスト実行に際し、当該テスト対象プログラ
ム1101における各層の各ニューロンの情報(ニューロン情報)も取得する。
また、ニューロン情報保持部115は、上述のテスト実行部114によるテスト実行で得たニューロン情報1151を保持している。このニューロン情報1151の詳細は後述する。
また、複数カバレッジ計測部116は、上述のニューロン情報1151に基づいて、複数のカバレッジ指標の値を算定する。このカバレッジ指標の値を算定するための算定式など、カバレッジ指標の規定内容は、カバレッジ指標保持部117が保持している。
また、カバレッジ指標保持部117は、上述の複数のカバレッジ指標それぞれの規定内容を保持している。以降、説明の簡便のため、各カバレッジ指標の規定内容を、カバレッジ指標1171と読み替えて説明する。このカバレッジ指標1171の詳細は後述する。
また、テスト結果保持部118は、上述のテスト実行部114によるテスト実行で得たテスト結果1181を保持している。このテスト結果11181の詳細は後述する。
また、テスト結果評価部119は、上述のテストケース1111と、これに対応するテスト結果1181とを照合し、テスト結果が示す出力値が期待出力値と異なる、すなわちバグが発生しているテストケースを特定し、テスト評価結果1201を生成する。このテスト評価結果1201の詳細は後述する。
また、テスト評価結果保持部120は、上述のテスト評価結果1201を保持している。
また、カバレッジ計算結果保持部121は、上述の複数カバレッジ計測部116で算定されたカバレッジ計算結果1211を保持している。
また、優先カバレッジ指標選択部122は、上述のカバレッジ計算結果1211に基づき、上述のテストの実行件数またはテスト結果1181におけるバグ件数のいずれかが所定基準を超えた場合、カバレッジ指標1171のうち、カバレッジ指標値の伸び率が所定の傾向を示すものを、優先的に用いるべき優先カバレッジ指標と特定する。この処理の詳細は後述する。
また、優先カバレッジ指標保持部123は、上述の優先カバレッジ指標1231の情報を保持している。この優先カバレッジ指標1231の情報は、上述のテスト入力値生成部113において、テスト入力値の算定に利用される。
−−−ハードウェア構成−−−
また、本実施形態のカバレッジテスト支援装置100のハードウェア構成は以下の如くとなる。図2に、本実施形態のカバレッジテスト支援装置100のハードウェア構成例を示す。
本実施形態のカバレッジテスト支援装置100は、外部記憶装置101、メモリ103、CPU104(演算装置)、入力装置105、出力装置106、および、外部媒体入出力装置107、を備える。
このうち外部記憶装置101は、例えば、SSD(Solid State Drive)やハードディスクドライブなど適宜な不揮発性記憶素子で構成される記憶手段である。
また、メモリ103は、RAMなど揮発性記憶素子で構成される記憶手段である。
また、CPU104は、記憶装置101に保持されるプログラム102をメモリ103に読み出すなどして実行し装置自体の統括制御を行なうとともに各種判定、演算及び制御処理を行なう演算装置である。
また、入力装置105は、カバレッジテストの担当者など適宜なユーザからのキー入力や音声入力を受け付ける入力デバイスである。
また、出力装置106は、処理データの表示を行うディスプレイ等の表示デバイスである。
また、外部媒体入出力装置107は、可搬型メモリや磁気記憶媒体など、各種の記憶媒体と接続可能なインターフェイスを備え、当該記憶媒体との間でデータ授受を行う装置である。外部媒体入出力装置107が、上述の記憶媒体から読み取る情報としては、例えば、テスト対象プログラム1101、テストケース1111、および、カバレッジ指標1171、といった情報になる。
なお、外部記憶装置101内には、本実施形態のカバレッジテスト支援装置100として必要な機能を実装する為のプログラム102に加えて、テスト対象プログラム1101、テストケース1111、ニューロン情報1151、カバレッジ指標1171、テスト結果1181、テスト評価結果1201、カバレッジ計算結果1211、および、優先カバレッジ指標1231、が少なくとも記憶されている。これら情報の詳細については後述する。
−−−データ構造例−−−
続いて、本実施形態のカバレッジテスト支援装置100が用いる各種情報について説明する。図3に、本実施形態におけるテストケース1111のデータ構成例を示す。
本実施形態におけるテストケース1111は、上述の外部媒体入出力装置107が敵銀外部媒体から読み取ってテストケース保持部111に格納したデータである。
そのデータ構造は、各テストケースごとに、テスト入力値および期待出力値を対応付けて格納したレコードの集合体である。図3で示すテストケース1111では、ある画像をテスト入力値として、この画像で描画される数字の「1」を期待出力値としたテストケースの例を示している。
なお、上述のテストケース1111におけるテスト入力値は、テスト入力値生成部113がチューニングを行って更新されるものである。この場合、テスト入力値生成部113は、後述する優先カバレッジ指標1231の値を向上させる中間層ニューロン(ニューロン情報1151で各層のニューロンは規定済)を、カバレッジ指標1171におけるカバレッジ計算方法で特定し、当該中間層ニューロンに関して誤差逆伝播法を適用し、テスト対象プログラム1101における入力層の値たるテスト入力値を算定し、これをテストケース1111のテスト入力値とする。誤差逆伝播法の取扱い等については既知の手法を適宜に適用すればよい。
続いて図4に、本実施形態におけるテスト結果1181のデータ構成例を示す。本実施形態におけるテスト結果1181は、上述のテストケース1111のテスト入力値を入力として与えられたテスト対象プログラム1101による出力値、を格納したものである。
そのデータ構造は、テストケースごとに、テスト入力値および出力値を対応付けたレコードの集合体である。図4で示すテスト結果1181では、上述のテストケース1111のうち、テストケース「2」において、その出力値が期待出力値の「1」とは異なる「7」となった結果例を示している。
なお、こうしたテスト結果1181は、カバレッジテスト支援装置100のテスト実行部114が、テスト対象プログラム1101に対し、テストケース1111における各ペアのテスト入力値を順次与えて所定件数のテストを実行した結果に該当する。
続いて図5に、本実施形態におけるテスト評価結果1201のデータ構成例を示す。本実施形態におけるテスト評価結果1201は、テスト結果評価部119が、上述のテスト結果1181において、その出力値が該当テストケースにおける期待出力値と異なるもの、つまりバグを生じたテストケースを特定した結果を格納した情報となる。そのデータ構造は、テストケースごとに、評価結果を対応付けたレコードの集合体である。図5の例では、テストケース「2」に関して「バグあり」との評価結果がでている。
続いて図6に、本実施形態におけるニューロン情報1151のデータ構成例を示す。本実施形態におけるニューロン情報1151は、テスト実行部114が、上述のテストケースにおけるテスト入力値を与えられたテスト対象プログラム1101における、中間層それぞれのニューロンにおける値を取得し、格納した情報となる。
そのデータ構造は、中間層を一意に特定する層番号をキーに、その中間層におけるニューロンを一意に特定するニューロン番号、および、該当ニューロンにおける出力データ、を対応付けたレコードの集合体である。この出力データが「0」の場合、該当ニューロンは不活性状態であることを示し、「0」以外の値である場合、該当ニューロンは活性化状態であることを示している。そして、この出力データの値が大きいほど活性化していると言える。
続いて図7に、本実施形態におけるカバレッジ指標1171のデータ構成例を示す。本実施形態におけるカバレッジ指標1171は、ニューラルネットワークで生成されたテスト対象プログラム1101の評価に用いるものであり、一例として、総和カバレッジ、レイヤカバレッジ、順序カバレッジ、濃度カバレッジ、および、共起組合せカバレッジ、の計5種のカバレッジ指標を想定している。
こうしたカバレッジ指標1171は、図7に示すように、カバレッジ指標名と、その規定内容であるカバレッジ計算方法とが対応付けたレコードの集合体である。
また、上述の5種のカバレッジ指標のうち、総和カバレッジは、テスト対象プログラム1101における全中間層のニューロンのうち活性化された(例えば出力データが0より大きい)ニューロンの数“X”を、全中間層におけるニューロンの総数“Y”で除算して求めるカバレッジ指標である。
また、レイヤカバレッジは、中間層nごとに、活性化されたニューロンの数“X_n”をその中間層nにおけるニューロンの総数“Y_n”で除算した値を、中間層の間で比較し、そのうち最も小さい値である。
また、順序カバレッジは、中間層nにおけるニューロンのうち最も大きい値を出力したことがあるニューロンの数“X_n”を全中間層について合算した値“ΣX_n”を、中間層nのニューロンの総数“Y_n”を全中間層について合算した値“ΣY_n”で除算して求めるカバレッジ指標である。
また、濃度カバレッジは、テストケースを1つ実行するごとに、このテスト実行により活性化された中間層ニューロンの数で、所定の濃度定数を除算したてカバー濃度を算定し、このカバー濃度の値を中間層ニューロンごとに加算し、このカバー濃度が所定の閾値を
超えた中間層ニューロンの数を、中間層ニューロンの総数で除算して求めるカバレッジ指標である。
なお、上述のテストケースtの実行によって活性化された中間層ニューロン数を“A_t”、濃度定数を“C”、テストケースtの実行によって中間層ニューロンsに加算されるカバー濃度を“D_t=(sが活性化された)?C/A_t:0”、こうした加算を受ける中間層ニューロンのカバー濃度を“E_s=Σ(D_t)”、カバー濃度が所定の閾値を超えた中間層ニューロンの数を“X”、中間層ニューロンの総数を“Y”とすれば、この濃度カバレッジは、“X/Y”と求められる。
また、共起組合せカバレッジは、中間層ニューロンのペアごとに、ニューロンsとtが同時に活性化するテストケース数を、ニューロンsが活性化するテストケース数とニューロンtが活性化するテストケース数の合計からニューロンsとtが同時に活性化するテストケース数を減算した値で除算し、活性化共起率を計算して、これを、1/(1+Σ(各ニューロンペアの活性化共起率−1/2))の式に適用することで求めるカバレッジ指標である。
なお、上述の中間層ニューロンの任意のペアを“p=(s,t)”、ニューロンsとtが同時に活性化するテストケース数を“A”、ニューロンsが活性化するテストケース数を“B”、ニューロンtが活性化するテストケース数を“C”、とした時、ペア“p”の活性化共起率は“D_p=A/B+C−A”となり、共起組合せカバレッジは、“1/(1+Σ(D_p−(1/2)))”となる。
−−−フロー例1−−−
以下、本実施形態におけるカバレッジテスト支援方法の実際手順について図に基づき説明する。以下で説明するカバレッジテスト支援方法に対応する各種動作は、カバレッジテスト支援装置100がメモリ等に読み出して実行するプログラム102によって実現される。そして、このプログラム102は、以下に説明される各種の動作を行うためのコードから構成されている。
図8は、本実施形態におけるカバレッジテスト支援方法のフロー例1を示す図である。この場合、カバレッジテスト支援装置100の複数カバレッジ計測部116は、カバレッジ計算結果保持部121にアクセスして、カバレッジ計算結果1211を取得する(s100)。
図9に本実施形態のカバレッジ計算結果1211のデータ構成例を示す。この図9の例では、通算「106」件のテスト件数を行った結果、バグ検出数が「3」であり、また、カバレッジ指標名欄に記載の計5種のカバレッジ指標それぞれについて、カバレッジ計算結果の値が設定されている。つまり、このレコードの状態は、5種全てのカバレッジ指標に関して計算が完了している状態である。
続いて、複数カバレッジ計測部116は、s100で得たカバレッジ計算結果1211を参照し、計5種のカバレッジ指標それぞれのカバレッジ計算結果欄に値が設定されているか判定することで、全てのカバレッジ指標を計算済みか判定する(s101)。
上述の判定の結果、全てのカバレッジ指標を計算済みであった場合(s101:y)、複数カバレッジ計測部116は当該フローを終了する。
他方、上述の判定の結果、全てのカバレッジ指標を計算済みの状態ではなかった場合(s101:n)、複数カバレッジ計測部116は、カバレッジ指標保持部117にアクセスしてカバレッジ指標1171を参照し、未計算のカバレッジ指標の計算方法の情報を取
得する(s102)。
次に、複数カバレッジ計測部116は、ニューロン情報保持部115にアクセスしてニューロン情報1151を取得し、これをs102で得ている計算方法に適用することで、カバレッジ指標の値を算定し、これをカバレッジ計算結果1211に格納する(s103)。
複数カバレッジ計測部116は、s103の処理を実行後、s101に処理を遷移させ、カバレッジ指標1171で規定する全種類のカバレッジ指標の計算が完了するまで(s101:y)、s102〜s103を繰り返し実行する。その結果、図9で例示したカバレッジ計算結果1211のように、計5種類のカバレッジ指標それぞれについて、カバレッジ計算結果欄の値が設定されることとなる。
なお、複数カバレッジ計測部116は、上述のカバレッジ計算結果1211の内容を、図10A、図10Bにそれぞれ示すグラフ1000、1100のごとき描画オブジェクトに反映させ、これを表示装置106に出力するとしてもよい。
この場合、複数カバレッジ計測部116は、カバレッジ計算結果1211のテスト件数を横軸に、そのテスト件数時のカバレッジ計算結果の値を縦軸に、各種類のカバレッジ指標の曲線を適宜なグラフソフトウェア等で描画し、グラフ1000を生成する。
同様に、複数カバレッジ計測部116は、カバレッジ計算結果1211のバグ検出件数を横軸に、そのテスト件数時のカバレッジ計算結果の値を縦軸に、各種類のカバレッジ指標の曲線を適宜なグラフソフトウェア等で描画し、グラフ1100を生成する。
−−−フロー例2−−−
続いて、優先カバレッジ指標選択部122によるフローについて説明する。図11は、本実施形態におけるカバレッジテスト支援方法のフロー例2を示す図である。
この場合、優先カバレッジ指標選択部122は、入力装置105を介して、テスト担当者等の適宜なユーザからのカバレッジ指標選択方針の指定を受け付ける(s200)。
このカバレッジ指標選択方針は、以下の概念に基づくものとなる。例えば、テスト対象プログラム1101に対して、ある件数のテストケースを適用してテスト実行した際、所定件数以上のバグが検出されたとする。その場合、算定したカバレッジ指標の値が、前回のテスト実行時の値より所定基準以上の伸びを示したならば、そのカバレッジ指標はバグを検出する観点として優れている、と言える。従って、伸びの良いカバレッジ指標をさらに伸ばすようにテストを実施することで、より多くのバグを検出できることとなる。
一方、ある件数のテストケースを適用してテスト実行した際、算定したカバレッジ指標の値が、前回のテスト実行時の値より所定基準以下の伸びしか示さなかったならば、そのカバレッジ指標においては、同じ箇所ばかりをテストしていて、仮にバグを検出できていても同じようなバグばかり検出している、と言える。従って、伸びの悪いカバレッジ指標を伸ばすようにテストを実施することで、異なる箇所もテストできることとなる。
そこで上述のユーザは、上述のカバレッジ指標選択方針として、異なる種類のバグ検出優先、または、バグ検出件数の増加優先、のいずれかを指定するものとする。
次に、優先カバレッジ指標選択部122は、カバレッジ計算結果保持部121にアクセスし、カバレッジ計算結果1211を取得する(s201)。
続いて、優先カバレッジ指標選択部122は、s200で指定を受けたカバレッジ指標選択方針が、異なる種類のバグ検出優先、または、バグ検出件数の増加優先、のいずれであるか判定する(s202)。
上述の判定の結果、ユーザから受け付けたカバレッジ指標選択方針が、異なる種類のバグ検出優先であった場合(s202:異なる種類のバグ検出優先)、優先カバレッジ指標選択部122は、前回、優先カバレッジ指標を選択してから一定件数のテストを実施したか判定する(s203)。
この判定に際し、優先カバレッジ指標選択部122は、例えば、優先カバレッジ指標保持部123にアクセスして優先カバレッジ指標1231の格納日時を特定し、この格納日時以降に実施したテスト件数を、カバレッジ計算結果1211のテスト件数欄を参照して特定する(カバレッジ計算結果1211の各レコードには、格納日時が付与されているとする)。
上述の判定の結果、一定件数のテストが実施されていた場合(s203:y)、優先カバレッジ指標選択部122は、前回、優先カバレッジ指標を選択してから、最も増加量の低いカバレッジ指標を、カバレッジ計算結果1211のカバレッジ指標名およびカバレッジ計算結果の各欄の値に基づいて選択して、これを優先カバレッジ指標1231に格納し(s204)、処理を終了する。
他方、s203における判定の結果、一定件数のテストが実施されていない場合(s203:n)、優先カバレッジ指標選択部122は、処理をs201に戻す。
他方、s202における判定の結果、s200で指定を受けたカバレッジ指標選択方針が、バグ検出件数の増加優先であった場合(s202:バグ検出件数増加優先)、優先カバレッジ指標選択部122は、前回、優先カバレッジ指標を選択してから一定件数のバグを検出したか判定する(s205)。
この判定に際し、優先カバレッジ指標選択部122は、例えば、優先カバレッジ指標保持部123にアクセスして優先カバレッジ指標1231の格納日時を特定し、この格納日時以降に検出したバグ件数を、カバレッジ計算結果1211のバグ検出件数欄を参照して特定する(カバレッジ計算結果1211の各レコードには、格納日時が付与されているとする)。
上述の判定の結果、一定件数のバグを検出していない場合(s205:n)、優先カバレッジ指標選択部122は、処理をs201に戻す。
他方、上述の判定の結果、一定件数のバグを検出している場合(s205:y)、優先カバレッジ指標選択部122は、前回、優先カバレッジ指標を選択してから、最も増加量の多いカバレッジ指標を、カバレッジ計算結果1211のカバレッジ指標名およびカバレッジ計算結果の各欄の値に基づいて選択して、これを優先カバレッジ指標1231に格納し(s206)、処理を終了する。
以上、本発明を実施するための最良の形態などについて具体的に説明したが、本発明はこれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能である。
こうした本実施形態によれば、機械学習によって作成した任意のプログラムのバグを、効率的に検出可能となる。
本明細書の記載により、少なくとも次のことが明らかにされる。すなわち、本実施形態のカバレッジテスト支援装置において、前記演算装置は、前記優先カバレッジ指標の値を
向上させるニューロン情報を前記規定内容で特定し、当該ニューロン情報に関して誤差逆伝播法を適用し、前記プログラムにおける入力層の値たるテスト入力値を算定し、当該テスト入力値を前記テストケースに反映させる処理を更に実行するものである、としてもよい。
これによれば、好適なカバレッジ指標たる優先カバレッジ指標を向上させるテスト入力値を次回のテストに反映させることが可能となる。ひいては、機械学習によって作成した任意のプログラムのバグを、より効率的に検出可能となる。
また、本実施形態のカバレッジテスト支援装置において、前記記憶装置は、前記カバレッジ指標の規定内容として、前記プログラムにおいて活性化された中間層ニューロンの数と中間層ニューロンの総和数との比率を示す総和カバレッジと、前記プログラムにおける中間層ごとに活性化されたニューロンの数とニューロンの総和数との比率のうち最も小さい値であるレイヤカバレッジと、前記プログラムにおける同層のニューロンと出力値とを比較した場合に最も大きな値を出力したことがある中間層ニューロンの数と中間層ニューロンの総和数との比率を示す順序カバレッジと、テストケース実行ごとの所定定数と活性化された中間層ニューロンの数との比率に基づく中間層ニューロンごとにカバー濃度が所定の閾値を超えた中間層ニューロンの数と中間層ニューロンの総和数との比率を示す濃度カバレッジと、前記プログラムにおけるニューロンのペアごとの活性化共起率と中間層におけるニューロンのペア総数との比率を示す共起組合せカバレッジと、の少なくともいずれか複数の規定内容を保持し、前記演算装置は、前記各カバレッジ指標の値を算定するに際し、前記総和カバレッジ、前記レイヤカバレッジ、前記順序カバレッジ、前記濃度カバレッジ、および、前記共起組合せカバレッジ、のうち記憶装置で規定内容を保持するカバレッジ指標について、その値を算定するものである、としてもよい。
これによれば、ニューラルネットワーク由来のプログラムの関して好適なカバレッジ指標を、当該プログラムの特性にフィットしたカバレッジ指標中から選択できることとなる。ひいては、機械学習によって作成した任意のプログラムのバグを、より効率的に検出可能となる。
また、本実施形態のカバレッジテスト支援装置において、前記演算装置は、前記テストの実行件数、前記テスト結果が示すバグ件数、および、各カバレッジ指標の算定結果、を表示する所定の描画オブジェクトを生成し、当該描画オブジェクトを出力装置にて表示させる処理を更に実行するものである、としてもよい。
これによれば、カバレッジテストの担当者等にとって、優先カバレッジ指標の選択を行う際の好適な参考情報を分かりやすく提示することが可能となる。ひいては、機械学習によって作成した任意のプログラムのバグを、より効率的に検出可能となる。
また、本実施形態のカバレッジテスト支援方法において、前記情報処理装置が、前記優先カバレッジ指標の値を向上させるニューロン情報を前記規定内容で特定し、当該ニューロン情報に関して誤差逆伝播法を適用し、前記プログラムにおける入力層の値たるテスト入力値を算定し、当該テスト入力値を前記テストケースに反映させる処理を更に実行する、としてもよい。
また、本実施形態のカバレッジテスト支援方法において、前記情報処理装置が、前記記憶装置において、前記カバレッジ指標の規定内容として、前記プログラムにおいて活性化された中間層ニューロンの数と中間層ニューロンの総和数との比率を示す総和カバレッジと、前記プログラムにおける中間層ごとに活性化されたニューロンの数とニューロンの総和数との比率のうち最も小さい値であるレイヤカバレッジと、前記プログラムにおける同
層のニューロンと出力値とを比較した場合に最も大きな値を出力したことがある中間層ニューロンの数と中間層ニューロンの総和数との比率を示す順序カバレッジと、テストケース実行ごとの所定定数と活性化された中間層ニューロンの数との比率に基づく中間層ニューロンごとにカバー濃度が所定の閾値を超えた中間層ニューロンの数と中間層ニューロンの総和数との比率を示す濃度カバレッジと、前記プログラムにおけるニューロンのペアごとの活性化共起率と中間層におけるニューロンのペア総数との比率を示す共起組合せカバレッジと、の少なくともいずれか複数の規定内容を保持し、前記各カバレッジ指標の値を算定するに際し、前記総和カバレッジ、前記レイヤカバレッジ、前記順序カバレッジ、前記濃度カバレッジ、および、前記共起組合せカバレッジ、のうち記憶装置で規定内容を保持するカバレッジ指標について、その値を算定する、としてもよい。
また、本実施形態のカバレッジテスト支援方法において、前記情報処理装置が、前記テストの実行件数、前記テスト結果が示すバグ件数、および、各カバレッジ指標の算定結果、を表示する所定の描画オブジェクトを生成し、当該描画オブジェクトを出力装置にて表示させる処理を更に実行する、としてもよい。
100 カバレッジテスト支援装置
101 外部記憶装置
102 プログラム
103 メモリ
104 CPU(演算装置)
105 入力装置
106 表示装置
107 外部媒体入出力装置
110 テスト対象プログラム保持部
1101 テスト対象プログラム
111 テストケース保持部
1111 テストケース
112 期待出力値編集部
113 テスト入力値生成部
114 テスト実行部
115 ニューロン情報保持部
1151 ニューロン情報
116 複数カバレッジ計測部
117 カバレッジ指標保持部
1171 カバレッジ指標
118 テスト結果保持部
1181 テスト結果
119 テスト結果評価部
120 テスト評価結果保持部
1201 テスト評価結果
121 カバレッジ計算結果保持部
1211 カバレッジ計算結果
122 優先カバレッジ指標選択部
123 優先カバレッジ指標保持部
1231 優先カバレッジ指標

Claims (8)

  1. テスト入力値および期待出力値の複数ペアからなるテストケースと、ニューラルネットワーク由来のプログラムに関する複数のカバレッジ指標各々の規定内容とを保持する記憶装置と、
    ニューラルネットワーク由来のプログラムに対し、前記テストケースにおける各ペアのテスト入力値を順次与えて所定件数のテストを実行し、そのテスト結果およびテスト実行時におけるニューロン情報を取得する処理と、前記取得したニューロン情報を、前記複数のカバレッジ指標それぞれの規定内容に適用し、各カバレッジ指標の値を算定する処理と、前記テストの実行件数または前記テスト結果におけるバグ件数のいずれかが所定基準を超えた場合、前記カバレッジ指標のうち、前記算定した値の伸び率が所定の傾向を示すものを、優先的に用いるべき優先カバレッジ指標と特定する処理と、を実行する演算装置と、
    を備えることを特徴とするカバレッジテスト支援装置。
  2. 前記演算装置は、
    前記優先カバレッジ指標の値を向上させるニューロン情報を前記規定内容で特定し、当該ニューロン情報に関して誤差逆伝播法を適用し、前記プログラムにおける入力層の値たるテスト入力値を算定し、当該テスト入力値を前記テストケースに反映させる処理を更に実行するものである、
    ことを特徴とする請求項1に記載のカバレッジテスト支援装置。
  3. 前記記憶装置は、
    前記カバレッジ指標の規定内容として、前記プログラムにおいて活性化された中間層ニューロンの数と中間層ニューロンの総和数との比率を示す総和カバレッジと、前記プログラムにおける中間層ごとに活性化されたニューロンの数とニューロンの総和数との比率のうち最も小さい値であるレイヤカバレッジと、前記プログラムにおける同層のニューロンと出力値とを比較した場合に最も大きな値を出力したことがある中間層ニューロンの数と中間層ニューロンの総和数との比率を示す順序カバレッジと、テストケース実行ごとの所定定数と活性化された中間層ニューロンの数との比率に基づく中間層ニューロンごとにカバー濃度が所定の閾値を超えた中間層ニューロンの数と中間層ニューロンの総和数との比率を示す濃度カバレッジと、前記プログラムにおけるニューロンのペアごとの活性化共起率と中間層におけるニューロンのペア総数との比率を示す共起組合せカバレッジと、の少なくともいずれか複数の規定内容を保持し、
    前記演算装置は、
    前記各カバレッジ指標の値を算定するに際し、前記総和カバレッジ、前記レイヤカバレッジ、前記順序カバレッジ、前記濃度カバレッジ、および、前記共起組合せカバレッジ、のうち記憶装置で規定内容を保持するカバレッジ指標について、その値を算定するものである、
    ことを特徴とする請求項1に記載のカバレッジテスト支援装置。
  4. 前記演算装置は、
    前記テストの実行件数、前記テスト結果が示すバグ件数、および、各カバレッジ指標の算定結果、を表示する所定の描画オブジェクトを生成し、当該描画オブジェクトを出力装置にて表示させる処理を更に実行するものである、
    ことを特徴とする請求項1に記載のカバレッジテスト支援装置。
  5. テスト入力値および期待出力値の複数ペアからなるテストケースと、ニューラルネットワーク由来のプログラムに関する複数のカバレッジ指標各々の規定内容とを保持する記憶装置を備えた情報処理装置が、
    ニューラルネットワーク由来のプログラムに対し、前記テストケースにおける各ペアのテスト入力値を順次与えて所定件数のテストを実行し、そのテスト結果およびテスト実行時におけるニューロン情報を取得する処理と、前記取得したニューロン情報を、前記複数のカバレッジ指標それぞれの規定内容に適用し、各カバレッジ指標の値を算定する処理と、前記テストの実行件数または前記テスト結果におけるバグ件数のいずれかが所定基準を超えた場合、前記カバレッジ指標のうち、前記算定した値の伸び率が所定の傾向を示すものを、優先的に用いるべき優先カバレッジ指標と特定する処理と、
    を実行することを特徴とするカバレッジテスト支援方法。
  6. 前記情報処理装置が、
    前記優先カバレッジ指標の値を向上させるニューロン情報を前記規定内容で特定し、当該ニューロン情報に関して誤差逆伝播法を適用し、前記プログラムにおける入力層の値たるテスト入力値を算定し、当該テスト入力値を前記テストケースに反映させる処理を更に実行する、
    ことを特徴とする請求項5に記載のカバレッジテスト支援方法。
  7. 前記情報処理装置が、
    前記記憶装置において、前記カバレッジ指標の規定内容として、前記プログラムにおいて活性化された中間層ニューロンの数と中間層ニューロンの総和数との比率を示す総和カバレッジと、前記プログラムにおける中間層ごとに活性化されたニューロンの数とニューロンの総和数との比率のうち最も小さい値であるレイヤカバレッジと、前記プログラムにおける同層のニューロンと出力値とを比較した場合に最も大きな値を出力したことがある中間層ニューロンの数と中間層ニューロンの総和数との比率を示す順序カバレッジと、テストケース実行ごとの所定定数と活性化された中間層ニューロンの数との比率に基づく中間層ニューロンごとにカバー濃度が所定の閾値を超えた中間層ニューロンの数と中間層ニューロンの総和数との比率を示す濃度カバレッジと、前記プログラムにおけるニューロンのペアごとの活性化共起率と中間層におけるニューロンのペア総数との比率を示す共起組合せカバレッジと、の少なくともいずれか複数の規定内容を保持し、
    前記各カバレッジ指標の値を算定するに際し、前記総和カバレッジ、前記レイヤカバレッジ、前記順序カバレッジ、前記濃度カバレッジ、および、前記共起組合せカバレッジ、のうち記憶装置で規定内容を保持するカバレッジ指標について、その値を算定する、
    ことを特徴とする請求項5に記載のカバレッジテスト支援方法。
  8. 前記情報処理装置が、
    前記テストの実行件数、前記テスト結果が示すバグ件数、および、各カバレッジ指標の算定結果、を表示する所定の描画オブジェクトを生成し、当該描画オブジェクトを出力装置にて表示させる処理を更に実行する、
    ことを特徴とする請求項5に記載のカバレッジテスト支援方法。
JP2017248710A 2017-12-26 2017-12-26 カバレッジテスト支援装置およびカバレッジテスト支援方法 Active JP6857598B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017248710A JP6857598B2 (ja) 2017-12-26 2017-12-26 カバレッジテスト支援装置およびカバレッジテスト支援方法
EP18214895.7A EP3506104B1 (en) 2017-12-26 2018-12-20 Coverage test support device and coverage test support method
US16/230,803 US10789155B2 (en) 2017-12-26 2018-12-21 Coverage test support device and coverage test support method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017248710A JP6857598B2 (ja) 2017-12-26 2017-12-26 カバレッジテスト支援装置およびカバレッジテスト支援方法

Publications (2)

Publication Number Publication Date
JP2019114158A JP2019114158A (ja) 2019-07-11
JP6857598B2 true JP6857598B2 (ja) 2021-04-14

Family

ID=64900767

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017248710A Active JP6857598B2 (ja) 2017-12-26 2017-12-26 カバレッジテスト支援装置およびカバレッジテスト支援方法

Country Status (3)

Country Link
US (1) US10789155B2 (ja)
EP (1) EP3506104B1 (ja)
JP (1) JP6857598B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110377511B (zh) * 2019-07-11 2021-04-06 河海大学 一种面向数据流的测试用例生成方法
CN111061626B (zh) * 2019-11-18 2023-11-14 北京工业大学 基于神经元激活频率分析的测试用例优先级排序方法
CN111694753B (zh) * 2020-07-30 2023-04-11 北京字节跳动网络技术有限公司 一种应用程序测试方法、装置及计算机存储介质
KR20220060404A (ko) * 2020-11-04 2022-05-11 현대자동차주식회사 자율 주행 시스템의 동적 검증을 위한 테스트 케이스 생성 방법 및 장치
CN113159311A (zh) * 2020-12-31 2021-07-23 光华临港工程应用技术研发(上海)有限公司 神经元网络的反向传播算法的学习方法
CN113238957B (zh) * 2021-05-28 2022-08-05 北京理工大学 智能化场景下流量监测系统的测试样本生成方法
CN113220307B (zh) * 2021-06-08 2022-02-22 中航机载系统共性技术有限公司 一种代码覆盖分析的优化方法、装置及电子设备
CN116245057B (zh) * 2022-09-26 2023-12-19 上海合见工业软件集团有限公司 基于时序型覆盖数据库的有效执行区域确定系统
CN116185843B (zh) * 2023-01-16 2023-12-08 天航长鹰(江苏)科技有限公司 基于神经元覆盖率引导的两阶段神经网络测试方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010146037A (ja) 2008-12-16 2010-07-01 Hitachi Ltd 論理検証システム
JP6369102B2 (ja) 2014-04-04 2018-08-08 富士電機株式会社 ソフトウェア試験支援システム
US10573299B2 (en) * 2016-08-19 2020-02-25 Panasonic Avionics Corporation Digital assistant and associated methods for a transportation vehicle
JP6751235B2 (ja) * 2016-09-30 2020-09-02 富士通株式会社 機械学習プログラム、機械学習方法、および機械学習装置
US10810115B2 (en) * 2017-12-21 2020-10-20 Verizon Patent And Licensing Inc. Systems and methods using artificial intelligence to identify, test, and verify system modifications
US11308397B2 (en) * 2018-02-16 2022-04-19 Ilya Sorokin System and method of training a neural network

Also Published As

Publication number Publication date
US10789155B2 (en) 2020-09-29
US20190196943A1 (en) 2019-06-27
JP2019114158A (ja) 2019-07-11
EP3506104B1 (en) 2020-05-13
EP3506104A1 (en) 2019-07-03

Similar Documents

Publication Publication Date Title
JP6857598B2 (ja) カバレッジテスト支援装置およびカバレッジテスト支援方法
CN108073519B (zh) 测试用例生成方法和装置
EP3703332B1 (en) Graph structure model training and junk account identification
US20140033174A1 (en) Software bug predicting
US20190087737A1 (en) Anomaly detection and automated analysis in systems based on fully masked weighted directed
CN110008080B (zh) 基于时间序列的业务指标异常检测方法、装置和电子设备
TW201816678A (zh) 一種非法交易檢測方法及裝置
US10394631B2 (en) Anomaly detection and automated analysis using weighted directed graphs
US8359291B2 (en) Architecture-aware field affinity estimation
US9182956B2 (en) Flattening conditional statements
CN111062486B (zh) 一种评价数据的特征分布和置信度的方法及装置
US20210150358A1 (en) System and method for controlling confidential information
CN113946983A (zh) 产品可靠性薄弱环节评估方法、装置和计算机设备
Nakamura et al. Queue-based cost evaluation of mental simulation process in program comprehension
US10867249B1 (en) Method for deriving variable importance on case level for predictive modeling techniques
CN116166967B (zh) 基于元学习与残差网络的数据处理方法、设备和存储介质
CN117763024A (zh) 一种数据分片抽取方法及装置
CN113902457B (zh) 房源信息可靠性的评估方法、装置、电子设备及存储介质
CN107402883B (zh) 一种数据测试处理方法和装置
CN110209563A (zh) 试题测评监管方法、电子设备及计算机存储介质
CN114691496A (zh) 单元测试方法、装置、计算设备及介质
CN109213526B (zh) 用于确定处理器操作的方法及装置
CN109189673B (zh) 一种软件的测试方案、测试用例的确定方法及装置
US9268599B2 (en) Recording and profiling transaction failure addresses of the abort-causing and approximate abort-causing data and instructions in hardware transactional memories
CN110309054B (zh) 代码有效性测试方法、计算设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200317

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: 20210316

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210322

R150 Certificate of patent or registration of utility model

Ref document number: 6857598

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150