以下図面について、本発明の一実施の形態を詳述する。
(1)第1の実施の形態
(1−1)ハードウェア構成
図1は、本発明の第1の実施の形態に係るハードウェア試験装置のハードウェア構成例を示す図である。図1には、本発明の第1の実施の形態に係るハードウェア試験装置10と、シミュレータ等を使用してテストケースを実行する模擬試験装置20と、実機試験の対象となる試験対象ハードウェア30とが示されている。ハードウェア試験装置10はネットワーク40を介して模擬試験装置20と相互に通信可能に接続される。また、ハードウェア試験装置10は試験対象ハードウェア30とも通信可能に接続される。
図1において、ハードウェア試験装置10は、CPU(Central Processing Unit)11、メモリ12、ストレージ13、及び入出力インタフェース14を備えて構成される。CPU11、メモリ12、ストレージ13、及び入出力インタフェース14は、CPUバスなどから構成されるバスによって相互に接続されている。ハードウェア試験装置10は、例えばパーソナルコンピュータ(PC)やその他の計算機によって実現することができる。
CPU11は、演算処理装置及び制御装置として機能し、各種プログラムに従ってハードウェア試験装置10内の動作全般を制御する。また、CPU11はマイクロプロセッサであってもよい。後述の図2で示す試験選択部101、実機試験部102、及び画面表示操作部103は、CPU11によって1以上の所定のプログラムが実行されることによって実現される。
メモリ12は、CPU11の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶する。ストレージ13は、CPU11が使用するプログラムや演算パラメータ等を記憶する。後述の図2で示す試験リスト111、故障リスト112、故障注入試験結果表113、故障試験候補表114、試験優先順位表115、及び実機試験結果表116は、メモリ12又はストレージ13にデータとして記憶される。
入出力インタフェース14は、ハードウェア試験装置10と周辺機器を接続するための規格を有する装置であって、ハードウェア試験装置10と入力装置15及び出力装置16とを接続する。入力装置15は、例えばキーボードやマウス等、ユーザによる操作入力が可能なデバイスであって、入力装置15における操作入力は、入出力インタフェース14を介してCPU11に伝達される。また、出力装置16は、例えばディスプレイやプリンタ等、ハードウェア試験装置10からの出力先となるデバイスであって、CPU11(機能的には画面表示操作部103)から出力指示が行われた場合、入出力インタフェース14を介して対象の出力装置16で画面表示や印字等の出力が行われる。以後の説明では、出力装置16は画像を表示可能な表示端末(ディスプレイ)とする。
なお、図1のハードウェア試験装置10は、本実施の形態に係るハードウェア試験装置のハードウェア構成の主要部分を例示したものであって、その構成は図1に例示されたものに限定されない。例えば、入力装置15や出力装置16がハードウェア試験装置10の内部に備えられる構成であってもよいし、図1には図示されていない構成が追加されてもよい。また、本発明に係るハードウェア試験装置は、図1のように1台の計算機(ハードウェア試験装置10)から構成されるものに限定されず、複数の計算機が連結されて構成される等であってもよい。
模擬試験装置20は、ハードウェア試験装置10と同様に、パーソナルコンピュータ(PC)やその他の計算機によって実現することができる。模擬試験装置20は、CPU21、メモリ22、及びストレージ23を備えている。後述の図2で示す模擬試験部201及びハードウェア模擬装置202は、メモリ22やストレージ23に記憶されたデータを用いてCPU21が1以上の所定のプログラムを実行することによって実現される。より具体的には、模擬試験部201がハードウェア模擬装置202上でテストケースの模擬試験を実行できるように実現される。なお、ハードウェア模擬装置202は、試験対象ハードウェア30を模擬するものであればよく、例えばソフトウェアシミュレータで実現されるが、他にも例えば、模擬的なハードウェア回路等によって代用されてもよい。また、模擬試験装置20に相当する構成がハードウェア試験装置10に内蔵されてもよい。
試験対象ハードウェア30は、ハードウェア試験装置10によるハードウェア試験の実際の対象となるハードウェアである。詳細は後述するが、実機試験においてハードウェア試験装置10から所定のテストケースの実施が指示されると、試験対象ハードウェア30は指示されたテストケースを実行し、その実行結果をハードウェア試験装置10に通知する。なお、試験対象ハードウェア30は、ユーザによる直接操作を契機として実機試験が実行されることがあってもよい。
(1−2)機能構成
図2は、図1に例示したハードウェア試験装置等の機能構成例を示す図である。
図2に示したように、ハードウェア試験装置10は、試験選択部101、実機試験部102、及び画面表示操作部103という機能構成を備える。また、模擬試験装置20は、模擬試験部201及びハードウェア模擬装置202という機能構成を備えている。
本実施の形態では、ハードウェア試験装置10における処理が行われるよりも前に、模擬試験装置20における事前処理として模擬試験が行われる。具体的には、模擬試験部201が、試験対象ハードウェア30を模擬するシミュレータであるハードウェア模擬装置202を使って、故障下でテストケースを実行し、そのテスト結果を取得する。なお、図1の説明でも述べたように、模擬試験装置20に相当する構成はハードウェア試験装置10に内蔵されていてもよく、そのようなハードウェア構成においては、模擬試験部201及びハードウェア模擬装置202はハードウェア試験装置10内の機能構成となる。また、ハードウェア模擬装置202だけをハードウェア試験装置10の外部に設け、模擬試験部201をハードウェア試験装置10内に備えるようにしてもよい。
そして、図2に示したハードウェア試験装置10において、試験選択部101は、試験対象ハードウェア30で実行する複数のテストケースについて、模擬試験装置20における模擬試験のテスト結果と実機試験部102による実機試験の最新のテスト結果とに基づいて、未実行のテストケースに優先順位を付けて、次に実機試験を実行すべきテストケースを選択する試験選択処理を行う。なお、試験選択部101は、試験選択処理において、二次故障が発生する確率が低いと判定したテストケースに高い優先順位を付する。試験選択処理の詳細は、図8等を参照しながら後述する。
また、実機試験部102は、試験選択部101によるテストケースの選択結果に基づいて、当該テストケース(すなわち、最も高い優先順位が付けられたテストケース)を試験対象ハードウェア30上で実行させる実機試験処理を行う。実機試験処理の詳細は、図9を参照しながら後述する。
ハードウェア試験装置10では、試験選択部101による試験選択処理と実機試験部102による実機試験処理とが交互に繰り返し実行されることにより、複数のテストケースについて、二次故障が発生する可能性を最小にしながら、一連の実機試験の実行を可能にする。
また、画面表示操作部103は、上記のように試験選択部101及び実機試験部102による処理が繰り返された結果等をユーザに表示する画面表示処理を行う。さらに、画面表示操作部103は、表示した画面表示に対してユーザから所定の操作が行われた場合に、当該操作に対応する処理を行うこともできる。
なお、図2においてハードウェア試験装置10内には、試験リスト111、故障リスト112、故障注入試験結果表113、故障試験候補表114、試験優先順位表115、及び実機試験結果表116が示されている。これらは、上記した各機能構成(試験選択部101、実機試験部102、画面表示操作部103、模擬試験部201)による処理で用いられる入出力データであり、それぞれリスト形式や表形式になっている。
以下に、これらの入出力データについて、関連する各機能構成の処理を簡単に説明しながら、具体例を挙げて詳しく説明する。
試験リスト111は、試験対象ハードウェア30で実行されるテストケースの一覧を示す情報が登録されたリストである。
図3は、試験リストの一例を説明するための図である。図3に示したように、試験リスト111は表形式で保存され、1つのテストケースごとに、テストケースID111A、テスト手順111B、及び合否基準111Cによって構成される。
テストケースID111Aは、テストケースを一意に特定可能な名前(識別子)である。テスト手順111Bは、対象のテストケースの実行手順である。図3では一例として、ユーザが手動で行うハードウェア操作が示されているが、このほかにも例えば、ソフトウェアによって実行可能なスクリプトが示されてもよい。また、テスト手順111Bには、対象のテストケースの実行に関する事前条件も含まれるものとする。合否基準111Cには、対象のテストケースについて、テスト手順111Bが実行された後に、テスト結果が合格(Pass)か不合格(Fail)であるかを判定するための基準が示されている。なお、テスト手順111Bと同様に、合否基準111Cは、ソフトウェアが合否(Pass/Fail)を自動処理で判定可能なスクリプトで示されてもよい。
故障リスト112は、試験対象ハードウェア30で想定される故障の一覧を示す情報が登録されたリストである。なお、故障リスト112に登録される故障は、一次故障である。
図4は、故障リストの一例を説明するための図である。図3の試験リスト111と同様、図4の故障リスト112も表形式で示される。図4に示したように、故障リスト112は、1つの一次故障ごとに、一次故障ID112A、一次故障率112B、及び故障内容112Cによって構成される。なお、故障リスト112に登録される故障(一次故障)は、ハードウェアにおける部品の故障だけでなく、部品の取付けミスや配線ミス等、人為的な理由による故障を含んでもよい。
一次故障ID112Aは、対象の一次故障を一意に特定可能な名前(識別子)である。一次故障率112Bは、対象の一次故障が発生する確率を示したものである。具体的には、例えば部品の故障であれば、部品メーカの開示している値を使用してよく、また例えば人為的な理由による故障であれば、過去の履歴から算出した値を使用してもよい。なお、図4の例では、故障率の単位はパーセント表示ではなく無次元量で表示している。一次故障率112Bは、故障リスト112に登録される複数の一次故障(F1〜F4)の間で故障率を相対的に比較できれば足りるため、このように無次元量による表示であってもよい。そして、故障内容112Cは、対象の一次故障について、その詳細を記述したものである。
図3に例示した試験リスト111及び図4に例示した故障リスト112は、事前に作成されてハードウェア試験装置10(例えばストレージ13)に記憶されるとする。また、試験リスト111及び故障リスト112は、事前に模擬試験部201にも送信される。前述したように、模擬試験装置20では、ハードウェア試験装置10における処理が行われる前に、前提処理として、模擬試験部201が試験リスト111及び故障リスト112を用いてハードウェア模擬装置202による模擬試験を実行する。
より具体的に言えば、模擬試験部201は、ハードウェア模擬装置202に対して、故障リスト112に登録された一次故障を注入した状態(すなわち、一次故障が発生した「故障下」の状況)で、試験リスト111に登録された各テストケースを実行させる。そして、模擬試験部201はその実行結果を記録した故障注入試験結果表113をハードウェア試験装置10に送信し、ハードウェア試験装置10は受信した故障注入試験結果表113をストレージ13等に記憶する。
故障注入試験結果表113は、模擬試験部201による模擬試験の結果を示す情報が記録された表である。なお、前述したように、模擬試験部201による模擬試験は、試験選択部101による処理の事前処理として行われるため、試験選択部101による試験選択処理が開始されるときには、故障注入試験結果表113は完成している。
図5は、故障注入試験結果表の一例を説明するための図である。図5において、故障注入試験結果表113の各列には、模擬試験が実行されたテストケースが示されている(テストケース113A)。図5の場合、テストケース113Aは、試験リスト111のテストケースID111Aに示されたテストケースID(TC1〜TC3)で表記される。また、故障注入試験結果表113の各行には、模擬試験で設定された一次故障が示されている(一次故障113B)。図5の場合、一次故障113Bは、故障リスト112の一次故障ID113Aに示された一次故障ID(故障なし、故障F1〜故障F4)で表記される。さらに、図5には、テストケース113Aと一次故障113Bの組合せで行われた模擬試験の結果を示す情報として、テスト結果113Cと二次故障113Dとが設けられている。テスト結果113Cには、試験リスト111の合否基準111Cに基づいて、模擬試験のテスト結果(Pass/Fail)が示される。二次故障113Dには、当該模擬試験によって二次故障が発生したか否かが「有」「無」で示される。
ここで、模擬試験部201による故障注入試験結果表113の作成(記録)について詳しく説明する。
模擬試験部201は、試験対象ハードウェア30を模擬したハードウェア模擬装置202において、試験リスト111に保存された一連のテストケース(TC1〜TC3)を実行する。この際、模擬試験部201は、ハードウェア模擬装置202に対し、故障リスト112に登録された一次故障(故障なし、故障F1〜F4)を1つずつ注入した状態で上記のテストケース(TC1〜TC3)を実行し、試験リスト111に示された合否基準111Cに基づいて、テスト結果が合格(Pass)か不合格(Fail)かを判定する。そして、模擬試験部201は判定したテスト結果を故障注入試験結果表113のテスト結果113Cに記録する。
さらに、模擬試験部201は、各々のテストケース(TC1〜TC3)を実行した際に、ハードウェア模擬装置202の状態をチェックし、注入した一次故障以外の故障(すなわち、二次故障)が発生していないかを確認する。ここで、二次故障が生じた場合は、故障注入試験結果表113の二次故障113Dに「有」を記録し、二次故障が生じなかった場合は「無」を記録する。
以上のような処理が行われることにより、模擬試験部201は故障注入試験結果表113を完成させることができる。図5に例示された具体的な試験結果を見てみると、例えば、故障F1を注入した状態でTC2のテストケースを実行した場合、テスト結果113Cは「Pass」で二次故障113Dは「無」であるから、二次故障が発生することなく合格結果となったことが示される。一方、同じ故障F1を注入した状態でも、TC1のテストケースを実行した場合は、テスト結果113Cが「Fail」で二次故障113Dが「有」となっていることから、テスト結果が不合格で、さらに二次故障まで発生したことが示される。
なお、上述の説明では、模擬試験部201が故障注入試験結果表113を作成してハードウェア試験装置10に送信するとしたが、本実施の形態では、模擬試験部201は模擬試験の結果をハードウェア試験装置10に送信するだけとして、受信側のハードウェア試験装置10(例えば試験選択部101)が故障注入試験結果表113を作成して記憶するようにしてもよい。
以上のように、模擬試験装置20による前提処理が行われることによって、ハードウェア試験装置10は故障注入試験結果表113を得ることができる。
そして、ハードウェア試験装置10において試験選択部101がテストケースの試験優先順位を決定する試験選択処理を行うとき、試験選択部101は、故障注入試験結果表113の記録内容をコピーして故障試験候補表114を作成する。故障試験候補表114は、試験選択部101によって試験選択処理が行われるなかで一時データとして扱われ、実機試験部102によって実機試験が実行されるに伴ってその内容が変更され得る。詳細は後述する。なお、図14に具体例を示したように、故障試験候補表114の表構成は、故障注入試験結果表113と同様と考えてよい。
そして、試験選択部101による試験選択処理によって、試験優先順位表115が作成される。試験優先順位表115は、試験対象ハードウェア30で実行されるテストケース(すなわち、試験リスト111に登録されたテストケース)について、実機試験の実行に関する優先順位を示す情報が記録された表である。なお、試験優先順位表115には、当該時点において実機試験が実行されていないテストケースのみが示される。このうち、最も優先順位の高いテストケースが、次の実機試験で実行されるテストケースに決定される。また、試験優先順位表115に記録された情報は、画面表示操作部103による出力制御でも用いられる(図15参照)。
図6は、試験優先順位表の一例を説明するための図である。図6において、試験優先順位表115の各列には、当該時点で実機試験が実行されていないテストケースが示されている(テスト候補115A)。図6の場合、テスト候補115Aは、試験リスト111のテストケースID111Aに示されたテストケースID(TC1〜TC3)で表記される。そして試験優先順位表115には、このテスト候補115Aのそれぞれに対応する情報として、二次故障が発生する確率を示す二次故障率115Bと、実機試験の実行に関する優先度合いを示す優先順位115Cとが記録されている。なお、試験優先順位表115の作成処理の詳細は、図11を参照した説明で後述するが、第1の実施の形態に係るハードウェア試験装置10では、二次故障率が低いテスト候補に高い優先順位を付けるようにしている。具体的には例えば、図6の場合、テスト候補TC1〜TC3の二次故障率は、それぞれ「0.01」,「0」,「0.09」となっているので、優先順位は二次故障率の低い順、すなわちTC2,TC1,TC3の順に1〜3が付けられている。
試験選択部101によって試験優先順位表115が作成されると、実機試験部102は、試験優先順位表115に示されたテストケースのうち最も高い優先順位が付されたテストケースについて、試験対象ハードウェア30上で実機試験を実行する。そして、実機試験部102は、試験対象ハードウェア30上で実行した実機試験の結果を実機試験結果表116に保存する。
図7は、実機試験結果表の一例を説明するための図である。図7において、実機試験結果表116は、テスト連番116A、テストケースID116B、及びテスト結果116Cによって構成される。
テスト連番116Aは、実行した実機試験(テスト)の順番を示す番号であって、テストの実行ごとにインクリメンタルに付与される。テストケースID116Bは、実機試験で実行したテストケースを特定可能な識別子を示すものであって、試験リスト111のテストケースID111Aに示されたテストケースID(例えばTC1〜TC3)で表記される。テスト結果116Cは、各テストケースにおける実機試験の結果を記録するものであって、合格(Pass)か不合格(Fail)かが記録される。
具体的には例えば、図6に例示した実機試験結果表116の場合、実機試験部102が、最初のテストとして(テスト連番「1」)、試験対象ハードウェア30上でテストケースID「TC2」のテストケースを実行し、その結果が不合格(Fail)であったことが示されている。
(1−3)各種処理
本実施の形態に係るハードウェア試験装置10における各機能構成(試験選択部101,実機試験部102、画面表示操作部103)によって実行される処理について詳しく説明する。
図8は、試験選択処理の処理手順の一例を示すフローチャートである。試験選択処理は主に試験選択部101によって実行されるが、一部の処理(ステップS104,S106,S107)は画面表示操作部103によって制御される。
まず、ステップS101において、試験選択部101は、故障注入試験結果表113をコピーして故障試験候補表114を作成する。この時点で故障試験候補表114には故障リスト112に登録された全ての一次故障が故障候補として示されているが、一次故障の故障候補は、当該時点までの実機試験の結果によって絞込むことができる。そこで、ステップS102では、実機試験結果表116を参照して故障候補絞込み処理を行うことによって、故障試験候補表114に示される故障候補のうち、発生する可能性を排除できる故障(一次故障)を削除する。故障候補絞込み処理の詳細は、図10を参照して後述する。
ステップS103では、試験選択部101は、ステップS102の故障候補絞込み処理を行った結果、故障試験候補表114に示される故障候補が1つ又は故障無しであるか否かを判定する。
ステップS103で肯定結果が得られた場合は(ステップS103のYES)、画面表示操作部103が、故障試験候補表114に示された故障候補(または故障なし)に関する情報を表示端末(ディスプレイ)に表示させ(ステップS104)、試験選択処理が終了する。なお、本実施の形態では、故障試験候補表114に故障候補が残っていない場合も、「故障無し」という一次故障IDを付与することによって、便宜上故障の一種として取り扱っている。このようにすることで、ステップS104では、故障が無かった場合にも「故障無し」という結果に関する情報を表示端末(ディスプレイ)に表示させることができる。
一方、ステップS103で否定結果が得られた場合、すなわち、2以上の故障候補が残っている場合は(ステップS103のNO)、試験選択部101は、まだ実行していないテストケースの優先順位付けを行うために、試験優先順位表作成処理を行って試験優先順位表115を作成する(ステップS105)。試験優先順位表作成処理の詳細は、図11を参照して後述する。
次いで、画面表示操作部103が、現時点で故障試験候補表114に示された故障候補に関する情報を表示端末(ディスプレイ)に表示させる(ステップS106)。画面表示操作部103によるディスプレイへの画面表示については、後に具体的な処理例を説明するなかで図15に例示して改めて説明する。さらに、画面表示操作部103は、試験優先順位表115に関する情報も表示端末に表示させて、最も優先度の高いテストケースを選択させる(ステップS107)。なお、最も優先度の高いテストケースの選択は、入力装置15に対するユーザの選択操作によるものであってもよいし、試験選択部101が自動的に選択するものであってもよい。例えば、ハードウェア試験においてテストケースを連続して実行させようとする場合に、試験選択部101が、試験優先順位表115に示されたテスト候補のうちから最も優先度(優先順位)の高いテストケースを選択するようにしてもよい。
そして、ステップS107で選択されたテストケースについて、試験対象ハードウェア30上で当該テストケースを実行するために、実機試験部102による実機試験処理が開始される。なお、実機試験処理の詳細は図9を参照して後述するが、実機試験処理が終了した後は、図8のステップS101に戻り、次回の試験選択処理が行われる。
図9は、実機試験処理の処理手順の一例を示すフローチャートである。実機試験処理は実機試験部102によって実行される。
実機試験処理ではまず、実機試験部102が、試験選択処理で選択された最優先のテストケース(図8のステップS107参照)を、試験対象ハードウェア30上で実行する(ステップS201)。ここで、テストケースの実行方法は、試験リスト111の当該テストケースに対応するテスト手順111Bに従うものとする。テストケースの実行は、ソフトウェアによって自動で実行されてもよいし、又はユーザによって手動で実行されてもよい。
そしてテストケースの実機試験が終了した後、実機試験部102は、試験リスト111の当該テストケースに対応する合否基準111C(図3参照)に基づいて、テスト結果が合格(Pass)か不合格(Fail)かを判定し、テスト結果等を実機試験結果表116に保存する(ステップS202)。実機試験結果表116の具体的な構成は図7に例示した通りであり、テスト結果116C以外に、テスト連番116A(当該テストケースの実機試験の順番)及びテストケースID116B(当該テストケースのテストケースID)も記載される。
なお、ステップS201におけるテストケースの実機試験が手動で実行され、その結果確認も手動で行われる場合には、ユーザが入力装置15を操作する等して実機試験結果を入力し、当該入力された内容が画面表示操作部103を介して実機試験部102に伝達される等によって、実機試験結果表116にテスト結果が保存されるようにする。
ステップS201〜S202の処理が行われることによって、最優先のテストケースによる実機試験が終了するので、次に実行するテストケースを選択するために、再び試験選択処理(図8)が行われる。そして試験選択処理では、実行されていない残りのテストケースのうちから、二次故障率が最も低いテストケースが次のテストケースに選択され、実機試験処理において、当該選択されたテストケースの実機試験が行われる。このような試験選択処理(図8)と実機試験処理(図9)のループ処理は、試験選択処理の故障候補絞込み処理(ステップS102)によって故障試験候補表114に示される故障候補が1つ又は故障無しになるまで(ステップS103のYES)繰り返される。本実施の形態に係るハードウェア試験装置10によれば、このようなループ処理によって、二次故障の発生率(二次故障率)の低い順に複数のテストケースが実行されてその結果が蓄積されるため、二次故障率を最小にしつつ一連のテストケースの実機試験を実行することが可能となる。
次に、試験選択処理のなかで行われる故障候補絞込み処理について詳しく説明する。図10は、故障候補絞込み処理の処理手順の一例を示すフローチャートである。故障候補絞込み処理は、図8のステップS102に示した処理に相当し、試験選択部101によって実行される。
図10によれば、まず試験選択部101は、実機試験結果表116を参照し(ステップS301)、実機試験結果表116に記録されたテストケースのうちから未だ選択されていない1つを選択してステップS303〜S308の処理を実行する(ステップS302)。なお、ステップS303〜S308の処理は実機試験結果表116に記録されたテストケースの全てが選択されるまで繰り返し実行される。
ステップS303において、試験選択部101は、故障試験候補表114に示された故障候補のうちから、ステップS302で選択されたテストケースに該当するテストケースの列を選択する。図8の説明で前述した通り、最初に作成されたときの故障試験候補表114は故障注入試験結果表113のコピーであるから、故障注入試験結果表113と同じ構成を有し、具体的には、各テストケースについて、一次故障ごとのテスト結果及び二次故障の組合せが記載されている(図5参照)。
次に、試験選択部101は、ステップS303で選択した列(テストケース)において各行に示された一次故障(故障候補)のうちから未だ選択されていない1つを選択してステップS305〜S306の処理を実行する(ステップS304)。なお、ステップS305〜S306の処理はステップS303で選択した列(テストケース)において各行に示された一次故障(故障候補)の全てが選択されるまで繰り返し実行される。
ステップS305において試験選択部101は、ステップS304で選択した一次故障(故障候補)におけるテスト結果について、故障注入試験のテスト結果と実機試験のテスト結果とが一致するか否かを判定する。故障注入試験のテスト結果については、故障試験候補表114にコピーされた故障注入試験結果表113のテスト結果113Cを参照すればよい(図5参照)。また、実機試験のテスト結果については、実機試験結果表116のテスト結果116Cを参照すればよい(図7参照)。
ステップS305の比較判定において故障注入試験のテスト結果が実機試験のテスト結果と一致していた場合は(ステップS305のYES)、特段の処理を行わずにステップS307の処理に進む。ステップS305の比較判定において故障注入試験のテスト結果が実機試験のテスト結果と一致していなかった場合は(ステップS305のNO)、選択された一次故障(故障候補)はこれまでの実機試験結果に合致しない故障候補であることを意味するので、当該故障候補を故障試験候補表114から除外する(ステップS306)。具体的には、ステップS304で選択した一次故障(故障候補)に対応する行を、故障試験候補表114から削除する。
そして、ステップS307では、次の行(故障候補)についての比較判定を行うためにステップS304の処理に戻る。戻った先のステップS304では、ステップS303で選択した列(テストケース)において各行に示された一次故障(故障候補)のうちから未だ選択されていない別の行(故障候補)を選択し(ステップS304)、ステップS305の比較判定に進む。
ステップS303で選択した列(テストケース)における各行の一次故障(故障候補)について上記の処理が終了すると、試験選択部101は、当該選択した列を故障試験候補表114から削除する(ステップS308)。ステップS308の処理によって、実機試験済みのテストケースが故障試験候補表114から除外される。
そして、試験選択部101は、実機試験結果表116に記録されたテストケースのうち未だ選択されていない残りのテストケースについても同様の処理を行うために、ステップS302の処理に戻る(ステップS309)。戻った先のステップS302では、実機試験結果表116に記録されたテストケースのうちから未だ選択されていない別のテストケースを選択してステップS303以降の処理が行われる。そして、最終的に実機試験結果表116に記録されたテストケースの全てについてステップS303〜S308の処理が終了すると、故障候補絞込み処理が終了する。
以上、図10のステップS301〜S309の処理が行われることによって、故障注入試験結果表113をコピーして作成された故障試験候補表114に対して、これまでの実機試験結果に合致しない一次故障の故障候補、及び実行済みのテストケースを除外することができるため、故障試験候補表114において、当該時点で可能性のある故障候補と未実行のテストケースだけに絞込むことができる。このような絞込みによって、ハードウェア試験装置10は、不要な繰り返し処理の実行を抑制することができ、各種装置における処理負荷の軽減やハードウェア試験全体の試験速度の向上を図ることができる。
次に、試験選択処理のなかで行われる試験優先順位表作成処理について詳しく説明する。図11は、試験優先順位表作成処理の処理手順の一例を示すフローチャートである。試験優先順位表作成処理は、図8のステップS105に示した処理に相当し、試験選択部101によって実行される。
図11によれば、試験選択部101はまず、試験優先順位表115の各列(テスト候補115A)における二次故障率115Bと優先順位115Cをゼロに初期化する(ステップS401)。次に、試験選択部101は、故障試験候補表114を参照して、故障試験候補表114に記録された列(テストケース)ごとにステップS403〜ステップS406の処理を繰り返し行う(ステップS402)。
ここで、試験優先順位表作成処理が行われる時点では、故障候補絞込み処理(図8のステップS102、図10)が終了しているため、故障試験候補表114では、実機試験結果表116の記録に基づいて、これまでの実機試験結果に合致しない一次故障の故障候補の行、及び実行済みのテストケースの列が削除されている。したがって、ステップS402以降の処理では、未だ実行されていないテストケースが1つずつ選択される。
なお、ステップS402で選択されたテストケースは、試験優先順位表115のテスト候補115Aに記録されるが、この時点では、当該記録されたテストケースの二次故障率115B及び優先順位115Cは初期値のゼロとなる。
ステップS403では、ステップS402で選択した列(テストケース)において、故障試験候補表114の各行、すなわち、故障候補絞込み処理で絞込みが行われた後に残った一次故障(故障候補)のうちから1つが選択される。
次いで、ステップS404では、試験選択部101は、故障試験候補表114を参照して、ステップS403で選択された一次故障(故障候補)に対応する二次故障が「無」となっているか否かを確認する。二次故障が「無」であった場合は(ステップS404のYES)、特段の処理を行うことなく、次の行(故障候補)の処理に進む(ステップS406)。一方、二次故障が「有」であった場合は(ステップS404のNO)、試験選択部101は、選択中の故障候補の一次故障率を故障リスト112の一次故障率112Bから取得し、取得した一次故障率を試験優先順位表115の二次故障率115Bに加算し(ステップS405)、その後ステップS406に進む。
ステップS403〜S406の処理が故障試験候補表114の全ての行(全ての故障候補)について行われた後は、試験選択部101はこのループ処理を終了し、故障試験候補表114に記録された次の列(テストケース)について、同様の処理を行う(ステップS407)。そして故障試験候補表114に記録された全ての列(全てのテストケース)についてステップS402〜S407の処理が行われることで、上記全てのテストケースについて二次故障率の計算(試験優先順位表115の二次故障率115Bへの記入)が終了する。
なお、本例においては、説明を簡便にするため、各故障候補は独立した原因によるものと仮定しているが、複数の故障候補について故障率の和を計算する場合、一般には故障間の共通原因が存在し得るため、単純な足し合わせを行うと過大評価になる可能性がある。そのような場合には、一般に知られた故障木分析(Fault Tree Analysis)の情報を利用することによって、厳密な故障率を計算することができる。
故障試験候補表114に記録された全てのテストケースについて二次故障率の計算が終了すると、試験選択部101は、各テストケースに優先順位を付ける試験優先順位決定処理を行って(ステップS408)、試験優先順位表作成処理を終了する。
図12は、試験優先順位決定処理の処理手順の一例を示すフローチャートである。試験優先順位決定処理は、図11のステップS408に示した処理に相当し、試験選択部101によって実行される。
図12によれば、試験選択部101は、試験優先順位表115に記録されたそれぞれのテストケース(テスト候補115A)について、各テストケースについて計算された二次故障率115B(図11のステップS405参照)に基づいて優先順位を決定する。具体的には例えば、二次故障率が最も低いものから順に試験優先順位表115の各列(テスト候補115A)を並べ替え、二次故障率が最も低いテストケースを左側に移動させる(ステップS501)。なお、複数のテストケースが同じ二次故障率となっている場合は、テスト候補115Aに記載されたテストケースID(試験リスト111のテストケースID111Aに対応)が小さい順に並べるとする。具体的には例えば、TC1〜TC3が同じ二次故障率である場合、左からTC1,TC2,TC3の順に並べる。
次いで、試験選択部101は、ステップS501で並べ替えた試験優先順位表115の左からN列目(N:整数)のテスト候補(テストケース)について、優先順位115Cを「N」に設定して記録する(ステップS502)。ステップS502の処理は試験優先順位表115に記録された全てのテスト候補について行われ、その結果、全てのテスト候補(テストケース)に「1」〜「N」の優先順位が付与される。
以上のように、図11に例示した試験優先順位表作成処理(図12に詳述した試験優先順位決定処理を含む)を行うことによって、試験選択部101は、未実行のテストケースについて、二次故障率の低い順に高い優先順位が付された試験優先順位表115を作成・更新することができる。
(1−4)具体的な処理例
上記の(1−3)では、本実施の形態に係るハードウェア試験装置10の各機能構成によって実行される処理の処理手順を説明したが、以下では、具体的な処理例を挙げて全体的な処理の流れを説明する。
なお、ハードウェア試験装置10によって試験対象ハードウェア30に対する実機試験が行われる前に、前提処理として、図3に例示した試験リスト111及び図4に例示した故障リスト112に基づいて模擬試験部201による模擬試験が事前に行われて、図5に例示した故障注入試験結果表113が作成され、ハードウェア試験装置10に保存されているものとする。
このような状況で、試験選択部101による試験選択処理が開始される。最初は実機試験部102による試験対象ハードウェア30への実機試験は1つも実行されていないため、故障注入試験結果表113に基づいて、一番目に実行すべきテストケースを決定し、試験対象ハードウェア30上で実機試験を行う。ここまでの処理を以下では「テスト一巡目」と呼ぶ。
その後、テスト一巡目で実行したテストケースの実行結果(実機試験結果表116)に基づいて、故障候補の絞込みを行った上で、二番目に実行すべきテストケースを決定し、試験対象ハードウェア30上で実機試験を行う。ここまでの処理を「テスト二巡目」と呼ぶ。
まずテスト一巡目において、試験選択部101は、図8に例示したフローチャートに沿って、故障注入試験結果表113を取得して故障試験候補表114を作成した(ステップS101)後、ステップS102の故障候補絞込み処理に進む。但し、テスト一巡目では、実機試験の結果が無いため、図10に例示したフローチャートに沿って故障候補絞込み処理が行われても、故障試験候補表114はステップS101で故障注入試験結果表113からコピーされた状態のまま、何も変更されない(絞込みが行われない)。
次に、試験選択部101は、ステップS103で故障候補が1つ又は故障無しであるか否かを判定する。このとき、故障試験候補表114は、故障注入試験結果表113からコピーされた状態のままであるから、「故障F1」〜「故障F4」の4つの一次故障が故障候補として残っており(図5参照)、ステップS105の試験優先順位表作成処理に進む。
試験優先順位表作成処理は、図11,図12に例示したフローチャートに沿って処理が行われる。具体的には、試験優先順位表115の初期化(ステップS401)の後、故障試験候補表114の各テストケース(故障F1〜故障F4)について、二次故障率を計算する(ステップS402〜S407)。ここで故障試験候補表114(テスト一巡目なので故障注入試験結果表113と同じ)によれば、テストケースは「TC1」〜「TC3」の3通りが記録されているので、それぞれのテストケースについて二次故障率が計算される。
二次故障率についてテストケースごとに見ていく。テストケース「TC1」の場合、図5を参照すると、一次故障が「故障F1」の場合のみ二次故障が「有」となっていることから、「TC1」における二次故障率は、「故障F1」の一次故障率である「0.01」となる。「故障F1」の一次故障率は、図4に例示した故障リスト112の一次故障率112Bから取得できる。
テストケース「TC2」の場合は、図5を参照すると、何れの一次故障でも二次故障は「無」となっていることから、「TC2」における二次故障率は「0」となる。
テストケース「TC3」の場合は、図5を参照すると、一次故障が「故障F2」〜「故障F4」の場合でそれぞれ二次故障が「有」となっていることから、各二次故障率の和である「0.09」が「TC3」における二次故障率となる。詳しくは、図4に例示した故障リスト112の一次故障率112Bによれば、「故障F2」の一次故障率は「0.02」、「故障F3」の一次故障率は「0.03」、「故障F4」の一次故障率は「0.04」であるから、これらの総和を計算すると「0.09」となる。
以上のように、図11のステップS402〜S407の処理が行われることによって、各テストケース「TC1」〜「TC3」の二次故障率が計算される。その後、ステップS408において試験優先順位決定処理が行われる。
試験優先順位決定処理は、図12に例示したフローチャートに沿って行われ、二次故障率の大小によってテストケースの優先順位が決定される。前述したように、テストケース「TC1」,「TC2」,「TC3」の二次故障率は、順に「0.01」,「0」,「0.09」であったから、二次故障率の低い順に並べ替えが行われて優先順位の付与が行われると(ステップS501,S502)、「TC2」の優先順位が「1」、「TC1」の優先順位が「2」、「TC3」の優先順位が「3」となる。当該時点での記録状況は図6に例示されている。
試験優先順位決定処理が終了したことによって、図7に例示した試験選択処理ではステップS105の試験優先順位表作成処理が終了する。
次いで、ステップS106では、画面表示操作部103が現時点の故障試験候補表114に示された故障候補に関する情報を表示端末(ディスプレイ)に表示する。具体的には、故障試験候補表114には故障候補として「故障F1」〜「故障F4」が示されているので、これらの一次故障の名称や、故障内容(図4の故障内容112Cから取得可能)が表示される。また、ステップS107では、画面表示操作部103が試験優先順位表115に関する情報も表示端末に表示させて、最も優先度の高いテストケースを選択させる。具体的には、優先順位に沿って「TC2」,「TC1」,「TC3」の順で各テストケースが表示されるとともに、各テストケースにおける二次故障率等が表示される。このような画面表示が行われると、プログラム又はユーザによって最優先のテストケースとして「TC2」が選択される。
このような試験選択処理の結果を受けて、実機試験部102は図9に例示したフローチャートに沿って実機試験処理を行う。ステップS201において実機試験部102は、試験選択処理で選択されたテストケース「TC2」による実機試験を試験対象ハードウェア30上で実行する。そして実機試験部102は、そのテスト結果を実機試験結果表116に保存する(ステップS202)。図7には、このときの実機試験結果表116が例示されている。図7によれば、テスト連番116Aにテスト一巡目を示す「1」が記録され、テストケースID116Bには実行されたテストケースに対応する「TC2」が記録され、テスト結果116Cには「Fail」という不合格の結果が記録されている。以上でテスト一巡目の処理が完了する。
次にテスト二巡目の処理を説明する。テスト二巡目において、試験選択部101は、テスト一巡目と同様に故障注入試験結果表113を取得して故障試験候補表114を作成し(図8のステップS101)、故障候補絞込み処理に進む(ステップS102)。
テスト二巡目の故障候補絞込み処理では、テスト一巡目に実機試験部102によって実行された実機試験のテスト結果(すなわち、テストケースTC2のテスト結果が不合格(Fail)であったこと)が実機試験結果表116に記録されているので、このテスト結果を用いて故障候補の絞込みを行うことができる。
図10のフローチャートに沿って処理を進めると、テスト二巡目の故障候補絞込み処理では、ステップS304〜S307の処理において、実機試験結果表116に記録された「TC2の実行結果がFail」という手がかりによって、故障試験候補表114の記載内容のうち、テストケース「TC2」においてテスト結果が「Pass」となる一次故障を故障候補から除外することができる。具体的には、図5の故障注入試験結果表113を参照すれば、テストケース「TC2」のテスト結果が「Pass」となっている一次故障として「故障無し」、「故障F1」、及び「故障F2」があるため、故障試験候補表114ではこれらの一次故障の行が削除され、「故障F3」及び「故障F4」の行が残される。さらに、テストケース「TC2」が実行済みであることから、ステップS308の処理において、故障試験候補表114では「TC2」の列も削除される。
ここで、図13は、故障試験候補表の一例を説明するための図である。図13に例示した故障試験候補表114は、上述したようにテスト二巡目において故障候補絞込み処理が行われた後の記録内容を示している。図13を参照すると、故障試験候補表114の表構成は、故障注入試験結果表113の表構成(図5)と同じであるが、テストケース114Aを見ると、実行済みの「TC2」が除外されて「TC1」と「TC3」だけが記載されている。また、一次故障114Bについても、「故障無し」、「故障F1」、及び「故障F2」が除外され、「故障F3」及び「故障F4」だけが記載されている。さらに、これらの一次故障に対応して、模擬試験の結果(テスト結果114C)と二次故障の有無(二次故障114D)とが記載されている。
ステップS102の故障候補絞込み処理が行われた後は、テスト一巡目と同様に、ステップS103で残りの故障候補の数が判定されるが、図13に例示した通り故障候補は「TC1」と「TC3」の2つであるから、ステップS105の試験優先順位表作成処理が行われる。
試験優先順位表作成処理では、図11及び図12に例示したフローチャートに沿って処理が行われ、「TC1」と「TC3」の各テストケースについて二次故障率と優先順位が計算される。具体的には、図13に例示した故障試験候補表114を参照すれば、テストケース「TC1」の場合、何れの一次故障(「故障F3」,「故障F4」)においても二次故障は「無」であることから、「TC1」の二次故障率は「0」となる。一方、テストケース「TC3」の場合、「故障F3」及び「故障F4」の両方で二次故障は「有」となっており、それぞれの一次故障率は「0.03」と「0.04」である(図4の一次故障率112Bを参照)ことから、「TC3」の二次故障率は和によって「0.07」となる。
図14は、テスト二巡目における試験優先順位表の一例を説明するための図である。図14に例示した試験優先順位表115は、上述したようにテスト二巡目において試験優先順位表作成処理が行われた後の記録内容を示している。図14の試験優先順位表115を、テスト一巡目の記録内容を例示した図6の試験優先順位表115と比較すると、表構成は同じものの、実行済みのテストケース「TC2」は記載されていない。また、各テストケースの二次故障率についても、テスト二巡目では前述の故障候補絞込み処理において「故障無し」、「故障F1」、及び「故障F2」が除外されたことから、テスト一巡目とは異なる故障率が記載されている。まとめると、テスト二巡目の試験優先順位表115では、テストケース「TC1」の二次故障率が「0」で優先順位は「1」となり、テストケース「TC3」の二次故障率が「0.07」で優先順位は「2」となる。
以上のように試験優先順位決定処理が終了したことによって、図7に例示した試験選択処理ではステップS105の試験優先順位表作成処理が終了する。
次いで、ステップS106では、画面表示操作部103が現時点の故障試験候補表(図13の故障試験候補表114)に示された故障候補に関する情報を表示端末(ディスプレイ)に表示する。具体的には、故障候補絞込み処理を経て、故障試験候補表114に残っている故障候補は「故障F3」と「故障F4」である。そしてこれらの一次故障の名称や、故障内容(図4の故障内容112Cから取得可能)が表示される。また、ステップS107では、画面表示操作部103が現時点の試験優先順位表(図14の試験優先順位表115)に関する情報も表示端末に表示させて、最も優先度の高いテストケースを選択させる。具体的には、優先順位に沿って「TC1」,「TC3」の順で各テストケースが表示されるとともに、各テストケースにおける二次故障率等が表示される。このような画面表示が行われることによって、次に実機試験を行うべき最優先のテストケースが「TC1」であることが示される。そして、ステップS107で「TC1」が選択されると、実機試験部102は、テストケース「TC2」による実機試験を試験対象ハードウェア30上で実行し、その結果を実機試験結果表116に保存する。ここまでの処理が終了すると、テスト二巡目の処理が完了する。
ここで、画面表示操作部103によるディスプレイへの画面表示について具体例を示す。図15は、出力装置における表示画面の一例を説明するための図である。図15の表示画面160は、画面表示操作部103によって制御されるディスプレイ(出力装置16)上の表示出力の一例を示すものであり、上述した具体的な処理例のうち、テスト二巡目において試験優先順位表作成処理の終了後に試験優先順位表が表示されたタイミング(但し、次に実行する最優先のテストケースの選択は行われていない)における画面表示例を示している。
図15によれば、表示画面160は、実機試験結果入力領域161、実機試験結果登録ボタン162、故障候補表示領域163、及び試験優先順位表示領域164を備えて構成されている。
実機試験結果入力領域161は、実機試験部102によって試験対象ハードウェア30に対して行われた実機試験のテスト結果を入力(または表示)するための領域である。例えば図15では、テスト一巡目の試験選択処理の処理結果に基づいて選択された「最優先のテストケース「TC2」」についての実機試験のテスト結果が示されている。実機試験のテスト結果がユーザによって入力される場合には、実機試験結果入力領域161に実機試験を行ったテストケース「TC2」とそのテスト結果「Fail」が入力される。
そして、実機試験結果登録ボタン162は、実機試験結果入力領域161に入力した実機試験のテスト結果を実機試験結果表116に登録・保存する場合に押下するボタンである。このボタンはユーザが実機試験結果入力領域161に実機試験のテスト結果を入力するときに有効になり、当該ボタンが押下された場合には入力されたテスト結果が実機試験結果表116に追加登録される。なお、ハードウェア試験装置10では、実機試験のテスト結果が登録されると、登録後の実機試験結果表116に基づいて、試験選択部101が自動的に試験候補選択処理を実行するものとする。
また、これまでも説明した通り、本実施の形態に係るハードウェア試験装置10では、実機試験はソフトウェアによる自動実行を行うこともでき、この場合、ユーザによる実機試験結果入力領域161への入力や実機試験結果登録ボタン162の押下操作は不要である。そこで、ソフトウェアによる自動実行が行われる場合、実機試験結果入力領域161は、当該自動実行された実機試験の結果を表示するための領域としてもよい。このとき、実機試験の結果が実機試験結果表116に記録された後に、当該記録した内容を実機試験結果入力領域161に表示するようにすればよい。また、実機試験結果登録ボタン162についても、ソフトウェアによる自動処理が行われる場合は、次に実行すべき最優先のテストケースの実機試験の実行を開始するためのボタンとして用いる等すればよい。
次に、故障候補表示領域163は、図8のステップS106(またはステップS104)の処理に対応した情報が表示される領域、すなわち、現時点での故障試験候補表114に示された故障候補に関する情報が表示される領域である。例えば図15の場合、実機試験結果入力領域161においてテストケース「TC2」の実機試験のテスト結果が入力(または表示)されて実機試験結果登録ボタン162が押下されているとする。この状況を上述の具体的な処理例で言えば、テスト一巡目の処理結果を踏まえて実行されたテストケース「TC2」の実機試験の結果が得られた後の、テスト二巡目の状態に相当する。
このテスト二巡目における故障試験候補表114については、図13に具体例を示しており、それによれば一次故障の故障候補は「故障F3」又は「故障F4」となっている。そして、故障リスト112の故障内容112C(図4)によれば、「故障F3」の故障内容は「回路A短絡」であり、「故障F4」の故障内容は「部品B破損」である。図15の故障候補表示領域163には、このような故障候補に関する情報が表示されている。
そして、試験優先順位表示領域164は、図8のステップS107の処理に対応した情報が表示される領域、すなわち、試験優先順位表115に関する情報が表示される領域である。例えば図15の場合は、テスト二巡目の状況であるから、図14に例示した試験優先順位表115の情報が表示されている。このような表示が行われることによって、ユーザは未実行のテストケースについて次に実機試験を実行すべき最優先のテストケース及びその二次故障率を認識できるだけでなく、残りのテストケースについても、現時点における優先順位及び二次故障率を把握することができる。
なお、図15の表示画面はテスト二巡目の一状況を例示したものであるが、故障試験候補表114に示された故障候補が1以下になるまでテストが繰り返された場合には、図8のステップS104で説明した通り、最後に残った故障候補又は「故障無し」が故障候補表示領域163に表示される。このとき、全てのテストケースについて試験対象ハードウェア30における実機試験が完了するとともに、最終的な故障候補が示されることになる。
また、図15の表示画面例は、本実施の形態に係るハードウェア試験装置10による表示出力の一例に過ぎず、図15とは異なる表示領域や表示内容を備えて構成されてもよい。また、各表示領域における表示タイミング等についても、図15の例示に限定されるものではなく、ユーザが試験状況を理解しやすい表示態様で実行することが好ましい。
以上、テスト一巡目及びテスト二巡目における具体的な処理例を説明したが、故障試験候補表114に示された故障候補が1以下になるまで、テスト二巡目以降もこれらの処理が繰り返される。すなわち、各巡目において、試験選択部101が二次故障率の低いテストケースを選び出し、実機試験部102が当該テストケースによる実機試験を行いそのテスト結果(「Pass」,「Fail」)を得る。そして、次巡目では、得られた実機試験のテスト結果に基づいて、テスト結果にマッチしない故障候補を除外した上で、再度、故障候補ごとの二次故障率を計算して次のテストケースを選び出す、といった処理が繰り返される。
(1−5)まとめ
以上に説明してきたように、第1の実施の形態に係るハードウェア試験装置10は、事前の模擬試験にて一次故障の注入を行った状態でのテストケース実行結果及び二次故障有無を記録したデータに基づき、実際の試験において各テストケースの二次故障率を一次故障の故障率から算出し、テストケースの優先順位付けを行う。また、テストケースを実行して結果が得られる度に、事前の故障注入テスト結果をもとに故障候補の絞込みを行い、未実行のテストケースに対する二次故障率を更新する。このように、二次故障率を動的に計算し、最優先のテストケースを選択していくことで、全てのテストケースを完了するまでの二次故障率を最小化することができる。このようなハードウェア試験装置10は、テスト対象における故障分析を行うシステムに適用することができる。
特に、本実施の形態に係るハードウェア試験装置10は、テストケースの実機試験結果が更新されるごとに、最新の実機試験結果に基づいて故障候補絞込み処理を行い、当該処理において、これまでの実機試験結果に合致しない一次故障の故障候補及び実行済みのテストケースを除外することを特徴とする。そして、除外後の最新情報に基づいて未実行のテストケースの二次故障率を計算し直すことによって、より精度の高い相対的な二次故障率を算出することができるため、二次故障が発生する可能性を最小化するテストケースの選択を可能にし、ハードウェア試験の全体を通して試験に要する時間、費用、労力等を抑制する効果に期待できる。
なお、第1の実施の形態においてテストケースの優先順位を決定するために用いられた「二次故障率」は、二次故障に関するパラメータの1つの例であって、後述する第2の実施の形態では、別例として「二次故障の復旧コスト期待値」が用いられる。
(2)第2の実施の形態
本発明の第2の実施の形態に係るハードウェア試験装置について説明する。
前述した第1の実施の形態では、テストケースを実行した際に発生し得る二次故障の発生確率(二次故障率)に基づいて、次に実行すべきテストケースの優先順位を決定する方法について説明した。しかしながら、二次故障の発生を考慮した優先順位について考察すると、二次故障に伴う深刻さの度合いによって優先順位を決定したいという場合も想定される。
例えば、ある二次故障が発生した場合は、簡単な措置で修理・復旧が可能である一方、別の二次故障が発生した場合は、試験対象ハードウェア30全体が破損してしまうために、修理・復旧のために大きなコストが掛かってしまう、といったことがある。このような場合、二次故障率が同じ確率であったとしても、修理・復旧が容易な前者の二次故障を優先する仕組みが求められる。
以上のような観点から、第2の実施の形態では、二次故障の復旧コストを考慮してテストケースの優先順位を計算するハードウェア試験装置及びハードウェア試験方法について説明する。
なお、第2の実施の形態は、第1の実施の形態で説明したハードウェア試験装置10によるハードウェア試験方法と比較すると、二次故障についてその発生確率(二次故障率)だけでなく、発生時の復旧コストを考慮して、テストケースの優先順位を付ける点でのみ異なっている。そのため、第2の実施の形態では、第1の実施の形態で説明したハードウェア試験装置10を流用して説明を行う。
第2の実施の形態では、ハードウェア試験装置10においてテストケースの優先順位付けをする際に、二次故障が発生した場合の復旧コストを考慮に入れることから、事前処理として模擬試験装置20で行われる模擬試験の段階で、二次故障発生時の復旧コストを勘案する必要がある。そこで具体的には、模擬試験部201による模擬試験のテスト結果が記録される故障注入試験結果表において、二次故障発生時の復旧コストを併記する。
図16は、第2の実施の形態で用いられる故障注入試験結果表の一例を説明するための図である。図16に例示した故障注入試験結果表213は、第1の実施の形態における故障注入試験結果表113(図5参照)と同様に、模擬試験部201が試験リスト111及び故障リスト112に基づいてハードウェア模擬装置202上で模擬試験を行ったテスト結果が記録されたものである。
図16に例示した故障注入試験結果表213の表構成を見ると、第1の実施の形態で図5に例示した故障注入試験結果表113と同様の構成(具体的には、テストケース213A、一次故障213B、テスト結果213C、及び二次故障213D)に加えて、復旧コスト213Eが併記されている。
復旧コスト213Eは、対応する二次故障が発生したときの復旧に要するコストを意味しており、具体的には例えば図16において、一次故障「故障F1」の状況下でテストケース「TC1」による模擬試験を行った場合、二次故障が「有」となっており、そのときの復旧コストは「50」と記載されている。また例えば、テストケース「TC3」については、一次故障「故障F2」,「故障F3」,「故障F4」の状況下で、それぞれ二次故障が発生しており、各復旧コストは「10」,「30」,「20」と記載されている。
ここで、復旧コスト213Eの数値及び単位としては、例えば故障部品の価格や納期、又は復旧のために必要な人月などが想定され得るが、表内で統一されて状況ごとの復旧コストの違いが相対的に表される限りにおいて、その表記方法は任意であってよい。具体的には、先ほど説明したテストケース「TC3」について見ると、二次故障の復旧コストは、一次故障が「故障F3」の場合が最も高く、一次故障が「故障F4」である場合がそれに続き、一次故障が「故障F2」である場合は、二次故障が発生するなかでは最も復旧コストが低いことが表されている。
以下では、事前処理によって上記のような故障注入試験結果表213が保存されているとする場合に、第2の実施の形態によるハードウェア試験装置10で行われる処理について説明する。
第2の実施の形態においては、試験選択部101によって試験選択処理が行われて最優先のテストケースが選び出され、実機試験部102によって当該最優先のテストケースによる実機試験が行われること、さらにその実機試験のテスト結果に基づいて、次回の試験選択処理が行われていく、という全体的な処理の流れは、第1の実施の形態と同様である。しかし、優先順位の決定に関する部分で、第1の実施の形態とは異なる処理が行われる。
より具体的に言えば、試験選択処理の概要(図8)、故障候補絞込み処理(図10)、実機試験処理(図9)については、第1の実施の形態における処理と同じ処理が行われる。一方、試験優先順位表作成処理(図11)、及び試験優先順位決定処理(図12)については、第1の実施の形態とは異なる処理が行われる。
なお、図8に例示した試験選択処理のうち、ステップS101では、試験選択部101が故障注入試験結果表をコピーして故障試験候補表を作成するが、第2の実施の形態では図16に例示した故障注入試験結果表213が用いられる。故障注入試験結果表213の表構成が、復旧コスト213Eが記載されている点で第1の実施の形態で示した故障注入試験結果表113と異なることは前述の通りであり、したがってコピー先の故障試験候補表(不図示)も同様の表構成を有する。
また、実機試験が未実行のテストケースに対する優先順位を示す情報が記録される試験優先順位表についても、第2の実施の形態では二次故障の復旧コストを考慮して優先順位が付けられることから、第1の実施の形態で示した試験優先順位表(例えば図6や図14)とは異なる表構成を有するものとなる。具体的な表構成は図19に例示されており、試験優先順位表215には、当該時点において実機試験が実行されていないテストケース(テスト候補215A)について、復旧コスト期待値215B及び優先順位215Cが記載される。
図17は、第2の実施の形態における試験優先順位表作成処理の処理手順の一例を示すフローチャートである。図17に示すように、試験選択部101は、試験優先順位表215の各列(テスト候補215A)における復旧コスト期待値215Bと優先順位215Cをゼロに初期化する(ステップS601)。
次に、試験選択部101は、故障試験候補表を参照して、故障試験候補表に記録された列(テストケース)ごとにステップS603〜ステップS606の処理を繰り返し行う(ステップS602)。
ステップS603では、ステップS602で選択した列(テストケース)において、故障試験候補表の各行、すなわち、故障候補絞込み処理で絞込みが行われた後に残った一次故障(故障候補)のうちから1つが選択される。
ステップS604では、試験選択部101は、故障試験候補表を参照して、ステップS603で選択された一次故障(故障候補)に対応する二次故障が「無」となっているか否かを確認する。二次故障が「無」であった場合は(ステップS604のYES)、特段の処理を行うことなく、次の行(故障候補)の処理に進む(ステップS606)。一方、二次故障が「有」であった場合は(ステップS604のNO)、試験選択部101は、選択中の故障候補の一次故障率と二次故障発生時の復旧コストとの積を、試験優先順位表215の復旧コスト期待値215Bに加算する(ステップS605)。なお、故障候補の一次故障率は、故障リスト112の一次故障率112Bから取得することができ、二次故障発生時の復旧コストは、故障注入試験結果表213がコピーされた故障試験候補表の「復旧コスト」から取得することができる。ステップS605の処理が終わると、試験選択部101は次の行(故障候補)の処理に進む(ステップS606)。
ステップS603〜S606の処理が故障試験候補表の全ての行(全ての故障候補)について行われた後は、試験選択部101はこのループ処理を終了し、故障試験候補表に記録された次の列(テストケース)について、同様の処理を行う(ステップS607)。そして故障試験候補表に記録された全ての列(全てのテストケース)についてステップS602〜S607の処理が行われることで、上記全てのテストケースについて二次故障の復旧コスト期待値の計算(試験優先順位表215の復旧コスト期待値215Bへの記入)が終了する。
ステップS607で故障試験候補表に記録された全てのテストケースについて二次故障の復旧コスト期待値の計算が終了すると、試験選択部101は、各テストケースに優先順位を付ける試験優先順位決定処理を行って(ステップS608)、試験優先順位表作成処理を終了する。
図18は、第2の実施の形態における試験優先順位決定処理の処理手順の一例を示すフローチャートである。図18によれば、試験選択部101は、試験優先順位表215に記録されたそれぞれのテストケース(テスト候補215A)について、各テストケースについて計算された二次故障の復旧コスト期待値215B(図17のステップS605参照)に基づいて優先順位を決定する。具体的には例えば、復旧コスト期待値が最も低いものから順に試験優先順位表215の各列(テスト候補215A)を並べ替え、復旧コスト期待値が最も低いテストケースを左側に移動させる(ステップS701)。
次いで、試験選択部101は、ステップS601で並べ替えた試験優先順位表215の左からN列目(N:整数)のテスト候補(テストケース)について、優先順位215Cを「N」に設定して記録する(ステップS602)。ステップS602の処理は試験優先順位表115に記録された全てのテスト候補について行われ、その結果、全てのテスト候補(テストケース)に「1」〜「N」の優先順位が付与される。
以上のように、図17に例示した試験優先順位表作成処理(図18に詳述した試験優先順位決定処理を含む)を行うことによって、試験選択部101は、未実行のテストケースについて、二次故障の復旧コスト期待値の低い順に高い優先順位が付された試験優先順位表215を作成・更新することができる。
第2の実施の形態による特徴的な処理は上述した通りであるが、その理解を深めるために、以下では、第1の実施の形態の(1−4)で説明した具体的な処理例と比較しながら、テスト一巡目のテスト優先順位を決定するまでの具体的な処理例について説明する。
まず試験選択部101は、第1の実施の形態と具体例と同様に、図8のフローチャートに沿って故障注入試験結果表213を取得して故障試験候補表を作成するが(ステップS101)、この時点では実機試験の結果は存在しないため、故障絞込み処理(ステップS102)が行われても故障試験候補表の記録内容は変更されない。また、故障試験候補表は、故障注入試験結果表213からコピーされた状態のままであるから、「故障F1」〜「故障F4」の4つの一次故障が故障候補として残っており(図16参照)、ステップS105の試験優先順位表作成処理に進む。
試験優先順位表作成処理では、各テストケースについて復旧コスト期待値の総和が計算される(ステップS602〜S607)。図16の故障注入試験結果表213の例をもとに具体的に復旧コスト期待値を計算すると、まずテストケース「TC1」の場合は、一次故障「故障F1」の二次故障が「有」となっていることから、一次故障率の「0.01」と復旧コストの「50」とを積算して得られる復旧コスト期待値「0.5」を試験優先順位表215の復旧コスト期待値215Bに記録する。同様に、テストケース「TC2」の場合は、一次故障「故障F3」による復旧コスト期待値が「0.03×10」の積算によって「0.3」となり、この値を試験優先順位表215に記録する。またテストケース「TC3」の場合は、二次故障が「有」となる一次故障が「故障F2(一次故障率0.02,復旧コスト10)」、「故障F3(一次故障率0.03,復旧コスト30)」、「故障F4(一次故障率0.40,復旧コスト20)」の3通りあるため、各一次故障について復旧コスト期待値を計算して試験優先順位表215に加算していくと、最終的には各復旧コスト期待値の総和がテストケース「TC3」の復旧コスト期待値となる。具体的には、「故障F2」の復旧コスト期待値は「0.20×10」の積算によって「0.2」となり、「故障F3」の復旧コスト期待値は「0.30×30」の積算によって「0.9」となり、「故障F4」の復旧コスト期待値は「0.40×20」の積算によって「0.8」となる。そしてこれらの総和「0.2+0.9+0.8」の算出式から「1.9」がテストケース「TC3」の復旧コスト期待値として記録される。
そして、上記のようにして計算された復旧コスト期待値に基づいて、試験優先順位決定処理が行われる。試験優先順位決定処理では、復旧コスト期待値の小さい順にテストケースが並べ替えられて、並べ替えられたテストケースに対して優先順位が「1」から順に付与される(ステップS701,S702)。
図19は、第2の実施の形態における試験優先順位表の一例を説明するための図である。図19には、上述した具体例な処理例によってテスト一巡目の処理が終了した時点での試験優先順位表215が例示されている。図19の試験優先順位表215によれば、テストケース「TC1」〜「TC3」のテスト候補215Aについて、テストケース「TC2」の復旧コスト期待値が最も小さい「0.3」であることから優先順位「1」が付与されており、次に復旧コスト期待値が「0.5」のテストケース「TC1」に優先順位「2」が付与され、復旧コスト期待値が最も大きい「1.9」であるテストケース「TC3」には優先順位「3」が付与されている。したがって、図19の試験優先順位表215にも示されるように、テスト一巡目の処理が行われた結果、復旧コスト期待値が最小であるテストケース「TC2」が、次に実行すべきテストケースとして選び出される。
なお、第2の実施の形態においても、画面表示操作部103によるディスプレイへの画面表示を実行可能であるが、これは第1の実施の形態と同様に実現可能であることから、説明は省略する。
以上に説明してきたように、第2の実施の形態に係るハードウェア試験装置10によれば、試験対象ハードウェア30に対して複数のテストケースによる実機試験を行おうとするとき、故障候補のなかに二次故障が発生する可能性を有するものが含まれる場合であっても、二次故障の発生確率とともにその復旧コストをも考慮して、二次故障による復旧コストの期待値を最小にしながら、一連のテストケースによる実機試験を実行することができる。
特に、第1の実施の形態による効果と比較すると、第1の実施の形態は二次故障の発生確率に基づいてテストケースの優先順位を決定するものであったのに対し、第2の実施の形態では二次故障の発生に伴う復旧コストも考慮に入れることによって、ハードウェア試験の全体を通して、二次故障の可能性(二次故障発生に伴う修理や復旧による影響)を最小化するテスト計画を作成することができる。かくして、第2の実施の形態によれば、第1の実施の形態よりもさらに効率的な実機試験の実行が可能となる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実施には殆ど全ての構成が相互に接続されていると考えてもよい。