(57)【要約】      （修正有）【課題】故障木の変更に伴う必要なテストケースの数を削減できる演算装置を提供する。【解決手段】演算装置１は、複数のノードを有し、複数のノードのうち少なくとも１つのノードは安全機能と関連付けられている故障木について、変更前の故障木の構成、変更後の故障木の構成、および安全機能ごとに過去にテストされたノードを示す情報を格納する記憶部９と、故障木の変更に関する情報に基づき変更の影響を受ける安全機能を特定する安全機能特定部１１と、変更後の故障木の構成および過去にテストされたノードに基づき、特定部により特定された安全機能を再度テストするためのノードであって、過去にテストされたノードである再テストノードを特定する再テストノード特定部１３と、変更後の故障木の構成および過去にテストされたノードに基づき、新たにテスト対象となるノードである新規テストノードを特定する新規テストノード特定部１２とを備える。【選択図】図２
2020140343.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードを有し、前記複数のノードのうち少なくとも１つのノードは安全機能と関連付けられている故障木について、変更前の前記故障木の構成、変更後の前記故障木の構成、および前記安全機能ごとに過去にテストされた前記ノードを示す情報を格納する記憶部と、
前記故障木の変更に関する情報に基づき前記変更の影響を受ける前記安全機能を特定する安全機能特定部と、
前記変更後の前記故障木の構成および過去にテストされた前記ノードに基づき、前記安全機能特定部により特定された前記安全機能を再度テストするための前記ノードであって、過去にテストされた前記ノードである再テストノードを特定する再テストノード特定部と、
前記変更後の前記故障木の構成および過去にテストされた前記ノードに基づき、新たにテスト対象となるノードである新規テストノードを特定する新規テストノード特定部とを備える演算装置。
【請求項２】
請求項１に記載の演算装置において、
前記安全機能特定部は、前記変更により追加された前記ノードから前記故障木の最上位の前記ノードまで辿った際に通過する全ての前記ノードのそれぞれに関連付けられる安全機能を、前記変更の影響を受ける安全機能として特定する演算装置。
【請求項３】
請求項１に記載の演算装置において、
前記再テストノード特定部は、前記変更により追加された前記ノードのうち最上位のノードを対象ノードとし、前記対象ノードが前記変更による変更後の前記故障木における最上位の前記ノードである場合は前記再テストノードへの追加を行わない演算装置。
【請求項４】
請求項３に記載の演算装置において、
前記再テストノード特定部は、前記対象ノードに接続される上位のゲートがＡＮＤゲートの場合は、当該ＡＮＤゲートに接続するそれぞれの前記ノードの事象が発生するように、当該ＡＮＤゲート以下の前記ノードであって過去にテストされたノードを前記再テストノードに追加する演算装置。
【請求項５】
請求項１に記載の演算装置において、
前記新規テストノード特定部は、前記変更により追加された前記ノードのうち最上位のノードを対象ノードとし、前記対象ノードが下位の前記ノードを有しない場合は前記対象ノードを前記新規テストノードに追加し、前記対象ノードが下位の前記ノードを有する場合は前記対象ノードを前記新規テストノードに追加しない演算装置。
【請求項６】
請求項５に記載の演算装置において、
前記新規テストノード特定部は、
前記対象ノードが下位の前記ノードを有する場合であって、前記対象ノードに接続される下位ゲートがＡＮＤゲートの場合は、当該ＡＮＤゲートに接続される全ての前記ノードの事象が発生するように前記ＡＮＤゲート以下の前記ノードを前記新規テストノードに追加し、
前記対象ノードが下位の前記ノードを有する場合であって、前記対象ノードに接続される下位ゲートがＯＲゲートの場合は、当該ＯＲゲートに接続されるいずれか１つの前記ノードの事象が発生するように当該ＯＲゲート以下の前記ノードを前記新規テストノードに追加する演算装置。
【請求項７】
複数のノードを有し、前記複数のノードのうち少なくとも１つのノードは安全機能と関連付けられている故障木について、変更前の前記故障木の構成、変更後の前記故障木の構成、および前記安全機能ごとに過去にテストされた前記ノードを示す情報を格納する記憶部を備えるコンピュータに、
前記故障木の変更に関する情報に基づき前記変更の影響を受ける前記安全機能を特定することと、
前記変更後の前記故障木の構成および過去にテストされた前記ノードに基づき、前記特定された前記安全機能を再度テストするための前記ノードであって、過去にテストされた前記ノードである再テストノードを特定することと、
前記変更後の前記故障木の構成および過去にテストされた前記ノードに基づき、新たにテスト対象となるノードである新規テストノードを特定することとを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算装置、およびプログラムに関する。
【背景技術】
【０００２】
近年、自動車、建設機械、鉄道などの分野において機能安全開発が取り入れられつつある。機能安全とは、製品に安全機能をつけることにより、事故に至るリスクを許容できるレベルまで軽減するという安全性の考え方である。機能安全はＩＳＯやＩＥＣによって規格化されており、人命に関わる製品において規格準拠が開発要件として求められることが増えてきた。
【０００３】
機能安全開発においては、発生する可能性のある事故およびその要因の識別が必須である。事故およびその要因の識別には、リスク分析手法が使われる。リスク分析手法には、発生する可能性のある事故を入力としてそれに至る要因を識別するトップダウン分析手法と、システム内に起こりうる故障を入力としてそれが引き起こす事故を識別するボトムアップ分析手法がある。機能安全開発では通常、トップダウン分析手法とボトムアップ分析手法の両方を組み合わせて使う。代表的なトップダウン分析手法は故障木分析（FTA:Fault  Tree  Analysis）である。代表的なボトムアップ分析手法はFMEA（Failure Mode and Effect Analysis）である。 
【０００４】
故障木について、故障木の生成を自動化する手法が存在する。特許文献１にはＨＡＺＯＰワークシートからハザード発生シナリオに関する情報を抽出して加工し、該情報を起因事象、中間事象、防御手段、ハザード及び影響度という項目に記録し、かつ影響度をキーとして降順ソートしたハザード一覧を作成するためのハザード一覧作成手段と、前記ハザード一覧に記録された対象となるハザードに対して、起因事象ごとに、防御手段があるかどうかを考慮せずに起因事象から、トップ事象となるハザードまでの事象間の因果関係を論理構造として構築し、その事象間の因果関係の論理構造について、防御手段がある場合の事象に対して、該事象と、その防御手段機能失敗事象をＡＮＤゲートで結合し、その防御手段機能失敗事象に対して、防御手段の種類に応じて、予め登録された防御機能失敗に関する基本事象をＯＲゲートで結合し、そのＯＲゲートを防御手段機能失敗事象と結び、前記対象となるハザードに複数の異なる起因事象がある場合、各起因事象に対応する事象間の因果関係の論理構造に存在する同じ中間事象を同定し、該中間事象を発生させる複数の原因事象（下位）をＯＲゲートで結合し、そのＯＲゲートを該中間事象と結び、前記対象となるハザードに関する事象と事象との間の因果関係の論理構造をフォールト・ツリーで表記することによって、ハザードをトップ事象としたフォールト・ツリーを作成し、該フォールト・ツリーをグラフィックで表現するためのフォールト・ツリー作成手段と、前記フォールト・ツリーにおける起因事象と基本事象に、予め登録された故障発生頻度を与えることで、対象となるハザードの発生頻度を算出するためのハザード発生頻度算出手段と、を備えることを特徴とするプロセスリスクアセスメント支援装置が開示されている。
【０００５】
機能安全開発において、設計に変更があった場合には、変更の影響範囲の特定とその変更が安全性に対して影響するか否かを特定することが必須である。そのため、設計変更時には必ずリスク分析結果の修正および更新が行われる。リスク分析の更新が製品に及ぼす影響も同様に分析しなければならず、影響が及ぶと思われる部分は再試験を実施する必要がある。
【０００６】
再設計時あるいは設計変更時を想定すると、当初の設計に対して変更が行われると、機能安全開発ではリスク分析の再検討および変更に伴う修正が行われる。さらに、変更が及ぼす影響を解析し、影響する箇所は再試験および再検証を実施する必要がある。再試験および再検証が必要な箇所は次のように特定される。まず、リスク分析と要求との間のトレーサビリティ情報を元に、変更箇所が影響する要求や機能を特定する。次に、要求や機能からトレーサビリティで紐付けられたテストケースを取得し、再試験が必要か判断し、必要であるならば再試験を実施する。大規模なシステムあるいは複雑なシステムの場合、再試験が必要なテストケースの検討および実施には多大な工数がかかる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−９８８２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載されている発明では、故障木の変更に伴い全テストケースの検討が必要である。
【課題を解決するための手段】
【０００９】
本発明の第１の態様による演算装置は、複数のノードを有し、前記複数のノードのうち少なくとも１つのノードは安全機能と関連付けられている故障木について、変更前の前記故障木の構成、変更後の前記故障木の構成、および前記安全機能ごとに過去にテストされた前記ノードを示す情報を格納する記憶部と、前記故障木の変更に関する情報に基づき前記変更の影響を受ける前記安全機能を特定する安全機能特定部と、前記変更後の前記故障木の構成および過去にテストされた前記ノードに基づき、前記安全機能特定部により特定された前記安全機能を再度テストするための前記ノードであって、過去にテストされた前記ノードである再テストノードを特定する再テストノード特定部と、前記変更後の前記故障木の構成および過去にテストされた前記ノードに基づき、新たにテスト対象となるノードである新規テストノードを特定する新規テストノード特定部とを備える。
本発明の第２の態様によるプログラムは、複数のノードを有し、前記複数のノードのうち少なくとも１つのノードは安全機能と関連付けられている故障木について、変更前の前記故障木の構成、変更後の前記故障木の構成、および前記安全機能ごとに過去にテストされた前記ノードを示す情報を格納する記憶部を備えるコンピュータに、前記故障木の変更に関する情報に基づき前記変更の影響を受ける前記安全機能を特定することと、前記変更後の前記故障木の構成および過去にテストされた前記ノードに基づき、前記特定された前記安全機能を再度テストするための前記ノードであって、過去にテストされた前記ノードである再テストノードを特定することと、前記変更後の前記故障木の構成および過去にテストされた前記ノードに基づき、新たにテスト対象となるノードである新規テストノードを特定することとを実行させる。
【発明の効果】
【００１０】
本発明によれば、故障木の変更に伴う必要なテストケースの数を削減できる。
【図面の簡単な説明】
【００１１】
【図１】演算装置１のハードウエア構成図
【図２】演算装置１の機能構成図
【図３】ノード情報９１の一例を示す図
【図４】故障木の変更前後の一例を示す図
【図５】既存テスト情報９２の一例を示す図
【図６】新規テスト情報９３の一例を示す図
【図７】第１の実施の形態における演算装置１の全体処理を示すフローチャート
【図８】新規テストノード特定部１２の処理を示すフローチャート
【図９】新規中核処理を示すフローチャート
【図１０】再テストノード特定部１３の処理を示すフローチャート
【図１１】再テスト中核処理を示すフローチャート
【図１２】カウント数と対象ノードリストの一例を示す図
【図１３】決定処理を示すフローチャート
【図１４】変形例２においてプログラムを外部から読み込む様子を示す図
【図１５】第２の実施の形態における既存テスト情報９２Ａの一例を示す図
【図１６】第２の実施の形態における演算装置１Ａの全体処理を示すフローチャート
【発明を実施するための形態】
【００１２】
―第１の実施の形態―
以下、図１〜図１３を参照して、演算装置の第１の実施の形態を説明する。本実施の形態では、故障テストとして故障挿入テストを行う。故障挿入テストとは、故障事象を発生させ、安全機能が正常に作動することを試すテストである。
【００１３】
（ハードウエア構成）
図１は、本発明に係る演算装置１のハードウエア構成図である。演算装置１は、中央演算処理装置であるＣＰＵ２と、不揮発性で読み出し専用のＲＯＭ３と、揮発性で読み書き可能なＲＡＭ４と、外部と情報を授受するインタフェース８と、不揮発性で読み書き可能な記憶部９とを備える。ＲＯＭ３にはあらかじめプログラムが格納されている。ＣＰＵ２は、ＲＯＭ３に格納されているプログラムをＲＡＭ４に展開して実行することで後述する機能を実現する。
【００１４】
インタフェース８は、通信により外部と情報を授受する通信インタフェース、または物理メディアを読み込み可能なインタフェースである。通信インタフェースとはたとえば、ＩＥＥＥ８０２．３に対応する有線通信モジュール、または無線ＬＡＮや４Ｇなどに対応する無線通信モジュールである。記憶部９はたとえばハードディスクドライブやフラッシュメモリである。記憶部９には後述する情報があらかじめ格納される。ただし記憶部９に格納される情報は、インタフェース８を介して外部から入力されてもよい。
【００１５】
（機能構成）
図２は、演算装置１の機能構成図である。ただし図２には記憶部９に格納される情報も示している。演算装置１はその機能として、安全機能特定部１１と、新規テストノード特定部１２と、再テストノード特定部１３とを備える。これらの機能は、ＣＰＵ２がＲＯＭ３に格納されるプログラムを実行することにより実現される。記憶部９には、ノード情報９１と、既存テスト情報９２と、新規テスト情報９３とが格納される。
【００１６】
安全機能特定部１１、新規テストノード特定部１２、および再テストノード特定部１３は、記憶部９に格納されているノード情報９１、および既存テスト情報９２を対象として演算を行い、新規テスト情報９３を作成する。すなわち図２では記憶部９には、ノード情報９１、既存テスト情報９２、および新規テスト情報９３が格納されているが、このうちノード情報９１と既存テスト情報９２があらかじめ作成されている情報であり、新規テスト情報９３は新たに作成される情報である。
【００１７】
安全機能特定部１１は、故障木の変更に関する情報に基づき変更の影響を受ける安全機能を特定する。新規テストノード特定部１２は、安全機能特定部１１により特定された安全機能を再度テストするためのノードであって、過去にテストされたノードである再テストノードを特定する。新規テストノード特定部１２は、変更後の故障木の構成および過去にテストされたノードに基づき、新規テストノードを特定する。再テストノード特定部１３は、新たにテスト対象となるノードである新規テストノードを特定する。再テストノード特定部１３は、変更後の故障木の構成および過去にテストされたノードに基づき、再テストノードを特定する。
【００１８】
故障木は、故障事象や異常事象、セキュリティリスク事象など、リスク事象から構成される木構造である。また、その他のリスク分析手法で生成される木構造も故障木に含む。すなわち故障木は、リスク事象を表現するノードから構成される木構造であればよい。故障木は事象を表す複数のノードから構成される。
【００１９】
ノード情報９１には、故障木を構成する各ノードの情報が格納される。ノードの情報とは、ノードごとの故障木における位置を特定可能な情報である。本実施の形態では、ノード情報９１にはさらに、各ノードが対応する安全機能の識別子も格納される。ノード情報９１は人間が作成してもよいし、既知の自動処理により作成してもよい。既存テスト情報９２は、人間が作成してもよいし、既知の自動処理により作成してもよいし、演算装置１が過去に作成したものであってもよい。
【００２０】
すなわち次のように新規テスト情報９３が既存テスト情報９２として扱われてもよい。たとえばまずノード情報９１が更新され、演算装置１が新規テスト情報９３を作成する。そして、作成した新規テスト情報９３に記載のテストが実行され、さらにノード情報９１が再度更新された場合を想定する。この場合に演算装置１は、従前に作成した新規テスト情報９３を既存テスト情報９２として扱い、改めて新規テスト情報９３を作成してもよい。
【００２１】
既存テスト情報９２には、過去に実行されたテストの内容が記載される。既存テスト情報９２と新規テスト情報９３に格納される情報は同種である。既存テスト情報９２と新規テスト情報９３は同一の記載フォーマットを採用してもよいし、記載フォーマットが異なってもよい。
【００２２】
（ノード情報）
図３は、記憶部９に格納されるノード情報９１の一例を示す図である。ただし図３はノード情報９１の例示に過ぎず、情報の格納は表形式に限定されない。ノード情報９１は複数のレコードから構成され、各レコードは、ノードＩＤ、上位ゲートＩＤ、下位ゲートＩＤ、安全機能ＩＤ、および新旧のフィールドを有する。各レコードにはノードＩＤのフィールドに格納される情報により特定されるノード（以下、「対象ノード」と呼ぶ）に関する情報が格納される。なお図３に示す例ではゲートの種類が記載されていないが、図３にゲートの種類の情報が含まれてもよいし、ゲートの種類を示す情報のみが記憶部９に別途含まれてもよい。
【００２３】
「ノードＩＤ」のフィールドには、対象ノードを識別する識別子が格納される。「上位ゲートＩＤ」のフィールドには、対象ノードの上位のゲートを識別する識別子が格納される。ただし上位のゲートが存在しない場合には、存在しないことを示す記号、たとえば「−」が格納される。「下位ゲートＩＤ」のフィールドには、対象ノードの下位のゲートを識別する識別子が格納される。ただし下位のゲートが存在しない場合には、存在しないことを示す記号、たとえば「−」が格納される。
【００２４】
「安全機能ＩＤ」のフィールドには、対象ノードの事象に対する安全機能を識別する識別子が格納される。ただし対象ノードの事象に対する安全機能が存在しない場合はその旨を示す記号、たとえば「−」が格納される。また「安全機能ＩＤ」のフィールドには、対象ノードの事象に対する安全機能を識別する識別子の代わりに、対象ノードの事象に対する安全要求、安全要件、および設計情報のいずれかの識別子が格納されてもよい。
【００２５】
「新旧」のフィールドには、対象ノードが既存のものであるか、それとも変更により追加削除されたものであるかを示す情報が格納される。図３に示す例では変更により３つのノードが追加されたことが示されている。ただし「新旧」のフィールドは必須の構成ではなく、変更の前後でそれぞれノード情報９１が存在する場合には「新旧」のフィールドが備えられなくてもよい。
【００２６】
（故障木の例）
図４は、故障木の変更前後の一例を示す図であり、前述の図３に対応する。厳密には図４は、図３に示す故障木の構成のみを視覚的に示した図である。図４に示す故障木は、Ｎ１０１からＮ１１３までの全１３個のノードと、Ｇ１１からＧ１６までの全６個のゲートとから構成される。ゲートＮ１０１が最上位のノードであり、図示下方向にあるほど下位のノードである。図４では、変更前の故障木の構成を実線で示し、変更により追加された故障木の構成を破線で示す。すなわち図４に示す例の変更ではいずれにノードも削除されていない。ゲートはＡＮＤゲートとＯＲゲートの２種類が含まれ、図４に示す例ではその形状によりゲートの種類を示している。図４に示す例ではゲートＧ１３のみがＡＮＤゲートであり、それ以外の５つのゲートはＯＲゲートである。
【００２７】
上位のノードは、ゲートによって下位のノードと接続される。ＯＲゲートは、下位ノードの事象のうちどれか１つでも発生すれば上位ノードの事象が発生することを意味する。ＡＮＤゲート２０３は、下位ノードの事象の全てが発生した際に、上位ノードの事象が発生することを意味する。たとえばゲートＧ１１はＯＲゲートなので、ノードＮ１０２およびノードＮ１０３のいずれかの事象が発生すればノードＮ１０１の事象が発生する。以下では、下位にゲートを有しないノードを「末端ノード」と呼び、末端ノード以外のノードを「非末端ノード」と呼ぶ。図４に示す例では、ノードＮ１０４、Ｎ１０６、Ｎ１０８、Ｎ１０９、Ｎ１１０、Ｎ１１２、Ｎ１１３が末端ノードである。
【００２８】
また以下では、ゲートを挟んで上下関係にあるノード同士を「一段上位のノード」と呼ぶ。たとえば図４に示す例において、ノードＮ１１０の一段上位のノードはノードＮ１０７である。
【００２９】
図４に示す例では、変更によりゲートＧ１３の下にノードＮ１１１、ゲートＧ１６、ノードＮ１１２、およびノードＮ１１３が追加されている。ゲートＧ１３がＡＮＤノードであることは変更がない。変更前は、ノードＮ１０６およびノードＮ１０７の両方の事象が発生するとノードＮ１０３の事象が発生していたが、変更後はこれら２つの事象に加えてノードＮ１１１の事象が発生しなければ、ノードＮ１０３の事象が発生しない。
【００３０】
（既存テスト情報）
図５は、既存テスト情報９２の一例を示す図であり、前述の図３に対応する。既存テスト情報９２は複数のレコードから構成される。既存テスト情報９２の各レコードは、テストケースＩＤ、安全機能ＩＤ、および故障挿入箇所のフィールドを有する。各レコードには「テストケースＩＤ」のフィールドに格納される情報により特定されるテストケース（以下、「対象テストケース」と呼ぶ）に関する情報が格納される。
【００３１】
「テストケースＩＤ」のフィールドには、対象テストケースを識別する識別子が格納される。「安全機能ＩＤ」のフィールドには、対象テストケースにおいてテストされる安全機能を識別する識別子が格納される。「故障挿入箇所」のフィールドには、対象テストケースにおいて発生させる故障事象に対応するノードの識別子が格納される。
【００３２】
図５の最初のレコードに示す例では、ＩＤが「ＴＣ１」であるテストケースでは、安全機能ＩＤが「ＳＦ１」である安全機能のテストが行われることが示されている。さらにそのテストケースでは、ノードＮ１０４およびノードＮ１０８に対応する故障事象が発生させられることが示されている。
【００３３】
（新規テスト情報）
図６は、新規テスト情報９３の一例を示す図であり、前述の図３に対応する。新規テスト情報９３の構成は既存テスト情報９２と同一なので説明を省略する。
【００３４】
（フローチャート）
以下、図７〜図１３を参照して演算装置１の動作を説明する。また以下のフローチャートの説明では、図３や図４などに示した例を参照して具体的な動作を補足説明する。
【００３５】
（フローチャート  全体処理）
図７は、第１の実施の形態における演算装置１の全体処理を示すフローチャートである。演算装置１は、インタフェース８を介して外部から既存の故障木に対する構成の変更を受信すると、図７に示す処理を開始する。ただし予め記憶部９に新旧の故障木の構成、および既存テスト情報９２が格納された状態で、外部から処理開始の指令を受けた場合に図７に示す処理を開始してもよい。図７に示す処理が開始される時点で、記憶部９にはノード情報９１および既存テスト情報９２が格納されている。
【００３６】
なお以下に説明するフローチャートでは、故障木を構成する全ノードについて「通過フラグ」を個別に設定し演算に利用する。通過フラグとは、真偽の２値をとる変数であり以下に説明するフローチャート中でのみ利用される。通過フラグの情報は、ＲＡＭ４に格納される。
【００３７】
演算装置１の安全機能特定部１１はまず、ノード情報９１を参照して、故障木の構成の変更が影響する安全機能を特定する（Ｓ７０１）。影響する安全機能とは、変更が行われた箇所から最上位のノードに向かって順番に辿った際に通過する全てのノードに紐付けられた安全機能である。図４に示す例では、追加された故障木から最上位のノードに向かって辿ると、ノードＮ１０３とノードＮ１０１が存在する。そして、ノードＮ１０１は安全機能ＩＤを有さずノードＮ１０３のみが安全機能ＩＤ「ＳＦ２」を有するので、Ｓ７０１では「ＳＦ２」が特定される。
【００３８】
次に演算装置１は、記憶部１０６の既存テスト情報９２を参照し、故障挿入箇所に設定されているノードを特定する。図５に示す例では、故障挿入箇所に設定されているノードとして、ノードＮ１０４、ノードＮ１０６、ノードＮ１０８、およびノードＮ１０９が特定される。
【００３９】
次に演算装置１は、Ｓ７０１において特定した全ての安全機能を順番に「対象安全機能」として選択し、Ｓ７０３とＳ７０８との間に存在する処理、すなわちＳ７０４〜Ｓ７０７を実行する。たとえばＳ７０１において特定した安全機能がＳＦ７とＳＦ８である場合は、まずは対象安全機能をＳＦ７としてＳ７０４〜Ｓ７０７を実行し、次に対象安全機能をＳＦ８としてＳ７０４〜Ｓ７０７を実行する。図３に示す例ではＳ７０１において特定される安全機能はＳＦ２のみなのでＳ７０４〜Ｓ７０７は１回のみ実行される。
【００４０】
Ｓ７０４〜Ｓ７０７の処理は次のとおりである。まず、全ノードの通過フラグに偽を設定する（Ｓ７０４）。次に、新規テストノード特定部１２が、新規にテストするべきノード、すなわち新規テストノードを特定する（Ｓ７０５）。Ｓ７０５の詳細は図８を参照して後に説明する。次に、再テストノード特定部１３が、過去にテストしたノードの中から再試験を実施するべきノード、すなわち再テストノードを特定する（Ｓ７０６）。Ｓ７０６の詳細は図１０を参照して後に説明する。
【００４１】
そして演算装置１は、Ｓ７０５とＳ７０６で特定されたノードを故障挿入箇所とするテストケースを作成する（Ｓ７０７）。Ｓ７０７の具体的な動作は後述する。以上がＳ７０４〜Ｓ７０７の処理内容である。最後に演算装置１は、Ｓ７０７で作成したテストケースを出力して（Ｓ７０９）、図７に示す処理を終了する。
【００４２】
（フローチャート  新規テストノード特定部）
図８は、新規テストノード特定部１２の処理を示すフローチャートであり、図７のＳ７０５の詳細を示すフローチャートである。まず新規テストノード特定部１２は、故障木における変更に係る最上位ノードを特定する（Ｓ８０１）。図３や図４に示す例では、ノードＮ１１１〜Ｎ１１３およびゲートＧ１６が追加されたので、変更に係る最上位ノードはノードＮ１１１である。仮にノードＮ１１１〜Ｎ１１３だけでなくノードＮ１０８も変更により追加されていた場合には、Ｓ８０１ではノードＮ１０８およびノードＮ１１１が特定される。
【００４３】
次に新規テストノード特定部１２は、Ｓ８０１において特定した全ての最上位ノードを対象ノードとしてＳ８０３およびＳ８０４の処理を実行する。Ｓ８０３では新規テストノード特定部１２は、新規テストの対象となるノードを特定する新規中核処理を実行する。Ｓ８０３の詳細は図９を参照して後述する。Ｓ８０４では新規テストノード特定部１２は、Ｓ８０３において出力されるリストを記録する。新規テストノード特定部１２は、Ｓ８０１において特定した全ての最上位ノードを対象にＳ８０３およびＳ８０４の処理が完了すると、Ｓ８０４において記録したリストを出力して（Ｓ８０６）、図８に示す処理を終了する。なおＳ８０６において出力したリストは、図７のＳ７０７において利用される。
【００４４】
（フローチャート  新規中核処理）
図９は、新規中核処理を示すフローチャートであり、図８のＳ８０３の詳細を示すフローチャートである。図９に示す処理では、図８のＳ８０１において特定したノードが「対象ノード」に設定されて実行される。新規テストノード特定部１２はまず、対象ノードの通過フラグを「真」に設定する。次に新規テストノード特定部１２は対象ノードが末端ノードであるか否かを判断する（Ｓ９０２）。前述のとおり、末端ノードは下位にゲートを有しないノードである。新規テストノード特定部１２は、対象ノードが末端ノードであると判断する場合は、対象ノードのみを要素とするリストを作成して出力し（Ｓ９０３）、図９に示す処理を終了する。新規テストノード特定部１２は、対象ノードが末端ノードではないと判断する場合はＳ９０６に進む。
【００４５】
Ｓ９０６では新規テストノード特定部１２は、対象ノードの下位ゲートはＡＮＤゲートであるか否かを判断し、下位ゲートがＡＮＤゲートであると判断する場合はＳ９１１に進み、下位ゲートがＯＲゲートであると判断する場合はＳ９２１に進む。新規テストノード特定部１２は、Ｓ９１１〜Ｓ９１３において、対象ノードよりも下位の全ノードを順番に「ループ対象」としてＳ９１２の処理を実行する。たとえば図３に示す例においてノードＮ１０２が処理対象の場合には、たとえばノードＮ１０４をループ対象としてＳ９１２を実行し、次にノードＮ１０５をループ対象としてＳ９１２を実行し、最後にノードＮ１０８をループ対象としてＳ９１２を実行する。
【００４６】
Ｓ９１２では新規テストノード特定部１２は、ループ対象を対象ノードとして図９に示す新規中核処理を実行する。すなわちＳ９１２は再帰呼び出しである。たとえば前述の例においてノードＮ１０４をループ対象としてＳ９１２を実行すると、ノードＮ１０４を対象ノードとして図９に示す新規中核処理が実行される。新規テストノード特定部１２は、対象ノードの全ての下位ノードをループ対象としてＳ９１２を実行するとＳ９１４に進む。
【００４７】
Ｓ９１４では新規テストノード特定部１２はＳ９１２の処理により出力されるリストを組み合わせたリストを作成する。たとえば前述のとおり、対象ノードがＮ１０２の場合にはループ対象はノードＮ１０４、Ｎ１０５、およびＮ１０８である。この３つのそれぞれが対象ノードとして新規中核処理を実行すると出力されるリストはＮ１０２、Ｎ１０４、およびＮ１０８である。そのためＳ９１４ではこれらを組み合わせたリストとしてＮ１０２、Ｎ１０４、Ｎ１０８、｛Ｎ１０２、Ｎ１０４｝、｛Ｎ１０２、Ｎ１０８｝、｛Ｎ１０４、Ｎ１０８｝、｛Ｎ１０２、Ｎ１０４、Ｎ１０８｝が作成される。ただしここでは、１つのリストに複数の要素が含まれる場合は波括弧を使って1つのリストの範囲を明示している。続くＳ９１５では新規テストノード特定部１２は、Ｓ９１４において作成したリストを出力して図９に示す処理を終了する。
【００４８】
新規テストノード特定部１２は、Ｓ９２１〜Ｓ９２４において、対象ノードよりも下位の全ノードを順番に「ループ対象」としてＳ９２２およびＳ９２３の処理を実行する。たとえば図３に示す例においてノードＮ１０２が処理対象の場合には、ノードＮ１０４、Ｎ１０５、Ｎ１０８をループ対象としてＳ９２２とＳ９２３を実行する。Ｓ９２２では新規テストノード特定部１２は、ループ対象を対象ノードとして図９に示す新規中核処理を実行する。すなわちＳ９２２は再帰呼び出しである。Ｓ９２３では新規テストノード特定部１２は、Ｓ９２２の処理により出力されるリストを出力する。新規テストノード特定部１２は、対象ノードの全ての下位ノードをループ対象としてＳ９２２およびＳ９２３を実行すると図９に示す処理を終了する。
【００４９】
Ｓ９１１〜Ｓ９１５で実行される処理と、Ｓ９２１〜Ｓ９２４で実行される処理は似ているが細部が異なる。すなわちＳ９１１〜Ｓ９１５では、再帰処理によりＳ９１２で新規中核処理を実行して出力されたリストをそのまま出力するのではなく、組み合わせて出力する。その一方でＳ９２１〜Ｓ９２４では、再帰処理によりＳ９２２で新規中核処理を実行して出力されたリストをそのまま出力する。
【００５０】
実際にはＳ９０６の判断が存在するので、同一の対象ノードがＳ９１１〜Ｓ９１５とＳ９２１〜Ｓ９２４の両方を実行することはありえないが、説明のためにあえて記載すると、対象ノードが同一であってもＳ９１１〜Ｓ９１５とＳ９２１〜Ｓ９２４では、呼び出し元である図８のＳ８０３において出力されるリストが次のように異なる。すなわちＳ９１１〜Ｓ９１５ではＮ１０２、Ｎ１０４、Ｎ１０８、｛Ｎ１０２、Ｎ１０４｝、｛Ｎ１０２、Ｎ１０８｝、｛Ｎ１０４、Ｎ１０８｝、｛Ｎ１０２、Ｎ１０４、Ｎ１０８｝が出力され、Ｓ９２１〜Ｓ９２４ではＮ１０２、Ｎ１０４、およびＮ１０８が出力される。
【００５１】
（フローチャート  再テストノード特定部）
図１０は、再テストノード特定部１３の処理を示すフローチャートであり、図７のＳ７０６の詳細を示すフローチャートである。なお図１０に示す処理は、Ｓ１００１〜Ｓ１００６により構成されるが、Ｓ１００３を除いて、図８に示すＳ８０１〜Ｓ８０６の処理にそれぞれ対応する。ここではＳ１００３の処理だけを説明する。Ｓ１００３では再テストノード特定部１３は、再テストの対象となるノードを特定する再テスト中核処理を実行する。Ｓ１００３の詳細は図１１を参照して後述する。
【００５２】
図１１は、再テスト中核処理を示すフローチャートであり、図１１のＳ１００３の詳細を示すフローチャートである。図１１に示す処理では、図１０のＳ１００１において特定したノードが「対象ノード」に設定されて実行される。図１１ではまず再テストノード特定部１３は、対象ノードが故障木の最上位ノードであるか否かを判断する（Ｓ１０１１）。再テストノード特定部１３は、対象ノードが最上位ノードであると判断する場合は、図９に示す処理を終了し、対象ノードが最上位ノードではないと判断する場合はＳ１０１２に進む。
【００５３】
Ｓ１０１２では再テストノード特定部１３は、対象ノードの上位ゲートはＡＮＤゲートであるか否かを判断し、上位ゲートがＡＮＤゲートであると判断する場合はＳ１０２１に進み、上位ゲートがＯＲゲートであると判断する場合はＳ１０１３に進む。Ｓ１０１３では再テストノード特定部１３は、対象ノードの一段上位のノードの通過フラグを真に設定してＳ１０１４に進む。たとえば対象ノードが図３に示すノードＮ１０７の場合に、Ｓ１０１３ではノードＮ１０３の通過フラグが真に設定される。
【００５４】
Ｓ１０１４では再テストノード特定部１３は、対象ノードの１段上位のノードの安全機能ＩＤは対象安全機能、すなわち図７のＳ７０１において特定した安全機能の１つであって、１つずつ順番に選択された安全機能と一致するか否かを判断する。再テストノード特定部１３は、対象ノードの１段上位のノードの安全機能ＩＤが対象安全機能と一致すると判断する場合は図１１に示す処理を終了する。再テストノード特定部１３は、対象ノードの１段上位のノードの安全機能ＩＤが対象安全機能と一致しないと判断する場合は、対象ノードを現在の対象ノードの１段上位のノードに変更してＳ１０１２に戻る。
【００５５】
たとえば対象ノードが図３に示すノードＮ１０７の場合に、Ｓ１０１３ではノードＮ１０３の安全機能ＩＤが対象安全機能と一致するか否かが判断される。ノードＮ１０３の安全機能ＩＤは図３の例によればＳＦ２なので、対象安全機能がＳＦ２であれば肯定判断される。仮に対象ノードの１段上位のノードが安全機能ＩＤを有しない場合は、対象安全機能がどのような値であってもＳ１０１３では否定判断がされる。
【００５６】
再テストノード特定部１３は、Ｓ１０２１〜Ｓ１０３０において、対象ノードの上位ゲートであるＡＮＤゲート以下の全ノードを順番に「ループノード」としてＳ１０２２〜Ｓ１０２９の処理を実行する。Ｓ１０２２では再テストノード特定部１３は、ループノードの通過フラグが偽であるか否かを判断し、ループノードの通過フラグが偽であると判断する場合はＳ１０２３に進み、ループノードの通過フラグが偽ではない、すなわち真であると判断する場合はＳ１０３０に進む。Ｓ１０２３では再テストノード特定部１３は、ループノードの通過フラグを真に設定してＳ１０２４に進む。
【００５７】
Ｓ１０２４では再テストノード特定部１３は、ループノードはテスト済であるか否か、すなわち既存テスト情報９２のいずれかのテストケースにおいて故障挿入箇所に設定されているか否かを判断する。再テストノード特定部１３は、ループノードが既存テスト情報９２のいずれかのテストケースにおいて故障挿入箇所に設定されていると判断する場合はＳ１０２５に進む。再テストノード特定部１３は、ループノードが既存テスト情報９２のいずれかのテストケースにおいても、故障挿入箇所に設定されていないと判断する場合はＳ１０２６に進む。
【００５８】
Ｓ１０２５では再テストノード特定部１３は、ループノードをテスト対象に選択してＳ１０２９に進む。Ｓ１０２６では再テストノード特定部１３は、ループノードの下位ゲートはＡＮＤゲートであるか否かを判断する。再テストノード特定部１３は、ループノードの下位ゲートはＡＮＤゲートであると判断する場合はＳ１０３０に進み、ループノードの下位ゲートはＡＮＤゲートではない、すなわちＯＲゲートであると判断する場合はＳ１０２７に進む。
【００５９】
Ｓ１０２７では再テストノード特定部１３は、ループノードの下位ゲートであるＯＲゲート以下の全ノードを順番に評価ノードとして図１３に示す決定処理を実行する。たとえば図３に示す例においてループノードがノードＮ１０７の場合に、ノードＮ１０７の下位ゲートはゲートＧ１５なので、ノードＮ１０９とノードＮ１１０が順番に評価ノードとして図１３に示す決定処理が実行される。詳しくは後述するが、この決定処理では、カウント数と対象ノードリストが出力される。続くＳ１０２８では再テストノード特定部１３は、Ｓ１０２７において実行した決定処理において最小のカウント数である対象ノードリストをテスト対象に選択し、Ｓ１０２９に進む。
【００６０】
図１２は、カウント数と対象ノードリストの一例を示す図である。仮にＳ１０２７においてＯＲゲート以下のノードが全部で４つあり、それぞれの出力が図１２に示すものである場合にＳ１０２９ではカウント数が最小である１行目の対象ノードリスト、すなわちノードＮ２０１がテスト対象に選択される。
【００６１】
Ｓ１０２９では再テストノード特定部１３は、テスト対象を１つのリストとして出力する。再テストノード特定部１３は、対象ノードの上位ゲートであるＡＮＤゲート以下の全ノードをループノードとしてＳ１０２２〜Ｓ１０２９の処理を実行すると、図１１に示す処理を終了する。
【００６２】
（フローチャート  決定処理）
図１３は、決定処理を示すフローチャートであり、図１１のＳ１０２７の詳細を示すフローチャートである。再テストノード特定部１３はまず、カウント数をゼロに、対象ノードリストをＮＵＬＬ、すなわち空白状態に初期化する（Ｓ１１０１）。次に再テストノード特定部１３は、評価ノードはテスト済みであるか否か、すなわち既存テスト情報９２のいずれかのテストケースにおいて故障挿入箇所に設定されているか否かを判断する。再テストノード特定部１３は、評価ノードが既存テスト情報９２のいずれかのテストケースにおいて故障挿入箇所に設定されていると判断する場合はＳ１１０３に進む。再テストノード特定部１３は、評価ノードが既存テスト情報９２のいずれかのテストケースにおいても、故障挿入箇所に設定されていないと判断する場合はＳ１１０４に進む。
【００６３】
Ｓ１１０３では再テストノード特定部１３は、カウント数に「１」、対象ノードリストに評価ノードを設定してＳ１１３１に進む。Ｓ１１３１では再テストノード特定部１３は、設定されたカウント数と対象ノードリストを出力して図１３に示す処理を終了する。
【００６４】
Ｓ１１０４では再テストノード特定部１３は、評価ノードの下位ゲートはＡＮＤゲートであるか否かを判断し、下位ゲートがＡＮＤゲートであると判断する場合はＳ１１１１に進み、下位ゲートがＯＲゲートであると判断する場合はＳ１１２１に進む。
【００６５】
再テストノード特定部１３は、Ｓ１１１１〜Ｓ１１１４において、評価ノードよりも下位の全ノードを順番に「ループ対象」としてＳ１１１２の処理を実行する。Ｓ１１１２では再テストノード特定部１３は、ループ対象を評価ノードとして図１３に示す決定処理を実行する。すなわちＳ１１１２は再帰呼び出しである。続くＳ１１１３では再テストノード特定部１３は、Ｓ１１１２を実行することにより出力されるカウント数と対象ノードリストを一時的に記録する。再テストノード特定部１３は、評価ノードの全ての下位ノードをループ対象としてＳ１１１２およびＳ１１１３を実行するとＳ１１１５に進む。
【００６６】
Ｓ１１１５では再テストノード特定部１３は、カウント数をＳ１１１３において記録したカウント数の総計に設定し、対象ノードリストをＳ１１１３において記録した全てのノードリストに設定してＳ１１３１に進む。Ｓ１１１３において記録したカウント数と対象ノードリストが図１２に示すものの場合に、Ｓ１１１５ではカウント数は１、２、２、３の総計である「８」に設定され、対象ノードリストは、ノードＮ２０１〜Ｎ２０８に設定される。
【００６７】
再テストノード特定部１３は、Ｓ１１２１〜Ｓ１１２４において、評価ノードよりも下位の全ノードを順番に「ループ対象」としてＳ１１２２の処理を実行する。Ｓ１１２２では再テストノード特定部１３は、ループ対象を評価ノードとして図１３に示す決定処理を実行する。すなわちＳ１１２２は再帰呼び出しである。続くＳ１１２３では再テストノード特定部１３は、Ｓ１１２２を実行することにより出力されるカウント数と対象ノードリストを一時的に記録する。再テストノード特定部１３は、評価ノードの全ての下位ノードをループ対象としてＳ１１２２およびＳ１１２３を実行するとＳ１１２５に進む。
【００６８】
Ｓ１１２５では再テストノード特定部１３は、カウント数をＳ１１１３において記録したカウント数の最小値に設定し、対象ノードリストを最初のカウント数に対応するノードリストに設定してＳ１１３１に進む。なお最小のカウント数が複数存在する場合には、対象ノードリストに設定するノードリストは、最小のカウント数に対応するノードリストのいずれでもよい。テストの演算量を減らすために最小のカウント数を選択しているので、対象ノードとしていずれを選択してもテストの演算量には影響がないからである。
【００６９】
Ｓ１１２５の具体例を説明する。Ｓ１１２３において記録したカウント数と対象ノードリストが図１２に示すものの場合に、Ｓ１１２５では最小のカウント数である「１」に設定し、対象ノードリストはカウント数が「１」であるノードＮ２０１に設定する。以上が図１３に示す処理の説明である。
【００７０】
上述した第１の実施の形態によれば、次の作用効果が得られる。
（１）演算装置１は、複数のノードを有し、複数のノードのうち少なくとも１つのノードは安全機能と関連付けられている故障木について、変更前の故障木の構成、変更後の故障木の構成、および安全機能ごとに過去にテストされたノードを示すノード情報９１を格納する記憶部９と、故障木の変更に関する情報に基づき変更の影響を受ける安全機能を特定する安全機能特定部１１と、変更後の故障木の構成および過去にテストされたノードに基づき、再テストノードを特定する再テストノード特定部１３と、変更後の故障木の構成および過去にテストされたノードに基づき、新規テストノードを特定する新規テストノード特定部１２とを備える。そのため、故障木の変更に伴う必要なテストケースの数を削減できる。
【００７１】
（２）安全機能特定部１１は、変更により追加されたノードから故障木の最上位のノードまで辿った際に通過する全てのノードのそれぞれに関連付けられる安全機能を、変更の影響を受ける安全機能として特定する。
【００７２】
（３）再テストノード特定部１３は、変更により追加されたノードのうち最上位のノードを対象ノードとし、対象ノードが変更による変更後の故障木における最上位のノードである場合は再テストノードへの追加を行わない（図１１のＳ１０１１：ＹＥＳ）。
【００７３】
（４）再テストノード特定部１３は、対象ノードに接続される上位のゲートがＡＮＤゲートの場合は、当該ＡＮＤゲートに接続するそれぞれのノードの事象が発生するように、当該ＡＮＤゲート以下のノードであって過去にテストされたノードを再テストノードに追加する（図１１のＳ１０１２：ＹＥＳ、Ｓ１０２１〜Ｓ１０３０）。
【００７４】
（５）新規テストノード特定部１２は、変更により追加されたノードのうち最上位のノードを対象ノードとし、対象ノードが下位のノードを有しない場合は対象ノードを新規テストノードに追加し（図９のＳ９０２：ＹＥＳ、Ｓ９０３）、対象ノードが下位のノードを有する場合は対象ノードを新規テストノードに追加しない（Ｓ９０２：ＮＯ、Ｓ９０６以降）。
【００７５】
（６）新規テストノード特定部１２は、対象ノードが下位のノードを有する場合であって、対象ノードに接続される下位ゲートがＡＮＤゲートの場合は、当該ＡＮＤゲートに接続される全てのノードの事象が発生するようにＡＮＤゲート以下のノードを新規テストノードに追加する（Ｓ９０６：ＹＥＳ、Ｓ９１１〜Ｓ９１５）。対象ノードが下位のノードを有する場合であって、対象ノードに接続される下位ゲートがＯＲゲートの場合は、当該ＯＲゲートに接続されるいずれか１つのノードの事象が発生するように当該ＯＲゲート以下のノードを新規テストノードに追加する（Ｓ９０６：ＮＯ、Ｓ９２１〜Ｓ９２４）。
【００７６】
（変形例１）
上述した第１の実施の形態では、故障木を構成するノードおよびゲートの情報がノード情報９１に格納され、さらに各ノードが対応する安全機能の識別子もノード情報９１に格納された。しかしノード情報９１にゲートの情報を含めず、ゲートの情報を個別に記憶部９に格納してもよい。また安全機能の情報もノード情報９１に含めなくてもよい。
【００７７】
（変形例２）
演算装置１を動作させるためのプログラムは、予めＲＯＭに格納されていなくてもよく、次のように外部から読み込まれてもよい。図１４は、プログラムを外部から読み込む様子を示す図である。演算装置１に対するプログラムの供給は、プログラムを格納したＣＤ−ＲＯＭなどの記録媒体９０４を演算装置１にセットして行ってもよいし、ネットワークなどの通信回線９０１を経由する方法で演算装置１へ読み込ませてもよい。通信回線９０１を経由する場合は、当該通信回線に接続されたサーバー９０２のストレージ装置９０３などにプログラムを格納しておく。
【００７８】
サーバー９０２はストレージ装置９０３を使用してプログラムの情報を読み出し、通信回線９０１を介して演算装置１に送信する。すなわち、プログラムをデータ信号として搬送波を介して、通信回線９０１を介して送信する。このように、演算装置１を動作させるためのプログラムは、記録媒体やデータ信号（搬送波）などの種々の形態のコンピュータ読み込み可能なコンピュータプログラム製品として供給できる。
【００７９】
（変形例３）
演算装置１は、ＣＰＵ２、ＲＯＭ３、およびＲＡＭ４の組み合わせの代わりに書き換え可能な論理回路であるＦＰＧＡ（Field  Programmable  Gate  Array）や特定用途向け集積回路であるＡＳＩＣ（Application  Specific  Integrated  Circuit）により実現されてもよい。また演算装置１は、ＣＰＵ２、ＲＯＭ３、およびＲＡＭ４の組み合わせの代わりに、異なる構成の組み合わせ、たとえばＣＰＵ、ＲＯＭ、ＲＡＭとＦＰＧＡの組み合わせにより実現されてもよい。
【００８０】
―第２の実施の形態―
図１５〜図１６を参照して、演算装置の第２の実施の形態を説明する。以下の説明では、第１の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第１の実施の形態と同じである。本実施の形態では、故障木の構成に変更があった場合に、故障挿入テスト以外のテストについて、新規にテストが必要な箇所を特定するとともに、テスト済みの部分については回帰テスト対象となるテストケースを特定する。第１の実施の形態と同じ構成には同じ番号を付与して説明を省略する。本実施の形態では、故障挿入テストだけではなく開発中に実施されたテスト、たとえば、総合テスト、結合テスト、単体テストなども実施する。
【００８１】
（構成）
第２の実施の形態における演算装置１Ａのハードウエア構成は、第１の実施の形態と同様なので説明を省略する。第２の実施の形態における演算装置１Ａの動作が第１の実施の形態と一部のみ異なる。また本実施の形態では記憶部９には、既存テスト情報９２および新規テスト情報９３の代わりに既存テスト情報９２Ａおよび新規テスト情報９３Ａが格納される。
【００８２】
本実施の形態における既存テスト情報９２Ａは、第１の実施の形態における既存テスト情報９２の情報に加えてテスト種別の情報が格納される。新規テスト情報９３Ａの構成も同様である。
【００８３】
図１５は第２の実施の形態における既存テスト情報９２Ａの一例を示す図である。既存テスト情報９２Ａの各レコードは、第１の実施の形態における既存テスト情報９２のフィールドに加えてテスト種別のフィールドを有する。またテストの種別が故障挿入テストに限定されないため、「故障挿入箇所」のフィールドが「対象ノード」に改称される。
【００８４】
図１６は第２の実施の形態における演算装置１Ａの全体処理を示すフローチャートである。図１６は、第１の実施の形態における図７からＳ７０７を削除してＳ１５０７およびＳ１５０８を追加したものである。ここでは追加したＳ１５０７およびＳ１５０８のみ説明する。Ｓ１５０７では、演算装置１Ａは、Ｓ７０５およびＳ７０６で特定されたノードについて新規テストノード特定部１２Ａを参照してそのノードがテスト対象となったテストケースを選択する。この際に、そのノードがテスト対象となった全てのテストケースを選択してもよいし、テスト種別を限定してもよい。
【００８５】
たとえばＳ７０５およびＳ７０６で特定されたノードがＮ３０１であり、既存テスト情報９２Ａが図１５に示すものの場合に、次のテストケースが選択される。すなわち、ノードＮ３０１はテストケースＴＣ１１およびＴＣ１２の両方において対象ノードとなっているので、テストケースＴＣ１１およびＴＣ１２の両方のテストケースが選択される。ただしあらかじめオペレータなどがテスト種別を結合テストに限定していた場合には、テストケースＴＣ１１のみが選択される。
【００８６】
次に演算装置１Ａは、Ｓ１５０８において、Ｓ７０５で特定されたノードから新規にテストケースを作成すべきノードを特定する。なお特定されたすべてのノードのうち、ノード情報にテストケースが設定されていないノードは、すべてテストケースを作成するノードとなる。また、新規のテストケースのテスト種別は特に限定されないが、たとえば故障挿入テストとすることができる。以上の処理によって、回帰テスト対象のテストケースの特定、および、新規テスト対象のノードの特定が可能である。
【００８７】
（第２の実施の形態の変形例）
第２の実施の形態において、既存テスト情報９２ＡにテストケースＩＤを記録する代わりに検証ＩＤを記録してもよい。テストケースＩＤは試験内容を特定するための識別番号であったが、検証ＩＤは過去の検証活動における試験の結果や検証記録を特定するための識別番号である。この場合は、過去に検証が行われたノードのうち、再検証が必要なノードを特定すること、および、新規に検証が必要なノードを特定することも可能である。検証ＩＤを使用する場合のノードの特定方法はテストケースを作成すべきノードの特定の方法と同様であり、参照すべき情報が異なる。すなわち、リストを作成することにより再検証が必要なノードを特定する。
【００８８】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例を含む。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００８９】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【００９０】
１…演算装置
９…記憶部
１１…安全機能特定部
１２…新規テストノード特定部
１３…再テストノード特定部
【図１】
2020140343.tif 000003
【図２】
2020140343.tif 000004
【図３】
2020140343.tif 000005
【図４】
2020140343.tif 000006
【図５】
2020140343.tif 000007
【図６】
2020140343.tif 000008
【図７】
2020140343.tif 000009
【図８】
2020140343.tif 000010
【図９】
2020140343.tif 000011
【図１０】
2020140343.tif 000012
【図１１】
2020140343.tif 000013
【図１２】
2020140343.tif 000014
【図１３】
2020140343.tif 000015
【図１４】
2020140343.tif 000016
【図１５】
2020140343.tif 000017
【図１６】
2020140343.tif 000018