(57)【要約】【課題】シーケンスプログラムのテストパターンを容易に作成できるテストパターン生成装置を提供する。【解決手段】シーケンスプログラムのテストのためのテスト入力シーケンスを生成するテストパターン生成装置１１０は、前記シーケンスプログラムの入力信号それぞれについて、とりうる全ての状態と、状態変化と、を求める状態・状態変化解析部１１２と、前記入力信号の前記状態変化それぞれについて、他の前記信号の前記状態又は前記状態変化と組み合わせたテストパターンを生成するテストパターン生成部１１３と、前記テストパターンに基づいて前記テスト入力シーケンスを生成するテスト入力シーケンス生成部１１４と、を有する。【選択図】図３
2020119153.tif 000002
【特許請求の範囲】
【請求項１】
シーケンスプログラムのテストのためのテスト入力シーケンスを生成するテストパターン生成装置であって、
前記シーケンスプログラムの入力信号それぞれについて、とりうる全ての状態と、状態変化と、を求める状態・状態変化解析部と、
前記入力信号の前記状態変化それぞれについて、他の前記入力信号の前記状態又は前記状態変化と組み合わせたテストパターンを生成するテストパターン生成部と、
前記テストパターンに基づいて前記テスト入力シーケンスを生成するテスト入力シーケンス生成部と、を有することを特徴とする
テストパターン生成装置。
【請求項２】
前記テスト入力シーケンスのうち、重複するものを削除するテスト入力シーケンス削減部をさらに有することを特徴とする
請求項１記載のテストパターン生成装置。
【請求項３】
前記テスト入力シーケンス生成部は、生成した前記テスト入力シーケンスの信号変化のタイミングをずらすことで、新たな前記テスト入力シーケンスを生成することを特徴とする
請求項１記載のテストパターン生成装置。
【請求項４】
前記テスト入力シーケンス生成部は、生成した前記テスト入力シーケンスを複数結合することで、新たな前記テスト入力シーケンスを生成することを特徴とする
請求項１記載のテストパターン生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テストパターン生成装置に関し、特にシーケンスプログラムのテストパターンを容易に作成できるテストパターン生成装置に関する。
【背景技術】
【０００２】
プログラムのソースコード（例えば、Ｃ／Ｃ＋＋等のプログラム言語で作成された汎用コンピュータプログラムのソースコード）を解析して、プログラムのテストパターンを自動生成する技術が従来技術として知られている。
【０００３】
テストパターン生成に関するものではないが、従来技術に関連の深い文献として特許文献１がある。特許文献１には、タイムシーケンス図に対応するシーケンスプログラムを自動生成することができる装置が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２０６７９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術である汎用プログラム向けのテストパターン自動生成技術をシーケンスプログラムに適用すると、シーケンスプログラムでは時系列を考慮しなければならないため、テストパターン及びテスト入力シーケンスの数が膨大になるという問題がある。すなわち、シーケンスプログラムでは、ある時刻における入力信号の状態が複数ありうるほか、時刻毎に入力信号の状態が変化しうる。このような入力信号の経時変化を網羅したテストパターンを作成しようとすれば、パターン数が非常に多くなる。
【０００６】
図１を用いてこの問題について説明する。２つの信号Ａ，Ｂを入力とするシーケンスプログラムを考える。Ａ，Ｂはいずれも０，１のいずれかの値をとるものとする。Ａ，Ｂがある時刻において取りうる値の組み合わせは、２＊２＝４パターンである。また、このシーケンスプログラムではｎ回のスキャンが行われるとすると、テストパターンの数は４パターンのｎ乗となる。このような膨大な数のテストパターンの生成は、多大な手間とコストを要する作業である。
【０００７】
本発明はこのような課題を解決するためのものであり、シーケンスプログラムのテストパターンを容易に作成できるテストパターン生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一実施形態にかかる数値制御装置は、シーケンスプログラムのテストのためのテスト入力シーケンスを生成するテストパターン生成装置であって、前記シーケンスプログラムの入力信号それぞれについて、とりうる全ての状態と、状態変化と、を求める状態・状態変化解析部と、前記入力信号の前記状態変化それぞれについて、他の前記信号の前記状態又は前記状態変化と組み合わせたテストパターンを生成するテストパターン生成部と、前記テストパターンに基づいて前記テスト入力シーケンスを生成するテスト入力シーケンス生成部と、を有することを特徴とする。
本発明の一実施形態にかかる数値制御装置は、前記テスト入力シーケンスのうち、重複するものを削除するテスト入力シーケンス削減部をさらに有することを特徴とする。
本発明の一実施形態にかかる数値制御装置は、前記テスト入力シーケンス生成部は、生成した前記テスト入力シーケンスの信号変化のタイミングをずらすことで、新たな前記テスト入力シーケンスを生成することを特徴とする。
本発明の一実施形態にかかる数値制御装置は、前記テスト入力シーケンス生成部は、生成した前記テスト入力シーケンスを複数結合することで、新たな前記テスト入力シーケンスを生成することを特徴とする。
【発明の効果】
【０００９】
本発明により、シーケンスプログラムのテストパターンを容易に作成できるテストパターン生成装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】従来のテストパターン生成方法の一例を示す図である。
【図２】テスト装置１のハードウェア構成図である。
【図３】テスト装置１の特徴的な機能構成を示すブロック図である。
【図４】状態・状態変化解析部１１２による入力信号の状態及び状態変化の解析処理を説明する図である。
【図５】テストパターン生成部１１３によるテストパターン生成処理を説明する図である。
【図６】テスト入力シーケンス生成部１１４によるテスト入力シーケンス生成処理を説明する図である。
【図７】テスト入力シーケンス生成部１１４によるテスト入力シーケンス生成処理を説明する図である。
【図８】テスト入力シーケンス生成部１１４によるテスト入力シーケンス生成処理を説明する図である。
【図９】テスト入力シーケンス削減部１１５によるテスト入力シーケンス削減処理を説明する図である。
【図１０】テスト入力シーケンス削減部１１５によるテスト入力シーケンス削減処理を説明する図である。
【図１１】テスト入力シーケンス生成部１１４によるテスト入力シーケンス生成処理を説明する図である。
【図１２】テスト入力シーケンス生成部１１４によるテスト入力シーケンス生成処理を説明する図である。
【図１３】状態・状態変化解析部１１２による入力信号の状態及び状態変化の解析処理を説明する図である。
【図１４】テストパターン生成部１１３によるテストパターン生成処理を説明する図である。
【図１５】テスト入力シーケンス生成部１１４によるテスト入力シーケンス生成処理を説明する図である。
【図１６】テスト入力シーケンス生成部１１４によるテスト入力シーケンス生成処理を説明する図である。
【図１７】テスト入力シーケンス生成部１１４によるテスト入力シーケンス生成処理を説明する図である。
【図１８】テスト入力シーケンス削減部１１５によるテスト入力シーケンス削減処理を説明する図である。
【図１９】テスト入力シーケンス生成部１１４によるテスト入力シーケンス生成処理を説明する図である。
【図２０】テスト入力シーケンス生成部１１４によるテスト入力シーケンス生成処理を説明する図である。
【発明を実施するための形態】
【００１１】
図２は、本発明の実施の形態にかかるテストパターン生成装置１１０を含むテスト装置１の要部を示す概略的なハードウェア構成図である。テスト装置１は、典型的にはパーソナルコンピュータや数値制御装置等の情報処理装置である。テスト装置１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４、バス１０、インタフェース１８を有する。テスト装置１には、入出力装置６０が接続される。
【００１２】
ＣＰＵ１１は、テスト装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムをバス１０を介して読み出し、システム・プログラムに従ってテスト装置１全体を制御する。
【００１３】
ＲＯＭ１２は、例えばシステム・プログラムを予め格納している。ＲＡＭ１３は、一時的な計算データや表示データ、入出力装置６０を介してオペレータが入力したデータやプログラム等を一時的に格納する。
【００１４】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされており、テスト装置１の電源が遮断されても記憶状態を保持する。不揮発性メモリ１４は、入出力装置６０から入力されるデータやプログラム等を格納する。不揮発性メモリ１４に記憶されたプログラムやデータは、実行時及び利用時にはＲＡＭ１３に展開されても良い。
【００１５】
入出力装置６０は、ディスプレイやキーボード等を含むデータ入出力装置である。入出力装置６０は、インタフェース１８を介してＣＰＵ１１から受けた情報をディスプレイに表示する。入出力装置６０は、キーボードから入力された指令やデータ等をインタフェース１８を介してＣＰＵ１１に渡す。
【００１６】
図３は、テスト装置１の特徴的な機能構成を示すブロック図である。テスト装置１は、テストパターン生成装置１１０、テスト処理装置１２０を含む。テストパターン生成装置１１０、テスト処理装置１２０は、典型的にはテスト装置１が備える論理的な処理部として実装されるが、それぞれ独立したハードウェアを有していても構わない。
【００１７】
テストパターン生成装置１１０は、入力信号保持部１１１、状態・状態変化解析部１１２、テストパターン生成部１１３、テスト入力シーケンス生成部１１４、テスト入力シーケンス削減部１１５を有する。
【００１８】
入力信号保持部１１１は、ラダー編集装置２で作成されたラダープログラムを読み込んで解析し、ラダープログラムへの１以上の入力信号を抽出する。なお、ラダープログラムはシーケンスプログラムの典型例であるが、本実施の形態はこれに限定されるものでなく、入力信号保持部１１１は任意のシーケンスプログラムを読み込むことが可能である。
【００１９】
状態・状態変化解析部１１２は、入力信号保持部１１１が抽出した入力信号それぞれについて、取りうる全ての状態（値）と、状態変化とを求める。ここで状態変化とは、時間経過に伴う入力信号の状態の変化の仕方を指す、本願発明の特徴的な概念である。
【００２０】
図４を用いて、入力信号の状態および状態変化について具体的に説明する。いまシーケンスプログラムに対する入力信号はＡ，Ｂの２つであり、いずれも０，１のいずれかの値を取りうるものとする。この場合、Ａの取りうる状態は０又は１の２種類である。Ｂの取りうる状態は０又は１の２種類である。また、信号Ａは、０である場合には１に変化しうるし、１である場合は０に変化しうる。これがＡについて考えうる２つの状態変化である。信号Ｂも、０である場合には１に変化しうるし、１である場合は０に変化しうる。これがＢについて考えうる２つの状態変化である。
【００２１】
テストパターン生成部１１３は、入力信号保持部１１１が抽出した入力信号のうち１つを選択し、選択した信号のある状態変化について、他の信号の状態又は状態変化との組み合わせ（テストパターン）を生成する。
【００２２】
図５を用いて具体的に説明する。テストパターン生成部１１３は、いま信号Ａの状態変化「０→１」を選択した。テストパターン生成部１１３は、これに他の信号Ｂの状態又は状態変化を組み合わせる。すなわち、信号Ａの状態変化「０→１」と、信号Ｂのとりうる状態「０」及び「１」、並びに信号Ｂが取りうる状態変化「０→１」及び「１→０」と、の組み合わせを網羅的に生成する。ここでは、図５に示す４通りの組み合わせが生成される。
【００２３】
同様にして、テストパターン生成部１１３は、信号Ａの状態変化「１→０」、信号Ｂの状態変化「０→１」、信号Ｂの状態変化「１→０」についても、他の信号の状態又は状態変化との組み合わせ（テストパターン）を生成していく。
【００２４】
テスト入力シーケンス生成部１１４は、テストパターン生成部１１３が生成した組み合わせ（テストパターン）を基に、テスト入力シーケンスを生成する。
【００２５】
図６を用いて具体的に説明する。テスト入力シーケンス生成部１１４は、入力信号保持部１１１が抽出した入力信号のうち１つを選択し、選択した信号のある状態変化と、他の信号の状態又は状態変化との組み合わせ（テストパターン）に対応するテスト入力シーケンスを、それぞれ生成する。例えば、まず信号Ａの状態変化「０→１」に着目すると、信号Ａの状態変化「０→１」と信号Ｂの状態「０」との組み合わせに対しては、信号Ａの状態が０→１に変化するあいだ信号Ｂが０に保たれるテスト入力シーケンスを生成する。信号Ａの状態変化「０→１」と信号Ｂの状態「１」との組み合わせに対しては、信号Ａの状態が０→１に変化するあいだ信号Ｂが１に保たれるテスト入力シーケンスを生成する。信号Ａの状態変化「０→１」と信号Ｂの状態変化「０→１」との組み合わせに対しては、信号Ａの状態が０→１に変化するとき信号Ｂが同時に０→１に変化するテスト入力シーケンスを生成する。信号Ａの状態変化「０→１」と信号Ｂの状態変化「１→０」との組み合わせに対しては、信号Ａの状態が０→１に変化するとき信号Ｂが同時に１→０に変化するテスト入力シーケンスを生成する。
【００２６】
同様にして、テスト入力シーケンス生成部１１４は、選択した信号の他の状態変化について、テスト入力シーケンスの生成処理を繰り返す。例えば図７に示すように、信号Ａの状態変化「１→０」について、他の信号の状態又は状態変化との組み合わせ（テストパターン）に対応するテスト入力シーケンスを生成していく。テスト入力シーケンス生成部１１４は、他の信号の各状態変化についても、テスト入力シーケンスの生成処理を繰り返す。例えば図８に示すように、信号Ｂの状態変化「０→１」、信号Ｂの状態変化「１→０」についても、他の信号の状態又は状態変化との組み合わせ（テストパターン）に対応するテスト入力シーケンスを生成していく。
【００２７】
テスト入力シーケンス削減部１１５は、テスト入力シーケンス生成部１１４が生成した全てのテスト入力シーケンスの中から同一のパターンを発見し、１つにまとめる。例えば図９の例では、同一のテスト入力シーケンスのペアを４種類、８個発見できる。テスト入力シーケンス削減部１１５は、これらのペアの一方のテスト入力シーケンスを削除し、他方のみを残しておく。
【００２８】
図１０を用いて具体的に説明する。テスト入力シーケンス削減部１１５は、テスト入力シーケンス生成部１１４が生成した全てのテスト入力シーケンスをビット列に変換する。すなわち、テスト入力シーケンスの各入力信号を所定数の区間に分割し、各区間における入力信号の値を数値列として出力する。テスト入力シーケンス削減部１１５は、この数値列同士を比較することにより、一致するテスト入力シーケンスを発見することができる。
【００２９】
テスト処理装置１２０は、テスト実行部１２１、テスト結果表示部１２２を有する。
【００３０】
テスト実行部１２１は、テストパターン生成装置１１０が生成したテスト入力シーケンスを用いて、シーケンスプログラムのテストを実行する。テストの実行方法については公知技術であるため、本稿では詳細な説明を省略する。
【００３１】
テスト結果表示部１２２は、テスト実行部１２１によるテスト結果をディスプレイ等に表示する。
【００３２】
数値制御装置（ＣＮＣ）３のラダー実行部３０１は、ラダー編集装置２で作成されたラダープログラムを読み込んで解析し、ラダープログラムを実行する。
【００３３】
本実施の形態によれば、テストパターン生成装置１１０は、信号の状態変化に注目して、テスト入力シーケンスを効率よく生成することができる。例えば、従来の手法では、信号Ａ，Ｂがそれぞれ０，１のいずれかの値をとる場合のテストパターンの数は４パターンのｎ乗である。スキャン数が５であれば４の５乗＝１０２４通りのテストパターンが必要となり、膨大な手間を要していた。ところが、本実施の形態では、状態変化に着目することにより、図９に示す１２パターンだけで網羅的なテストを行うことが可能である。これにより、シーケンスプログラムのテストにかかる工数を大幅に抑制することが可能となる。
【００３４】
その他の実施形態（１）
テスト入力シーケンス生成部１１４は、上述の実施の形態において生成したテスト入力シーケンスを基に、信号変化のタイミングをずらすことで、より豊富なバリエーションを有するテスト入力シーケンスを生成することができる。
【００３５】
図１１を用いて具体的に説明する。図１１の左図は、上述の実施の形態に示す手法によりテスト入力シーケンス生成部１１４が生成したテスト入力シーケンスの１つを示している。本実施の形態では、信号Ａが０→１に変化するタイミング、又は信号Ｂが０→１に変化するタイミングを変化することにより、テスト入力シーケンスを追加生成する。右上図は、信号Ｂが０→１に変化する時刻を遅らせた例である。右下図は、信号Ａが０→１に変化する時刻を遅らせた例である。
【００３６】
テスト入力シーケンス削減部１１５は、テスト入力シーケンス生成部１１４が追加生成したテスト入力シーケンスについても、同一のパターンを発見し、１つにまとめることができる。
【００３７】
その他の実施形態（２）
テスト入力シーケンス生成部１１４は、生成したテスト入力シーケンスのうちのｍ個を結合することで、テスト入力シーケンスを追加生成することができる。ここで、ｍは２以上Ｎ以下の任意の整数である。ただし、Ｎはテスト入力シーケンス生成部１１４が生成したテスト入力シーケンスの数とする。
【００３８】
図１２を用いて具体的に説明する。図１２の上図は、上述の実施の形態に示す手法によりテスト入力シーケンス生成部１１４が生成した３つのテスト入力シーケンスを示している（ｍ＝３）。テスト入力シーケンス生成部１１４は、これらのテスト入力シーケンスを時間的に直列に結合することで、１つの新たなテスト入力シーケンスを生成することが可能である。また、これらのテスト入力シーケンスの結合順序を変更することにより、さらなるテスト入力シーケンスを追加生成することが可能である。
【００３９】
その他の実施形態（３）
シーケンスプログラムに対する入力信号は３以上であっても良い。一例として、入力信号の数が３である場合のテスト装置１の動作について、図１３乃至図２０を用いて説明する。
【００４０】
状態・状態変化解析部１１２は、入力信号保持部１１１が抽出した入力信号それぞれについて、取りうる全ての状態（値）と、状態変化とを求める。
【００４１】
図１３を用いて、入力信号の状態および状態変化について具体的に説明する。いまシーケンスプログラムに対する入力信号はＡ，Ｂ，Ｃの３つであり、いずれも０，１のいずれかの値を取りうるものとする。この場合、Ａの取りうる状態は０又は１の２種類、Ｂの取りうる状態は０又は１の２種類、Ｃの取りうる状態は０又は１の２種類である。また、信号Ａは、０である場合には１に変化しうるし、１である場合は０に変化しうる。これがＡについて考えうる２つの状態変化である。信号Ｂも、０である場合には１に変化しうるし、１である場合は０に変化しうる。これがＢについて考えうる２つの状態変化である。信号Ｃも、０である場合には１に変化しうるし、１である場合は０に変化しうる。これがＣについて考えうる２つの状態変化である。
【００４２】
テストパターン生成部１１３は、入力信号保持部１１１が抽出した入力信号のうち１つを選択し、選択した信号のある状態変化について、他の信号の状態又は状態変化との組み合わせ（テストパターン）を生成する。
【００４３】
図１４を用いて具体的に説明する。テストパターン生成部１１３は、いま信号Ａの状態変化「０→１」を選択した。テストパターン生成部１１３は、これに他の信号Ｂ及びＣの状態又は状態変化を組み合わせる。すなわち、信号Ａの状態変化「０→１」と、信号Ｂのとりうる状態「０」及び「１」、並びに信号Ｂが取りうる状態変化「０→１」及び「１→０」と、の組み合わせを網羅的に生成する。さらに、信号Ｂのとりうる状態及び状態変化と、信号Ｃのとりうる状態「０」及び「１」、並びに信号Ｃが取りうる状態変化「０→１」及び「１→０」と、の組み合わせを網羅的に生成する。この結果、図１４に示す１６通りの組み合わせが生成される。
【００４４】
同様にして、テストパターン生成部１１３は、信号Ａの状態変化「１→０」、信号Ｂの状態変化「０→１」、信号Ｂの状態変化「１→０」、信号Ｃの状態変化「０→１」、信号Ｃの状態変化「１→０」についても、他の信号の状態又は状態変化との組み合わせ（テストパターン）を生成していく。
【００４５】
テスト入力シーケンス生成部１１４は、テストパターン生成部１１３が生成した組み合わせ（テストパターン）を基に、テスト入力シーケンスを生成する。
【００４６】
図１５を用いて具体的に説明する。テスト入力シーケンス生成部１１４は、入力信号保持部１１１が抽出した入力信号のうち１つを選択し、選択した信号のある状態変化と、他の信号の状態又は状態変化との組み合わせ（テストパターン）に対応するテスト入力シーケンスを、それぞれ生成する。一例として、図１５で太線の矢印で示す組み合わせに対応するテスト入力シーケンスの生成処理を示す。テスト入力シーケンス生成部１１４は、まず信号Ａの状態変化「０→１」に着目し、信号Ａの状態変化「０→１」と信号Ｂの状態「０」と信号Ｃの状態「０」との組み合わせに対しては、信号Ａの状態が０→１に変化するあいだ信号Ｂ及び信号Ｃが０に保たれるテスト入力シーケンスを生成する。信号Ａの状態変化「０→１」と信号Ｂの状態「０」と信号Ｃの状態「１」との組み合わせに対しては、信号Ａの状態が０→１に変化するあいだ信号Ｂが０に、信号Ｃが１に保たれるテスト入力シーケンスを生成する。信号Ａの状態変化「０→１」と信号Ｂの状態「０」と信号Ｃの状態変化「０→１」との組み合わせに対しては、信号Ａの状態が０→１に変化するとき信号Ｂが０に保たれ、信号Ｃが同時に０→１に変化するテスト入力シーケンスを生成する。信号Ａの状態変化「０→１」と信号Ｂの状態「０」と信号Ｃの状態変化「１→０」との組み合わせに対しては、信号Ａの状態が０→１に変化するとき信号Ｂが０に保たれ、信号Ｃが同時に１→０に変化するテスト入力シーケンスを生成する。
【００４７】
同様にして、テスト入力シーケンス生成部１１４は、信号Ｂの状態が「１」及び状態変化が「０→１」「１→０」である場合に対応するテスト入力シーケンスの生成処理を繰り返す。すなわち、図１５に示す１６通りの組み合わせ全てについて、テスト入力シーケンスを生成する。
【００４８】
テスト入力シーケンス生成部１１４は、選択した信号の他の状態変化について、テスト入力シーケンスの生成処理を繰り返す。例えば図１６に示すように、選択した信号Ａの状態変化「１→０」について、他の信号の状態又は状態変化との組み合わせ（テストパターン）に対応する１６通りのテスト入力シーケンスを生成していく。
【００４９】
テスト入力シーケンス生成部１１４は、他の信号の各状態変化についても、テスト入力シーケンスの生成処理を繰り返す。例えば図１７に示すように、信号Ｂの状態変化「０→１」、信号Ｂの状態変化「１→０」について、信号Ａ及びＣの状態又は状態変化との組み合わせ（テストパターン）に対応する３２通りのテスト入力シーケンスを生成していく。同様に、信号Ｃの状態変化「０→１」、信号Ｃの状態変化「１→０」についても、信号Ａ及びＢの状態又は状態変化との組み合わせ（テストパターン）に対応する３２通りのテスト入力シーケンスを生成していく。
【００５０】
テスト入力シーケンス削減部１１５は、テスト入力シーケンス生成部１１４が生成した全てのテスト入力シーケンスの中から同一のパターンを発見し、１つにまとめる。図１８に示すように、テスト入力シーケンス削減部１１５は、これらの同一のパターンのうち１つのテスト入力シーケンスのみを残し、その他を削除する。
【００５１】
一例として、図１３に示した条件で生成されたテスト入力シーケンスについて、同一のパターンを１つにまとめる処理を考える。この場合、生成されるテストパターンは９６通りである。そのうち、同一のテストパターンが生成されるケースは以下の通りである。
・３つの同一なテストパターンが生成されるケース：８通り
３つの信号が同時に変化するパターンでは、図１８上図に示すように、３つの同一なテストパターンが生成される。このケースでは、それぞれ２つのパターンを削減可能である。合計で２×８＝１６通りのパターンが削減されることになる。
・２つの同一なテストパターンが生成されるケース：２４通り
２つの信号が同時に変化するパターンでは、図１８下図に示すように、２つの同一なテストパターンが生成される。このケースでは、それぞれ１つのパターンを削減可能である。合計で２４×１＝２４通りのパターンが削減されることになる。
したがって、削減後のパターン数は９６−１６−２４＝５６通りとなる。
【００５２】
具体的には、図１０に示したように、テスト入力シーケンス削減部１１５は、テスト入力シーケンス生成部１１４が生成した全てのテスト入力シーケンスをビット列に変換する。すなわち、テスト入力シーケンスの各入力信号を所定数の区間に分割し、各区間における入力信号の値を数値列として出力する。テスト入力シーケンス削減部１１５は、この数値列同士を比較することにより、一致するテスト入力シーケンスを発見することができる。
【００５３】
なお、本実施の形態においても、テスト入力シーケンス生成部１１４は、本実施の形態にかかる手法により生成したテスト入力シーケンスを基に、信号変化のタイミングをずらすことで、より豊富なバリエーションを有するテスト入力シーケンスを生成することができる。
【００５４】
図１９を用いて具体的に説明する。図１９の左図は、テスト入力シーケンス生成部１１４が生成したテスト入力シーケンスの１つを示している。テスト入力シーケンス生成部１１４は、信号Ａが０→１に変化するタイミング、信号Ｂが０→１に変化するタイミング、及び信号Ｃが０→１に変化するタイミングを変化することにより、テスト入力シーケンスを追加生成することができる。右上図は、信号Ｂが０→１に変化する時刻を遅らせた例である。右下図は、信号Ａが０→１に変化する時刻を遅らせ、信号Ｂが０→１に変化する時刻を早め、信号Ｃが０→１に変化する時刻を遅らせた例である。
【００５５】
テスト入力シーケンス削減部１１５は、テスト入力シーケンス生成部１１４が追加生成したテスト入力シーケンスについても、同一のパターンを発見し、１つにまとめることができる。
【００５６】
また、本実施の形態においても、テスト入力シーケンス生成部１１４は、生成したテスト入力シーケンスのうちのｍ個を結合することで、テスト入力シーケンスを追加生成することができる。ここで、ｍは２以上Ｎ以下の任意の整数である。ただし、Ｎはテスト入力シーケンス生成部１１４が生成したテスト入力シーケンスの数とする。
【００５７】
図２０を用いて具体的に説明する。図２０の上図は、テスト入力シーケンス生成部１１４が生成した２つのテスト入力シーケンスを示している（ｍ＝２）。テスト入力シーケンス生成部１１４は、これらのテスト入力シーケンスを時間的に直列に結合することで、１つの新たなテスト入力シーケンスを生成することが可能である。また、これらのテスト入力シーケンスの結合順序を変更することにより、さらなるテスト入力シーケンスを追加生成することが可能である。
【００５８】
なお、本発明は上述の実施の形態に限定されるものではなく、本発明の趣旨を損なわない範囲において適宜変更することが可能である。
【符号の説明】
【００５９】
１  テスト装置
１０  バス
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１８  インタフェース
６０  入出力装置
１１０  テストパターン生成装置
１１１  入力信号保持部
１１２  状態・状態変化解析部
１１３  テストパターン生成部
１１４  テスト入力シーケンス生成部
１１５  テスト入力シーケンス削減部
１２０  テスト処理装置
１２１  テスト実行部
１２２  テスト結果表示部
２  ラダー編集装置
３  数値制御装置
３０１  ラダー実行部
【図１】
2020119153.tif 000003
【図２】
2020119153.tif 000004
【図３】
2020119153.tif 000005
【図４】
2020119153.tif 000006
【図５】
2020119153.tif 000007
【図６】
2020119153.tif 000008
【図７】
2020119153.tif 000009
【図８】
2020119153.tif 000010
【図９】
2020119153.tif 000011
【図１０】
2020119153.tif 000012
【図１１】
2020119153.tif 000013
【図１２】
2020119153.tif 000014
【図１３】
2020119153.tif 000015
【図１４】
2020119153.tif 000016
【図１５】
2020119153.tif 000017
【図１６】
2020119153.tif 000018
【図１７】
2020119153.tif 000019
【図１８】
2020119153.tif 000020
【図１９】
2020119153.tif 000021
【図２０】
2020119153.tif 000022