(57)【要約】【課題】  ハードウェアの試験において、一次故障の存在下でも二次故障の可能性を最小化することができるハードウェア試験装置及びハードウェア試験方法を提案する。【解決手段】  ハードウェア試験装置１０は、試験対象ハードウェア３０で実行する複数のテストケースの試験リストと、起こりうる故障および故障率が記載された故障リストと、模擬試験装置２０における模擬試験の試験結果および二次故障の有無が記載された故障注入試験結果表と、テストケースによる実機試験を実行する実機試験部と、実機試験部が次に実行するべきテストケースを決定する試験選択部と、を備える。試験選択部は、故障注入試験結果表および故障リストの内容に基づいて未実行のテストケースごとに二次故障に関するパラメータを算出し、算出した二次故障に関するパラメータに基づいて未実行のテストケースの優先順位を決定する。【選択図】図１
2018160191.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェアの試験を行うハードウェア試験装置であって、
前記ハードウェアで実行する複数のテストケースが記載された試験リストと、
前記ハードウェアで起こりうる故障および該故障の故障率が記載された故障リストと、
前記ハードウェアを模擬した模擬環境において前記試験リストに記載された各テストケースについて前記故障リストに記録された故障を各々注入して行った模擬試験における試験結果および二次故障の有無が記載された模擬試験結果表と、
前記ハードウェアに対して前記テストケースによる実機試験を実行する実機試験部と、
前記試験リストに記載され、かつ前記実機試験部による実機試験が未実行のテストケースのうちから、前記実機試験部が次に実行するべきテストケースを決定する試験選択部と、
を備え、
前記試験選択部は、
前記模擬試験結果表および前記故障リストの内容に基づいて前記未実行のテストケースごとに二次故障に関するパラメータを算出する二次故障算出部と、
前記二次故障算出部によって算出された二次故障に関するパラメータに基づいて前記未実行のテストケースの優先順位を決定する優先順位決定部と、
を備える
ことを特徴とするハードウェア試験装置。
【請求項２】
前記二次故障算出部は、前記未実行のテストケースのそれぞれについて、前記模擬試験結果表に記載された当該テストケースによる模擬試験のうち二次故障が有った模擬試験で注入された故障と前記故障リストに記載された当該故障の故障率とに基づいて、当該テストケースの二次故障に関するパラメータとして二次故障の発生率を算出する
ことを特徴とする請求項１に記載のハードウェア試験装置。
【請求項３】
前記実機試験部によって実行された前記実機試験の試験結果が記録される実機試験結果表をさらに備え、
前記二次故障算出部は、同一のテストケースについて最新の前記実機試験結果表に記録された試験結果とは異なる試験結果が前記模擬試験結果表に記載されている模擬試験において注入された故障を除外して、前記未実行のテストケースごとに前記二次故障の発生率を算出する
ことを特徴とする請求項２に記載のハードウェア試験装置。
【請求項４】
前記優先順位決定部は、前記二次故障算出部によって算出された二次故障の発生率が低い順に、前記未実行のテストケースに高い優先順位を付与する
ことを特徴とする請求項３に記載のハードウェア試験装置。
【請求項５】
前記模擬試験結果表には二次故障の復旧コストがさらに記載され、
前記二次故障算出部は、前記未実行のテストケースのそれぞれについて、前記模擬試験結果表に記載された当該テストケースによる模擬試験のうち二次故障が有った模擬試験で注入された故障と、前記故障リストに記載された当該故障の故障率および当該二次故障の復旧コストとに基づいて、当該テストケースの二次故障に関するパラメータとして二次故障の復旧コスト期待値を算出する
ことを特徴とする請求項１に記載のハードウェア試験装置。
【請求項６】
前記優先順位決定部は、前記二次故障算出部によって算出された二次故障の復旧コスト期待値が小さい順に、前記未実行のテストケースに高い優先順位を付与する
ことを特徴とする請求項５に記載のハードウェア試験装置。
【請求項７】
前記試験選択部が決定した前記テストケースを所定の出力装置に出力する画面表示操作部をさらに備えた
ことを特徴とする請求項１に記載のハードウェア試験装置。
【請求項８】
前記画面表示操作部は、前記優先順位決定部によって決定された前記未実行のテストケースの優先順位の出力を行う
ことを特徴とする請求項７に記載のハードウェア試験装置。
【請求項９】
前記画面表示操作部は、前記実機試験部によって実行された前記実機試験の試験結果を入力するユーザによる所定の入力操作に基づいて、該入力された試験結果を実機試験結果表に記録する
ことを特徴とする請求項７に記載のハードウェア試験装置。
【請求項１０】
ハードウェアの試験を行うハードウェア試験装置によるハードウェア試験方法であって、
前記ハードウェア試験装置は、
前記ハードウェアで実行する複数のテストケースが記載された試験リストと、
前記ハードウェアで起こりうる故障および該故障の故障率が記載された故障リストと、
前記ハードウェアを模擬した模擬環境において前記試験リストに記載された各テストケースについて前記故障リストに記録された故障を各々注入して行った模擬試験における試験結果および二次故障の有無が記載された模擬試験結果表と、
を有し、
前記ハードウェアに対して前記テストケースによる実機試験を実行する実機試験ステップと、
前記試験リストに記載され、かつ前記実機試験ステップによる実機試験が未実行のテストケースのうちから、前記実機試験ステップで次に実行するべきテストケースを決定する試験選択ステップと、
を備え、
前記試験選択ステップはさらに、
前記模擬試験結果表および前記故障リストの内容に基づいて前記未実行のテストケースごとに二次故障に関するパラメータを算出する二次故障算出ステップと、
前記二次故障算出ステップで算出された二次故障に関するパラメータに基づいて前記未実行のテストケースの優先順位を決定する優先順位決定ステップと、
を備えることを特徴とするハードウェア試験方法。
【請求項１１】
前記二次故障算出ステップでは、前記未実行のテストケースのそれぞれについて、前記模擬試験結果表に記載された当該テストケースによる模擬試験のうち二次故障が有った模擬試験で注入された故障と前記故障リストに記載された当該故障の故障率とに基づいて、当該テストケースの二次故障に関するパラメータとして二次故障の発生率を算出する
ことを特徴とする請求項１０に記載のハードウェア試験方法。
【請求項１２】
前記ハードウェア試験装置は、前記実機試験ステップで実行された前記実機試験の試験結果が記録される実機試験結果表をさらに有し、
前記二次故障算出ステップでは、同一のテストケースについて最新の前記実機試験結果表に記録された試験結果とは異なる試験結果が前記模擬試験結果表に記載されている模擬試験において注入された故障を除外して、前記未実行のテストケースごとに前記二次故障の発生率を算出する
ことを特徴とする請求項１１に記載のハードウェア試験方法。
【請求項１３】
前記優先順位決定ステップでは、前記二次故障算出ステップで算出された二次故障の発生率が低い順に、前記未実行のテストケースに高い優先順位を付与する
ことを特徴とする請求項１２に記載のハードウェア試験方法。
【請求項１４】
前記模擬試験結果表には二次故障の復旧コストがさらに記載され、
前記二次故障算出ステップでは、前記未実行のテストケースのそれぞれについて、前記模擬試験結果表に記載された当該テストケースによる模擬試験のうち二次故障が有った模擬試験で注入された故障と、前記故障リストに記載された当該故障の故障率および当該二次故障の復旧コストとに基づいて、当該テストケースの二次故障に関するパラメータとして二次故障の復旧コスト期待値を算出する
ことを特徴とする請求項１０に記載のハードウェア試験方法。
【請求項１５】
前記優先順位決定ステップでは、前記二次故障算出ステップで算出された二次故障の復旧コスト期待値が小さい順に、前記未実行のテストケースに高い優先順位を付与する
ことを特徴とする請求項１４に記載のハードウェア試験方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードウェア試験装置及びハードウェア試験方法に関し、ハードウェアの試験においてテスト計画の作成や故障分析を行うハードウェア試験装置及びハードウェア試験方法に適用して好適なものである。
【背景技術】
【０００２】
従来、半導体集積回路の試験方法として、回路中の故障箇所を特定するため、事前に故障注入シミュレーションを行って原因特定のためのデータを作成する「故障辞書法」が用いられることが知られている。
【０００３】
故障辞書法では、事前のシミュレーションにおいて、回路に様々な故障を注入した状態で回路への複数の入力パターンを与え、故障下における回路出力パターン（故障時出力パターン）を取得することで故障辞書を作成する。このような故障辞書を事前に作成しておくことで、実際の試験（実機試験）において理想的な出力パターンが得られなかった場合に、故障辞書から事前のシミュレーションにおける故障時出力パターンを参照することで故障の特定を行うことができる。例えば、所定の故障を注入したシミュレーションにおいて所定の出力パターンが理想値と異なることが判明していた場合、実機試験において上記所定の出力パターンに異常があれば、該所定の出力パターンに対応する故障（すなわち、上記所定の故障）が起きていることが推測できる。
【０００４】
故障辞書法のように、原因（故障）からテスト結果に対する影響を測ることで故障分析を行う手法はCause-Effect法と呼ばれる。Cause-Effect法は、半導体集積回路だけでなく、一般のハードウェアの故障分析においても有用と考えられる。一般のハードウェアの故障分析にCause-Effect法を用いる場合、例えば複数のテスト項目を用意しておき、故障注入時のテスト合否に対する影響を事前に分析しておくことによって、実際の試験時におけるテストの合否パターンから故障を特定することができる。例えば特許文献１には、半導体装置を検査する検査装置について、テスト時間を可及的に短縮する検査方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−１８１２２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上述のようにハードウェアの故障分析にCause-Effect法を用いる場合には、ハードウェア上において複数のテスト項目を実行し、それらのテスト合否パターンから故障候補を絞込もうとする場合、全てのテスト項目が実行可能、かつ全てのテスト合否が得られることが前提となる。しかし、潜在的に故障が存在する状況では、特定の操作を行った場合に他の部分への異常な入力がなされ、二次的な故障を発生させてしまうおそれがある。簡単な例を挙げると、ヒューズが溶着した状態（一次故障下）で電源を投入すると、当該ヒューズの先の回路で破損が生じる（二次故障の発生）可能性がある。
【０００７】
したがって、ハードウェアの故障分析において、一次故障下で全てのテスト項目を完了するためには、テストの実行順番を考慮し、二次故障の可能性を除外しつつ進めなければならない、という課題があった。例えば特許文献１に開示された検査方法では、複数のテスト項目について、テスト対象のカバレッジを考慮しながらテスト効率を最大化できるテストの順番及び項目を取捨選択できるようにしているものの、テスト実行によるテスト対象への影響は考慮されていないため、必ずしも安全に試験を続行できるとは言えず、二次故障が発生し得るテスト対象においてはテスト順番をさらに検討する必要があった。
【０００８】
本発明は以上の点を考慮してなされたもので、ハードウェアの試験において、一次故障の存在下でも二次故障の可能性を最小にしつつ一連のテストを完了することができるハードウェア試験装置及びハードウェア試験方法を提案しようとするものである。
【課題を解決するための手段】
【０００９】
かかる課題を解決するため本発明においては、ハードウェアの試験を行うハードウェア試験装置であって、ハードウェアで実行する複数のテストケースが記載された試験リストと、ハードウェアで起こりうる故障および故障率が記載された故障リストと、ハードウェアを模擬した模擬環境において試験リストの各テストケースについて故障リストの故障を各々注入して行った模擬試験による試験結果および二次故障の有無が記載された模擬試験結果表と、ハードウェアの実機試験を実行する実機試験部と、実機試験部が次に実行するべきテストケースを決定する試験選択部と、を備えたハードウェア試験装置が提供される。このようなハードウェア試験装置は、上記の試験選択部が、模擬試験結果表および故障リストの内容に基づいて未実行のテストケースごとに二次故障に関するパラメータを算出する二次故障算出部と、二次故障算出部によって算出された二次故障に関するパラメータに基づいて未実行のテストケースの優先順位を決定する優先順位決定部と、を備えることを特徴とする。
【００１０】
また、かかる課題を解決するため本発明においては、ハードウェアの試験を行うハードウェア試験装置によるハードウェア試験方法であって、ハードウェア試験装置が、ハードウェアで実行する複数のテストケースが記載された試験リストと、ハードウェアで起こりうる故障および故障率が記載された故障リストと、ハードウェアを模擬した模擬環境において試験リストの各テストケースについて故障リストの故障を各々注入して行った模擬試験による試験結果および二次故障の有無が記載された模擬試験結果表と、を有するなかで、ハードウェアの実機試験を実行する実機試験ステップと、実機試験ステップで次に実行するべきテストケースを決定する試験選択ステップと、を備えたハードウェア試験方法が提供される。このようなハードウェア試験方法は、試験選択ステップがさらに、模擬試験結果表および故障リストの内容に基づいて未実行のテストケースごとに二次故障に関するパラメータを算出する二次故障算出ステップと、二次故障算出ステップで算出された二次故障に関するパラメータに基づいて未実行のテストケースの優先順位を決定する優先順位決定ステップと、を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、ハードウェアの試験において、一次故障の存在下でも二次故障の可能性を最小化することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施の形態に係るハードウェア試験装置のハードウェア構成例を示す図である。
【図２】図１に例示したハードウェア試験装置の機能構成例を示す図である。
【図３】試験リストの一例を説明するための図である。
【図４】故障リストの一例を説明するための図である。
【図５】故障注入試験結果表の一例を説明するための図である。
【図６】試験優先順位表の一例を説明するための図である。
【図７】実機試験結果表の一例を説明するための図である。
【図８】試験選択処理の処理手順の一例を示すフローチャートである。
【図９】実機試験処理の処理手順の一例を示すフローチャートである。
【図１０】故障候補絞込み処理の処理手順の一例を示すフローチャートである。
【図１１】試験優先順位表作成処理の処理手順の一例を示すフローチャートである。
【図１２】試験優先順位決定処理の処理手順の一例を示すフローチャートである。
【図１３】故障試験候補表の一例を説明するための図である。
【図１４】テスト二巡目における試験優先順位表の一例を説明するための図である。
【図１５】出力装置における表示画面の一例を説明するための図である。
【図１６】第２の実施の形態で用いられる故障注入試験結果表の一例を説明するための図である。
【図１７】第２の実施の形態における試験優先順位表作成処理の処理手順の一例を示すフローチャートである。
【図１８】第２の実施の形態における試験優先順位決定処理の処理手順の一例を示すフローチャートである。
【図１９】第２の実施の形態における試験優先順位表の一例を説明するための図である。
【発明を実施するための形態】
【００１３】
以下図面について、本発明の一実施の形態を詳述する。
【００１４】
（１）第１の実施の形態
（１−１）ハードウェア構成
図１は、本発明の第１の実施の形態に係るハードウェア試験装置のハードウェア構成例を示す図である。図１には、本発明の第１の実施の形態に係るハードウェア試験装置１０と、シミュレータ等を使用してテストケースを実行する模擬試験装置２０と、実機試験の対象となる試験対象ハードウェア３０とが示されている。ハードウェア試験装置１０はネットワーク４０を介して模擬試験装置２０と相互に通信可能に接続される。また、ハードウェア試験装置１０は試験対象ハードウェア３０とも通信可能に接続される。
【００１５】
図１において、ハードウェア試験装置１０は、ＣＰＵ（Central Processing Unit）１１、メモリ１２、ストレージ１３、及び入出力インタフェース１４を備えて構成される。ＣＰＵ１１、メモリ１２、ストレージ１３、及び入出力インタフェース１４は、ＣＰＵバスなどから構成されるバスによって相互に接続されている。ハードウェア試験装置１０は、例えばパーソナルコンピュータ（ＰＣ）やその他の計算機によって実現することができる。
【００１６】
ＣＰＵ１１は、演算処理装置及び制御装置として機能し、各種プログラムに従ってハードウェア試験装置１０内の動作全般を制御する。また、ＣＰＵ１１はマイクロプロセッサであってもよい。後述の図２で示す試験選択部１０１、実機試験部１０２、及び画面表示操作部１０３は、ＣＰＵ１１によって１以上の所定のプログラムが実行されることによって実現される。
【００１７】
メモリ１２は、ＣＰＵ１１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶する。ストレージ１３は、ＣＰＵ１１が使用するプログラムや演算パラメータ等を記憶する。後述の図２で示す試験リスト１１１、故障リスト１１２、故障注入試験結果表１１３、故障試験候補表１１４、試験優先順位表１１５、及び実機試験結果表１１６は、メモリ１２又はストレージ１３にデータとして記憶される。
【００１８】
入出力インタフェース１４は、ハードウェア試験装置１０と周辺機器を接続するための規格を有する装置であって、ハードウェア試験装置１０と入力装置１５及び出力装置１６とを接続する。入力装置１５は、例えばキーボードやマウス等、ユーザによる操作入力が可能なデバイスであって、入力装置１５における操作入力は、入出力インタフェース１４を介してＣＰＵ１１に伝達される。また、出力装置１６は、例えばディスプレイやプリンタ等、ハードウェア試験装置１０からの出力先となるデバイスであって、ＣＰＵ１１（機能的には画面表示操作部１０３）から出力指示が行われた場合、入出力インタフェース１４を介して対象の出力装置１６で画面表示や印字等の出力が行われる。以後の説明では、出力装置１６は画像を表示可能な表示端末（ディスプレイ）とする。
【００１９】
なお、図１のハードウェア試験装置１０は、本実施の形態に係るハードウェア試験装置のハードウェア構成の主要部分を例示したものであって、その構成は図１に例示されたものに限定されない。例えば、入力装置１５や出力装置１６がハードウェア試験装置１０の内部に備えられる構成であってもよいし、図１には図示されていない構成が追加されてもよい。また、本発明に係るハードウェア試験装置は、図１のように１台の計算機（ハードウェア試験装置１０）から構成されるものに限定されず、複数の計算機が連結されて構成される等であってもよい。
【００２０】
模擬試験装置２０は、ハードウェア試験装置１０と同様に、パーソナルコンピュータ（ＰＣ）やその他の計算機によって実現することができる。模擬試験装置２０は、ＣＰＵ２１、メモリ２２、及びストレージ２３を備えている。後述の図２で示す模擬試験部２０１及びハードウェア模擬装置２０２は、メモリ２２やストレージ２３に記憶されたデータを用いてＣＰＵ２１が１以上の所定のプログラムを実行することによって実現される。より具体的には、模擬試験部２０１がハードウェア模擬装置２０２上でテストケースの模擬試験を実行できるように実現される。なお、ハードウェア模擬装置２０２は、試験対象ハードウェア３０を模擬するものであればよく、例えばソフトウェアシミュレータで実現されるが、他にも例えば、模擬的なハードウェア回路等によって代用されてもよい。また、模擬試験装置２０に相当する構成がハードウェア試験装置１０に内蔵されてもよい。
【００２１】
試験対象ハードウェア３０は、ハードウェア試験装置１０によるハードウェア試験の実際の対象となるハードウェアである。詳細は後述するが、実機試験においてハードウェア試験装置１０から所定のテストケースの実施が指示されると、試験対象ハードウェア３０は指示されたテストケースを実行し、その実行結果をハードウェア試験装置１０に通知する。なお、試験対象ハードウェア３０は、ユーザによる直接操作を契機として実機試験が実行されることがあってもよい。
【００２２】
（１−２）機能構成
図２は、図１に例示したハードウェア試験装置等の機能構成例を示す図である。
【００２３】
図２に示したように、ハードウェア試験装置１０は、試験選択部１０１、実機試験部１０２、及び画面表示操作部１０３という機能構成を備える。また、模擬試験装置２０は、模擬試験部２０１及びハードウェア模擬装置２０２という機能構成を備えている。
【００２４】
本実施の形態では、ハードウェア試験装置１０における処理が行われるよりも前に、模擬試験装置２０における事前処理として模擬試験が行われる。具体的には、模擬試験部２０１が、試験対象ハードウェア３０を模擬するシミュレータであるハードウェア模擬装置２０２を使って、故障下でテストケースを実行し、そのテスト結果を取得する。なお、図１の説明でも述べたように、模擬試験装置２０に相当する構成はハードウェア試験装置１０に内蔵されていてもよく、そのようなハードウェア構成においては、模擬試験部２０１及びハードウェア模擬装置２０２はハードウェア試験装置１０内の機能構成となる。また、ハードウェア模擬装置２０２だけをハードウェア試験装置１０の外部に設け、模擬試験部２０１をハードウェア試験装置１０内に備えるようにしてもよい。
【００２５】
そして、図２に示したハードウェア試験装置１０において、試験選択部１０１は、試験対象ハードウェア３０で実行する複数のテストケースについて、模擬試験装置２０における模擬試験のテスト結果と実機試験部１０２による実機試験の最新のテスト結果とに基づいて、未実行のテストケースに優先順位を付けて、次に実機試験を実行すべきテストケースを選択する試験選択処理を行う。なお、試験選択部１０１は、試験選択処理において、二次故障が発生する確率が低いと判定したテストケースに高い優先順位を付する。試験選択処理の詳細は、図８等を参照しながら後述する。
【００２６】
また、実機試験部１０２は、試験選択部１０１によるテストケースの選択結果に基づいて、当該テストケース（すなわち、最も高い優先順位が付けられたテストケース）を試験対象ハードウェア３０上で実行させる実機試験処理を行う。実機試験処理の詳細は、図９を参照しながら後述する。
【００２７】
ハードウェア試験装置１０では、試験選択部１０１による試験選択処理と実機試験部１０２による実機試験処理とが交互に繰り返し実行されることにより、複数のテストケースについて、二次故障が発生する可能性を最小にしながら、一連の実機試験の実行を可能にする。
【００２８】
また、画面表示操作部１０３は、上記のように試験選択部１０１及び実機試験部１０２による処理が繰り返された結果等をユーザに表示する画面表示処理を行う。さらに、画面表示操作部１０３は、表示した画面表示に対してユーザから所定の操作が行われた場合に、当該操作に対応する処理を行うこともできる。
【００２９】
なお、図２においてハードウェア試験装置１０内には、試験リスト１１１、故障リスト１１２、故障注入試験結果表１１３、故障試験候補表１１４、試験優先順位表１１５、及び実機試験結果表１１６が示されている。これらは、上記した各機能構成（試験選択部１０１、実機試験部１０２、画面表示操作部１０３、模擬試験部２０１）による処理で用いられる入出力データであり、それぞれリスト形式や表形式になっている。
【００３０】
以下に、これらの入出力データについて、関連する各機能構成の処理を簡単に説明しながら、具体例を挙げて詳しく説明する。
【００３１】
試験リスト１１１は、試験対象ハードウェア３０で実行されるテストケースの一覧を示す情報が登録されたリストである。
【００３２】
図３は、試験リストの一例を説明するための図である。図３に示したように、試験リスト１１１は表形式で保存され、１つのテストケースごとに、テストケースＩＤ１１１Ａ、テスト手順１１１Ｂ、及び合否基準１１１Ｃによって構成される。
【００３３】
テストケースＩＤ１１１Ａは、テストケースを一意に特定可能な名前（識別子）である。テスト手順１１１Ｂは、対象のテストケースの実行手順である。図３では一例として、ユーザが手動で行うハードウェア操作が示されているが、このほかにも例えば、ソフトウェアによって実行可能なスクリプトが示されてもよい。また、テスト手順１１１Ｂには、対象のテストケースの実行に関する事前条件も含まれるものとする。合否基準１１１Ｃには、対象のテストケースについて、テスト手順１１１Ｂが実行された後に、テスト結果が合格（Ｐａｓｓ）か不合格（Ｆａｉｌ）であるかを判定するための基準が示されている。なお、テスト手順１１１Ｂと同様に、合否基準１１１Ｃは、ソフトウェアが合否（Ｐａｓｓ／Ｆａｉｌ）を自動処理で判定可能なスクリプトで示されてもよい。
【００３４】
故障リスト１１２は、試験対象ハードウェア３０で想定される故障の一覧を示す情報が登録されたリストである。なお、故障リスト１１２に登録される故障は、一次故障である。
【００３５】
図４は、故障リストの一例を説明するための図である。図３の試験リスト１１１と同様、図４の故障リスト１１２も表形式で示される。図４に示したように、故障リスト１１２は、１つの一次故障ごとに、一次故障ＩＤ１１２Ａ、一次故障率１１２Ｂ、及び故障内容１１２Ｃによって構成される。なお、故障リスト１１２に登録される故障（一次故障）は、ハードウェアにおける部品の故障だけでなく、部品の取付けミスや配線ミス等、人為的な理由による故障を含んでもよい。
【００３６】
一次故障ＩＤ１１２Ａは、対象の一次故障を一意に特定可能な名前（識別子）である。一次故障率１１２Ｂは、対象の一次故障が発生する確率を示したものである。具体的には、例えば部品の故障であれば、部品メーカの開示している値を使用してよく、また例えば人為的な理由による故障であれば、過去の履歴から算出した値を使用してもよい。なお、図４の例では、故障率の単位はパーセント表示ではなく無次元量で表示している。一次故障率１１２Ｂは、故障リスト１１２に登録される複数の一次故障（Ｆ１〜Ｆ４）の間で故障率を相対的に比較できれば足りるため、このように無次元量による表示であってもよい。そして、故障内容１１２Ｃは、対象の一次故障について、その詳細を記述したものである。
【００３７】
図３に例示した試験リスト１１１及び図４に例示した故障リスト１１２は、事前に作成されてハードウェア試験装置１０（例えばストレージ１３）に記憶されるとする。また、試験リスト１１１及び故障リスト１１２は、事前に模擬試験部２０１にも送信される。前述したように、模擬試験装置２０では、ハードウェア試験装置１０における処理が行われる前に、前提処理として、模擬試験部２０１が試験リスト１１１及び故障リスト１１２を用いてハードウェア模擬装置２０２による模擬試験を実行する。
【００３８】
より具体的に言えば、模擬試験部２０１は、ハードウェア模擬装置２０２に対して、故障リスト１１２に登録された一次故障を注入した状態（すなわち、一次故障が発生した「故障下」の状況）で、試験リスト１１１に登録された各テストケースを実行させる。そして、模擬試験部２０１はその実行結果を記録した故障注入試験結果表１１３をハードウェア試験装置１０に送信し、ハードウェア試験装置１０は受信した故障注入試験結果表１１３をストレージ１３等に記憶する。
【００３９】
故障注入試験結果表１１３は、模擬試験部２０１による模擬試験の結果を示す情報が記録された表である。なお、前述したように、模擬試験部２０１による模擬試験は、試験選択部１０１による処理の事前処理として行われるため、試験選択部１０１による試験選択処理が開始されるときには、故障注入試験結果表１１３は完成している。
【００４０】
図５は、故障注入試験結果表の一例を説明するための図である。図５において、故障注入試験結果表１１３の各列には、模擬試験が実行されたテストケースが示されている（テストケース１１３Ａ）。図５の場合、テストケース１１３Ａは、試験リスト１１１のテストケースＩＤ１１１Ａに示されたテストケースＩＤ（ＴＣ１〜ＴＣ３）で表記される。また、故障注入試験結果表１１３の各行には、模擬試験で設定された一次故障が示されている（一次故障１１３Ｂ）。図５の場合、一次故障１１３Ｂは、故障リスト１１２の一次故障ＩＤ１１３Ａに示された一次故障ＩＤ（故障なし、故障Ｆ１〜故障Ｆ４）で表記される。さらに、図５には、テストケース１１３Ａと一次故障１１３Ｂの組合せで行われた模擬試験の結果を示す情報として、テスト結果１１３Ｃと二次故障１１３Ｄとが設けられている。テスト結果１１３Ｃには、試験リスト１１１の合否基準１１１Ｃに基づいて、模擬試験のテスト結果（Ｐａｓｓ／Ｆａｉｌ）が示される。二次故障１１３Ｄには、当該模擬試験によって二次故障が発生したか否かが「有」「無」で示される。
【００４１】
ここで、模擬試験部２０１による故障注入試験結果表１１３の作成（記録）について詳しく説明する。
【００４２】
模擬試験部２０１は、試験対象ハードウェア３０を模擬したハードウェア模擬装置２０２において、試験リスト１１１に保存された一連のテストケース（ＴＣ１〜ＴＣ３）を実行する。この際、模擬試験部２０１は、ハードウェア模擬装置２０２に対し、故障リスト１１２に登録された一次故障（故障なし、故障Ｆ１〜Ｆ４）を１つずつ注入した状態で上記のテストケース（ＴＣ１〜ＴＣ３）を実行し、試験リスト１１１に示された合否基準１１１Ｃに基づいて、テスト結果が合格（Ｐａｓｓ）か不合格（Ｆａｉｌ）かを判定する。そして、模擬試験部２０１は判定したテスト結果を故障注入試験結果表１１３のテスト結果１１３Ｃに記録する。
【００４３】
さらに、模擬試験部２０１は、各々のテストケース（ＴＣ１〜ＴＣ３）を実行した際に、ハードウェア模擬装置２０２の状態をチェックし、注入した一次故障以外の故障（すなわち、二次故障）が発生していないかを確認する。ここで、二次故障が生じた場合は、故障注入試験結果表１１３の二次故障１１３Ｄに「有」を記録し、二次故障が生じなかった場合は「無」を記録する。
【００４４】
以上のような処理が行われることにより、模擬試験部２０１は故障注入試験結果表１１３を完成させることができる。図５に例示された具体的な試験結果を見てみると、例えば、故障Ｆ１を注入した状態でＴＣ２のテストケースを実行した場合、テスト結果１１３Ｃは「Ｐａｓｓ」で二次故障１１３Ｄは「無」であるから、二次故障が発生することなく合格結果となったことが示される。一方、同じ故障Ｆ１を注入した状態でも、ＴＣ１のテストケースを実行した場合は、テスト結果１１３Ｃが「Ｆａｉｌ」で二次故障１１３Ｄが「有」となっていることから、テスト結果が不合格で、さらに二次故障まで発生したことが示される。
【００４５】
なお、上述の説明では、模擬試験部２０１が故障注入試験結果表１１３を作成してハードウェア試験装置１０に送信するとしたが、本実施の形態では、模擬試験部２０１は模擬試験の結果をハードウェア試験装置１０に送信するだけとして、受信側のハードウェア試験装置１０（例えば試験選択部１０１）が故障注入試験結果表１１３を作成して記憶するようにしてもよい。
【００４６】
以上のように、模擬試験装置２０による前提処理が行われることによって、ハードウェア試験装置１０は故障注入試験結果表１１３を得ることができる。
【００４７】
そして、ハードウェア試験装置１０において試験選択部１０１がテストケースの試験優先順位を決定する試験選択処理を行うとき、試験選択部１０１は、故障注入試験結果表１１３の記録内容をコピーして故障試験候補表１１４を作成する。故障試験候補表１１４は、試験選択部１０１によって試験選択処理が行われるなかで一時データとして扱われ、実機試験部１０２によって実機試験が実行されるに伴ってその内容が変更され得る。詳細は後述する。なお、図１４に具体例を示したように、故障試験候補表１１４の表構成は、故障注入試験結果表１１３と同様と考えてよい。
【００４８】
そして、試験選択部１０１による試験選択処理によって、試験優先順位表１１５が作成される。試験優先順位表１１５は、試験対象ハードウェア３０で実行されるテストケース（すなわち、試験リスト１１１に登録されたテストケース）について、実機試験の実行に関する優先順位を示す情報が記録された表である。なお、試験優先順位表１１５には、当該時点において実機試験が実行されていないテストケースのみが示される。このうち、最も優先順位の高いテストケースが、次の実機試験で実行されるテストケースに決定される。また、試験優先順位表１１５に記録された情報は、画面表示操作部１０３による出力制御でも用いられる（図１５参照）。
【００４９】
図６は、試験優先順位表の一例を説明するための図である。図６において、試験優先順位表１１５の各列には、当該時点で実機試験が実行されていないテストケースが示されている（テスト候補１１５Ａ）。図６の場合、テスト候補１１５Ａは、試験リスト１１１のテストケースＩＤ１１１Ａに示されたテストケースＩＤ（ＴＣ１〜ＴＣ３）で表記される。そして試験優先順位表１１５には、このテスト候補１１５Ａのそれぞれに対応する情報として、二次故障が発生する確率を示す二次故障率１１５Ｂと、実機試験の実行に関する優先度合いを示す優先順位１１５Ｃとが記録されている。なお、試験優先順位表１１５の作成処理の詳細は、図１１を参照した説明で後述するが、第１の実施の形態に係るハードウェア試験装置１０では、二次故障率が低いテスト候補に高い優先順位を付けるようにしている。具体的には例えば、図６の場合、テスト候補ＴＣ１〜ＴＣ３の二次故障率は、それぞれ「０．０１」，「０」，「０．０９」となっているので、優先順位は二次故障率の低い順、すなわちＴＣ２，ＴＣ１，ＴＣ３の順に１〜３が付けられている。
【００５０】
試験選択部１０１によって試験優先順位表１１５が作成されると、実機試験部１０２は、試験優先順位表１１５に示されたテストケースのうち最も高い優先順位が付されたテストケースについて、試験対象ハードウェア３０上で実機試験を実行する。そして、実機試験部１０２は、試験対象ハードウェア３０上で実行した実機試験の結果を実機試験結果表１１６に保存する。
【００５１】
図７は、実機試験結果表の一例を説明するための図である。図７において、実機試験結果表１１６は、テスト連番１１６Ａ、テストケースＩＤ１１６Ｂ、及びテスト結果１１６Ｃによって構成される。
【００５２】
テスト連番１１６Ａは、実行した実機試験（テスト）の順番を示す番号であって、テストの実行ごとにインクリメンタルに付与される。テストケースＩＤ１１６Ｂは、実機試験で実行したテストケースを特定可能な識別子を示すものであって、試験リスト１１１のテストケースＩＤ１１１Ａに示されたテストケースＩＤ（例えばＴＣ１〜ＴＣ３）で表記される。テスト結果１１６Ｃは、各テストケースにおける実機試験の結果を記録するものであって、合格（Ｐａｓｓ）か不合格（Ｆａｉｌ）かが記録される。
【００５３】
具体的には例えば、図６に例示した実機試験結果表１１６の場合、実機試験部１０２が、最初のテストとして（テスト連番「１」）、試験対象ハードウェア３０上でテストケースＩＤ「ＴＣ２」のテストケースを実行し、その結果が不合格（Ｆａｉｌ）であったことが示されている。
【００５４】
（１−３）各種処理
本実施の形態に係るハードウェア試験装置１０における各機能構成（試験選択部１０１，実機試験部１０２、画面表示操作部１０３）によって実行される処理について詳しく説明する。
【００５５】
図８は、試験選択処理の処理手順の一例を示すフローチャートである。試験選択処理は主に試験選択部１０１によって実行されるが、一部の処理（ステップＳ１０４，Ｓ１０６，Ｓ１０７）は画面表示操作部１０３によって制御される。
【００５６】
まず、ステップＳ１０１において、試験選択部１０１は、故障注入試験結果表１１３をコピーして故障試験候補表１１４を作成する。この時点で故障試験候補表１１４には故障リスト１１２に登録された全ての一次故障が故障候補として示されているが、一次故障の故障候補は、当該時点までの実機試験の結果によって絞込むことができる。そこで、ステップＳ１０２では、実機試験結果表１１６を参照して故障候補絞込み処理を行うことによって、故障試験候補表１１４に示される故障候補のうち、発生する可能性を排除できる故障（一次故障）を削除する。故障候補絞込み処理の詳細は、図１０を参照して後述する。
【００５７】
ステップＳ１０３では、試験選択部１０１は、ステップＳ１０２の故障候補絞込み処理を行った結果、故障試験候補表１１４に示される故障候補が１つ又は故障無しであるか否かを判定する。
【００５８】
ステップＳ１０３で肯定結果が得られた場合は（ステップＳ１０３のＹＥＳ）、画面表示操作部１０３が、故障試験候補表１１４に示された故障候補（または故障なし）に関する情報を表示端末（ディスプレイ）に表示させ（ステップＳ１０４）、試験選択処理が終了する。なお、本実施の形態では、故障試験候補表１１４に故障候補が残っていない場合も、「故障無し」という一次故障ＩＤを付与することによって、便宜上故障の一種として取り扱っている。このようにすることで、ステップＳ１０４では、故障が無かった場合にも「故障無し」という結果に関する情報を表示端末（ディスプレイ）に表示させることができる。
【００５９】
一方、ステップＳ１０３で否定結果が得られた場合、すなわち、２以上の故障候補が残っている場合は（ステップＳ１０３のＮＯ）、試験選択部１０１は、まだ実行していないテストケースの優先順位付けを行うために、試験優先順位表作成処理を行って試験優先順位表１１５を作成する（ステップＳ１０５）。試験優先順位表作成処理の詳細は、図１１を参照して後述する。
【００６０】
次いで、画面表示操作部１０３が、現時点で故障試験候補表１１４に示された故障候補に関する情報を表示端末（ディスプレイ）に表示させる（ステップＳ１０６）。画面表示操作部１０３によるディスプレイへの画面表示については、後に具体的な処理例を説明するなかで図１５に例示して改めて説明する。さらに、画面表示操作部１０３は、試験優先順位表１１５に関する情報も表示端末に表示させて、最も優先度の高いテストケースを選択させる（ステップＳ１０７）。なお、最も優先度の高いテストケースの選択は、入力装置１５に対するユーザの選択操作によるものであってもよいし、試験選択部１０１が自動的に選択するものであってもよい。例えば、ハードウェア試験においてテストケースを連続して実行させようとする場合に、試験選択部１０１が、試験優先順位表１１５に示されたテスト候補のうちから最も優先度（優先順位）の高いテストケースを選択するようにしてもよい。
【００６１】
そして、ステップＳ１０７で選択されたテストケースについて、試験対象ハードウェア３０上で当該テストケースを実行するために、実機試験部１０２による実機試験処理が開始される。なお、実機試験処理の詳細は図９を参照して後述するが、実機試験処理が終了した後は、図８のステップＳ１０１に戻り、次回の試験選択処理が行われる。
【００６２】
図９は、実機試験処理の処理手順の一例を示すフローチャートである。実機試験処理は実機試験部１０２によって実行される。
【００６３】
実機試験処理ではまず、実機試験部１０２が、試験選択処理で選択された最優先のテストケース（図８のステップＳ１０７参照）を、試験対象ハードウェア３０上で実行する（ステップＳ２０１）。ここで、テストケースの実行方法は、試験リスト１１１の当該テストケースに対応するテスト手順１１１Ｂに従うものとする。テストケースの実行は、ソフトウェアによって自動で実行されてもよいし、又はユーザによって手動で実行されてもよい。
【００６４】
そしてテストケースの実機試験が終了した後、実機試験部１０２は、試験リスト１１１の当該テストケースに対応する合否基準１１１Ｃ（図３参照）に基づいて、テスト結果が合格（Ｐａｓｓ）か不合格（Ｆａｉｌ）かを判定し、テスト結果等を実機試験結果表１１６に保存する（ステップＳ２０２）。実機試験結果表１１６の具体的な構成は図７に例示した通りであり、テスト結果１１６Ｃ以外に、テスト連番１１６Ａ（当該テストケースの実機試験の順番）及びテストケースＩＤ１１６Ｂ（当該テストケースのテストケースＩＤ）も記載される。
【００６５】
なお、ステップＳ２０１におけるテストケースの実機試験が手動で実行され、その結果確認も手動で行われる場合には、ユーザが入力装置１５を操作する等して実機試験結果を入力し、当該入力された内容が画面表示操作部１０３を介して実機試験部１０２に伝達される等によって、実機試験結果表１１６にテスト結果が保存されるようにする。
【００６６】
ステップＳ２０１〜Ｓ２０２の処理が行われることによって、最優先のテストケースによる実機試験が終了するので、次に実行するテストケースを選択するために、再び試験選択処理（図８）が行われる。そして試験選択処理では、実行されていない残りのテストケースのうちから、二次故障率が最も低いテストケースが次のテストケースに選択され、実機試験処理において、当該選択されたテストケースの実機試験が行われる。このような試験選択処理（図８）と実機試験処理（図９）のループ処理は、試験選択処理の故障候補絞込み処理（ステップＳ１０２）によって故障試験候補表１１４に示される故障候補が１つ又は故障無しになるまで（ステップＳ１０３のＹＥＳ）繰り返される。本実施の形態に係るハードウェア試験装置１０によれば、このようなループ処理によって、二次故障の発生率（二次故障率）の低い順に複数のテストケースが実行されてその結果が蓄積されるため、二次故障率を最小にしつつ一連のテストケースの実機試験を実行することが可能となる。
【００６７】
次に、試験選択処理のなかで行われる故障候補絞込み処理について詳しく説明する。図１０は、故障候補絞込み処理の処理手順の一例を示すフローチャートである。故障候補絞込み処理は、図８のステップＳ１０２に示した処理に相当し、試験選択部１０１によって実行される。
【００６８】
図１０によれば、まず試験選択部１０１は、実機試験結果表１１６を参照し（ステップＳ３０１）、実機試験結果表１１６に記録されたテストケースのうちから未だ選択されていない１つを選択してステップＳ３０３〜Ｓ３０８の処理を実行する（ステップＳ３０２）。なお、ステップＳ３０３〜Ｓ３０８の処理は実機試験結果表１１６に記録されたテストケースの全てが選択されるまで繰り返し実行される。
【００６９】
ステップＳ３０３において、試験選択部１０１は、故障試験候補表１１４に示された故障候補のうちから、ステップＳ３０２で選択されたテストケースに該当するテストケースの列を選択する。図８の説明で前述した通り、最初に作成されたときの故障試験候補表１１４は故障注入試験結果表１１３のコピーであるから、故障注入試験結果表１１３と同じ構成を有し、具体的には、各テストケースについて、一次故障ごとのテスト結果及び二次故障の組合せが記載されている（図５参照）。
【００７０】
次に、試験選択部１０１は、ステップＳ３０３で選択した列（テストケース）において各行に示された一次故障（故障候補）のうちから未だ選択されていない１つを選択してステップＳ３０５〜Ｓ３０６の処理を実行する（ステップＳ３０４）。なお、ステップＳ３０５〜Ｓ３０６の処理はステップＳ３０３で選択した列（テストケース）において各行に示された一次故障（故障候補）の全てが選択されるまで繰り返し実行される。
【００７１】
ステップＳ３０５において試験選択部１０１は、ステップＳ３０４で選択した一次故障（故障候補）におけるテスト結果について、故障注入試験のテスト結果と実機試験のテスト結果とが一致するか否かを判定する。故障注入試験のテスト結果については、故障試験候補表１１４にコピーされた故障注入試験結果表１１３のテスト結果１１３Ｃを参照すればよい（図５参照）。また、実機試験のテスト結果については、実機試験結果表１１６のテスト結果１１６Ｃを参照すればよい（図７参照）。
【００７２】
ステップＳ３０５の比較判定において故障注入試験のテスト結果が実機試験のテスト結果と一致していた場合は（ステップＳ３０５のＹＥＳ）、特段の処理を行わずにステップＳ３０７の処理に進む。ステップＳ３０５の比較判定において故障注入試験のテスト結果が実機試験のテスト結果と一致していなかった場合は（ステップＳ３０５のＮＯ）、選択された一次故障（故障候補）はこれまでの実機試験結果に合致しない故障候補であることを意味するので、当該故障候補を故障試験候補表１１４から除外する（ステップＳ３０６）。具体的には、ステップＳ３０４で選択した一次故障（故障候補）に対応する行を、故障試験候補表１１４から削除する。
【００７３】
そして、ステップＳ３０７では、次の行（故障候補）についての比較判定を行うためにステップＳ３０４の処理に戻る。戻った先のステップＳ３０４では、ステップＳ３０３で選択した列（テストケース）において各行に示された一次故障（故障候補）のうちから未だ選択されていない別の行（故障候補）を選択し（ステップＳ３０４）、ステップＳ３０５の比較判定に進む。
【００７４】
ステップＳ３０３で選択した列（テストケース）における各行の一次故障（故障候補）について上記の処理が終了すると、試験選択部１０１は、当該選択した列を故障試験候補表１１４から削除する（ステップＳ３０８）。ステップＳ３０８の処理によって、実機試験済みのテストケースが故障試験候補表１１４から除外される。
【００７５】
そして、試験選択部１０１は、実機試験結果表１１６に記録されたテストケースのうち未だ選択されていない残りのテストケースについても同様の処理を行うために、ステップＳ３０２の処理に戻る（ステップＳ３０９）。戻った先のステップＳ３０２では、実機試験結果表１１６に記録されたテストケースのうちから未だ選択されていない別のテストケースを選択してステップＳ３０３以降の処理が行われる。そして、最終的に実機試験結果表１１６に記録されたテストケースの全てについてステップＳ３０３〜Ｓ３０８の処理が終了すると、故障候補絞込み処理が終了する。
【００７６】
以上、図１０のステップＳ３０１〜Ｓ３０９の処理が行われることによって、故障注入試験結果表１１３をコピーして作成された故障試験候補表１１４に対して、これまでの実機試験結果に合致しない一次故障の故障候補、及び実行済みのテストケースを除外することができるため、故障試験候補表１１４において、当該時点で可能性のある故障候補と未実行のテストケースだけに絞込むことができる。このような絞込みによって、ハードウェア試験装置１０は、不要な繰り返し処理の実行を抑制することができ、各種装置における処理負荷の軽減やハードウェア試験全体の試験速度の向上を図ることができる。
【００７７】
次に、試験選択処理のなかで行われる試験優先順位表作成処理について詳しく説明する。図１１は、試験優先順位表作成処理の処理手順の一例を示すフローチャートである。試験優先順位表作成処理は、図８のステップＳ１０５に示した処理に相当し、試験選択部１０１によって実行される。
【００７８】
図１１によれば、試験選択部１０１はまず、試験優先順位表１１５の各列（テスト候補１１５Ａ）における二次故障率１１５Ｂと優先順位１１５Ｃをゼロに初期化する（ステップＳ４０１）。次に、試験選択部１０１は、故障試験候補表１１４を参照して、故障試験候補表１１４に記録された列（テストケース）ごとにステップＳ４０３〜ステップＳ４０６の処理を繰り返し行う（ステップＳ４０２）。
【００７９】
ここで、試験優先順位表作成処理が行われる時点では、故障候補絞込み処理（図８のステップＳ１０２、図１０）が終了しているため、故障試験候補表１１４では、実機試験結果表１１６の記録に基づいて、これまでの実機試験結果に合致しない一次故障の故障候補の行、及び実行済みのテストケースの列が削除されている。したがって、ステップＳ４０２以降の処理では、未だ実行されていないテストケースが１つずつ選択される。
【００８０】
なお、ステップＳ４０２で選択されたテストケースは、試験優先順位表１１５のテスト候補１１５Ａに記録されるが、この時点では、当該記録されたテストケースの二次故障率１１５Ｂ及び優先順位１１５Ｃは初期値のゼロとなる。
【００８１】
ステップＳ４０３では、ステップＳ４０２で選択した列（テストケース）において、故障試験候補表１１４の各行、すなわち、故障候補絞込み処理で絞込みが行われた後に残った一次故障（故障候補）のうちから１つが選択される。
【００８２】
次いで、ステップＳ４０４では、試験選択部１０１は、故障試験候補表１１４を参照して、ステップＳ４０３で選択された一次故障（故障候補）に対応する二次故障が「無」となっているか否かを確認する。二次故障が「無」であった場合は（ステップＳ４０４のＹＥＳ）、特段の処理を行うことなく、次の行（故障候補）の処理に進む（ステップＳ４０６）。一方、二次故障が「有」であった場合は（ステップＳ４０４のＮＯ）、試験選択部１０１は、選択中の故障候補の一次故障率を故障リスト１１２の一次故障率１１２Ｂから取得し、取得した一次故障率を試験優先順位表１１５の二次故障率１１５Ｂに加算し（ステップＳ４０５）、その後ステップＳ４０６に進む。
【００８３】
ステップＳ４０３〜Ｓ４０６の処理が故障試験候補表１１４の全ての行（全ての故障候補）について行われた後は、試験選択部１０１はこのループ処理を終了し、故障試験候補表１１４に記録された次の列（テストケース）について、同様の処理を行う（ステップＳ４０７）。そして故障試験候補表１１４に記録された全ての列（全てのテストケース）についてステップＳ４０２〜Ｓ４０７の処理が行われることで、上記全てのテストケースについて二次故障率の計算（試験優先順位表１１５の二次故障率１１５Ｂへの記入）が終了する。
【００８４】
なお、本例においては、説明を簡便にするため、各故障候補は独立した原因によるものと仮定しているが、複数の故障候補について故障率の和を計算する場合、一般には故障間の共通原因が存在し得るため、単純な足し合わせを行うと過大評価になる可能性がある。そのような場合には、一般に知られた故障木分析（Fault Tree Analysis）の情報を利用することによって、厳密な故障率を計算することができる。
【００８５】
故障試験候補表１１４に記録された全てのテストケースについて二次故障率の計算が終了すると、試験選択部１０１は、各テストケースに優先順位を付ける試験優先順位決定処理を行って（ステップＳ４０８）、試験優先順位表作成処理を終了する。
【００８６】
図１２は、試験優先順位決定処理の処理手順の一例を示すフローチャートである。試験優先順位決定処理は、図１１のステップＳ４０８に示した処理に相当し、試験選択部１０１によって実行される。
【００８７】
図１２によれば、試験選択部１０１は、試験優先順位表１１５に記録されたそれぞれのテストケース（テスト候補１１５Ａ）について、各テストケースについて計算された二次故障率１１５Ｂ（図１１のステップＳ４０５参照）に基づいて優先順位を決定する。具体的には例えば、二次故障率が最も低いものから順に試験優先順位表１１５の各列（テスト候補１１５Ａ）を並べ替え、二次故障率が最も低いテストケースを左側に移動させる（ステップＳ５０１）。なお、複数のテストケースが同じ二次故障率となっている場合は、テスト候補１１５Ａに記載されたテストケースＩＤ（試験リスト１１１のテストケースＩＤ１１１Ａに対応）が小さい順に並べるとする。具体的には例えば、ＴＣ１〜ＴＣ３が同じ二次故障率である場合、左からＴＣ１，ＴＣ２，ＴＣ３の順に並べる。
【００８８】
次いで、試験選択部１０１は、ステップＳ５０１で並べ替えた試験優先順位表１１５の左からＮ列目（Ｎ：整数）のテスト候補（テストケース）について、優先順位１１５Ｃを「Ｎ」に設定して記録する（ステップＳ５０２）。ステップＳ５０２の処理は試験優先順位表１１５に記録された全てのテスト候補について行われ、その結果、全てのテスト候補（テストケース）に「１」〜「Ｎ」の優先順位が付与される。
【００８９】
以上のように、図１１に例示した試験優先順位表作成処理（図１２に詳述した試験優先順位決定処理を含む）を行うことによって、試験選択部１０１は、未実行のテストケースについて、二次故障率の低い順に高い優先順位が付された試験優先順位表１１５を作成・更新することができる。
【００９０】
（１−４）具体的な処理例
上記の（１−３）では、本実施の形態に係るハードウェア試験装置１０の各機能構成によって実行される処理の処理手順を説明したが、以下では、具体的な処理例を挙げて全体的な処理の流れを説明する。
【００９１】
なお、ハードウェア試験装置１０によって試験対象ハードウェア３０に対する実機試験が行われる前に、前提処理として、図３に例示した試験リスト１１１及び図４に例示した故障リスト１１２に基づいて模擬試験部２０１による模擬試験が事前に行われて、図５に例示した故障注入試験結果表１１３が作成され、ハードウェア試験装置１０に保存されているものとする。
【００９２】
このような状況で、試験選択部１０１による試験選択処理が開始される。最初は実機試験部１０２による試験対象ハードウェア３０への実機試験は１つも実行されていないため、故障注入試験結果表１１３に基づいて、一番目に実行すべきテストケースを決定し、試験対象ハードウェア３０上で実機試験を行う。ここまでの処理を以下では「テスト一巡目」と呼ぶ。
【００９３】
その後、テスト一巡目で実行したテストケースの実行結果（実機試験結果表１１６）に基づいて、故障候補の絞込みを行った上で、二番目に実行すべきテストケースを決定し、試験対象ハードウェア３０上で実機試験を行う。ここまでの処理を「テスト二巡目」と呼ぶ。
【００９４】
まずテスト一巡目において、試験選択部１０１は、図８に例示したフローチャートに沿って、故障注入試験結果表１１３を取得して故障試験候補表１１４を作成した（ステップＳ１０１）後、ステップＳ１０２の故障候補絞込み処理に進む。但し、テスト一巡目では、実機試験の結果が無いため、図１０に例示したフローチャートに沿って故障候補絞込み処理が行われても、故障試験候補表１１４はステップＳ１０１で故障注入試験結果表１１３からコピーされた状態のまま、何も変更されない（絞込みが行われない）。
【００９５】
次に、試験選択部１０１は、ステップＳ１０３で故障候補が１つ又は故障無しであるか否かを判定する。このとき、故障試験候補表１１４は、故障注入試験結果表１１３からコピーされた状態のままであるから、「故障Ｆ１」〜「故障Ｆ４」の４つの一次故障が故障候補として残っており（図５参照）、ステップＳ１０５の試験優先順位表作成処理に進む。
【００９６】
試験優先順位表作成処理は、図１１，図１２に例示したフローチャートに沿って処理が行われる。具体的には、試験優先順位表１１５の初期化（ステップＳ４０１）の後、故障試験候補表１１４の各テストケース（故障Ｆ１〜故障Ｆ４）について、二次故障率を計算する（ステップＳ４０２〜Ｓ４０７）。ここで故障試験候補表１１４（テスト一巡目なので故障注入試験結果表１１３と同じ）によれば、テストケースは「ＴＣ１」〜「ＴＣ３」の３通りが記録されているので、それぞれのテストケースについて二次故障率が計算される。
【００９７】
二次故障率についてテストケースごとに見ていく。テストケース「ＴＣ１」の場合、図５を参照すると、一次故障が「故障Ｆ１」の場合のみ二次故障が「有」となっていることから、「ＴＣ１」における二次故障率は、「故障Ｆ１」の一次故障率である「０．０１」となる。「故障Ｆ１」の一次故障率は、図４に例示した故障リスト１１２の一次故障率１１２Ｂから取得できる。
【００９８】
テストケース「ＴＣ２」の場合は、図５を参照すると、何れの一次故障でも二次故障は「無」となっていることから、「ＴＣ２」における二次故障率は「０」となる。
【００９９】
テストケース「ＴＣ３」の場合は、図５を参照すると、一次故障が「故障Ｆ２」〜「故障Ｆ４」の場合でそれぞれ二次故障が「有」となっていることから、各二次故障率の和である「０．０９」が「ＴＣ３」における二次故障率となる。詳しくは、図４に例示した故障リスト１１２の一次故障率１１２Ｂによれば、「故障Ｆ２」の一次故障率は「０．０２」、「故障Ｆ３」の一次故障率は「０．０３」、「故障Ｆ４」の一次故障率は「０．０４」であるから、これらの総和を計算すると「０．０９」となる。
【０１００】
以上のように、図１１のステップＳ４０２〜Ｓ４０７の処理が行われることによって、各テストケース「ＴＣ１」〜「ＴＣ３」の二次故障率が計算される。その後、ステップＳ４０８において試験優先順位決定処理が行われる。
【０１０１】
試験優先順位決定処理は、図１２に例示したフローチャートに沿って行われ、二次故障率の大小によってテストケースの優先順位が決定される。前述したように、テストケース「ＴＣ１」，「ＴＣ２」，「ＴＣ３」の二次故障率は、順に「０．０１」，「０」，「０．０９」であったから、二次故障率の低い順に並べ替えが行われて優先順位の付与が行われると（ステップＳ５０１，Ｓ５０２）、「ＴＣ２」の優先順位が「１」、「ＴＣ１」の優先順位が「２」、「ＴＣ３」の優先順位が「３」となる。当該時点での記録状況は図６に例示されている。
【０１０２】
試験優先順位決定処理が終了したことによって、図７に例示した試験選択処理ではステップＳ１０５の試験優先順位表作成処理が終了する。
【０１０３】
次いで、ステップＳ１０６では、画面表示操作部１０３が現時点の故障試験候補表１１４に示された故障候補に関する情報を表示端末（ディスプレイ）に表示する。具体的には、故障試験候補表１１４には故障候補として「故障Ｆ１」〜「故障Ｆ４」が示されているので、これらの一次故障の名称や、故障内容（図４の故障内容１１２Ｃから取得可能）が表示される。また、ステップＳ１０７では、画面表示操作部１０３が試験優先順位表１１５に関する情報も表示端末に表示させて、最も優先度の高いテストケースを選択させる。具体的には、優先順位に沿って「ＴＣ２」，「ＴＣ１」，「ＴＣ３」の順で各テストケースが表示されるとともに、各テストケースにおける二次故障率等が表示される。このような画面表示が行われると、プログラム又はユーザによって最優先のテストケースとして「ＴＣ２」が選択される。
【０１０４】
このような試験選択処理の結果を受けて、実機試験部１０２は図９に例示したフローチャートに沿って実機試験処理を行う。ステップＳ２０１において実機試験部１０２は、試験選択処理で選択されたテストケース「ＴＣ２」による実機試験を試験対象ハードウェア３０上で実行する。そして実機試験部１０２は、そのテスト結果を実機試験結果表１１６に保存する（ステップＳ２０２）。図７には、このときの実機試験結果表１１６が例示されている。図７によれば、テスト連番１１６Ａにテスト一巡目を示す「１」が記録され、テストケースＩＤ１１６Ｂには実行されたテストケースに対応する「ＴＣ２」が記録され、テスト結果１１６Ｃには「Ｆａｉｌ」という不合格の結果が記録されている。以上でテスト一巡目の処理が完了する。
【０１０５】
次にテスト二巡目の処理を説明する。テスト二巡目において、試験選択部１０１は、テスト一巡目と同様に故障注入試験結果表１１３を取得して故障試験候補表１１４を作成し（図８のステップＳ１０１）、故障候補絞込み処理に進む（ステップＳ１０２）。
【０１０６】
テスト二巡目の故障候補絞込み処理では、テスト一巡目に実機試験部１０２によって実行された実機試験のテスト結果（すなわち、テストケースＴＣ２のテスト結果が不合格（Ｆａｉｌ）であったこと）が実機試験結果表１１６に記録されているので、このテスト結果を用いて故障候補の絞込みを行うことができる。
【０１０７】
図１０のフローチャートに沿って処理を進めると、テスト二巡目の故障候補絞込み処理では、ステップＳ３０４〜Ｓ３０７の処理において、実機試験結果表１１６に記録された「ＴＣ２の実行結果がＦａｉｌ」という手がかりによって、故障試験候補表１１４の記載内容のうち、テストケース「ＴＣ２」においてテスト結果が「Ｐａｓｓ」となる一次故障を故障候補から除外することができる。具体的には、図５の故障注入試験結果表１１３を参照すれば、テストケース「ＴＣ２」のテスト結果が「Ｐａｓｓ」となっている一次故障として「故障無し」、「故障Ｆ１」、及び「故障Ｆ２」があるため、故障試験候補表１１４ではこれらの一次故障の行が削除され、「故障Ｆ３」及び「故障Ｆ４」の行が残される。さらに、テストケース「ＴＣ２」が実行済みであることから、ステップＳ３０８の処理において、故障試験候補表１１４では「ＴＣ２」の列も削除される。
【０１０８】
ここで、図１３は、故障試験候補表の一例を説明するための図である。図１３に例示した故障試験候補表１１４は、上述したようにテスト二巡目において故障候補絞込み処理が行われた後の記録内容を示している。図１３を参照すると、故障試験候補表１１４の表構成は、故障注入試験結果表１１３の表構成（図５）と同じであるが、テストケース１１４Ａを見ると、実行済みの「ＴＣ２」が除外されて「ＴＣ１」と「ＴＣ３」だけが記載されている。また、一次故障１１４Ｂについても、「故障無し」、「故障Ｆ１」、及び「故障Ｆ２」が除外され、「故障Ｆ３」及び「故障Ｆ４」だけが記載されている。さらに、これらの一次故障に対応して、模擬試験の結果（テスト結果１１４Ｃ）と二次故障の有無（二次故障１１４Ｄ）とが記載されている。
【０１０９】
ステップＳ１０２の故障候補絞込み処理が行われた後は、テスト一巡目と同様に、ステップＳ１０３で残りの故障候補の数が判定されるが、図１３に例示した通り故障候補は「ＴＣ１」と「ＴＣ３」の２つであるから、ステップＳ１０５の試験優先順位表作成処理が行われる。
【０１１０】
試験優先順位表作成処理では、図１１及び図１２に例示したフローチャートに沿って処理が行われ、「ＴＣ１」と「ＴＣ３」の各テストケースについて二次故障率と優先順位が計算される。具体的には、図１３に例示した故障試験候補表１１４を参照すれば、テストケース「ＴＣ１」の場合、何れの一次故障（「故障Ｆ３」，「故障Ｆ４」）においても二次故障は「無」であることから、「ＴＣ１」の二次故障率は「０」となる。一方、テストケース「ＴＣ３」の場合、「故障Ｆ３」及び「故障Ｆ４」の両方で二次故障は「有」となっており、それぞれの一次故障率は「０．０３」と「０．０４」である（図４の一次故障率１１２Ｂを参照）ことから、「ＴＣ３」の二次故障率は和によって「０．０７」となる。
【０１１１】
図１４は、テスト二巡目における試験優先順位表の一例を説明するための図である。図１４に例示した試験優先順位表１１５は、上述したようにテスト二巡目において試験優先順位表作成処理が行われた後の記録内容を示している。図１４の試験優先順位表１１５を、テスト一巡目の記録内容を例示した図６の試験優先順位表１１５と比較すると、表構成は同じものの、実行済みのテストケース「ＴＣ２」は記載されていない。また、各テストケースの二次故障率についても、テスト二巡目では前述の故障候補絞込み処理において「故障無し」、「故障Ｆ１」、及び「故障Ｆ２」が除外されたことから、テスト一巡目とは異なる故障率が記載されている。まとめると、テスト二巡目の試験優先順位表１１５では、テストケース「ＴＣ１」の二次故障率が「０」で優先順位は「１」となり、テストケース「ＴＣ３」の二次故障率が「０．０７」で優先順位は「２」となる。
【０１１２】
以上のように試験優先順位決定処理が終了したことによって、図７に例示した試験選択処理ではステップＳ１０５の試験優先順位表作成処理が終了する。
【０１１３】
次いで、ステップＳ１０６では、画面表示操作部１０３が現時点の故障試験候補表（図１３の故障試験候補表１１４）に示された故障候補に関する情報を表示端末（ディスプレイ）に表示する。具体的には、故障候補絞込み処理を経て、故障試験候補表１１４に残っている故障候補は「故障Ｆ３」と「故障Ｆ４」である。そしてこれらの一次故障の名称や、故障内容（図４の故障内容１１２Ｃから取得可能）が表示される。また、ステップＳ１０７では、画面表示操作部１０３が現時点の試験優先順位表（図１４の試験優先順位表１１５）に関する情報も表示端末に表示させて、最も優先度の高いテストケースを選択させる。具体的には、優先順位に沿って「ＴＣ１」，「ＴＣ３」の順で各テストケースが表示されるとともに、各テストケースにおける二次故障率等が表示される。このような画面表示が行われることによって、次に実機試験を行うべき最優先のテストケースが「ＴＣ１」であることが示される。そして、ステップＳ１０７で「ＴＣ１」が選択されると、実機試験部１０２は、テストケース「ＴＣ２」による実機試験を試験対象ハードウェア３０上で実行し、その結果を実機試験結果表１１６に保存する。ここまでの処理が終了すると、テスト二巡目の処理が完了する。
【０１１４】
ここで、画面表示操作部１０３によるディスプレイへの画面表示について具体例を示す。図１５は、出力装置における表示画面の一例を説明するための図である。図１５の表示画面１６０は、画面表示操作部１０３によって制御されるディスプレイ（出力装置１６）上の表示出力の一例を示すものであり、上述した具体的な処理例のうち、テスト二巡目において試験優先順位表作成処理の終了後に試験優先順位表が表示されたタイミング（但し、次に実行する最優先のテストケースの選択は行われていない）における画面表示例を示している。
【０１１５】
図１５によれば、表示画面１６０は、実機試験結果入力領域１６１、実機試験結果登録ボタン１６２、故障候補表示領域１６３、及び試験優先順位表示領域１６４を備えて構成されている。
【０１１６】
実機試験結果入力領域１６１は、実機試験部１０２によって試験対象ハードウェア３０に対して行われた実機試験のテスト結果を入力（または表示）するための領域である。例えば図１５では、テスト一巡目の試験選択処理の処理結果に基づいて選択された「最優先のテストケース「ＴＣ２」」についての実機試験のテスト結果が示されている。実機試験のテスト結果がユーザによって入力される場合には、実機試験結果入力領域１６１に実機試験を行ったテストケース「ＴＣ２」とそのテスト結果「Ｆａｉｌ」が入力される。
【０１１７】
そして、実機試験結果登録ボタン１６２は、実機試験結果入力領域１６１に入力した実機試験のテスト結果を実機試験結果表１１６に登録・保存する場合に押下するボタンである。このボタンはユーザが実機試験結果入力領域１６１に実機試験のテスト結果を入力するときに有効になり、当該ボタンが押下された場合には入力されたテスト結果が実機試験結果表１１６に追加登録される。なお、ハードウェア試験装置１０では、実機試験のテスト結果が登録されると、登録後の実機試験結果表１１６に基づいて、試験選択部１０１が自動的に試験候補選択処理を実行するものとする。
【０１１８】
また、これまでも説明した通り、本実施の形態に係るハードウェア試験装置１０では、実機試験はソフトウェアによる自動実行を行うこともでき、この場合、ユーザによる実機試験結果入力領域１６１への入力や実機試験結果登録ボタン１６２の押下操作は不要である。そこで、ソフトウェアによる自動実行が行われる場合、実機試験結果入力領域１６１は、当該自動実行された実機試験の結果を表示するための領域としてもよい。このとき、実機試験の結果が実機試験結果表１１６に記録された後に、当該記録した内容を実機試験結果入力領域１６１に表示するようにすればよい。また、実機試験結果登録ボタン１６２についても、ソフトウェアによる自動処理が行われる場合は、次に実行すべき最優先のテストケースの実機試験の実行を開始するためのボタンとして用いる等すればよい。
【０１１９】
次に、故障候補表示領域１６３は、図８のステップＳ１０６（またはステップＳ１０４）の処理に対応した情報が表示される領域、すなわち、現時点での故障試験候補表１１４に示された故障候補に関する情報が表示される領域である。例えば図１５の場合、実機試験結果入力領域１６１においてテストケース「ＴＣ２」の実機試験のテスト結果が入力（または表示）されて実機試験結果登録ボタン１６２が押下されているとする。この状況を上述の具体的な処理例で言えば、テスト一巡目の処理結果を踏まえて実行されたテストケース「ＴＣ２」の実機試験の結果が得られた後の、テスト二巡目の状態に相当する。
【０１２０】
このテスト二巡目における故障試験候補表１１４については、図１３に具体例を示しており、それによれば一次故障の故障候補は「故障Ｆ３」又は「故障Ｆ４」となっている。そして、故障リスト１１２の故障内容１１２Ｃ（図４）によれば、「故障Ｆ３」の故障内容は「回路Ａ短絡」であり、「故障Ｆ４」の故障内容は「部品Ｂ破損」である。図１５の故障候補表示領域１６３には、このような故障候補に関する情報が表示されている。
【０１２１】
そして、試験優先順位表示領域１６４は、図８のステップＳ１０７の処理に対応した情報が表示される領域、すなわち、試験優先順位表１１５に関する情報が表示される領域である。例えば図１５の場合は、テスト二巡目の状況であるから、図１４に例示した試験優先順位表１１５の情報が表示されている。このような表示が行われることによって、ユーザは未実行のテストケースについて次に実機試験を実行すべき最優先のテストケース及びその二次故障率を認識できるだけでなく、残りのテストケースについても、現時点における優先順位及び二次故障率を把握することができる。
【０１２２】
なお、図１５の表示画面はテスト二巡目の一状況を例示したものであるが、故障試験候補表１１４に示された故障候補が１以下になるまでテストが繰り返された場合には、図８のステップＳ１０４で説明した通り、最後に残った故障候補又は「故障無し」が故障候補表示領域１６３に表示される。このとき、全てのテストケースについて試験対象ハードウェア３０における実機試験が完了するとともに、最終的な故障候補が示されることになる。
【０１２３】
また、図１５の表示画面例は、本実施の形態に係るハードウェア試験装置１０による表示出力の一例に過ぎず、図１５とは異なる表示領域や表示内容を備えて構成されてもよい。また、各表示領域における表示タイミング等についても、図１５の例示に限定されるものではなく、ユーザが試験状況を理解しやすい表示態様で実行することが好ましい。
【０１２４】
以上、テスト一巡目及びテスト二巡目における具体的な処理例を説明したが、故障試験候補表１１４に示された故障候補が１以下になるまで、テスト二巡目以降もこれらの処理が繰り返される。すなわち、各巡目において、試験選択部１０１が二次故障率の低いテストケースを選び出し、実機試験部１０２が当該テストケースによる実機試験を行いそのテスト結果（「Ｐａｓｓ」，「Ｆａｉｌ」）を得る。そして、次巡目では、得られた実機試験のテスト結果に基づいて、テスト結果にマッチしない故障候補を除外した上で、再度、故障候補ごとの二次故障率を計算して次のテストケースを選び出す、といった処理が繰り返される。
【０１２５】
（１−５）まとめ
以上に説明してきたように、第１の実施の形態に係るハードウェア試験装置１０は、事前の模擬試験にて一次故障の注入を行った状態でのテストケース実行結果及び二次故障有無を記録したデータに基づき、実際の試験において各テストケースの二次故障率を一次故障の故障率から算出し、テストケースの優先順位付けを行う。また、テストケースを実行して結果が得られる度に、事前の故障注入テスト結果をもとに故障候補の絞込みを行い、未実行のテストケースに対する二次故障率を更新する。このように、二次故障率を動的に計算し、最優先のテストケースを選択していくことで、全てのテストケースを完了するまでの二次故障率を最小化することができる。このようなハードウェア試験装置１０は、テスト対象における故障分析を行うシステムに適用することができる。
【０１２６】
特に、本実施の形態に係るハードウェア試験装置１０は、テストケースの実機試験結果が更新されるごとに、最新の実機試験結果に基づいて故障候補絞込み処理を行い、当該処理において、これまでの実機試験結果に合致しない一次故障の故障候補及び実行済みのテストケースを除外することを特徴とする。そして、除外後の最新情報に基づいて未実行のテストケースの二次故障率を計算し直すことによって、より精度の高い相対的な二次故障率を算出することができるため、二次故障が発生する可能性を最小化するテストケースの選択を可能にし、ハードウェア試験の全体を通して試験に要する時間、費用、労力等を抑制する効果に期待できる。
【０１２７】
なお、第１の実施の形態においてテストケースの優先順位を決定するために用いられた「二次故障率」は、二次故障に関するパラメータの１つの例であって、後述する第２の実施の形態では、別例として「二次故障の復旧コスト期待値」が用いられる。
【０１２８】
（２）第２の実施の形態
本発明の第２の実施の形態に係るハードウェア試験装置について説明する。
【０１２９】
前述した第１の実施の形態では、テストケースを実行した際に発生し得る二次故障の発生確率（二次故障率）に基づいて、次に実行すべきテストケースの優先順位を決定する方法について説明した。しかしながら、二次故障の発生を考慮した優先順位について考察すると、二次故障に伴う深刻さの度合いによって優先順位を決定したいという場合も想定される。
【０１３０】
例えば、ある二次故障が発生した場合は、簡単な措置で修理・復旧が可能である一方、別の二次故障が発生した場合は、試験対象ハードウェア３０全体が破損してしまうために、修理・復旧のために大きなコストが掛かってしまう、といったことがある。このような場合、二次故障率が同じ確率であったとしても、修理・復旧が容易な前者の二次故障を優先する仕組みが求められる。
【０１３１】
以上のような観点から、第２の実施の形態では、二次故障の復旧コストを考慮してテストケースの優先順位を計算するハードウェア試験装置及びハードウェア試験方法について説明する。
【０１３２】
なお、第２の実施の形態は、第１の実施の形態で説明したハードウェア試験装置１０によるハードウェア試験方法と比較すると、二次故障についてその発生確率（二次故障率）だけでなく、発生時の復旧コストを考慮して、テストケースの優先順位を付ける点でのみ異なっている。そのため、第２の実施の形態では、第１の実施の形態で説明したハードウェア試験装置１０を流用して説明を行う。
【０１３３】
第２の実施の形態では、ハードウェア試験装置１０においてテストケースの優先順位付けをする際に、二次故障が発生した場合の復旧コストを考慮に入れることから、事前処理として模擬試験装置２０で行われる模擬試験の段階で、二次故障発生時の復旧コストを勘案する必要がある。そこで具体的には、模擬試験部２０１による模擬試験のテスト結果が記録される故障注入試験結果表において、二次故障発生時の復旧コストを併記する。
【０１３４】
図１６は、第２の実施の形態で用いられる故障注入試験結果表の一例を説明するための図である。図１６に例示した故障注入試験結果表２１３は、第１の実施の形態における故障注入試験結果表１１３（図５参照）と同様に、模擬試験部２０１が試験リスト１１１及び故障リスト１１２に基づいてハードウェア模擬装置２０２上で模擬試験を行ったテスト結果が記録されたものである。
【０１３５】
図１６に例示した故障注入試験結果表２１３の表構成を見ると、第１の実施の形態で図５に例示した故障注入試験結果表１１３と同様の構成（具体的には、テストケース２１３Ａ、一次故障２１３Ｂ、テスト結果２１３Ｃ、及び二次故障２１３Ｄ）に加えて、復旧コスト２１３Ｅが併記されている。
【０１３６】
復旧コスト２１３Ｅは、対応する二次故障が発生したときの復旧に要するコストを意味しており、具体的には例えば図１６において、一次故障「故障Ｆ１」の状況下でテストケース「ＴＣ１」による模擬試験を行った場合、二次故障が「有」となっており、そのときの復旧コストは「５０」と記載されている。また例えば、テストケース「ＴＣ３」については、一次故障「故障Ｆ２」，「故障Ｆ３」，「故障Ｆ４」の状況下で、それぞれ二次故障が発生しており、各復旧コストは「１０」，「３０」，「２０」と記載されている。
【０１３７】
ここで、復旧コスト２１３Ｅの数値及び単位としては、例えば故障部品の価格や納期、又は復旧のために必要な人月などが想定され得るが、表内で統一されて状況ごとの復旧コストの違いが相対的に表される限りにおいて、その表記方法は任意であってよい。具体的には、先ほど説明したテストケース「ＴＣ３」について見ると、二次故障の復旧コストは、一次故障が「故障Ｆ３」の場合が最も高く、一次故障が「故障Ｆ４」である場合がそれに続き、一次故障が「故障Ｆ２」である場合は、二次故障が発生するなかでは最も復旧コストが低いことが表されている。
【０１３８】
以下では、事前処理によって上記のような故障注入試験結果表２１３が保存されているとする場合に、第２の実施の形態によるハードウェア試験装置１０で行われる処理について説明する。
【０１３９】
第２の実施の形態においては、試験選択部１０１によって試験選択処理が行われて最優先のテストケースが選び出され、実機試験部１０２によって当該最優先のテストケースによる実機試験が行われること、さらにその実機試験のテスト結果に基づいて、次回の試験選択処理が行われていく、という全体的な処理の流れは、第１の実施の形態と同様である。しかし、優先順位の決定に関する部分で、第１の実施の形態とは異なる処理が行われる。
【０１４０】
より具体的に言えば、試験選択処理の概要（図８）、故障候補絞込み処理（図１０）、実機試験処理（図９）については、第１の実施の形態における処理と同じ処理が行われる。一方、試験優先順位表作成処理（図１１）、及び試験優先順位決定処理（図１２）については、第１の実施の形態とは異なる処理が行われる。
【０１４１】
なお、図８に例示した試験選択処理のうち、ステップＳ１０１では、試験選択部１０１が故障注入試験結果表をコピーして故障試験候補表を作成するが、第２の実施の形態では図１６に例示した故障注入試験結果表２１３が用いられる。故障注入試験結果表２１３の表構成が、復旧コスト２１３Ｅが記載されている点で第１の実施の形態で示した故障注入試験結果表１１３と異なることは前述の通りであり、したがってコピー先の故障試験候補表（不図示）も同様の表構成を有する。
【０１４２】
また、実機試験が未実行のテストケースに対する優先順位を示す情報が記録される試験優先順位表についても、第２の実施の形態では二次故障の復旧コストを考慮して優先順位が付けられることから、第１の実施の形態で示した試験優先順位表（例えば図６や図１４）とは異なる表構成を有するものとなる。具体的な表構成は図１９に例示されており、試験優先順位表２１５には、当該時点において実機試験が実行されていないテストケース（テスト候補２１５Ａ）について、復旧コスト期待値２１５Ｂ及び優先順位２１５Ｃが記載される。
【０１４３】
図１７は、第２の実施の形態における試験優先順位表作成処理の処理手順の一例を示すフローチャートである。図１７に示すように、試験選択部１０１は、試験優先順位表２１５の各列（テスト候補２１５Ａ）における復旧コスト期待値２１５Ｂと優先順位２１５Ｃをゼロに初期化する（ステップＳ６０１）。
【０１４４】
次に、試験選択部１０１は、故障試験候補表を参照して、故障試験候補表に記録された列（テストケース）ごとにステップＳ６０３〜ステップＳ６０６の処理を繰り返し行う（ステップＳ６０２）。
【０１４５】
ステップＳ６０３では、ステップＳ６０２で選択した列（テストケース）において、故障試験候補表の各行、すなわち、故障候補絞込み処理で絞込みが行われた後に残った一次故障（故障候補）のうちから１つが選択される。
【０１４６】
ステップＳ６０４では、試験選択部１０１は、故障試験候補表を参照して、ステップＳ６０３で選択された一次故障（故障候補）に対応する二次故障が「無」となっているか否かを確認する。二次故障が「無」であった場合は（ステップＳ６０４のＹＥＳ）、特段の処理を行うことなく、次の行（故障候補）の処理に進む（ステップＳ６０６）。一方、二次故障が「有」であった場合は（ステップＳ６０４のＮＯ）、試験選択部１０１は、選択中の故障候補の一次故障率と二次故障発生時の復旧コストとの積を、試験優先順位表２１５の復旧コスト期待値２１５Ｂに加算する（ステップＳ６０５）。なお、故障候補の一次故障率は、故障リスト１１２の一次故障率１１２Ｂから取得することができ、二次故障発生時の復旧コストは、故障注入試験結果表２１３がコピーされた故障試験候補表の「復旧コスト」から取得することができる。ステップＳ６０５の処理が終わると、試験選択部１０１は次の行（故障候補）の処理に進む（ステップＳ６０６）。
【０１４７】
ステップＳ６０３〜Ｓ６０６の処理が故障試験候補表の全ての行（全ての故障候補）について行われた後は、試験選択部１０１はこのループ処理を終了し、故障試験候補表に記録された次の列（テストケース）について、同様の処理を行う（ステップＳ６０７）。そして故障試験候補表に記録された全ての列（全てのテストケース）についてステップＳ６０２〜Ｓ６０７の処理が行われることで、上記全てのテストケースについて二次故障の復旧コスト期待値の計算（試験優先順位表２１５の復旧コスト期待値２１５Ｂへの記入）が終了する。
【０１４８】
ステップＳ６０７で故障試験候補表に記録された全てのテストケースについて二次故障の復旧コスト期待値の計算が終了すると、試験選択部１０１は、各テストケースに優先順位を付ける試験優先順位決定処理を行って（ステップＳ６０８）、試験優先順位表作成処理を終了する。
【０１４９】
図１８は、第２の実施の形態における試験優先順位決定処理の処理手順の一例を示すフローチャートである。図１８によれば、試験選択部１０１は、試験優先順位表２１５に記録されたそれぞれのテストケース（テスト候補２１５Ａ）について、各テストケースについて計算された二次故障の復旧コスト期待値２１５Ｂ（図１７のステップＳ６０５参照）に基づいて優先順位を決定する。具体的には例えば、復旧コスト期待値が最も低いものから順に試験優先順位表２１５の各列（テスト候補２１５Ａ）を並べ替え、復旧コスト期待値が最も低いテストケースを左側に移動させる（ステップＳ７０１）。
【０１５０】
次いで、試験選択部１０１は、ステップＳ６０１で並べ替えた試験優先順位表２１５の左からＮ列目（Ｎ：整数）のテスト候補（テストケース）について、優先順位２１５Ｃを「Ｎ」に設定して記録する（ステップＳ６０２）。ステップＳ６０２の処理は試験優先順位表１１５に記録された全てのテスト候補について行われ、その結果、全てのテスト候補（テストケース）に「１」〜「Ｎ」の優先順位が付与される。
【０１５１】
以上のように、図１７に例示した試験優先順位表作成処理（図１８に詳述した試験優先順位決定処理を含む）を行うことによって、試験選択部１０１は、未実行のテストケースについて、二次故障の復旧コスト期待値の低い順に高い優先順位が付された試験優先順位表２１５を作成・更新することができる。
【０１５２】
第２の実施の形態による特徴的な処理は上述した通りであるが、その理解を深めるために、以下では、第１の実施の形態の（１−４）で説明した具体的な処理例と比較しながら、テスト一巡目のテスト優先順位を決定するまでの具体的な処理例について説明する。
【０１５３】
まず試験選択部１０１は、第１の実施の形態と具体例と同様に、図８のフローチャートに沿って故障注入試験結果表２１３を取得して故障試験候補表を作成するが（ステップＳ１０１）、この時点では実機試験の結果は存在しないため、故障絞込み処理（ステップＳ１０２）が行われても故障試験候補表の記録内容は変更されない。また、故障試験候補表は、故障注入試験結果表２１３からコピーされた状態のままであるから、「故障Ｆ１」〜「故障Ｆ４」の４つの一次故障が故障候補として残っており（図１６参照）、ステップＳ１０５の試験優先順位表作成処理に進む。
【０１５４】
試験優先順位表作成処理では、各テストケースについて復旧コスト期待値の総和が計算される（ステップＳ６０２〜Ｓ６０７）。図１６の故障注入試験結果表２１３の例をもとに具体的に復旧コスト期待値を計算すると、まずテストケース「ＴＣ１」の場合は、一次故障「故障Ｆ１」の二次故障が「有」となっていることから、一次故障率の「０．０１」と復旧コストの「５０」とを積算して得られる復旧コスト期待値「０．５」を試験優先順位表２１５の復旧コスト期待値２１５Ｂに記録する。同様に、テストケース「ＴＣ２」の場合は、一次故障「故障Ｆ３」による復旧コスト期待値が「０．０３×１０」の積算によって「０．３」となり、この値を試験優先順位表２１５に記録する。またテストケース「ＴＣ３」の場合は、二次故障が「有」となる一次故障が「故障Ｆ２（一次故障率０．０２，復旧コスト１０）」、「故障Ｆ３（一次故障率０．０３，復旧コスト３０）」、「故障Ｆ４（一次故障率０．４０，復旧コスト２０）」の３通りあるため、各一次故障について復旧コスト期待値を計算して試験優先順位表２１５に加算していくと、最終的には各復旧コスト期待値の総和がテストケース「ＴＣ３」の復旧コスト期待値となる。具体的には、「故障Ｆ２」の復旧コスト期待値は「０．２０×１０」の積算によって「０．２」となり、「故障Ｆ３」の復旧コスト期待値は「０．３０×３０」の積算によって「０．９」となり、「故障Ｆ４」の復旧コスト期待値は「０．４０×２０」の積算によって「０．８」となる。そしてこれらの総和「０．２＋０．９＋０．８」の算出式から「１．９」がテストケース「ＴＣ３」の復旧コスト期待値として記録される。
【０１５５】
そして、上記のようにして計算された復旧コスト期待値に基づいて、試験優先順位決定処理が行われる。試験優先順位決定処理では、復旧コスト期待値の小さい順にテストケースが並べ替えられて、並べ替えられたテストケースに対して優先順位が「１」から順に付与される（ステップＳ７０１，Ｓ７０２）。
【０１５６】
図１９は、第２の実施の形態における試験優先順位表の一例を説明するための図である。図１９には、上述した具体例な処理例によってテスト一巡目の処理が終了した時点での試験優先順位表２１５が例示されている。図１９の試験優先順位表２１５によれば、テストケース「ＴＣ１」〜「ＴＣ３」のテスト候補２１５Ａについて、テストケース「ＴＣ２」の復旧コスト期待値が最も小さい「０．３」であることから優先順位「１」が付与されており、次に復旧コスト期待値が「０．５」のテストケース「ＴＣ１」に優先順位「２」が付与され、復旧コスト期待値が最も大きい「１．９」であるテストケース「ＴＣ３」には優先順位「３」が付与されている。したがって、図１９の試験優先順位表２１５にも示されるように、テスト一巡目の処理が行われた結果、復旧コスト期待値が最小であるテストケース「ＴＣ２」が、次に実行すべきテストケースとして選び出される。
【０１５７】
なお、第２の実施の形態においても、画面表示操作部１０３によるディスプレイへの画面表示を実行可能であるが、これは第１の実施の形態と同様に実現可能であることから、説明は省略する。
【０１５８】
以上に説明してきたように、第２の実施の形態に係るハードウェア試験装置１０によれば、試験対象ハードウェア３０に対して複数のテストケースによる実機試験を行おうとするとき、故障候補のなかに二次故障が発生する可能性を有するものが含まれる場合であっても、二次故障の発生確率とともにその復旧コストをも考慮して、二次故障による復旧コストの期待値を最小にしながら、一連のテストケースによる実機試験を実行することができる。
【０１５９】
特に、第１の実施の形態による効果と比較すると、第１の実施の形態は二次故障の発生確率に基づいてテストケースの優先順位を決定するものであったのに対し、第２の実施の形態では二次故障の発生に伴う復旧コストも考慮に入れることによって、ハードウェア試験の全体を通して、二次故障の可能性（二次故障発生に伴う修理や復旧による影響）を最小化するテスト計画を作成することができる。かくして、第２の実施の形態によれば、第１の実施の形態よりもさらに効率的な実機試験の実行が可能となる。
【０１６０】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１６１】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、又は、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１６２】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実施には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１６３】
１０    ハードウェア試験装置
１１，２１    ＣＰＵ
１２，２２    メモリ
１３，２３    ストレージ
１４    入出力インタフェース
１５    入力装置
１６    出力装置
２０    模擬試験装置
３０    試験対象ハードウェア
４０    ネットワーク
１０１  試験選択部
１０２  実機試験部
１０３  画面表示操作部
１１１  試験リスト
１１２  故障リスト
１１３  故障注入試験結果表
１１４  故障試験候補表
１１５，２１５  試験優先順位表
１１６  実機試験結果表
１６０  表示画面
１６１  実機試験結果入力領域
１６２  実機試験結果登録ボタン
１６３  故障候補表示領域
１６４  試験優先順位表示領域
２０１  模擬試験部
２０２  ハードウェア模擬装置
【図１】
2018160191.tif 000003
【図２】
2018160191.tif 000004
【図３】
2018160191.tif 000005
【図４】
2018160191.tif 000006
【図５】
2018160191.tif 000007
【図６】
2018160191.tif 000008
【図７】
2018160191.tif 000009
【図８】
2018160191.tif 000010
【図９】
2018160191.tif 000011
【図１０】
2018160191.tif 000012
【図１１】
2018160191.tif 000013
【図１２】
2018160191.tif 000014
【図１３】
2018160191.tif 000015
【図１４】
2018160191.tif 000016
【図１５】
2018160191.tif 000017
【図１６】
2018160191.tif 000018
【図１７】
2018160191.tif 000019
【図１８】
2018160191.tif 000020
【図１９】
2018160191.tif 000021