JP6217383B2 - 試験方法、テストパターン生成方法、試験装置、テストパターン生成装置及びプログラム - Google Patents

試験方法、テストパターン生成方法、試験装置、テストパターン生成装置及びプログラム Download PDF

Info

Publication number
JP6217383B2
JP6217383B2 JP2013266049A JP2013266049A JP6217383B2 JP 6217383 B2 JP6217383 B2 JP 6217383B2 JP 2013266049 A JP2013266049 A JP 2013266049A JP 2013266049 A JP2013266049 A JP 2013266049A JP 6217383 B2 JP6217383 B2 JP 6217383B2
Authority
JP
Japan
Prior art keywords
input
test
values
factor
factors
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013266049A
Other languages
English (en)
Other versions
JP2015121994A (ja
Inventor
駿 五木田
駿 五木田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013266049A priority Critical patent/JP6217383B2/ja
Publication of JP2015121994A publication Critical patent/JP2015121994A/ja
Application granted granted Critical
Publication of JP6217383B2 publication Critical patent/JP6217383B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)

Description

本発明は、試験方法、テストパターン生成方法、試験装置、テストパターン生成装置及びプログラムに関する。
ハードウェアやソフトウェアの開発においては、設計技術の進歩により、開発対象が大規模化してきており、仕様も複雑化している。
入力因子が取り得る値(水準とも呼ばれる)の組み合わせで出力が決まるようなシステムの試験では、真理値表が用意され、その真理値表の入力因子の値の組み合わせを全て網羅できるようなテストパターンを用いて試験が行われる。なお、入力因子とは、ある機能に影響を及ぼす要因であり、システムにおいては入力や内部状態などに相当する。入力因子が取り得る値は、たとえば、デジタル回路における端子に入力される信号では、0か1である。
特開平7−296031号公報 特開平2−83472号公報 国際公開第2009/050805号
Kuhn, D.R. et al., "Software Fault Interactions and Implications for Software Testing", IEEE Transactions on software engineering, Vol.30, NO.6, June 2004
しかしながら、真理値表にない入力因子が追加されると(たとえば、実装の際に誤って追加される可能性がある)、真理値表にしたがって生成されたテストパターンを用いて試験対象を試験しても、追加された入力因子に起因した不具合を見逃す懸念があった。このような不具合の検証漏れを防ぐために、全ての入力因子が取り得る値の組み合わせを網羅するようなテストパターンを作成することが考えられるが、テストパターン数が増加し、効率よく不具合の発生を検出できない。
発明の一観点によれば、試験装置が、試験対象における複数の第1入力因子の取り得る値の組み合わせに応じた出力値が示されている真理値表の、前記複数の第1入力因子を1つの第2入力因子にまとめ、前記複数の第1入力因子のそれぞれが取り得る値に基づき、前記第2入力因子が取り得る値を生成し、前記第2入力因子と前記真理値表に含まれない第3入力因子とが取り得る値に基づき、前記第2入力因子と前記第3入力因子のなかのn(n≧2)個の入力因子間で取り得る値の組み合わせの網羅率が第1の値となるように、テストパターンを生成し、前記テストパターンを前記試験対象に供給して試験を実行する、試験方法が提供される。
また、発明の一観点によれば、テストパターン生成装置が、試験対象における複数の第1入力因子の取り得る値の組み合わせに応じた出力値が示されている真理値表の、前記複数の第1入力因子を1つの第2入力因子にまとめ、前記複数の第1入力因子のそれぞれが取り得る値に基づき、前記第2入力因子が取り得る値を生成し、前記第2入力因子と前記真理値表に含まれない第3入力因子とが取り得る値に基づき、前記第2入力因子と前記第3入力因子のなかのn(n≧2)個の入力因子間で取り得る値の組み合わせの網羅率が第1の値となるように、テストパターンを生成する、テストパターン生成方法が提供される。
開示の試験方法、テストパターン生成方法、試験装置、テストパターン生成装置及びプログラムによれば、真理値表にない入力因子による不具合の発生を効率的に検出できる。
第1の実施の形態の試験方法、テストパターン生成方法及び試験装置の一例を示す図である。 2因子網羅率の一例を説明する図である。 第2の実施の形態の試験装置(テストパターン生成装置)の一例を示す図である。 第2の実施の形態のテストパターン生成方法の一例の流れを説明する図である。 試験対象の一例を示す図である。 真理値表の一例を示す図である。 入力因子−水準リストの一例を示す図である。 更新された入力因子−水準リストの一例を示す図である。 真理値表に含まれない入力因子とその水準が統合された入力因子−水準リストの一例を示す図である。 All−pair法を用いた2因子網羅率100%の組み合わせ生成処理の一例の流れを示すフローチャートである。 ペア配列群の一例を示す図である。 テストケース配列の一例を示す図である。 ペア配列の選択例を示す図である。 マーキングされたペア配列と、違反ペア配列の一例を示す図である。 テストケース配列に追加されたペア配列の値の一例を示す図である。 テストケース配列の1行目へのペア配列の値の追加が完了した例を示す図である。 テストケース配列の1行目へのペア配列の値の追加が完了した時点での、ペア配列群のマーキング例を示す図である。 全てのペア配列がマーキングされたときのペア配列群の一例を示す図である。 全てのペア配列がマーキングされたときの、テストケース配列の一例を示す図である。 網羅率の種類とテストパターン数の関係の一例を示す図である。 第3の実施の形態のテストパターン生成方法の一例の流れを説明する図である。 第4の実施の形態のテストパターン生成方法の一例の流れを説明する図である。 入力因子−水準リストの圧縮の一例を示す図である。
以下、発明を実施するための形態を、図面を参照しつつ説明する。
(第1の実施の形態)
図1は、第1の実施の形態の試験方法、テストパターン生成方法及び試験装置の一例を示す図である。
試験装置1は、プロセッサ2と記憶部3を有している。プロセッサ2は、記憶部3に記憶されているデータ及びプログラムに基づき、以下のようにテストパターンの生成及びそのテストパターンを用いた試験を実行する。なお、試験装置1は、試験の実行は行わず、生成したテストパターンを他の装置に出力するようにしてもよい。その場合、試験装置1はテストパターン生成装置と呼ぶこともできる。
まず、プロセッサ2は、試験対象における複数の入力因子の取り得る値の組み合わせに応じた出力値が示されている真理値表を、たとえば、記憶部3から読み出して取得する(ステップS1)。
図1に示されている真理値表L1の例では、試験対象5における3つの入力因子(図1の例では端子に入力される信号)I1,I2,I3の取り得る値の組み合わせに応じた出力O1が示されている。このような真理値表L1は、たとえば、試験対象5の設計の段階で、試験対象5が満たすべき仕様として与えられている。
なお、試験対象5は、たとえば、デジタル回路のようなハードウェアであってもよいし、ソフトウェアであってもよい。ソフトウェアの場合には、入力因子は、たとえば、関数としてもよい。
次に、プロセッサ2は、真理値表の複数の入力因子を1つの入力因子にまとめ、真理値表の複数の入力因子のそれぞれが取り得る値に基づき、1つにした入力因子が取り得る値を生成する(ステップS2)。図1に示した例では、真理値表L1の入力因子I1〜I3が1つの入力因子(以下入力因子I1−3と表記する)にまとめられている。そして、入力因子I1−3の取り得る値(水準)として“000”,“001”,“010”,“011”,“100”,“101”,“110”,“111”が生成される。
また、プロセッサ2は、真理値表に含まれない入力因子とその入力因子が取り得る値を取得する(ステップS3)。真理値表に含まれない入力因子とその入力因子が取り得る値は、たとえば、実装後の試験対象のデータの一部として記憶部3に記憶されており、プロセッサ2により取得される。
図1に示されているような試験対象5において、実装後に、それぞれ0または1を取り得る入力因子I4〜Imが追加されたとする。このとき、入力因子I4〜Imと、入力因子I4〜Imが取り得る値(0,1)が、プロセッサ2により、たとえば、実装後の試験対象のデータから取得され、入力因子I1〜I3とともにまとめられたテーブルL2が生成される。テーブルL2は、たとえば、記憶部3に格納される。
そして、プロセッサ2は、1つにまとめられた入力因子と、真理値表にない入力因子とが取り得る値に基づき、テストパターンを生成する。このときプロセッサ2は、1つにまとめられた入力因子と、真理値表にない入力因子のなかのn(n≧2)個の入力因子間で取り得る値の組み合わせの網羅率が、所定値となるようにテストパターンを生成する。(ステップS4)。上記の網羅率のことを以下では、n因子網羅率と呼ぶ。
n因子網羅率は、全ての入力因子を用いた値の組み合わせから、n個の入力因子を取り出したときに現れる値の組み合わせ数を、n個の入力因子間で現れる全ての値の組み合わせ数で割ったものに、100を掛けたもの(パーセントで表すために)である。たとえば、n=2としたときの2因子網羅率は、以下のようになる。
図2は、2因子網羅率の一例を説明する図である。
たとえば、取り得る値が0か1である3つの入力因子A,B,Cがあるとき、取り得る値の組み合わせ数は図2に示すように全部で8つである。2因子網羅率は、入力因子A〜Cを用いた値の組み合わせから、2つの入力因子を取り出したときに現れる値の組み合わせ数を、2つの入力因子間で現れる全ての値の組み合わせ数で割ったものである。
2つの入力因子間で現れる全ての値の組み合わせ数は、入力因子A,B間、入力因子B,C間、入力因子A,C間でそれぞれ4個の組み合わせがあるから、12となる。
入力因子A〜Cを用いた、値の組み合わせとして、A,B,C=(0,0,0)、(0,0,1)、(0,1,0)、(1,0,0)、(1,0,1)、(1,1,1)がある場合を考える。上記6通りの組み合わせのうち、A,B,C=(0,0,0)、(0,1,0)、(1,0,1)、(1,1,1)の組み合わせから、入力因子A,Bを取り出した時に現れる値の組み合わせ数は4つとなる。すなわち、上記組み合わせのなかには、(A,B)=(0,0)、(0,1)、(1,0)、(1,1)の4つの組み合わせがある。また、A,B,C=(0,0,0)、(0,0,1)、(0,1,0)、(1,1,1)の組み合わせから、入力因子B,Cを取り出した時に現れる値の組み合わせ数も4つとなる。また、A,B,C=(0,0,0)、(0,0,1)、(1,0,0)、(1,1,1)の組み合わせから、入力因子A,Cを取り出した時に現れる値の組み合わせ数も4つとなる。
したがって、入力因子A〜Cを用いた上記の6通りの値の組み合わせから、2個の入力因子を取り出したときに現れる値の組み合わせ数は、12であり、2因子網羅率は100%となる。つまり、図2に示した3つの入力因子A〜Cによる8個の組み合わせのうち、たとえば、上記の6通りの組み合わせで2つの入力因子間の値の組み合わせは100%網羅される。
図1に示した例では、入力因子I1−3と、入力因子I4〜Imのなかのn個の入力因子間で取り得る値の組み合わせの網羅率が所定値(たとえば、100%、95%、90%など)となるようにテストパターンが生成される。網羅率が所定値となるような値の組み合わせを求める方法としては、直交表を用いたアルゴリズム、All−pair法、HAYST法などがある。後述する第2の実施の形態では、一例としてAll−pair法を用いた説明を行う。
本実施の形態では、真理値表に含まれる複数の入力因子を1つの入力因子にまとめ、真理値表にない入力因子と合わせたなかから、所定のn因子網羅率を満たすようにテストパターンが生成される。そのため、出力に対する相関が高い、真理値表に含まれる入力因子の値の全ての組み合わせについては、生成されるテストパターンで網羅される。図1では、ステップS4の処理の結果生成されたテストパターンL3の例が示されている。図1の例では17通りのテストパターンL3が示されているが、入力因子I1〜I3の8通りの組み合わせは全て、テストパターンL3に含まれている。
テストパターン生成後、プロセッサ2は、生成したテストパターンを用いた試験を実行する(ステップS5)。
試験対象がソフトウェアであれば、プロセッサ2は、たとえば、記憶部3に格納されている試験対象のソフトウェアを読み出し、生成したテストパターンを用いて試験を行い、その結果を解析する。試験対象がハードウェアであれば、プロセッサ2は、たとえば、図示しないインタフェースを介してテストパターンを試験対象のハードウェアに出力して、その結果を、インタフェースを介して取得して解析する。なお、プロセッサ2は生成したテストパターンを、インタフェースを介して他の試験装置に出力(送信)し、その試験装置が試験を実行するようにしてもよい。
なお、図1に示した各ステップS1〜S5の処理の順番は、上記の順番に限定されない。たとえば、真理値表の取得処理の前に、真理値表に含まれない入力因子とその入力因子が取り得る値の取得処理が行われるようにしてもよい。
以上のように、本実施の形態では、真理値表の複数の入力因子を1つの入力因子にまとめ、真理値表にない入力因子(追加された因子)と合わせたなかから、所定のn(n≧2)因子網羅率を満たすようにテストパターンが生成される。これにより、必ずしも全ての入力因子における全ての組み合わせでテストパターンが生成されるのではないため、真理値表に含まれない入力因子が追加されても不具合を効率的に検出できるようになる。真理値表に含まれない入力因子数が複数あるとき、nを、真理値表に含まれない入力因子数以下とすることで、テストパターン数を減らせるからである。
なお、nは2または3とすることが望ましい。その理由は、一般向けシステムにおけるバグのほとんどは、2つの入力因子または3つの入力因子の組み合わせで検出可能であるためである(たとえば、非特許文献1参照)。4因子以上の組み合わせで網羅率を100%にしてもバグ発見率の上昇は少なく、テストパターン数が増大する。真理値表に含まれない入力因子の数が多い時(たとえば3以上)、nを2または3とすることで、テストパターン数を少なくでき、より効率的に不具合を検出できる。
ただ、より精度よく不具合を検証したいときには、nを4以上としてもよい。
(第2の実施の形態)
以下、第2の実施の形態の試験方法、テストパターン生成方法及び試験装置(テストパターン生成装置)の一例を示す図である。
図3は、第2の実施の形態の試験装置(テストパターン生成装置)の一例を示す図である。
試験装置は、たとえば、コンピュータ20であり、プロセッサ21によって装置全体が制御されている。プロセッサ21には、バス29を介してRAM(Random Access Memory)22と複数の周辺機器が接続されている。プロセッサ21は、マルチプロセッサであってもよい。プロセッサ21は、たとえばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ21は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM22は、コンピュータ20の主記憶装置として使用される。RAM22には、プロセッサ21に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM22には、プロセッサ21による処理に必要な各種データが格納される。
バス29に接続されている周辺機器としては、HDD(Hard Disk Drive)23、グラフィック処理装置24、入力インタフェース25、光学ドライブ装置26、機器接続インタフェース27及びネットワークインタフェース28がある。
HDD23は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD23は、コンピュータ20の補助記憶装置として使用される。HDD23には、OSのプログラム、アプリケーションプログラム、及び各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
グラフィック処理装置24には、モニタ24aが接続されている。グラフィック処理装置24は、プロセッサ21からの命令にしたがって、画像をモニタ24aの画面に表示させる。モニタ24aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース25には、キーボード25aとマウス25bとが接続されている。入力インタフェース25は、キーボード25aやマウス25bから送られてくる信号をプロセッサ21に送信する。なお、マウス25bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
光学ドライブ装置26は、レーザ光などを利用して、光ディスク26aに記録されたデータの読み取りを行う。光ディスク26aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク26aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
機器接続インタフェース27は、コンピュータ20に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース27には、メモリ装置27aやメモリリーダライタ27bを接続することができる。メモリ装置27aは、機器接続インタフェース27との通信機能を搭載した記録媒体である。メモリリーダライタ27bは、メモリカード27cへのデータの書き込み、またはメモリカード27cからのデータの読み出しを行う装置である。メモリカード27cは、カード型の記録媒体である。
ネットワークインタフェース28は、ネットワーク28aに接続されている。ネットワークインタフェース28は、ネットワーク28aを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。なお、図1に示した第1の実施の形態の試験装置1も、図2に示したコンピュータ20と同様のハードウェアにより実現することができる。
コンピュータ20は、たとえばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。コンピュータ20に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、コンピュータ20に実行させるプログラムをHDD23に格納しておくことができる。プロセッサ21は、HDD23内のプログラムの少なくとも一部をRAM22にロードし、プログラムを実行する。またコンピュータ20に実行させるプログラムを、光ディスク26a、メモリ装置27a、メモリカード27cなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ21からの制御により、HDD23にインストールされた後、実行可能となる。またプロセッサ21が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
(テストパターン生成方法の一例)
図4は、第2の実施の形態のテストパターン生成方法の一例の流れを説明する図である。
コンピュータ20において、プロセッサ21は、HDD23に格納されたプログラムを読み出してRAM22上に展開して、たとえば、図4に示すような各ステップの処理を実行する。
ステップS10の処理では、プロセッサ21は、たとえば、HDD23に記憶されている試験対象の真理値表を読み出して取得し、真理値表から、入力因子とその入力因子が取り得る値を取得する。
ステップS11の処理では、プロセッサ21は、真理値表に含まれる複数の入力因子を新たな1つの入力因子にまとめ、その入力因子が取り得る値を生成する。
ステップS12の処理では、プロセッサ21は、たとえば、HDD23に記憶されている、試験対象における真理値表に含まれない全入力因子とその入力因子が取り得る値を読み出して取得する。
ステップS13の処理では、プロセッサ21は、たとえば、ユーザによるキーボード25aなどの操作により入力されたn因子網羅率を取得する。nの下限は2であり、真理値表に含まれない入力因子が複数あるときには、nはその入力因子数以下とすれば、生成されるテストパターン数を減らせる。ただ、前述した理由で、真理値表に含まれない入力因子数が3以上のときは、nは2または3であることが望ましい。
ステップS14の処理では、プロセッサ21は、取得したn因子網羅率を満たすような組み合わせを任意のパラメータ組み合わせアルゴリズムで生成する。
ステップS15の処理では、プロセッサ21は、生成された組み合わせをテストパターンとして、たとえば、コンピュータ20の外部へ出力させる。
なお、図4に示した各ステップS10〜S15の処理の順番は、上記の順番に限定されない。たとえば、真理値表の取得処理の前に、真理値表に含まれない入力因子とその入力因子が取り得る値の取得処理が行われるようにしてもよい。また、ステップS13のn因子網羅率の取得処理が初めに行われるようにしてもよい。
以下、図4に示した各ステップの処理の一例を説明する。
なお、以下では、図5に示すような試験対象に対するテストパターンを生成する例を説明する。
図5は、試験対象の一例を示す図である。
試験対象30は、たとえば、デジタル回路である。
試験対象30における入力因子(図5の例では端子に入力される信号)には、以下に示す真理値表に含まれる3つの入力因子IN1,IN2,IN3と、真理値表に含まれない入力因子IN4〜IN20がある。入力因子IN4〜IN20は、たとえば、実装後に追加されている信号であり、たとえば、実装時に誤って追加された端子に入力される信号などである。
各入力因子IN1〜IN20は、2つの水準(0,1)をもつものとする。これらの入力因子IN1〜IN20に基づいて出力OUT1が決まる。
上記のような試験対象30についての真理値表は、以下のようになる。
図6は、真理値表の一例を示す図である。
真理値表L10には、試験対象30における、2つの水準をもつ入力因子IN1〜IN3の値の組み合わせが全通り(8通り)示されており、その組み合わせに応じた出力OUT1の値が示されている。このような真理値表L10は、試験対象30の仕様として用意されているものであり、たとえば、HDD23に格納されている。
ステップS10の処理では、プロセッサ21は、たとえば、HDD23に格納されている真理値表L10を読み出して取得し、真理値表L10から、入力因子IN1〜IN3と水準(0,1)を取得する。そして、プロセッサ21は、たとえば、以下のような入力因子−水準リストを作成し、取得した入力因子IN1〜IN3と水準とを整理する。
図7は、入力因子−水準リストの一例を示す図である。
入力因子−水準リストL11には、真理値表L10から取得された、入力因子IN1〜IN3とその水準(0,1)が整理されている。このような入力因子−水準リストL11は、一旦、HDD23に格納されるようにしてもよいし、RAM22上に保持されるようにしてもよい。
ステップS11の処理では、プロセッサ21は、ステップS10の処理で作成された入力因子−水準リストL11を参照して、真理値表L10に含まれる入力因子IN1〜IN3を新たな1つの入力因子とし、その水準を生成する。ステップS11の処理によって、プロセッサ21は、たとえば、以下のように、入力因子−水準リストL11を更新する。
図8は、更新された入力因子−水準リストの一例を示す図である。
更新された入力因子−水準リストL12では、入力因子IN1〜IN3が1つの入力因子IN1−3となり、その入力因子IN1−3の8つの水準が整理されている。このような入力因子−水準リストL12は、一旦、HDD23に格納されるようにしてもよいし、RAM22上に保持されるようにしてもよい。
ステップS12の処理では、プロセッサ21は、たとえば、HDD23に記憶されている、試験対象30の入力因子IN4〜IN20(真理値表L10に含まれないもの)とその水準を読み出して取得する。そして、プロセッサ21は、ステップS11の処理で得られた入力因子−水準リストL12に、取得した入力因子IN4〜IN20とその水準を統合する。
図9は、真理値表に含まれない入力因子とその水準が統合された入力因子−水準リストの一例を示す図である。
入力因子−水準リストL13には、図8に示した入力因子−水準リストL12に、真理値表L10に含まれない入力因子IN4〜IN20とその水準が統合されている。このような入力因子−水準リストL13は、一旦、HDD23に格納されるようにしてもよいし、RAM22上に保持されるようにしてもよい。
ステップS13の処理では、プロセッサ21は、たとえば、ユーザによるキーボード25aなどの操作により入力されたn因子網羅率を取得する。以下の説明では、ユーザにより、2因子網羅率として、100%が指定されたものとする。前述のように、一般向けシステムにおけるバグのほとんどは、2つの入力因子または3つの入力因子の組み合わせで検出可能である。そのため、2因子網羅率が100%になるようなテストパターンを生成することで、少ないテストパターン数で不具合を検出できる可能性が高くなる。
なお、n因子網羅率は、予め、たとえば、HDD23などに記憶されていてもよい。
ステップS14の処理では、プロセッサ21は、2因子網羅率が100%となる組み合わせを任意のパラメータ組み合わせアルゴリズムで生成する。
以下、All−pair法を用いて、2因子網羅率が100%となる組み合わせを生成する例を説明する。
(All−pair法を用いた2因子網羅率100%の組み合わせ生成例)
図10は、All−pair法を用いた2因子網羅率100%の組み合わせ生成処理の一例の流れを示すフローチャートである。
まず、プロセッサ21は、図9に示したような入力因子−水準リストL13を参照し、全入力因子IN1−3,IN4〜IN20から選ばれる入力因子対の値の組み合わせ(以下ペア配列と呼ぶ)を全て網羅したペア配列群を定義する(ステップS20)。
図11は、ペア配列群の一例を示す図である。
8つの水準をもつ1つの入力因子IN1−3と、2つの水準をもつ入力因子IN4〜IN20によるペア配列の総数は、8×2×17=272である。入力因子IN4〜IN20によるペア配列の総数は、2×2×172=544である。したがって、合計816のペア配列によるペア配列群40が定義される。
次に、プロセッサ21は、たとえば、図9に示したような入力因子−水準リストL13を参照し、後述の処理で生成するテストパターンを格納する配列(以下テストケース配列と呼ぶ)を定義する(ステップS21)。
図12は、テストケース配列の一例を示す図である。
図9に示したような入力因子−水準リストL13では、全入力因子IN1−3,IN4〜IN20の数が17であるため、図12のように17列のテストケース配列41が定義される。テストケース配列41の行数は、たとえば、生成されるテストパターンの数に応じた数となる。たとえば、行数は、想定されるテストパターン数よりも多く定義される。
その後、プロセッサ21は、図11に示したペア配列群40のうち、マーキングされていないペア配列をランダムに1つ選択する(ステップS22)。初期状態では、どのペア配列も選択されていないので、ペア配列群40のうち、どのペア配列もマーキングされていない。
図13は、ペア配列の選択例を示す図である。
図13では、ペア配列群40のうち、入力因子IN1−3が“100”で、入力因子IN20が“1”となるペア配列40aが選択されている例が示されている。
プロセッサ21は、ペア配列を1つ選択すると、そのペア配列が違反ペア配列であるか否かを判定する(ステップS23)。プロセッサ21は、テストケース配列41のある行の全ての列に値が追加された後に、次の行に値を追加する。そのため、プロセッサ21は、全ての列に値が追加されていない行以外に追加すべき値をもつペア配列を選択したとき(一例については後述する)、そのペア配列を違反ペア配列と判定し、ステップS22からの処理を繰り返す。
選択したペア配列が違反ペア配列でないとき、プロセッサ21は、そのペア配列の値をテストケース配列41に格納し(ステップS24)、ペア配列群40のうち、テストケース配列41に格納したペア配列をマーキングする(ステップS25)。なお、マーキングとは、たとえば、プロセッサ21が、テストケース配列41に格納したペア配列に対してフラグを立て、ステップS22の処理で、フラグの立てられたペア配列が選択されないようにすることをいう。
図14は、マーキングされたペア配列と、違反ペア配列の一例を示す図である。
また、図15は、テストケース配列に追加されたペア配列の値の一例を示す図である。
図14には、ステップS25の処理でマーキングされたペア配列40aが示されている。前述のステップS22の処理で、ペア配列40aの次に、ペア配列40bが選択されたとき、このペア配列40bは、ステップS23の処理では、違反ペア配列であると判定される。図15に示すように、テストケース配列41の1行目には、ペア配列40aの入力因子IN1−3の値“100”が既に追加されているから、ペア配列40bの入力因子IN1−3の値“011”は、その行に追加できないためである。
そのため、プロセッサ21は、ペア配列群40のうち、たとえば、ペア配列40bの次に配列されているペア配列40cを選択する。ペア配列40cは、テストケース配列41の1行目に追加できるものであるため、図15のように、ペア配列40cの入力因子IN4の値“1”が、テストケース配列41の1行目に追加される。
プロセッサ21は、全てのペア配列がマーキングされたか否かを判定し(ステップS26)、全てのペア配列がマーキングされていない場合には、ステップS22からの処理を繰り返し、全てのペア配列がマーキングされた場合には、処理を終了する。
図16は、テストケース配列の1行目へのペア配列の値の追加が完了した例を示す図である。
テストケース配列41において、1行目では、全ての入力因子IN1−3,IN4〜IN20の値が確定されている。この1行目の値の組み合わせが、1つ目のテストパターンとなる。
図17は、テストケース配列の1行目へのペア配列の値の追加が完了した時点での、ペア配列群のマーキング例を示す図である。
図17に示すように、図16に示したテストケース配列41の1行目に値が追加されたペア配列(たとえば、ペア配列40a,40c,40d,40e,40f)が、マーキングされている。
テストケース配列41の2行目以降についても同様の処理で選択されたペア配列の値が追加されていく。
図18は、全てのペア配列がマーキングされたときのペア配列群の一例を示す図である。
ペア配列群40の、合計816の全てのペア配列がマーキングされた例が示されている。このように全てのペア配列がマーキングされたときの、テストケース配列は以下のようになる。
図19は、全てのペア配列がマーキングされたときの、テストケース配列の一例を示す図である。
ペア配列群40の、全てのペア配列がマーキングされたとき、テストケース配列41は、17行目まで値が追加されており、17の値の組み合わせが作成されたことになる。
このような組み合わせは、2因子網羅率が100%となる。なお、3因子網羅率に関しては、93.2%となる。
図4に示したステップS15の処理では、上記のような方法によって生成された17の値の組み合わせがテストパターンとして、たとえば、コンピュータ20から出力される。たとえば、コンピュータ20の機器接続インタフェース27に、試験対象30または試験対象30が配置された試験ボード(図示せず)が接続されている場合には、それらにテストパターンが供給され、試験が行われる。またプロセッサ21は、テストパターンに応じた試験対象30からの出力を、たとえば、機器接続インタフェース27を介して取得して、試験結果を解析するようにしてもよい。
なお、試験対象がソフトウェアである場合には、プロセッサ21は、たとえば、HDD23に格納されている試験対象のソフトウェアを読み出し、生成したテストパターンを用いて試験を行い、その結果を解析するようにしてもよい。
以上のような第2の実施の形態の試験方法及びテストパターン生成方法でも、第1の実施の形態の試験方法及びテストパターン生成方法と同様な効果が得られる。すなわち、生成されるテストパターン数を少なくでき、効率的に不具合を検出できる。
図20は、網羅率の種類とテストパターン数の関係の一例を示す図である。
なお、ここでは前述した試験対象30のように、入力因子数が20(真理値表に含まれない入力因子数が17)、各入力因子の水準の数が2である場合の例を示している。
横軸が網羅率の種類を示しており、20の入力因子の全ての値の組み合わせを考慮する場合(全網羅)、4,3,2因子網羅率が100%の場合、真理値表のみの場合(真理値表内での網羅率が100%)を示している。縦軸はテストパターン数を示している。
図20に示すように、テストパターン数は、全網羅の場合には1048576、4因子網羅率100%とした場合には188、3因子網羅率100%とした場合には72、2因子網羅率100%とした場合には17、真理値表のみの場合には8となる。このように、全網羅でテストパターンを生成するのではなく、たとえば、2,3因子網羅率100%となるようにテストパターンを生成することで、テストパターン数を大幅に削減することができる。真理値表のみの場合に対しても、2因子網羅率100%とした場合には、テストパターン数の上昇数は、たかだか2倍程度である。
(第3の実施の形態)
以下、第3の実施の形態の試験方法及びテストパターン生成方法について説明する。試験装置(テストパターン生成装置)については、図3に示したコンピュータ20が適用可能である。
以下に示すテストパターン生成方法では、使用できるリソース(たとえば、メモリ容量)が限られていて使用できるテストパターンの数に制約があるとき、テストパターン数の上限を超えないようにn因子網羅率を100%にする組み合わせが生成される。
図21は、第3の実施の形態のテストパターン生成方法の一例の流れを説明する図である。
コンピュータ20において、プロセッサ21は、HDD23に格納されたプログラムを読み出してRAM22上に展開して、たとえば、図21に示すような各ステップの処理を実行する。
ステップS30,S31,S32の処理は、図4に示したステップS10〜S12の処理と同じであるので説明を省略する。
ステップS33の処理では、プロセッサ21は、たとえば、ユーザによるキーボード25aなどの操作により入力されたテストパターン数の上限値を取得する。なお、テストパターン数の上限値は、たとえば、予め、HDD23に記憶されていてもよい。
ステップS34の処理では、プロセッサ21は、n因子網羅率のnの初期値として2を設定する。その後、プロセッサ21は、ステップS35の処理において、n因子網羅率を100%にするような組み合わせを、任意のパラメータ組み合わせアルゴリズムを用いて生成する。n因子網羅率が100%となるような値の組み合わせを求める方法としては、直交表を用いたアルゴリズム、All−pair法、HAYST法などがある。
その後、ステップS36の処理では、プロセッサ21は、生成した組み合わせの数がテストパターン数の上限値を超えたか否かを判定する。生成した組み合わせの数がテストパターン数の上限値を超えていないときには、ステップS37の処理において、nがインクリメントされ、ステップS35からの処理が繰り返される。
生成した組み合わせの数がテストパターン数の上限値を超えたときには、プロセッサ21は、n−1因子網羅率が100%になる組み合わせをテストパターンとして、たとえば、コンピュータ20の外部へ出力させる。
たとえば、前述した試験対象30に対するテストパターン生成時に、テストパターンの最大数が100であったとする。図20から、2因子網羅率100%のときのテストパターン数は17、3因子網羅率100%のときのテストパターン数は72、4因子網羅率100%のときのテストパターン数は188である。したがって、n=4のときのテストパターン数は100を超えるため、3因子網羅率100%とする組み合わせがテストパターンとして出力される。
なお、図21に示した各ステップS30〜S38の処理の順番は、上記の順番に限定されない。たとえば、真理値表の取得処理の前に、真理値表に含まれない入力因子とその入力因子が取り得る値や、テストパターンの最大値の取得処理が行われるようにしてもよい。
以上のような第3の実施の形態の試験方法及びテストパターン生成方法でも、第2の実施の形態の試験方法及びテストパターン生成方法と同様な効果が得られるとともに、メモリなどのリソースを考慮したテストパターンの生成が可能となる。リソースに余裕があり、テストパターンの最大数を大きく設定できるときには、nが大きくなるため、より精度のよい検証が可能となる。
なお、前述のように4因子網羅率100%以上としてもバグ検出率の上昇が見込めないときには、n=3を上限とするようにしてもよい。
(第4の実施の形態)
以下、第4の実施の形態の試験方法及びテストパターン生成方法について説明する。試験装置(テストパターン生成装置)については、図3に示したコンピュータ20が適用可能である。
第4の実施の形態の試験方法及びテストパターン生成方法は、真理値表に含まれていない入力因子間の値の組み合わせに制約がある場合、その制約を考慮して、制約のある入力因子同士を1つの入力因子にまとめるものである。
図22は、第4の実施の形態のテストパターン生成方法の一例の流れを説明する図である。
コンピュータ20において、プロセッサ21は、HDD23に格納されたプログラムを読み出してRAM22上に展開して、たとえば、図21に示すような各ステップの処理を実行する。
ステップS40,S41,S42,S43の処理は、図4に示したステップS10〜S13の処理と同じである。
ステップS44の処理では、プロセッサ21は、たとえば、ユーザによるキーボード25aなどの操作により入力された、入力因子の値の組み合わせの制約を取得する。
制約には、たとえば、ある2つの入力因子は常に同じ値である、などの制約がある。上記のような制約は、たとえば、以下に示すような制約式で表される。
if(IN4==0)
then(IN5=0);
if(IN4==1)
then(IN5=1);
上記の式は、入力因子IN4の値が0ならば、入力因子IN5の値も0、入力因子IN4の値が1ならば、入力因子IN5の値も1であることを示す制約式である。上記のような制約は、たとえば、予め、HDD23に記憶されていてもよい。
ステップS45の処理では、プロセッサ21は、上記のような制約を参照して図9に示したような入力因子−水準リストL13を圧縮する。
図23は、入力因子−水準リストの圧縮の一例を示す図である。
図23では、図9に示した入力因子−水準リストL13の一部を圧縮した例が示されている。上記のように、入力因子IN4,IN5が常に同じ値であるという制約がある場合、プロセッサ21は、たとえば、図23に示すように、入力因子IN4,IN5を、1つの入力因子IN4−5としてまとめ、その水準として、“00”,“11”を生成する。このように制約のある入力因子同士を1つの入力因子にまとめることで、入力因子−水準リストL13が圧縮される。
なお、制約は、ある2つの入力因子が常に同じ値である、というものに限定されず、常に異なる値である、という制約であってもよい。また、3つ以上の入力因子間に制約があるときにも、その3つ以上の入力因子を1つの入力因子にまとめ、制約に基づく水準が生成される。
以降のステップS46,S47の処理は、図4に示したステップS14,S15の処理と同じである。
以上のような第4の実施の形態の試験方法及びテストパターン生成方法でも、第2の実施の形態の試験方法及びテストパターン生成方法と同様な効果が得られるとともに、制約を考慮することで、入力因子数や考慮すべき値の組み合わせの数を減らせる。たとえば、それぞれ2つの水準をもつ入力因子IN4,IN5の組み合わせは、全部で4通りあるが上記のような制約を考慮することで、2通りだけ考慮すればよくなる。これにより、効率よくテストパターンを生成できる。
なお、図22に示した各ステップS40〜S47の処理の順番は、上記の順番に限定されない。たとえば、真理値表を取得する処理の前に、真理値表に含まれない入力因子とその入力因子が取り得る値や、n因子網羅率、制約を取得する処理が行われるようにしてもよい。
以上、実施の形態に基づき、本発明の試験方法、テストパターン生成方法、試験装置、テストパターン生成装置及びプログラムの一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
たとえば、各実施の形態同士を組み合わせるようにしてもよい。たとえば、第4の実施の形態の試験方法及びテストパターン生成方法においても、第3の実施の形態で説明したようにテストパターン数の上限値を考慮して、テストパターンとして出力する組み合わせを決めるようにしてもよい。
1 試験装置(テストパターン生成装置)
2 プロセッサ
3 記憶部
5 試験対象
I1〜Im 入力因子
O1 出力
L1 真理値表
L2 テーブル
L3 テストパターン

Claims (10)

  1. 試験装置が、
    試験対象における複数の第1入力因子の取り得る値の組み合わせに応じた出力値が示されている真理値表の、前記複数の第1入力因子を1つの第2入力因子にまとめ、前記複数の第1入力因子のそれぞれが取り得る値に基づき、前記第2入力因子が取り得る値を生成し、
    前記第2入力因子と前記真理値表に含まれない第3入力因子とが取り得る値に基づき、前記第2入力因子と前記第3入力因子のなかのn(n≧2)個の入力因子間で取り得る値の組み合わせの網羅率が第1の値となるように、テストパターンを生成し、
    前記テストパターンを前記試験対象に供給して試験を実行する、
    ことを特徴とする試験方法。
  2. 前記第3入力因子が複数あるとき、前記nは、前記第3入力因子の数以下であることを特徴とする請求項1に記載の試験方法。
  3. 前記テストパターンの数の上限値を超えない範囲で、前記nの値を増加させて前記網羅率を前記第1の値とする前記テストパターンを生成することを特徴とする請求項1または2に記載の試験方法。
  4. 複数の前記第3入力因子間において、取り得る値の制約があるときには、制約のある複数の前記第3入力因子を1つの第4の入力因子とし、前記第4の入力因子が取り得る値を、前記制約に基づき生成することを特徴とする請求項1乃至3の何れか一項に記載の試験方法。
  5. 前記第2入力因子と複数の前記第3入力因子のなかの、2つまたは3つの前記入力因子間で取り得る値の組み合わせの網羅率が前記第1の値となるように前記テストパターンを生成することを特徴とする請求項1乃至4の何れか一項に記載の試験方法。
  6. テストパターン生成装置が、
    試験対象における複数の第1入力因子の取り得る値の組み合わせに応じた出力値が示されている真理値表の、前記複数の第1入力因子を1つの第2入力因子にまとめ、前記複数の第1入力因子のそれぞれが取り得る値に基づき、前記第2入力因子が取り得る値を生成し、
    前記第2入力因子と前記真理値表に含まれない第3入力因子とが取り得る値に基づき、前記第2入力因子と前記第3入力因子のなかのn(n≧2)個の入力因子間で取り得る値の組み合わせの網羅率が第1の値となるように、テストパターンを生成する、
    ことを特徴とするテストパターン生成方法。
  7. プロセッサを有し、
    前記プロセッサは、
    試験対象における複数の第1入力因子の取り得る値の組み合わせに応じた出力値が示されている真理値表の、前記複数の第1入力因子を1つの第2入力因子にまとめ、前記複数の第1入力因子のそれぞれが取り得る値に基づき、前記第2入力因子が取り得る値を生成し、
    前記第2入力因子と前記真理値表に含まれない第3入力因子とが取り得る値に基づき、前記第2入力因子と前記第3入力因子のなかのn(n≧2)個の入力因子間で取り得る値の組み合わせの網羅率が第1の値となるように、テストパターンを生成し、
    前記テストパターンを前記試験対象に供給して試験を実行する、
    ことを特徴とする試験装置。
  8. プロセッサを有し、
    前記プロセッサは、
    試験対象における複数の第1入力因子の取り得る値の組み合わせに応じた出力値が示されている真理値表の、前記複数の第1入力因子を1つの第2入力因子にまとめ、前記複数の第1入力因子のそれぞれが取り得る値に基づき、前記第2入力因子が取り得る値を生成し、
    前記第2入力因子と前記真理値表に含まれない第3入力因子とが取り得る値に基づき、前記第2入力因子と前記第3入力因子のなかのn(n≧2)個の入力因子間で取り得る値の組み合わせの網羅率が第1の値となるように、テストパターンを生成する、
    ことを特徴とするテストパターン生成装置。
  9. 試験対象における複数の第1入力因子の取り得る値の組み合わせに応じた出力値が示されている真理値表の、前記複数の第1入力因子を1つの第2入力因子にまとめ、前記複数の第1入力因子のそれぞれが取り得る値に基づき、前記第2入力因子が取り得る値を生成し、
    前記第2入力因子と前記真理値表に含まれない第3入力因子とが取り得る値に基づき、前記第2入力因子と前記第3入力因子のなかのn(n≧2)個の入力因子間で取り得る値の組み合わせの網羅率が第1の値となるように、テストパターンを生成し、
    前記テストパターンを前記試験対象に供給して試験を実行する、
    処理をコンピュータに実行させるプログラム。
  10. 試験対象における複数の第1入力因子の取り得る値の組み合わせに応じた出力値が示されている真理値表の、前記複数の第1入力因子を1つの第2入力因子にまとめ、前記複数の第1入力因子のそれぞれが取り得る値に基づき、前記第2入力因子が取り得る値を生成し、
    前記第2入力因子と前記真理値表に含まれない第3入力因子とが取り得る値に基づき、前記第2入力因子と前記第3入力因子のなかのn(n≧2)個の入力因子間で取り得る値の組み合わせの網羅率が第1の値となるように、テストパターンを生成する、
    処理をコンピュータに実行させるプログラム。
JP2013266049A 2013-12-24 2013-12-24 試験方法、テストパターン生成方法、試験装置、テストパターン生成装置及びプログラム Active JP6217383B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013266049A JP6217383B2 (ja) 2013-12-24 2013-12-24 試験方法、テストパターン生成方法、試験装置、テストパターン生成装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013266049A JP6217383B2 (ja) 2013-12-24 2013-12-24 試験方法、テストパターン生成方法、試験装置、テストパターン生成装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2015121994A JP2015121994A (ja) 2015-07-02
JP6217383B2 true JP6217383B2 (ja) 2017-10-25

Family

ID=53533541

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013266049A Active JP6217383B2 (ja) 2013-12-24 2013-12-24 試験方法、テストパターン生成方法、試験装置、テストパターン生成装置及びプログラム

Country Status (1)

Country Link
JP (1) JP6217383B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021261003A1 (ja) * 2020-06-25 2021-12-30 日立Astemo株式会社 電子制御装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0283472A (ja) * 1988-09-21 1990-03-23 Hitachi Ltd テストパターン作成装置及び作成方法
JP3122168B2 (ja) * 1991-07-17 2001-01-09 株式会社リコー テストパターン作成装置
JP2000304829A (ja) * 1999-04-21 2000-11-02 Matsushita Electric Ind Co Ltd 半導体検査方法
JP5451034B2 (ja) * 2008-11-06 2014-03-26 日立マクセル株式会社 テスト計画表作成装置及びそのプログラム

Also Published As

Publication number Publication date
JP2015121994A (ja) 2015-07-02

Similar Documents

Publication Publication Date Title
RU2702268C2 (ru) Масштабируемые пулы хранения данных
CN110399260B (zh) 用于预测性地服务和支持解决方案的系统和方法
JP6214824B2 (ja) 自動試験装置
CN111124926A (zh) 模糊测试方法、装置、电子设备及存储介质
CN109901985B (zh) 分布式测试装置及方法、存储介质和电子设备
US11409623B2 (en) Integrated circuit (IC) power-up testing method and device, and electronic equipment
US20140067886A1 (en) Information processing apparatus, method of outputting log, and recording medium
US20210125102A1 (en) Information processing system, information processing apparatus, and information processing program
TW201616356A (zh) 偵錯韌體/軟體以產生追蹤資料之系統與方法、記錄媒體及電腦程式產品
JP6217383B2 (ja) 試験方法、テストパターン生成方法、試験装置、テストパターン生成装置及びプログラム
CN103713995B (zh) 用于确定测试数据的方法和设备
JP5944258B2 (ja) テストケース生成支援装置
KR101460860B1 (ko) 상태 기반의 테스트 시나리오 모델을 이용한 gui 테스트 장치 및 방법
CN105074668B (zh) 测试设计辅助装置和测试设计辅助方法
CN112865996A (zh) 一种基于仿真卡的设备测试方法、系统和仿真卡
JP6864227B2 (ja) 比較プログラム、比較装置及び比較方法
US20230067057A1 (en) Dark deployment of infrastructure cloud service components for improved safety
US9374412B2 (en) Information processing apparatus, information acquiring method, and computer readable recording medium in which information acquisition program is stored
JP6318976B2 (ja) デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法
CN114201413A (zh) 自动化测试方法、系统及电子设备
KR20170041998A (ko) 비디오처리장치, 비디오처리장치의 구동방법 및 컴퓨터 판독가능 기록매체
JP2016218929A (ja) 演算処理装置、情報処理装置および演算処理装置の制御方法
JP6658297B2 (ja) テストケース生成方法、テストケース生成プログラムおよびテストケース生成装置
CN115080438B (zh) 一种可用性测试方法、装置、电子设备及存储介质
JP2016046358A (ja) 半導体装置の設計方法、半導体装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170807

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170911

R150 Certificate of patent or registration of utility model

Ref document number: 6217383

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150