[go: up one dir, main page]

JP2010002370A - パターン抽出プログラム、方法及び装置 - Google Patents

パターン抽出プログラム、方法及び装置 Download PDF

Info

Publication number
JP2010002370A
JP2010002370A JP2008163075A JP2008163075A JP2010002370A JP 2010002370 A JP2010002370 A JP 2010002370A JP 2008163075 A JP2008163075 A JP 2008163075A JP 2008163075 A JP2008163075 A JP 2008163075A JP 2010002370 A JP2010002370 A JP 2010002370A
Authority
JP
Japan
Prior art keywords
test
test pattern
pattern
identifier
storage unit
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.)
Withdrawn
Application number
JP2008163075A
Other languages
English (en)
Inventor
浩一郎 ▲高▼山
Koichiro Takayama
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 JP2008163075A priority Critical patent/JP2010002370A/ja
Priority to US12/402,228 priority patent/US20090319829A1/en
Publication of JP2010002370A publication Critical patent/JP2010002370A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/263Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】検証対象の内部構造を解析することなく、検証対象を境界条件の近傍で動作させるためのテストパターンを自動的に抽出する。
【解決手段】本テストパターン抽出方法は、テストパターンに対して検証対象により実行される処理の識別子を取得し、テストパターンに対応して上記処理の識別子をテスト結果データ格納部に格納するステップと、テスト結果データ格納部に格納されており且つ上記処理の識別子が異なるテストパターン間で距離を算出し、上記処理の識別子の組毎に当該距離が所定の条件を満たすテストパターンの組を特定し、パターンデータ格納部に格納するステップとを含む。
【選択図】図1

Description

本技術は、ハードウエアの設計検証やソフトウエアのテストを効果的に行う技術の分野に関する。
従来、ハードウエアの設計検証やソフトウエアのテストを行う際には、検証対象の内部構造から境界条件(例えば分岐やループの条件など)を抽出し、その境界条件の近傍値で動作させるための入力パターンを生成するという手法がとられていた。しかし、条件が複雑な場合、境界条件から入力パターンを自動的に又は人手で生成するのは困難であり、効果的なパターンを生成するために多大な時間を要するという問題がある。
また、予め生成したパターンを用いて試験を行い、その際にカバレッジ(例えばラインカバレッジ)を改善するパターンを選択又は生成することで全体のパターン数を減らすような技術もある。しかしながら、検証対象の境界条件まで考慮してはいない。
特開2001−188691号公報 特開2005−321892号公報 特表2003−535343号公報
ハードウエアの設計検証やソフトウエアのテストを効率よく行うためには、検証対象を境界条件の近傍で動作させる必要がある。しかし、従来の技術では、検証対象の内部構造に基づいて入力パターンを生成するため、境界条件の近傍で動作させるための入力パターンを生成するのが非常に困難である。
従って、本技術の目的は、検証対象の内部構造を解析することなく、検証対象を境界条件の近傍で動作させるためのテストパターンを自動的に抽出することである。
本テストパターン抽出方法は、テストパターンに対して検証対象により実行される処理の識別子を取得し、テストパターンに対応して上記処理の識別子をテスト結果データ格納部に格納するステップと、テスト結果データ格納部に格納されており且つ上記処理の識別子が異なるテストパターン間で距離を算出し、上記処理の識別子の組毎に当該距離が所定の条件を満たすテストパターンの組を特定し、パターンデータ格納部に格納するステップとを含む。
検証対象の内部構造を解析することなく、検証対象を境界条件の近傍で動作させるためのテストパターンを自動的に抽出することができる。
本技術の一実施の形態におけるテストパターン抽出装置の機能ブロック図を図1に示す。テストパターン抽出装置は、検証対象のハードウエア又はソフトウエアで実行すべきテストパターン(パターン又は入力パターンとも呼ぶ)又は当該テストパターンを特定するための情報(例えば特定の変数の値域を指定するデータなど)を格納するテストパターン格納部1と、テストパターン格納部1に格納されているデータに従って検証対象51に対して処理を実行させ、いずれの処理が行われたかを表す処理の識別子を取得するテスト実行部3と、テスト実行部3によって取得された処理の識別子をテストパターンに対応して格納するテスト結果格納部7と、テスト結果格納部7に格納されているテストパターンについて境界条件の近傍と認められるテストパターンを選択する処理を実施するパターン選択部9と、パターン選択部9によって選択されたテストパターンのデータを格納する解集合データ格納部11と、解集合データ格納部11に格納されているテストパターンについてさらに境界条件の近傍となるようなテストパターンを生成する処理を実施するパターン生成部13と、パターン生成部13の処理結果を格納する生成パターンデータ格納部15と、解集合データ格納部11又は生成パターンデータ格納部15に格納されているデータを出力する出力部17とを有する。
検証対象51は、例えば検証すべきソフトウエアや、例えばHDL(Hardware Description Language)などによって記述されているハードウエアなどである。テスト実行部3は、例えば検証対象51のためのデバッガであり、デバッガが通常有するカバレッジ取得機能によって、いずれの処理が行われたかを表す処理の識別子を取得する。
例えば図2に示すような2つの引数をとる関数F(x,y)をテストする場合を考える。この関数F(x,y)は、yが関数g(x)より大きく且つxが5より大きい場合には処理Aを行い、yが関数g(x)より大きいがxが5以下である場合には処理Bを行い、yが関数g(x)以下であってxが5より大きい場合には処理Cを行い、yが関数g(x)以下であってxが5以下である場合には処理Dを行うような関数である。ここで、xの取り得る範囲を0≦x≦10とし、yの取り得る範囲を0≦y≦10とする。
このような場合に、引数の値と処理の対応関係を模式的に示すと図3のようになる。図3のグラフでは、上で述べたx及びyの値域において、x=5とy=g(x)とで区切られるA乃至Dの4つの領域のそれぞれで実行される処理が異なる。従って、可能な限り各領域の境界に近いテストパターンを特定することが好ましい。しかしながら、図2に示したような検証対象の構造が常に外部から解析可能であるわけではない。
本実施の形態では、上で述べたx及びyの値域において、例えばランダムにテストパターン(x,y)を生成して、関数F(x,y)に入力して関数F(x,y)を実際に動作させて、デバッガのカバレッジ取得機能等を含むテスト実行部3によって、処理A乃至Dのいずれの処理が行われたかを特定する。図4に示すように、黒丸はランダムに生成されたx及びyの組み合わせであるテストパターンを示しており、図3に示したような領域A乃至Dのいずれに属するかによって処理A乃至Dのいずれかが実施される。テスト実行部3は、各テストパターン(黒丸)に対して処理の識別子(A乃至D)を特定する。
なお、テストパターン格納部1には、図2乃至図4の例では例えば(x,y)を予め用意しておき、格納しておくようにしても良いし、例えば上で述べたx及びyの値域のデータと例えばランダムに発生させるなどといった生成方法などを指定するデータとを格納しておき、テスト実行部3が具体的なテストパターンを随時生成するようにしても良い。
次に、図5乃至図17を用いて図1に示したテストパターン抽出装置の処理内容について説明する。まず、例えばテスト実行部3は、ユーザから検証対象51及びテストパターンの指定を受け付ける(ステップS1)。テストパターンについては、テストパターン格納部1に格納されているテストパターン又はテストパターンの生成方法を指定するか、テストパターン又はテストパターンの生成方法のデータをテストパターン格納部1に格納して当該データを用いた処理の開始を指示する。
そして、テスト実行部3は、テスト処理を実施する(ステップS3)。テスト処理については、図6及び図7を用いて説明する。テスト実行部3は、検証対象51に、テストパターン格納部1に格納されている各指定テストパターンに対する処理を実行させ、検証対象51が実行した処理の識別子を特定する(ステップS21)。そして、指定テストパターンと、検証処理51が実行した処理の識別子とを、テスト結果格納部7に格納する(ステップS23)。例えば、図7に示すようなデータがテスト結果格納部7に格納される。すなわち、テストパターン(例えばm1=(x1,y1))と処理識別子(例えばA)とが対応して登録されている。
図5の処理の説明に戻って、次に、パターン選択部9は、第1の近傍値δ1を設定する(ステップS5)。例えば、予め設定されている固定の値を用いるようにしても良いし、ユーザに対して入力を求めて、ユーザによって入力された値を用いるようにしてもよい。
そして、パターン選択部9は、パターン選択処理を実施する(ステップS7)。パターン選択処理については、図8乃至図11を用いて説明する。
パターン選択処理は、図8に模式的に示すように、異なる処理(例えば処理Aと処理C)を実行させるテストパターンのうち最も距離が短い(すなわち最も近接する)テストパターンp0及びp1とを抽出する処理である。なお、本実施の形態では、テストパターンp0とp1の間の距離が、第1の近傍値δ1未満であることも当該テストパターンを抽出する条件である。
そして、パターン選択部9は、テスト結果格納部7に格納されている処理識別子のうち未処理の処理識別子s0を1つ特定する(ステップS31)。また、テスト結果格納部7に格納されている処理識別子のうちs0とは異なる未処理の処理識別子s1を1つ特定する(ステップS33)。そして、初期的に、距離を格納する変数mid_distを無限大に設定する(ステップS35)。さらに、テスト結果格納部7に格納されているテストパターンのうち、処理識別子s0に係る未処理のテストパターンp0を特定する(ステップS37)。また、テスト結果格納部7に格納されているテストパターンのうち、処理識別子s1に係る未処理のテストパターンp1を特定する(ステップS39)。
そして、パターン選択部9は、テストパターンp0とp1の距離Dist(p0,p1)を算出する(ステップS41)。XとYの距離は、例えば以下の式で算出される。
Figure 2010002370
なお、X及びYは、n個の要素から構成されているものとする。
そして、Dist(p0,p1)がmin_distより小さいか判断する(ステップS43)。最初の処理ではmin_distは無限大なので、必ずDist(p0,p1)<min_distが成立する。以後は、その都度変わる。
Dist(p0,p1)がmin_dist以上である場合には端子Aを介して図10の処理に移行する。一方、Dist(p0,p1)がmin_dist未満である場合には、min_distにDist(p0,p1)を代入する(ステップS45)。そして、テストパターンp0及びp1を候補パターンペアppに設定する(ステップS47)。そして、端子Aを介して図10の処理に移行する。
図10の処理の説明に移行して、パターン選択部9は、処理識別子s1に係る全てのテストパターンについて処理したか判断する(ステップS49)。処理識別子s1に係る未処理のテストパターンが存在する場合には、端子Bを介して図9のステップS39に戻る。
処理識別子s1に係る全てのテストパターンについて処理した場合には、パターン選択部9は、min_distが第1の近傍値δ1より小さいか判断する(ステップS51)。min_distが第1の近傍値δ1以上である場合にはステップS55に移行する。すなわち、距離がmin_distとなる、テストパターンp0及びp1の候補テストパターンペアppを採用しない。図8の例では、例えばテストパターンcとテストパターンbとは、確かに異なる処理が行われるテストパターンであるが、あまりに離れているので採用する意味がないと判断する。
一方、min_distが第1の近傍値δ1未満である場合には、パターン選択部9は、当該min_distとなる候補テストパターンペアpp(すなわち該当するテストパターンp0及びp1)並びに候補テストパターンペアについての処理識別子s0及びs1を、解集合に追加登録する(ステップS53)。すなわち、図11に示すようなデータを、解集合データ格納部11に格納する。
図11の例では、最終的に残った候補テストパターンペアppに含まれる2つのテストパターンと、対応する2つの処理識別子とが1レコードとして登録される。
その後、パターン選択部9は、処理識別子s0に係る全てのテストパターンについて処理したか判断する(ステップS55)。処理識別子s0に係るテストパターンのうち未処理のテストパターンが存在している場合には端子Cを介して図9のステップS37に戻る。
一方、処理識別子s0に係る全てのテストパターンについて処理した場合には、パターン選択部9は、処理識別子s0とは異なる全ての処理識別子について処理したか判断する(ステップS57)。処理識別子s0とは異なる未処理の処理識別子が存在する場合には端子Dを介して図9のステップS33に戻る。
また、処理識別子s0とは異なる全ての処理識別子について処理した場合には、パターン選択部9は、処理識別子s0に設定すべき全ての処理識別子について処理したか判断する(ステップS59)。処理識別子s0に設定すべき未処理の処理識別子が存在する場合には、端子Eを介して図9のステップS31に戻る。
一方、処理識別子s0に設定すべき全ての処理識別子について処理した場合には元の処理に戻る。
このような処理を実施すれば、異なる処理に係るテストパターンであって距離が最短且つ第1の近傍値δ1未満であるテストパターンを特定することができる。
なお、上で述べた処理フローでは、処理Aと処理Bについて特定したテストパターンと、処理Bと処理Aについて特定されたテストパターンとが一致するが、処理Aと処理Bとの組み合わせと、処理Bと処理Aとの組み合わせとを別に処理している。これを処理Aと処理Bとの組み合わせについてのみ処理するようにしてもよい。
図5の処理の説明に戻って、例えば出力部17は、次にパターン生成を実施するか判断する(ステップS9)。例えば、パターン生成処理を実施することが予め設定されているか、ユーザから指示されているかを判断する。
パターン生成を実施しない場合には、出力部17は、解集合データ格納部11に格納されているパターン選択処理の処理結果(例えば図11)のデータを出力する(ステップS11)。例えば、表示装置に表示する場合もあれば、印刷装置に印刷しても良い。さらに、別のファイルやデータ記憶装置に格納するようにしても良い。
一方、パターン生成を実施する場合には、パターン生成部13は、第1パターン生成処理を実施する(ステップS13)。第1パターン生成処理については、図12を用いて説明する。
まず、パターン生成部13は、第2の近傍値δ2を設定する(ステップS61)。例えば、予め設定されている固定の値を用いるようにしても良いし、ユーザに対して入力を求めて、ユーザによって入力された値を用いるようにしてもよい。
次に、パターン生成部13は、解集合データ格納部11に格納されている未処理のテストパターンペアppを1つ特定する(ステップS63)。また、特定されたテストパターンペアppに含まれるテストパターンp0及びp1を特定する(ステップS65)。
そして、パターン生成部13は、テストパターンp0及びp1並びに第2の近傍値δ2について第2パターン生成処理を実施する(ステップS67)。この第2パターン生成処理については、図13乃至図16を用いて説明する。
まず、図13(a)及び(b)を用いて、第2パターン生成処理の概要を説明する。ここでは、図13(a)に示すテストパターンa(=(ax,ay))とテストパターンb(=(bx,by))とが、解集合データ格納部11に格納されているものとする。ここで、本実施の形態では、図13(b)に示すように、テストパターンaとテストパターンbの中点c1(=(c1x, c1y)=((ax+ab)/2,(ay+by)/2))を算出する。この中点c1に対して検証対象51がいずれの処理を実施するかを特定する。ここでは中点c1に対しては処理Cが実施されるものとする。そうすると、テストパターンbを中点c1で置き換える。ここで、テストパターンaと中点c1の距離を算出し、第2の近傍値δ2以下となったか判断する。
テストパターンaと中点c1の距離が第2の近傍値δ2より長い場合には、テストパターンaと中点c1の中点c2(=(c2x, c2y)=((ax+c1x)/2,(ay+c1y)/2))を算出する。この中点c2に対して検証対象51がいずれの処理を実施するかを特定する。ここでは中点c2に対しては処理Aが実施されるものとする。そうすると、テストパターンaを中点c2で置き換える。ここで、中点c2と中点c1の距離を算出し、第2の近傍値δ2以下となったか判断する。
中点c2と中点c1の距離が第2の近傍値δ2より長い場合には、中点c2と中点c1の中点c3(=(c3x, c3y)=((c2x+c1x)/2,(c2y+c1y)/2))を算出する。この中点c3に対して検証対象51がいずれの処理を実施するかを特定する。ここでは中点c3に対しては処理Aが実施されるものとする。そうすると、中点c2を中点c3で置き換える。ここで、中点c3と中点c1の距離を算出し、第2の近傍値δ2以下となったか判断する。本例では、ここで中点c3と中点c1の距離が第2の近傍値δ2以下となったと判断され。第2パターン生成処理が完了する。
以上述べた概要に従って、パターン生成部13は、テストパターンp0とp1の距離Dist(p0,p1)を算出する(ステップS71)。例えば(1)式で距離を算出する。そして、距離Dist(p0,p1)が第2の近傍値δ2を超えているか判断する(ステップS73)。距離Dist(p0,p1)が第2の近傍値δ2を超えている場合には、さらに境界に近いテストパターンを生成できるものと判断し、Dist(p0,p1)が第2の近傍値δ2以下である場合には、これ以上境界に近いテストパターンを生成する必要はないと判断する。
距離Dist(p0,p1)が第2の近傍値δ2を超えている場合には、テストパターンp0とp1の中点p2を算出する(ステップS75)。X及びYの中点は、以下のように算出される。
Figure 2010002370
上で述べたように、XもYもn個の要素を含み、それぞれの要素につき平均を算出する。
そして、パターン生成部13は、テスト実行部3に、テストパターンp2に対する処理を実行させ、実行した処理の識別子を特定させる(ステップS77)。特定した処理の識別子については、テスト実行部3から取得する。そして、テストパターンp0の処理識別子とテストパターンp2の処理識別子が同一であるか判断する(ステップS79)。
テストパターンp0の処理識別子とテストパターンp2の処理識別子が同一であれば、テストパターンp0をテストパターンp2で置換する(ステップS81)。そしてステップS71に戻る。
一方、テストパターンp0の処理識別子とテストパターンp2の処理識別子が異なる場合には、パターン生成部13は、テストパターンp1の処理識別子とテストパターンp2の処理識別子が同一であるか判断する(ステップS83)。テストパターンp1の処理識別子とテストパターンp2の処理識別子が同一である場合には、テストパターンp1をテストパターンp2で置換する(ステップS85)。そしてステップS71に戻る。
一方、テストパターンp1の処理識別子とテストパターンp2の処理識別子とが異なる場合には、図15に示すような状況であると判断される。すなわち、処理Aが実施される領域と、処理Bが実施される領域とが直接接するのではなく、間に処理Eが実施される領域が存在しており、中点のテストパターンp2が処理Eが実施される領域に属する。
このような場合には、パターン生成部13は、図15(1)に示すように、テストパターンp0及びp2について第2パターン生成処理を実施する(ステップS87)。さらに、図15(2)に示すように、テストパターンp1及びp2について第2パターン生成処理を実施する(ステップS89)。そして、元の処理に戻る。
このように処理Aが実施される領域と処理Eが実施される領域の境界に近いテストパターンを生成し、処理Eが実施される領域と処理Bが実施される領域の境界に近いテストパターンを生成する。
ステップS73で、距離Dist(p0,p1)が第2の近傍値δ2以下となったと判断された場合には、その際のテストパターンp0及びp1を生成パターンデータ格納部15に格納する(ステップS90)。そして元の処理に戻る。
生成パターンデータ格納部15には、例えば図16に示されるようなデータが格納される。すなわち、新たに生成された2つのテストパターンが登録される。なお、生成パターンデータ格納部15には、解集合データ格納部11に格納されているレコードより多いレコードが登録される場合もある。
以上のような処理を実施することによって、より境界に近いテストパターンを生成することができるようになる。
図12の処理の説明に戻って、パターン生成部13は、解集合データ格納部11に格納されている全てのテストパターンペアについて処理したか判断する(ステップS69)。未処理のテストパターンペアが解集合データ格納部11に格納されている場合にはステップS63に戻る。一方、全てのテストパターンペアについて処理した場合には、元の処理に戻る。
図5の処理の説明に戻って、出力部17は、第1パターン生成処理によって生成され且つ生成パターンデータ格納部15に格納されているテストパターンの組を出力する(ステップS15)。例えば、表示装置に表示する場合もあれば、印刷装置に印刷しても良い。さらに、別のファイルやデータ記憶装置に格納するようにしても良い。
このような処理を行うことによって、検証対象51の内部構造を解析することなく、検証対象51を境界条件の近傍で動作させるためのテストパターンを自動的に抽出することができるようになる。
なお、上で述べた実施の形態では、テストパターンに含まれる要素(すなわち変数)については平等に取り扱う例を示した。しかし、制御系変数は、データ系変数に比べて、値の取りうる範囲が小さいため、テストにおいては、より多くの組合せが実行されやすい傾向にある。一方で、データ系変数は、典型的な値の組み合わせのみがテストされる場合が多い。また、検証対象51中にデータ系変数による処理の分岐がある場合、その境界条件を発生するパターンを生成する労力が、制御系変数による境界条件を発生するパターンを生成する労力よりも大きくなることが多く、データ系変数に依存する境界条件が見逃されることが大きい。
また、制御系変数に比べて、データ系変数は取りうる値の範囲が大きく、テストパターン間の変数値の差分が大きくなる傾向にあり、距離を計算する式においても、データ系変数に依存した境界値が選択されやすくなる。そこで、制御系変数の差分の比重をデータ系変数の差分より小さくすることで、データ系変数の差分に応じてテストパターンペアが選択されやすくする。
例えば図17に示すような例では、xとyの2つの変数が平等な場合には、Dist(A,B)=10>Dist(A,C)=1であり、テストパターンA及びCが選択される。
一方、xが0以上5以下の制御系変数として重み係数wx=10000と設定し、yが0以上10000以下のデータ系変数として重み係数wy=5と設定する。そして、距離WeightedDist(W,X,Y)を以下のように定義する。
Figure 2010002370
なお、重み係数が大きな値ほど、距離が長くなるので、その重み係数に係る変数の比重が小さくなったことになる。
図17の例では、WeightedDist(W,A,B)=22<WeightedDist(W,A,C)=100ということになって、テストパターンA及びCが選択される。
従って、例えばユーザからデータ系変数又は制御系変数並びに重み係数が指定されれば、パターン選択部9及びパターン生成部13は、上で述べた(2)式に従って距離を算出するようにする。また、値域の狭い変数を制御系変数と特定して、データ系変数の値域を重み係数に指定するようにしても良い。同様に値域の広い変数をデータ系変数と特定して、制御系変数の値域を重み係数に指定するようにしてもよい。
以上本実施の形態を説明したが、実施の形態はこれに限定されるものではない。例えば、図1の機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成に対応しない場合がある。
さらに処理フローについても処理結果が変わらなければ処理順番を入れ替えたり、並列実行させるようにしても良い。
以上述べた本実施の形態をまとめると以下のとおりである。
本テストパターン抽出方法は、テストパターンに対して検証対象により実行される処理の識別子を取得し、テストパターンに対応して上記処理の識別子をテスト結果データ格納部に格納するステップと、テスト結果データ格納部に格納されており且つ上記処理の識別子が異なる前記テストパターン間で距離を算出し、上記処理の識別子の組毎に当該距離が所定の条件を満たすテストパターンの組を特定し、パターンデータ格納部に格納するステップとを含む。
このようにすれば、検証対象の内部構造を解析することなく、境界条件の近傍のテストパターンの組を自動的に抽出することができるようになる。
また、パターンデータ格納部に格納されているテストパターンの組から、距離がより短いテストパターンの組を生成し、生成パターンデータ格納部に格納する生成ステップをさらに含むようにしても良い。このようにすれば境界により近いテストパターンの組を生成することができるようになる。例えば、距離が第2の閾値未満となるテストパターンの組が得られるまで近づけるようにしても良い。
なお、上で述べた所定の条件が、テストパターン間の距離が上記処理の識別子の組について最小であり且つ所定の閾値未満であるという条件である場合もある。単純に距離が最小という条件のみである場合もある。
さらに、上で述べたパターンデータ格納部には、テストパターンに対応して上記処理の識別子が登録されている場合もある。そして、上で述べた生成ステップが、第1及び第2のテストパターン間の中点の候補テストパターンを算出すると共に、当該候補テストパターンに対して検証対象により実行される処理の識別子を取得するステップと、候補テストパターンについての処理の識別子と、第1及び前記第2のテストパターンについての処理の識別子との異同を判断するステップと、候補テストパターンについての処理の識別子と第1のテストパターンについての処理の識別子とが一致する場合には、第1のテストパターンを候補テストパターンで置換して、第1及び第2のテストパターン間の第2の距離を算出するステップと、候補テストパターンについての上記処理の識別子と第2のテストパターンについての上記処理の識別子とが一致する場合には、第2のテストパターンを候補テストパターンで置換して、第1及び第2のテストパターン間の第2の距離を算出するステップと、第2の距離が第2の所定の閾値未満である場合には、第1及び第2のテストパターンを生成パターンデータ格納部に格納するステップとを含むようにしてもよい。
これによって、自動的に境界により近いテストパターンを生成することができる。
また、上で述べた生成ステップが、候補テストパターンについての上記処理の識別子が第1及び第2のテストパターンについての上記処理の識別子とは異なる場合には、第1のテストパターンと候補テストパターンとについて生成ステップを実施し、第2のテストパターンと候補テストパターンとについて上記生成ステップを実施するステップをさらに含むようにしてもよい。
なお、上で述べた距離は、テストパターンに含まれる変数に応じて重み付けされた距離である場合もある。単純なユークリッド距離ではなく、重み付けを行うことによって、例えばデータ系変数を重視するような距離を算出することによって、適切なテストパターンを選択する又は生成することができるようになる。
なお、上で述べたテストパターン抽出装置は、図18に示すように、メモリ2501(記憶部)とCPU2503(処理部)とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。OS及びWebブラウザを含むアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。このようなコンピュータは、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
(付記1)
テストパターンに対して検証対象により実行される処理の識別子を取得し、前記テストパターンに対応して前記処理の識別子をテスト結果データ格納部に格納するステップと、
前記テスト結果データ格納部に格納されており且つ前記処理の識別子が異なる前記テストパターン間で距離を算出し、前記処理の識別子の組毎に当該距離が所定の条件を満たす前記テストパターンの組を特定し、パターンデータ格納部に格納するステップと、
をコンピュータに実行させるためのテストパターン抽出プログラム。
(付記2)
前記パターンデータ格納部に格納されている前記テストパターンの組から、距離がより短いテストパターンの組を生成し、生成パターンデータ格納部に格納する生成ステップ
をさらに前記コンピュータに実行させるための付記1記載のテストパターン抽出プログラム。
(付記3)
前記所定の条件が、前記テストパターン間の距離が前記処理の識別子の組について最小であり且つ所定の閾値未満であるという条件である
付記1記載のテストパターン抽出プログラム。
(付記4)
前記パターンデータ格納部には、前記テストパターンに対応して前記処理の識別子が登録されており、
前記生成ステップが、
第1及び第2のテストパターン間の中点の候補テストパターンを算出すると共に、当該候補テストパターンに対して前記検証対象により実行される処理の識別子を取得するステップと、
前記候補テストパターンについての前記処理の識別子と、前記第1及び前記第2のテストパターンについての前記処理の識別子との異同を判断するステップと、
前記候補テストパターンについての前記処理の識別子と前記第1のテストパターンについての前記処理の識別子とが一致する場合には、前記第1のテストパターンを前記候補テストパターンで置換して、前記第1及び第2のテストパターン間の第2の距離を算出するステップと、
前記候補テストパターンについての前記処理の識別子と前記第2のテストパターンについての前記処理の識別子とが一致する場合には、前記第2のテストパターンを前記候補テストパターンで置換して、前記第1及び前記第2のテストパターン間の第2の距離を算出するステップと、
前記第2の距離が第2の所定の閾値未満である場合には、前記第1及び第2のテストパターンを前記生成パターンデータ格納部に格納するステップと、
を含む付記2記載のテストパターン抽出プログラム。
(付記5)
前記生成ステップが、
前記候補テストパターンについての前記処理の識別子が前記第1及び第2のテストパターンについての前記処理の識別子とは異なる場合には、前記第1のテストパターンと前記候補テストパターンとについて前記生成ステップを実施し、前記第2のテストパターンと前記候補テストパターンとについて前記生成ステップを実施するステップ
をさらに含む付記4記載のテストパターン抽出プログラム。
(付記6)
前記距離が、前記テストパターンに含まれる変数に応じて重み付けされた距離である
付記1乃至5のいずれか1つ記載のテストパターン抽出プログラム。
(付記7)
テストパターンに対して検証対象により実行される処理の識別子を取得し、前記テストパターンに対応して前記処理の識別子をテスト結果データ格納部に格納するステップと、
前記テスト結果データ格納部に格納されており且つ前記処理の識別子が異なる前記テストパターン間で距離を算出し、前記処理の識別子の組毎に当該距離が所定の条件を満たす前記テストパターンの組を特定し、パターンデータ格納部に格納するステップと、
を含み、コンピュータにより実行させるテストパターン抽出方法。
(付記8)
テストパターンに対して検証対象により実行される処理の識別子を取得し、前記テストパターンに対応して前記処理の識別子をテスト結果データ格納部に格納する手段と、
前記テスト結果データ格納部に格納されており且つ前記処理の識別子が異なる前記テストパターン間で距離を算出し、前記処理の識別子の組毎に当該距離が所定の条件を満たす前記テストパターンの組を特定し、パターンデータ格納部に格納する手段と、
を有するテストパターン抽出装置。
実施の形態に係るテストパターン抽出装置の機能ブロック図である。 検証対象の関数F(x,y)の一例を示す図である。 関数Fの引数の値と処理種別の対応関係を示す図である。 テストパターンをランダムに生成した場合におけるテストパターンと処理種別の対応関係を模式的に示す図である。 実施の形態におけるメインの処理フローを示す図である。 テスト処理の処理フローを示す図である。 テスト結果格納部に格納されるデータの一例を示す図である。 選択すべきテストパターンペアを説明するための模式図である。 パターン選択処理の処理フローを示す図である。 パターン選択処理の処理フローを示す図である。 解集合データ格納部に格納されるデータの一例を示す図である。 第1パターン生成処理の処理フローを示す図である。 (a)及び(b)は、第2パターン生成処理を説明するための図である。 第2パターン生成処理の処理フローを示す図である。 第2パターン生成処理の内容を説明するための図である。 生成パターンデータ格納部に格納されるデータの一例を示す図である。 重み付けした距離の算出を説明するための図である。 コンピュータの機能ブロック図である。
符号の説明
1 テストパターン格納部 3 テスト実行部
7 テスト結果格納部 9 パターン選択部
11 解集合データ格納部 13 パターン生成部
15 生成パターンデータ格納部 17 出力部
51 検証対象

Claims (6)

  1. テストパターンに対して検証対象により実行される処理の識別子を取得し、前記テストパターンに対応して前記処理の識別子をテスト結果データ格納部に格納するステップと、
    前記テスト結果データ格納部に格納されており且つ前記処理の識別子が異なる前記テストパターン間で距離を算出し、前記処理の識別子の組毎に当該距離が所定の条件を満たす前記テストパターンの組を特定し、パターンデータ格納部に格納するステップと、
    をコンピュータに実行させるためのテストパターン抽出プログラム。
  2. 前記パターンデータ格納部に格納されている前記テストパターンの組から、距離がより短いテストパターンの組を生成し、生成パターンデータ格納部に格納する生成ステップ
    をさらに前記コンピュータに実行させるための請求項1記載のテストパターン抽出プログラム。
  3. 前記所定の条件が、前記テストパターン間の距離が前記処理の識別子の組について最小であり且つ所定の閾値未満であるという条件である
    請求項1記載のテストパターン抽出プログラム。
  4. 前記パターンデータ格納部には、前記テストパターンに対応して前記処理の識別子が登録されており、
    前記生成ステップが、
    第1及び第2のテストパターン間の中点の候補テストパターンを算出すると共に、当該候補テストパターンに対して前記検証対象により実行される処理の識別子を取得するステップと、
    前記候補テストパターンについての前記処理の識別子と、前記第1及び前記第2のテストパターンについての前記処理の識別子との異同を判断するステップと、
    前記候補テストパターンについての前記処理の識別子と前記第1のテストパターンについての前記処理の識別子とが一致する場合には、前記第1のテストパターンを前記候補テストパターンで置換して、前記第1及び第2のテストパターン間の第2の距離を算出するステップと、
    前記候補テストパターンについての前記処理の識別子と前記第2のテストパターンについての前記処理の識別子とが一致する場合には、前記第2のテストパターンを前記候補テストパターンで置換して、前記第1及び前記第2のテストパターン間の第2の距離を算出するステップと、
    前記第2の距離が第2の所定の閾値未満である場合には、前記第1及び第2のテストパターンを前記生成パターンデータ格納部に格納するステップと、
    を含む請求項2記載のテストパターン抽出プログラム。
  5. テストパターンに対して検証対象により実行される処理の識別子を取得し、前記テストパターンに対応して前記処理の識別子をテスト結果データ格納部に格納するステップと、
    前記テスト結果データ格納部に格納されており且つ前記処理の識別子が異なる前記テストパターン間で距離を算出し、前記処理の識別子の組毎に当該距離が所定の条件を満たす前記テストパターンの組を特定し、パターンデータ格納部に格納するステップと、
    を含み、コンピュータにより実行させるテストパターン抽出方法。
  6. テストパターンに対して検証対象により実行される処理の識別子を取得し、前記テストパターンに対応して前記処理の識別子をテスト結果データ格納部に格納する手段と、
    前記テスト結果データ格納部に格納されており且つ前記処理の識別子が異なる前記テストパターン間で距離を算出し、前記処理の識別子の組毎に当該距離が所定の条件を満たす前記テストパターンの組を特定し、パターンデータ格納部に格納する手段と、
    を有するテストパターン抽出装置。
JP2008163075A 2008-06-23 2008-06-23 パターン抽出プログラム、方法及び装置 Withdrawn JP2010002370A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008163075A JP2010002370A (ja) 2008-06-23 2008-06-23 パターン抽出プログラム、方法及び装置
US12/402,228 US20090319829A1 (en) 2008-06-23 2009-03-11 Pattern extraction method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008163075A JP2010002370A (ja) 2008-06-23 2008-06-23 パターン抽出プログラム、方法及び装置

Publications (1)

Publication Number Publication Date
JP2010002370A true JP2010002370A (ja) 2010-01-07

Family

ID=41432498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008163075A Withdrawn JP2010002370A (ja) 2008-06-23 2008-06-23 パターン抽出プログラム、方法及び装置

Country Status (2)

Country Link
US (1) US20090319829A1 (ja)
JP (1) JP2010002370A (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527813B2 (en) * 2011-12-19 2013-09-03 Siemens Aktiengesellschaft Dynamic reprioritization of test cases during test execution
US9501915B1 (en) 2014-07-07 2016-11-22 Google Inc. Systems and methods for analyzing a video stream
US9082018B1 (en) 2014-09-30 2015-07-14 Google Inc. Method and system for retroactively changing a display characteristic of event indicators on an event timeline
US10140827B2 (en) 2014-07-07 2018-11-27 Google Llc Method and system for processing motion event notifications
US20160246705A1 (en) * 2015-02-23 2016-08-25 International Business Machines Corporation Data fabrication based on test requirements
US9361011B1 (en) 2015-06-14 2016-06-07 Google Inc. Methods and systems for presenting multiple live video feeds in a user interface
WO2017102336A1 (en) * 2015-12-18 2017-06-22 Asml Netherlands B.V. Improvements in gauge pattern selection
US10506237B1 (en) 2016-05-27 2019-12-10 Google Llc Methods and devices for dynamic adaptation of encoding bitrate for video streaming
US10776728B1 (en) 2016-06-07 2020-09-15 The Nielsen Company (Us), Llc Methods, systems and apparatus for calibrating data using relaxed benchmark constraints
US10957171B2 (en) 2016-07-11 2021-03-23 Google Llc Methods and systems for providing event alerts
US10380429B2 (en) 2016-07-11 2019-08-13 Google Llc Methods and systems for person detection in a video feed
US10599950B2 (en) 2017-05-30 2020-03-24 Google Llc Systems and methods for person recognition data management
US11783010B2 (en) 2017-05-30 2023-10-10 Google Llc Systems and methods of person recognition in video streams
US11134227B2 (en) 2017-09-20 2021-09-28 Google Llc Systems and methods of presenting appropriate actions for responding to a visitor to a smart home environment
US10664688B2 (en) 2017-09-20 2020-05-26 Google Llc Systems and methods of detecting and responding to a visitor to a smart home environment
US11218398B2 (en) * 2019-10-29 2022-01-04 Amdocs Development Limited System, method, and computer program for closed loop management of a network
US11893795B2 (en) 2019-12-09 2024-02-06 Google Llc Interacting with visitors of a connected home environment

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58115490A (ja) * 1981-12-29 1983-07-09 日本電気株式会社 パタン間距離計算装置
US5835891A (en) * 1997-02-06 1998-11-10 Hewlett-Packard Company Device modeling using non-parametric statistical determination of boundary data vectors
US6178533B1 (en) * 1997-06-30 2001-01-23 Sun Microsystems, Inc. Method and system for design verification
US7114111B2 (en) * 1999-06-08 2006-09-26 Cadence Design (Isreal) Ii Ltd. Method and apparatus for maximizing test coverage
WO2001022228A1 (en) * 1999-09-17 2001-03-29 Nortel Networks Limited System and method for producing a verification system for verifying procedure interfaces
JP2001188691A (ja) * 1999-12-28 2001-07-10 Toshiba Corp 検証プログラム自動生成方法及び検証プログラム自動生成プログラムを記録したコンピュータ読み取り可能な記録媒体
US7028067B2 (en) * 2002-02-20 2006-04-11 International Business Machines Corporation Generation of mask-constrained floating-point addition and subtraction test cases, and method and system therefor
EP1480049A1 (en) * 2003-05-23 2004-11-24 Koninklijke Philips Electronics N.V. Automatic test pattern generation
US7571403B2 (en) * 2003-05-23 2009-08-04 Fujitsu Limited Circuit verification
US7555736B2 (en) * 2005-06-14 2009-06-30 Cadence Design Systems, Inc. Method and system for using pattern matching to process an integrated circuit design
US7331007B2 (en) * 2005-07-07 2008-02-12 International Business Machines Corporation Harnessing machine learning to improve the success rate of stimuli generation
US7503029B2 (en) * 2006-03-31 2009-03-10 Synopsys, Inc. Identifying layout regions susceptible to fabrication issues by using range patterns
US7617468B2 (en) * 2007-07-31 2009-11-10 Synopsys, Inc. Method for automatic maximization of coverage in constrained stimulus driven simulation

Also Published As

Publication number Publication date
US20090319829A1 (en) 2009-12-24

Similar Documents

Publication Publication Date Title
JP2010002370A (ja) パターン抽出プログラム、方法及び装置
US9536200B2 (en) Sentiment analysis of data logs
JP7517585B2 (ja) 解析機能付与装置、解析機能付与プログラム及び解析機能付与方法
CN111783812B (zh) 违禁图像识别方法、装置和计算机可读存储介质
CN111931179B (zh) 基于深度学习的云端恶意程序检测系统及方法
WO2019129060A1 (zh) 自动生成机器学习样本的特征的方法及系统
CN113590454B (zh) 测试方法、装置、计算机设备和存储介质
CN108509324B (zh) 选择计算平台的系统和方法
CN110347605B (zh) 防止软件退化的方法、装置、设备及存储介质
JP6901423B2 (ja) 情報処理装置、情報処理端末、及びプログラム
WO2018092237A1 (ja) プログラムコード生成装置、プログラムコード生成方法及びプログラムコード生成プログラム
CN117319091B (zh) 基于深度学习的企业软件网络安全漏洞检测方法及系统
US10372849B2 (en) Performing and communicating sheet metal simulations employing a combination of factors
JP2015176230A (ja) テストケース生成装置、方法、及びプログラム
CN107193636A (zh) 一种numa架构下沙箱环境内虚拟任务模拟方法及装置
JP6723483B2 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
JP6177649B2 (ja) データ処理装置、測長システム、欠陥検査システム、画像トラッキングシステム、及びデータ処理方法
CN118300280B (zh) 磁浮式安全电装置及状态检测方法
CN118865044A (zh) 混凝土孔内裂缝检测方法、装置、设备及存储介质
CN109726086A (zh) 测试服务器性能的方法和装置
CN118312435A (zh) 基于多元种子同步机制的并行模糊测试方法和相关设备
JP5755861B2 (ja) テストケース生成装置、テストケース生成方法およびテストケース生成プログラム
JP7298229B2 (ja) ログ分析装置、ログ分析方法及びコンピュータプログラム
KR102140714B1 (ko) 안드로이드 애플리케이션의 주요부분을 패턴화한 멀웨어 탐지 분류 방법 및 시스템
KR102903325B1 (ko) 소프트웨어 품질검사 항목을 자동으로 설정하기 위해 인공지능을 이용하여 품질검사 범위를 검출하는 방법, 컴퓨터 장치, 및 컴퓨터 프로그램

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110906