JP2010538401A - システムコールカバレッジ基準による試験スイート削減のための方法 - Google Patents

システムコールカバレッジ基準による試験スイート削減のための方法 Download PDF

Info

Publication number
JP2010538401A
JP2010538401A JP2010524182A JP2010524182A JP2010538401A JP 2010538401 A JP2010538401 A JP 2010538401A JP 2010524182 A JP2010524182 A JP 2010524182A JP 2010524182 A JP2010524182 A JP 2010524182A JP 2010538401 A JP2010538401 A JP 2010538401A
Authority
JP
Japan
Prior art keywords
test
system call
suite
fsm
model
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.)
Granted
Application number
JP2010524182A
Other languages
English (en)
Other versions
JP5430570B2 (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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Publication of JP2010538401A publication Critical patent/JP2010538401A/ja
Application granted granted Critical
Publication of JP5430570B2 publication Critical patent/JP5430570B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis

Landscapes

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

Abstract

【課題】システムコールカバレッジ基準による試験スイート削減のための優れた方法を得る。
【解決手段】試験事例が試験スイートの中に含められるべきかどうかを判定するための方法及び装置が、本明細書で開示される。一実施形態において、方法は、ソフトウェアアプリケーション試験の実行中に、ある試験事例の試験入力を使用してアプリケーションを実行すること、及び試験スイートの中の他の試験事例の実行から生成された観察可能なイベントのFSM(有限状態マシン)モデルを使用して、アプリケーションの将来の試験での使用のため当該試験事例を試験スイートの中に含めるかどうかを判定することを含む。
【選択図】なし

Description

本発明は、ソフトウェアテストにおける試験スイート削減の分野に関し、より詳細には、本発明は、観察可能なイベントに基づくカバレッジ基準を使用して、試験スイートにおける試験事例の数を減らすことに関する。
(優先権)
本特許出願は、2007年9月7日に出願した「Method for Better Test Suite Reduction Through System Call Coverage Criterion」という名称の対応する米国特許仮出願第60/970831号明細書の優先権を主張し、第60/970831号明細書を参照によって組み込む。
ソフトウェア試験は、開発サイクルの早期に障害を検出することを担い、ソフトウェア開発リソースの非常に大きい部分を消費する。ソフトウェア開発における大量のリソースが、ソフトウェアを検証すること、及び試験することに費やされる。ソフトウェア開発者及びソフトウェア試験者は、手作業で、又はランダムな試験技法若しくは他の体系的な探査技法を使用して、多数の試験事例を生成する。ますます多くの試験事例が、ソフトウェア開発ライフサイクルの様々な時点で追加されるにつれ、試験スイートのサイズは、相当に増大する可能性がある。
試験スイートを減らすこと、又は試験スイートに優先順位を付けることが、試験リソースを最大限に活用するのに、しばしば、必要である。試験スイート削減は、すべての試験事例ではなく、障害を明らかにする重要な試験事例に焦点を合わせることによって、試験リソースをよりうまく利用することに役立つソフトウェア保守活動の一部である。大きい試験スイートは、より小さい試験スイートに切り詰められ、したがって、開発者によるソフトウェアの頻繁な更新を試験するように、開発者は、そのより小さい試験スイートを、より頻繁に使用することができ(スモーク試験と呼ばれる)、その一方で、すべての試験事例を有する、より大きい試験スイートは、毎週、又は隔週に実行されて(夜間試験と呼ばれる)、生産性を向上させる。試験スイート削減は、通常、何らかのカバレッジ基準を使用して行われる。試験の世界においては、カバレッジ基準は、実行されている試験の量を測定するとともに、試験プロセスを導く定量的メトリックとして、通常、使用される。カバレッジ基準は、通常、ソースコードの人為結果に関して定義される。例えば、ステートメントカバレッジは、試験中のアプリケーションの各ステートメントが、試験スイートの中の少なくとも1つの試験事例によってカバーされる(つまり、実行される)ことを要求する。アプリケーションは、試験スイートが、ある基準に関して完全である場合、その基準に従って100%カバーされているものと考えられる。カバレッジ基準の別の例が、端部カバレッジ基準である。この場合、アプリケーションソフトウェアの制御フローグラフの各端部が、試験スイートの中の少なくとも1つの試験事例によって実行されることが要求される。
カバレッジ基準は、一般に、試験事例生成を導くのに使用されるが、試験スイート削減の二重の問題においても使用される。しばしば、試験事例は、いずれのカバレッジ基準に従っても生成されない。例えば、バグが識別され、修正される場合、多くの試験事例が追加される。また、試験スイート全体が、ランダムに生成されていることも可能である。カバレッジ基準が使用される場合でさえ、そのカバレッジ基準が、手に負えない数の試験事例(パスカバレッジ)を生成することが可能である。これらの事例のそれぞれにおいて、試験スイートは、削減又は優先順位付けを必要とする可能性がある。
試験スイート削減は、あるカバレッジ基準に従って所与の試験スイートを削減することに焦点を合わせる。例えば、ステートメントカバレッジ基準に従って試験スイートを削減することは、試験スイートの中の他の試験事例によって既に実行されているステートメントを実行する試験事例を除外することを暗示する。このプロセスは、既存の試験スイートから始まるので、カバレッジ基準に関して完全である試験スイートをもたらさない可能性がある。試験スイートが、カバレッジ基準を使用して既に生成されている場合、試験スイート削減は、より少ない数の試験事例につながる可能性がある別のカバレッジ基準を使用して実行されることが可能である。
試験スイート削減技法は、異なる2つのタイプに分類されることが可能である。第1のタイプの試験スイート削減技法は、ソースコードを要求し、更に/又はソースコードの大がかりな計装を実行する。第2のタイプの試験スイート削減技法は、バイナリに直接に作用し、ほとんど又は全く計装を要求しない。
ソース計装を多用した試験スイート最小化のための以前のアプローチのいくつかが、存在する。1つの以前のアプローチは、全使用カバレッジ基準を使用して、試験スイートを最小限に抑える。全使用カバレッジ基準は、プログラムにおける各変数定義、及び各変数定義のすべての使用が、試験スイートの中の少なくとも1つの試験事例によってカバーされることを要求する。全使用カバレッジ基準を使用することによって、障害検出能力の低減は、ほとんどない。しかし、変数定義、及び変数定義の使用を常に把握しておくことは、ソースコードの大がかりな計装を要求する。
別のアプローチにおいて、端部カバレッジ基準が、試験事例を最小限に抑える基準として使用される。この基準は、試験中のアプリケーションの制御フローグラフのすべての端部が、少なくとも1つの試験事例によってカバーされなければならないことを要求する。端部カバレッジ基準を使用することによって、試験スイートサイズの低減は、障害検出能力の大幅な低減によって相殺された。しかし、この技法は、各制御フロー端部がたどられる際に、各制御フロー端部を記録するようにソースコードを計装することを要求する。
別のアプローチは、プログラム実行を介して観察される動的不変要素を使用して(動作抽象化と呼ばれる)、試験スイートを最小限に抑える。各試験に関して、動作抽象化及び検査が計算されて、その試験が現在の動作抽象化を変化させるかどうかが調べられる。変化させる場合、現在の動作抽象化は、その新たな情報で更新され、その試験は、その最小化された試験スイートの中に保持される。そうではなく、その試験が、現在の動作抽象化を変化させない場合、その試験事例は、破棄される。このアプローチにおける不変要素は、オンプログラム変数、並びに他の変数若しくは定数に対する、これらの変数の関係である。これらの不変要素を計算することは、ほとんどのプログラム変数、及びこれらの変数の使用に対する計装を要求する。したがって、このアプローチは遅い。
他の試験スイート削減技法は、バイナリに作用する。1つのそのようなアプローチは、バイナリに直接に作用し、試験中のアプリケーションのソースを要求しないコールスタックベースの試験スイート削減アプローチであった。定義によるコールスタックは、プログラム実行の任意の時点におけるスタック上の関数コールのシーケンスである。このアプローチは、スイート削減のためのカバレッジ基準として試験事例によって生成される最大深度コールスタック(他のいずれの関数も呼び出さないリーフ関数に関して観察されるコールスタック)のセットを使用する。試験事例によって生成された最大深度コールスタックのセットが、以前の試験事例によって生成された最大深度コールスタックのサブセットである場合、その試験事例は、冗長であると考えられ、破棄される。
試験事例が試験スイートに含められるべきかどうかを判定するための方法及び装置が、本明細書で開示される。一実施形態において、方法は、ソフトウェアアプリケーション試験の実行中に、ある試験事例の試験入力を使用してアプリケーションを実行すること、及び試験スイートの中の他の試験事例の実行から生成された観察可能なイベントのFSM(有限状態マシン)モデルを使用して、アプリケーションの将来の試験における使用のために、その試験事例を試験スイートの中に含めるかどうかを判定することを含む。
本発明は、後段で与えられる詳細な説明、及び本発明の様々な実施形態の添付の図面から、より完全に理解されるが、このことは、本発明を、それらの特定の実施形態に限定するものとして解釈されるべきではなく、単に説明及び理解だけを目的としている。
試験スイート削減プロセスの一実施形態を示す流れ図である。 試験スイート削減プロセスの別の実施形態を示す流れ図である。 コードスニペットを示す図である。 試験入力に対して実行される図3の例示的なスニペットに関して構築されたシステムコールFSM(有限状態マシン)モデルを示す図である。 ソフトウェア試験環境を示すブロック図である。 コンピュータシステムの一実施形態を示すブロック図である。
ソフトウェア試験スイートを削減するための方法及び装置が、開示される。一実施形態において、ソフトウェア試験スイートは、障害を検出する能力の多くを失うことなしに削減される。一実施形態では、外部から観察可能なイベント(例えば、システムコール)が追跡されて、ソースを要求することなく、計装も全く要求することなしに、ソフトウェア試験スイートを削減するプロセスが制御される。一実施形態において、計装を全く要求することなしに、アプリケーションによって成されたシステムコールトレースを使用して、試験中のプログラムのカバレッジが測定される。システムコールは、入力/出力を多用するアプリケーションに関するアプリケーションの振舞いを正確にモデル化する。
一実施形態において、本明細書で説明される試験スイート削減技法は、システムコールシーケンスを観察することによって、試験中のアプリケーションのモデルを構築することを含む。構築されたシステムコールモデルを更新しない試験事例は、冗長であると考えられ、除外される。システムコールのいくつかの既存のモデルが、試験スイート削減のために有効に使用されることが可能である。一実施形態において、FSM(有限状態マシン)モデルが、プログラムカウンタを状態とし、更にシステムコールを遷移として使用される。
以下の説明において、本発明のより徹底的な説明を与える多数の詳細が、示される。しかし、本発明は、これらの特定の詳細なしに実施されてもよいことが当業者には明白であろう。その他、よく知られた構造及びデバイスは、本発明を不明瞭にするのを避けるため、詳細にではなく、ブロック図形態で示される。
以下の詳細な説明のいくつかの部分は、コンピュータメモリ内部のデータビットに対する操作のアルゴリズム及び記号表現の点で提示される。これらのアルゴリズム記述及びアルゴリズム表現は、データ処理技術分野の業者によって、他の当業者に自らの作業の内容を最も効果的に伝えるのに使用される手段である。アルゴリズムは、この場合、更に一般的にも、所望される結果につながるステップの自己矛盾のないシーケンスであると考えられる。これらのステップは、物理量の物理的操作を要求するステップである。通常、ただし、必然的にではないが、これらの量は、格納される、転送される、組み合わされる、比較される、更にそれ以外で操作されることが可能な電気信号又は磁気信号の形態をとる。ときとして、主に一般的な用法の理由で、これらの信号をビット、値、要素、シンボル、文字、項、数などと呼ぶことが好都合であることが判明している。しかし、これら、及び類似する用語のすべては、適切な物理量に関連付けられるべきであり、これらの量に適用された便利なラベルに過ぎないことに留意されたい。以下の説明から明白なとおり、特に明記しない限り、説明の全体にわたって、「処理すること」、又は「演算すること」、又は「計算すること」、又は「判定すること」、又は「表示すること」などの用語を利用する説明は、コンピュータシステムのレジスタ及びメモリの内部の物理(電子的)量として表されるデータを操作して、コンピュータシステムメモリ若しくはコンピュータシステムレジスタ、或いは他のそのような情報格納デバイス、情報伝送デバイス、又は情報表示デバイスの内部の物理量として同様に表される他のデータに変換する、コンピュータシステム、又は類似した電子コンピューティングデバイスのアクション及びプロセスを指すものと理解される。
また、本発明は、本明細書の動作を実行するための装置にも関する。この装置は、要求される目的で特別に構築されることが可能であり、或いはコンピュータの中に格納されたコンピュータプログラムによって選択的に活性化される、又は再構成される汎用コンピュータを備えることが可能である。そのようなコンピュータプログラムは、フレキシブルディスク、光ディスク、CD‐ROM、及び光磁気ディスクを含む任意のタイプのディスク、ROM(読み取り専用メモリ)、RAM(ランダムアクセスメモリ)、EPROM、EEPROM、磁気カード又は光カード、或いは電子命令を格納するのに適した任意のタイプの媒体などの、ただし、以上には限定されない、更にそれぞれがコンピュータシステムバスに結合されたコンピュータ可読記憶媒体の中に格納されることが可能である。
本明細書で提示されるアルゴリズム及び表示は、いずれの特定のコンピュータ、又は他の装置とも本来的に関係しない。様々な汎用システムが、本明細書の教示によるプログラムと一緒に使用されることが可能であり、或いは要求される方法ステップを実行する、より特化した装置を構築することが好都合であると判明する可能性もある。様々なこれらのシステムに関する要求される構造は、以下の説明から明白となろう。更に、本発明は、いずれの特定のプログラミング言語に関連しても説明されない。様々なプログラミング言語が、本明細書で説明されるとおり、本発明の教示を実施するのに使用されることが可能であることが理解されよう。マシン可読媒体は、マシン(例えば、コンピュータ)によって読み取り可能な形態で情報を格納するため、又は伝送するための任意の機構を含む。例えば、マシン可読媒体は、読み取り専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイスなどを含む。
概略
試験スイート削減を実行するのに、本発明の一実施形態は、試験事例に対して実行された際のプログラムの実行からのシステムコールトレースを獲得し、後でこれらのトレースを試験スイート削減のために使用する。例えば、プログラムが、ある試験事例に対して実行された際に、すべて以前に観察されている人為結果を生成した場合、その試験事例は、冗長であると考えられる。システムコールトレースは、いずれのアプリケーションにおけるI/O(入出力)操作もシステムコールを介して行われるため、試験スイート削減のための人為結果の正確なセットとして使用される。このため、システムコールトレースを捕捉することにより、プログラムのI/Oの振舞いの良好な近似がもたらされる。一実施形態において、プログラムの計算上の態様は、システムコール単独によっては捕捉されない。
ときとして、アプリケーションから直接にシステムコールトレースを使用することは、あまり利益をもたらさない可能性がある。例えば、ある試験事例が、あるシステムコールで、あるループをn回、呼び出し、別の試験事例が、同一のループをn+1回、呼び出す場合、この2つの試験事例に関するシステムコールトレースは、異なり、削減は、全く可能でない。更に、プログラムにおけるループのため、システムコールトレースは、しばしば、長く、処理に関して手に負えない量のデータにつながる可能性がある。したがって、一実施形態では、システムコールトレースを分類するモデルが、使用された。一実施形態では、FSM(有限状態マシン)モデルが、使用される。一実施形態において、使用されるFSMモデルは、Sekar及び他、「A Fast Automaton‐based Method for Detecting Anomalous Program Behaviours」、Proceedings of the 2001 IEEE Symposium on Security and Privacy、2001年、144〜155ページにおいて説明される。しかし、システムコールをモデル化するための他のアプローチが、使用されることも可能である。
図1は、試験スイート削減プロセスの一実施形態の流れ図である。このプロセスは、ハードウェア(回路、専用ロジックなど)、ソフトウェア(汎用コンピュータシステム又は専用桟などの上で実行されるような)、或いはハードウェアとソフトウェアの組み合わせを備えることが可能な処理ロジックによって実行される。
図1を参照すると、プロセスは、処理ロジックが、アプリケーションの実行中に観察された、観察されたイベントのFSM(有限状態マシン)モデルを構築することから始まる(処理ブロック101)。このモデルは、カバレッジ基準として使用される。一実施形態において、観察されるイベントは、システムコールを含む。一実施形態において、FSMモデルにおける状態は、試験事例におけるシステムコールのプログラムカウンタ値を表し、更にFSMモデルにおける遷移は、システムコールを表す。
次に、処理ロジックは、ソフトウェアアプリケーション試験を実行している間に、ある試験事例の試験入力を使用してアプリケーションを実行する(処理ブロック102)。
試験スイートの中の他の試験事例の実行からの観察されたイベントに基づくカバレッジ基準を使用して、処理ロジックは、アプリケーションの将来の試験において使用するために、その試験事例を試験スイートに追加すべきかどうかを判定する(処理ブロック103)。
その試験事例が追加されるべき場合、処理ロジックは、少なくとも1つの更なる遷移又は状態がFSMモデルに以前に入っていなかった場合、その少なくとも1つの更なる遷移又は状態を含むようにFSMモデルを更新する(処理ブロック104)。処理ロジックが、その試験事例を冗長であると識別した場合(その試験事例の振舞いが、カバレッジ基準によって示されるところにより、以前に観察されている場合)、処理ロジックは、その試験事例を試験スイートから除去する(処理ブロック105)。
次に、処理ロジックは、検査すべき更なる試験事例が存在するかどうかを判定する(処理ブロック106)。存在する場合、プロセスは、プロセスが繰り返される処理ブロック102に遷移する。存在しない場合、プロセスは、終了する。
図2は、試験スイート削減プロセスの別の実施形態の流れ図である。このプロセスは、ハードウェア(回路、専用ロジックなど)、ソフトウェア(汎用コンピュータシステム又は専用桟などの上で実行されるような)、或いはハードウェアとソフトウェアの組み合わせを備えることが可能な処理ロジックによって実行される。
図2を参照すると、プロセスは、処理ロジックが、試験中のソフトウェアアプリケーションのシステムコールカバレッジの表現を保持することから始まる(処理ブロック201)。この表現は、アプリケーション上で実行される試験スイートの中の1つ又は複数の試験事例のセットからの1つ又は複数のシステムコールトレースに基づいて、生成される。一実施形態において、この表現は、試験スイートの中の試験事例の実行中に生じたシステムコールシーケンスを観察することによって構築されたアプリケーションのモデルを含む。一実施形態において、このモデルは、FSM(有限状態マシン)モデルを含む。一実施形態において、システムコールシーケンスは、アプリケーションのI/O(入出力)特性を捕捉する。
この表現(例えば、FSMモデル)を保持しながら、処理ロジックは、更なる試験事例の試験入力を使用してアプリケーションを実行し(処理ブロック202)、更にこれらの試験入力を使用してアプリケーションを実行している間に、その更なる試験事例に関連する少なくとも1つのシステムコールシーケンスをログ記録する(処理ブロック203)。システムコールシーケンスは、1つ又は複数のシステムコールを有する。
システムコールシーケンス(複数可)をログ記録した後、処理ロジックは、実行された更なる試験事例のシステムコールシーケンスにおける観察されたシステムコールで更新された場合に、システムコールカバレッジの表現が変化するかどうかに基づいて、その更なる試験事例を試験スイートの中に含めるべきかどうかを評価する(処理ブロック204)。
1つの実例において、処理ロジックは、更なる試験事例に関連する1つ又は複数のシステムコールで更新された場合に、アプリケーションに関するシステムコールカバレッジの表現に全く変化が生じない場合、その更なる試験事例が試験スイートの中に含められることを防止する(処理ブロック205)。
別の実例において、処理ロジックは、状態又は遷移が表現(例えば、FSMモデル)の中に以前に含められていなかった場合、更なる試験事例の実行に応答して、その状態又は遷移を追加するようにその表現を更新する(処理ブロック206)。
例示
これらの技法は、例を使用して説明することが可能である。図3は、コードスニペットを示す。図3を参照すると、コードスニペットは、L1でオープンシステムコールを行い、ループにおいてファイルからの読み取り、又はファイルへの書き込みを行い、最後にL4でファイルを閉じる。コードスニペット上でソフトウェア試験を実行している際、FSM(有限状態マシン)モデル構築アルゴリズムが、FSMモデルを構築するのに使用される。一実施形態において、FSMモデル構築アルゴリズムは、参照により本明細書に組み込まれている、Sekar及び他、「A Fast Automaton‐based Method for Detecting Anomalous Program Behaviours」、Proceedings of the 2001 IEEE Symposium on Security and Privacy、2001年、144〜155ページにおいて説明されるアルゴリズムである。FSMモデル構築アルゴリズムは、プログラム実行中に観察されたシステムコールトレースからFSMを構築する。そのような事例において、プログラムカウンタが、FSMに関する状態として使用され、更にシステムコールが、FSMに関する遷移として使用される。
一実施形態において、構築アルゴリズム自体は、相当に単純明快である。試験を実行しているシステムは、システムコールのたびにプログラムを停止し、FSMを構築するための以下に説明されるFSM構築手順を使用する。一実施形態において、この手順は、システムコールが行われた際に、プログラムカウンタ値をシステムコール番号と一緒に取り込む。本明細書に関して、previous_pcは、FSMが置かれていた前の状態(プログラムカウンタ値)を保持するグローバル変数であり、更にAddTransition(pc1,pc2,syscall)手順は、pc1からpc2への遷移をシステムコールと一緒に、遷移としてFSMに追加する。
previous_pc= 0; /* init state */
ConstructFSM(unsignedProgramCounter, unsigned
SysCall){
AddTransition(previous_pc, ProgramCounter,
SysCall);
previous_pc = ProgramCounter;
}
FSM構築アルゴリズム動作を説明するのに、実行例のための4つの試験事例から成る試験スイートを考慮されたい。このコードスニペットに関する4つの試験事例に関して生成されるシステムコールは、以下の表に示されるとおりであるものと想定されたい。第1の試験事例、Test1が、ファイルを開き、ファイルから2回読み取り(ループのため)、その後、ファイルを閉じる。Test2が、ファイルを開き、ファイルに2回書き込み、その後、ファイルを閉じる。Test3が、ファイルを開き、ファイルから2回読み取り、その後、ファイルを閉じる。Test4が、ファイルを開き、ファイルから3回読み取り、その後、ファイルを閉じる。
Figure 2010538401
第1の試験事例に関して、この試験事例は、L1で、プログラムポイントを開き、L2で、プログラムポイントを読み取り(2回)、その後、L4で、クローズシステムコールを行うことに注目されたい。システムコールトレース及びプログラムカウンタ値を観察することによってソフトウェア試験システムによって構築されるFSMが、図4に埋め込まれている。Test2から、既存のFSMは、L1からL3へ、L3からL4へ、更にL3からL3自らへの新たな遷移を追加することによって更新される。このため、試験事例test1及びtest2を使用することによって、図4に示される完全なFSMが得られることが可能である。試験事例、test3及びtest4は、FSMにおいて新たな遷移を全くもたらさないことに留意されたい。
一実施形態において、試験スイート削減アルゴリズムは、前述したFSM構築アルゴリズムの拡張である。試験スイート削減を実行するため、以前の試験事例を使用して構築された現在のFSMが、保持される。一実施形態において、現在のFSMは、メモリの中に格納されることが可能であり、更にソフトウェア試験システムによってアクセス可能であり得る。それぞれの新たな試験事例に関して、プログラムは、その新たな試験事例に関連する試験入力に対して実行され、FSMの更新が試みられる。FSMの更新が存在しない(すなわち、新たな遷移又は新たな状態が全く追加されない)場合、その試験事例は、冗長であるという印を付けられる。この説明は、以下のステップとして要約されることが可能である。すなわち、
CurrentFMS:=φ
試験スイートの中の各試験事例に関して、
その試験入力に対してプログラムを実行し、
FSM構築アルゴリズムを使用して現在のFSMを更新し、更に、
更新が存在しない場合、その試験事例に冗長であるという印を付ける。
前述の例の場合、試験スイートが、試験事例、test1、test2、test3、及びtest4をこの順序で有していたと想定すると、試験事例、test3及びtest4は、図4に示されるとおり、FSMに全く更新を行わないので、冗長であるという印を付けられる。
以上に説明された試験スイート削減アルゴリズムは、一実施形態に過ぎず、その試験スイートの中でまず分析される試験事例寄りのバイアスを示す。一実施形態において、初めの試験スイート寄りのバイアスは、試験スイートから試験事例をランダムに選択することによって解消される。生成された試験スイートをカバーすることができる試験事例の、より最適に近いセットを得ることは、NP完全問題である。
一実施形態において、削減アルゴリズムは、Linux(Ubuntu、Kernel 2.6)において実施され、システムコールインターセプトのためにetraceパッケージが使用される。etraceパッケージについての更なる情報に関しては、Jain及びSeker、「User‐Level Infrastructure for System Call Interposition:A Platform for Intrusion Detection and Confinement」、ISOC Network and Distributed System Security、1999年、19〜24ページ掲載を参照されたい。etraceパッケージは、システムコールインターセプトのためにptrace機構を使用し、各システムコール後にプログラムを停止する。このことは、システムコールのタイプに関する情報、及びプログラムカウンタ値が収集されることを可能にする。このタイプのシステムコールインターセプト/割り込みは、割り込みが、異なるプロセスによってユーザレベルで行われるので、ユーザレベルシステムコール割り込みと呼ばれる。別の実施形態において、割り込みは、カーネルレベルモジュールを使用してカーネルレベルで実行される。この割り込みは、Fraser及び他、「Hardening COTS Software with Generic Software Wrappers」、IEEE Sym.on Security and Privacy、1999年、2〜16ページにおいて説明される技法を使用して実施されることが可能である。カーネルオプションは、コンテキスト切り換えが存在しないため、ランタイムオーバーヘッドがより少ないが、ユーザレベルシステムコール割り込みの方が、実施すること、及びデバッグすることが容易である。
他の実施形態において、ウインドウズ(Windows)(登録商標)、MacOS(登録商標)、BSD(登録商標)のようなオペレーティングシステムはすべて、使用されることが可能なシステムコール(又は均等物)を有する。これらのオペレーティングシステムのすべてに関するシステムコールインターセプトツール/機構は、よく知られており、入手可能である。
プログラムは、ほとんど必ず、ライブラリ(例えば、標準のCライブラリなど)からシステムコールを行う。プログラムカウンタ値が、システムコールの時点で、FSMにおける状態として使用される場合、FSMは、プログラムの振舞いではなく、ライブラリの振舞いを表す。この問題を解決するのに、まず、プログラムテキストに関する可能なアドレスのリストが、バイナリを静的に分析することによって記録される。何らかのシステムコールをインターセプトした後、スタックの一番上のリターンアドレスが検査されて、そのアドレスが、記録されたプログラムテキストに属するかどうかが調べられる。そのリターンアドレスが、記録されたプログラムテキストではない場合、スタックフレームを走査して、現在の関数の呼び出し元のリターンアドレスが探し出される。このプロセスは、プログラムテキストに属するリターンアドレスにヒットするまで繰り返され、更にそのアドレスが、FSMにおけるプログラムカウンタとして使用される。
前述したとおり、一実施形態において、データ値は、考慮されない。このことは、一部の計算上の誤りが、削減された試験スイートによって捕捉されないことを意味する可能性がある。システムコール引数やシステムコールリターン値のような少なくともいくつかのデータ値を考慮に入れるシステムコールモデルの精度を高めることによって、削減されたスイートは、より多くの計算上の誤りを捕捉することができる可能性がある。一実施形態において、そのようなコンテキスト情報が、試験スイート削減プロセスにおいて使用される。一実施形態において、コンテキスト情報は、システムコールが、侵入検出構築(例えば、Feng及び他、「Anomaly Detection Using Call Stack Information」、2003年に記載されるとおりのプッシュダウンオートマトン、Bhathar及び他、「Dataflow Anomaly Detection」、IEEE Sym.on Security and Privacy、カリフォルニア州オークランド、2006年5月に記載されるデータフロー)のコンテキストに含められているのと同一の仕方で、FSMモデルにおいて使用される。このため、一実施形態において、FSMモデルは、これらのより正確なモデルのいずれかを捕捉するとともに、より良好な試験スイート削減を実現するように拡張される。
試験環境の一実施形態
図5は、試験環境の一実施形態のブロック図である。図5を参照すると、テスタ501が、メモリ502に結合されるのが示される。テスタ501は、メモリ502の中に格納された新たな試験事例510を使用して試験されるソフトウェアであるアプリケーション520を実行する。また、メモリ502は、試験スイート及びFSMモデル512を格納する試験スイートフォルダ511も格納する。新たな試験事例510は、試験スイートフォルダ511の中の試験の1つであることが可能であることに留意されたい。また、1つだけしかメモリが示されていないものの、メモリ502は、複数のメモリを表すことが可能であることにも留意されたい。
テスタ501が、新たな試験事例510からの試験入力を使用してアプリケーション520を試験する一方で、システムコールのロガー503が、外部から観察可能なイベントをメモリの中にログ記録する。メモリは、ロガー503の一部であることも、ロガー503の外部のメモリ(例えば、メモリ502)であることも可能である。一実施形態において、外部から観察可能なイベントは、システムコールを含み、更にロガー503は、システムコールに関連するプログラムカウンタ値、及びシステムコール自体をログ記録する。
モデルチェッカ/アップデータ504が、メモリ502にアクセスして、FSMモデルファイル512を獲得し、更に、新たな試験事例510を使用したアプリケーション520の実行からのログ記録された情報に基づいて、FSMモデルファイル512を更新しようと試みる。モデルチェッカ/アップデータ504が、FSMモデルファイル512の更新が、ロガー503によってログ記録された、外部から観察されるイベント情報に関して全く生じないと判定した場合、モデルチェッカ/アップデータ504は、新たな試験事例510が試験スイート511の中に含められることを防止する試験状態更新機構505に通知する。そのような場合、一実施形態において、試験状態更新機構505は、新たな試験事例510が、試験スイートフィルタ511の中に格納された試験スイートに追加されないようにする。別の実施形態において、そのような場合、試験状態更新機構505は、新たな試験事例510が、試験スイートフォルダ511の中に格納された試験スイートから除去されるようにする。
モデルチェッカ/アップデータ504が、FSMモデルファイル512の更新が、ロガー503によってログ記録された、外部から観察されるイベント情報に関して生じると判定した(例えば、ログ記録された情報が、新たな状態、又は新たな遷移がFSMモデルファイル512に追加されることを示す)場合、モデルチェッカ/アップデータ504は、このことを試験状態更新機構505に通知する。そのような場合、一実施形態において、試験状態更新機構505は、新たな試験事例510が、試験スイートフォルダ511の中に格納された試験スイートに追加されるようにする。別の実施形態において、そのような場合、試験状態更新機構505は、新たな試験事例510が、試験スイートフォルダ511の中に格納された試験スイートの中に留まるようにする。やはりそのような場合に、モデルチェッカ/アップデータ504は、FSMモデルファイル512を更新し、FSMモデルファイル512の更新されたバージョンをメモリ502の中に再び格納する。
コンピュータシステムの例
図6は、本明細書で説明される動作の1つ又は複数を実行することができる例示的なコンピュータシステムのブロック図である。図6を参照すると、コンピュータシステム600が、例示的なクライアントコンピュータシステム又はサーバコンピュータシステムを備えることが可能である。コンピュータシステム600は、情報を通信するための通信機構又は通信バス611と、情報を処理するためにバス611に結合されたプロセッサ612とを備える。プロセッサ612は、例えば、ペンティアム(Pentium)(登録商標)、PowerPC(登録商標)、Alpha(登録商標)などのマイクロプロセッサを含むが、マイクロプロセッサには限定されない。
システム600は、プロセッサ612によって実行されるべき情報及び命令を格納するためにバス611に結合されたRAM(ランダムアクセスメモリ)、又は他の動的ストレージデバイス604(メインメモリと呼ばれる)を更に備える。また、メインメモリ604は、プロセッサ612による命令の実行中に一時的な変数又は他の中間情報を格納するために使用されることも可能である。
また、コンピュータシステム600は、プロセッサ612のために静的情報及び命令を格納するためにバス611に結合されたROM(読み取り専用メモリ)、及び/又は他の静的ストレージデバイス606と、磁気ディスク又は光ディスク、及び対応するディスクドライブなどのデータストレージデバイス607とを備える。データストレージデバイス607は、情報及び命令を格納するためにバス611に結合される。
コンピュータシステム600は、コンピュータユーザに情報を表示するためにバス611に結合された、CRT(陰極線管)又はLCD(液晶ディスプレイ)などのディスプレイデバイス621に更に結合されることが可能である。また、英数字キー及び他のキーを含む英数字入力デバイス622が、情報及びコマンド選択をプロセッサ612に伝えるためにバス611に結合されることも可能である。更なるユーザ入力デバイスは、方向情報及びコマンド選択をプロセッサ612に伝えるため、及びディスプレイ612上のカーソルの動きを制御するためにバス611に結合された、マウス、トラックボール、トラックパッド、スタイラス、又はカーソル方向キーなどのカーソルコントロール623である。
バス611に結合されることが可能な別のデバイスは、紙、フィルム、又は類似したタイプの媒体などの媒体の上に情報を印すために使用されることが可能なハードコピーデバイス624である。バス611に結合されることが可能な別のデバイスは、電話機又はハンドヘルドパームデバイスに通信する有線/無線通信機能625である。システム600の構成要素のいずれか、又はすべて、及び関連するハードウェアが、本発明において使用されることが可能であることに留意されたい。しかし、コンピュータシステムの他の構成は、これらのデバイスの一部又は全部を含むことが可能であることが理解され得る。
以上の説明を読んだ後、本発明の多数の変更及び変形が、間違いなく、当業者には明白となるが、例として図示され、説明されるいずれの特定の実施形態も、全く限定するものではないことを理解されたい。したがって、様々な実施形態の詳細について述べたことは、特許請求の範囲を限定することを意図しておらず、特許請求の範囲自体は、本発明に不可欠と見なされる特徴だけを記載する。

Claims (3)

  1. ソフトウェアアプリケーション試験の実行中に、ある試験事例の試験入力を使用してアプリケーションを実行するステップと、
    試験スイートの中の他の試験事例の実行から生成された観察可能なイベントのFSM(有限状態マシン)モデルを使用して、前記アプリケーションの将来の試験での使用のため前記試験事例を前記試験スイートの中に含めるかどうかを判定するステップと、
    を含む方法。
  2. 試験中のソフトウェアアプリケーションのシステムコールカバレッジのモデルを保持するステップであって、前記モデルが、前記アプリケーション上で実行された試験スイートの中の1つ又は複数の試験事例の実行中に生じたシステムコールシーケンスの観察に基づいて生成される、当該ステップと、
    更なる試験事例の試験入力を使用して前記アプリケーションを実行するステップと、
    前記更なる試験事例の実行中に観察された前記更なる試験事例の前記システムコールシーケンスにおける1つ又は複数のシステムコールで更新が行われた場合に、前記システムコールカバレッジの前記モデルが変化するかどうかに基づいて、前記試験スイートの中に前記更なる試験事例を含めることを評価するステップと、
    を含む方法。
  3. 複数の命令を格納する1つ又は複数のコンピュータ可読記憶媒体を有する製造品であって、
    前記複数の命令がシステムによって実行されたときに、前記システムが、
    ソフトウェアアプリケーション試験の実行中に、ある試験事例の試験入力を使用してアプリケーションを実行するステップと、
    試験スイートの中の他の試験事例の実行から生成された観察可能なイベントのFSM(有限状態マシン)モデルを使用して、前記アプリケーションの将来の試験での使用のため前記試験事例を前記試験スイートの中に含めるかどうかを判定するステップと、
    を含む方法、
    を実行する、前記製造品。
JP2010524182A 2007-09-07 2008-09-05 システムコールカバレッジ基準による試験スイート削減のための方法 Expired - Fee Related JP5430570B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US97083107P 2007-09-07 2007-09-07
US60/970,831 2007-09-07
US12/204,654 US20090070746A1 (en) 2007-09-07 2008-09-04 Method for test suite reduction through system call coverage criterion
US12/204,654 2008-09-04
PCT/US2008/075402 WO2009033023A2 (en) 2007-09-07 2008-09-05 A method for test suite reduction through system call coverage criterion

Publications (2)

Publication Number Publication Date
JP2010538401A true JP2010538401A (ja) 2010-12-09
JP5430570B2 JP5430570B2 (ja) 2014-03-05

Family

ID=40429713

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010524182A Expired - Fee Related JP5430570B2 (ja) 2007-09-07 2008-09-05 システムコールカバレッジ基準による試験スイート削減のための方法

Country Status (4)

Country Link
US (1) US20090070746A1 (ja)
EP (1) EP2186006A2 (ja)
JP (1) JP5430570B2 (ja)
WO (1) WO2009033023A2 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8108826B2 (en) * 2004-09-29 2012-01-31 Avaya Inc. Code-coverage guided prioritized test generation
US8194760B2 (en) 2006-06-01 2012-06-05 Ntt Docomo, Inc. Method and apparatus for distributed space-time coding in wireless radio networks
US8027407B2 (en) 2006-11-06 2011-09-27 Ntt Docomo, Inc. Method and apparatus for asynchronous space-time coded transmission from multiple base stations over wireless radio networks
US8059732B2 (en) 2006-11-28 2011-11-15 Ntt Docomo, Inc. Method and apparatus for wideband transmission from multiple non-collocated base stations over wireless radio networks
US8861356B2 (en) 2007-03-13 2014-10-14 Ntt Docomo, Inc. Method and apparatus for prioritized information delivery with network coding over time-varying network topologies
US8064548B2 (en) 2007-05-18 2011-11-22 Ntt Docomo, Inc. Adaptive MaxLogMAP-type receiver structures
US8325840B2 (en) 2008-02-25 2012-12-04 Ntt Docomo, Inc. Tree position adaptive soft output M-algorithm receiver structures
US8279954B2 (en) 2008-03-06 2012-10-02 Ntt Docomo, Inc. Adaptive forward-backward soft output M-algorithm receiver structures
US8565329B2 (en) 2008-06-03 2013-10-22 Ntt Docomo, Inc. Soft output M-algorithm receiver structures with generalized survivor selection criteria for MIMO systems
US8229443B2 (en) 2008-08-13 2012-07-24 Ntt Docomo, Inc. Method of combined user and coordination pattern scheduling over varying antenna and base-station coordination patterns in a multi-cell environment
US8451951B2 (en) 2008-08-15 2013-05-28 Ntt Docomo, Inc. Channel classification and rate adaptation for SU-MIMO systems
US8705484B2 (en) 2008-08-15 2014-04-22 Ntt Docomo, Inc. Method for varying transmit power patterns in a multi-cell environment
CN101661425B (zh) * 2008-08-26 2012-03-21 国际商业机器公司 测试覆盖分析方法和装置
US8542640B2 (en) 2008-08-28 2013-09-24 Ntt Docomo, Inc. Inter-cell approach to operating wireless beam-forming and user selection/scheduling in multi-cell environments based on limited signaling between patterns of subsets of cells
US8855221B2 (en) 2008-09-15 2014-10-07 Ntt Docomo, Inc. Method and apparatus for iterative receiver structures for OFDM/MIMO systems with bit interleaved coded modulation
US8468499B2 (en) * 2009-03-16 2013-06-18 Ntt Docomo, Inc. Directed testing for property violations
US9048977B2 (en) 2009-05-05 2015-06-02 Ntt Docomo, Inc. Receiver terminal driven joint encoder and decoder mode adaptation for SU-MIMO systems
US8514961B2 (en) 2010-02-04 2013-08-20 Ntt Docomo, Inc. Method and apparatus for distributed space-time coding in wireless radio networks
KR101438072B1 (ko) 2010-04-15 2014-09-03 라모트 앳 텔-아비브 유니버시티 리미티드 소거 없는 플래시 메모리의 다중 프로그래밍
US9043759B1 (en) * 2011-01-27 2015-05-26 Trimble Navigation Limited System and method for generating software unit tests simultaneously with API documentation
US9280442B1 (en) 2011-01-27 2016-03-08 Trimble Navigation Limited System and method for generating coverage reports for software unit tests
US9043746B2 (en) * 2011-03-07 2015-05-26 International Business Machines Corporation Conducting verification in event processing applications using formal methods
US9104815B1 (en) * 2011-05-08 2015-08-11 Panaya Ltd. Ranking runs of test scenarios based on unessential executed test steps
US9239777B1 (en) * 2011-05-08 2016-01-19 Panaya Ltd. Generating test scenario templates from clusters of test steps utilized by different organizations
US9268665B2 (en) 2011-07-26 2016-02-23 Trimble Navigation Limited System and method for identifying fault prone computer code files
US20130111267A1 (en) * 2011-11-01 2013-05-02 International Business Machines Corporation Optimizing regression testing based on code coverage analysis
CN102750221B (zh) * 2012-05-29 2015-07-15 北京航空航天大学 一种针对Linux文件系统的性能测试方法
US8819634B2 (en) * 2012-09-28 2014-08-26 Sap Ag System and method to validate test cases
CN103164337B (zh) * 2013-02-28 2015-12-09 汉柏科技有限公司 基于有限状态机的云计算软件测试方法
US20140281719A1 (en) * 2013-03-13 2014-09-18 International Business Machines Corporation Explaining excluding a test from a test suite
US20150106653A1 (en) * 2013-10-10 2015-04-16 International Business Machines Corporation Test selection based on domination criterion
CN106537333A (zh) * 2014-06-13 2017-03-22 查尔斯斯塔克德拉珀实验室公司 用于软件产物的数据库的系统和方法
CN104090838A (zh) * 2014-06-19 2014-10-08 苏州市职业大学 一种生成测试用例的方法
WO2016105399A1 (en) * 2014-12-23 2016-06-30 Hewlett Packard Enterprise Development Lp Prevention of a predetermined action regarding data
US9703690B2 (en) * 2015-01-22 2017-07-11 International Business Machines Corporation Determining test case efficiency
KR20160099160A (ko) * 2015-02-11 2016-08-22 한국전자통신연구원 명령어 집합의 행위 패턴을 엔-그램 방식으로 모델링하는 방법, 그 방법으로 동작하는 컴퓨팅 장치, 및 그 방법을 컴퓨팅 장치에서 실행하도록 구성되는 기록 매체에 저장된 프로그램
US9910763B1 (en) * 2016-08-18 2018-03-06 International Business Machines Corporation Test case reduction in application binary interface (ABI) compatibility testing
US10353810B2 (en) * 2016-10-04 2019-07-16 Sap Se Software testing with minimized test suite
CN106991051B (zh) * 2017-04-05 2020-06-16 西安邮电大学 一种基于变异测试和关联规则的测试用例约简方法
US10680970B1 (en) * 2017-04-27 2020-06-09 EMC IP Holding Company LLC Stack-based resource management system and method for a distributed computing environment
US10394697B2 (en) * 2017-05-15 2019-08-27 International Business Machines Corporation Focus area integration test heuristics
US10310969B2 (en) 2017-05-31 2019-06-04 Oracle International Corporation Systems and methods for test prediction in continuous integration environments
US10891219B1 (en) 2017-08-07 2021-01-12 Electronic Arts Inc. Code failure prediction system
US10949325B1 (en) 2017-08-18 2021-03-16 Electronic Arts Inc. Automated cross-session video game testing
US10725894B2 (en) * 2017-10-04 2020-07-28 International Business Machines Corporation Measuring and improving test coverage
US20200089594A1 (en) * 2018-09-19 2020-03-19 Electronic Arts Inc. Artificial intelligence for load testing
CN112416736B (zh) * 2019-08-21 2024-02-06 腾讯科技(深圳)有限公司 一种生成测试套件的方法、装置、服务器及可读存储介质
US11179644B2 (en) 2020-03-30 2021-11-23 Electronic Arts Inc. Videogame telemetry data and game asset tracker for session recordings
US11446570B2 (en) 2020-05-08 2022-09-20 Electronic Arts Inc. Automated test multiplexing system
US11782814B2 (en) * 2021-01-05 2023-10-10 Oracle International Corporation Visualizations for learned software interfaces
EP4131011A1 (en) * 2021-08-05 2023-02-08 INTEL Corporation Methods and apparatus to generate a surrogate model based on traces from a computing unit

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04145546A (ja) * 1990-10-05 1992-05-19 Nippon Telegr & Teleph Corp <Ntt> ソフトウェア自動テストシステム
JPH10198579A (ja) * 1997-01-08 1998-07-31 Fujitsu Ltd 状態遷移ルート抽出装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5394347A (en) * 1993-07-29 1995-02-28 Digital Equipment Corporation Method and apparatus for generating tests for structures expressed as extended finite state machines
US5918037A (en) * 1996-06-05 1999-06-29 Teradyne, Inc. Generating tests for an extended finite state machine using different coverage levels for different submodels
US5870539A (en) * 1996-07-01 1999-02-09 Sun Microsystems, Inc. Method for generalized windows application install testing for use with an automated test tool
US7392509B2 (en) * 2004-04-13 2008-06-24 University Of Maryland Method for domain specific test design automation
US8108826B2 (en) * 2004-09-29 2012-01-31 Avaya Inc. Code-coverage guided prioritized test generation
US7493522B2 (en) * 2006-01-30 2009-02-17 Microsoft Corporation Model independent input reduction

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04145546A (ja) * 1990-10-05 1992-05-19 Nippon Telegr & Teleph Corp <Ntt> ソフトウェア自動テストシステム
JPH10198579A (ja) * 1997-01-08 1998-07-31 Fujitsu Ltd 状態遷移ルート抽出装置

Also Published As

Publication number Publication date
WO2009033023A2 (en) 2009-03-12
WO2009033023A3 (en) 2009-08-13
JP5430570B2 (ja) 2014-03-05
US20090070746A1 (en) 2009-03-12
EP2186006A2 (en) 2010-05-19

Similar Documents

Publication Publication Date Title
JP5430570B2 (ja) システムコールカバレッジ基準による試験スイート削減のための方法
EP3956773B1 (en) Program execution coverage expansion by selective data capture
Skarin et al. GOOFI-2: A tool for experimental dependability assessment
EP3072051B1 (en) Diagnosing production applications based on process snapshots
Blazytko et al. {AURORA}: Statistical crash analysis for automated root cause explanation
US8954926B2 (en) Code coverage detection with scriptable language unmodified source
US20110107307A1 (en) Collecting Program Runtime Information
US20080244536A1 (en) Evaluating static analysis results using code instrumentation
US8776029B2 (en) System and method of software execution path identification
US20070006170A1 (en) Execution failure investigation using static analysis
EP2975527A2 (en) A method for tracing computer software
Chen et al. A large-scale empirical study on control flow identification of smart contracts
WO2015057617A1 (en) Transparent performance inference of whole software layers and context-sensitive performance debugging
Kim et al. Introperf: Transparent context-sensitive multi-layer performance inference using system stack traces
Azim et al. Dynamic slicing for android
Xu et al. Melton: a practical and precise memory leak detection tool for C programs
Jeong et al. Fifa: A kernel-level fault injection framework for arm-based embedded linux system
Suneja et al. Towards reliable AI for source code understanding
Lo et al. Efficient mining of recurrent rules from a sequence database
Satapathy et al. Usage of machine learning in software testing
Coppik et al. TrEKer: Tracing error propagation in operating system kernels
Tasiran et al. Location pairs: a test coverage metric for shared-memory concurrent programs
Dallmeier Mining and checking object behavior
Fu et al. Compiler-directed program-fault coverage for highly available Java internet services
Malik et al. Comparing hybrid tool for static and dynamic object-oriented metrics

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110805

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121211

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130731

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: 20131105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131203

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees