JP5706276B2 - 非同期コード・テスト方法、コンピュータ・プログラム製品、コンピュータ・システムおよびプロセス(統合開発環境(ide)における非同期コード・テスト) - Google Patents

非同期コード・テスト方法、コンピュータ・プログラム製品、コンピュータ・システムおよびプロセス(統合開発環境(ide)における非同期コード・テスト) Download PDF

Info

Publication number
JP5706276B2
JP5706276B2 JP2011190471A JP2011190471A JP5706276B2 JP 5706276 B2 JP5706276 B2 JP 5706276B2 JP 2011190471 A JP2011190471 A JP 2011190471A JP 2011190471 A JP2011190471 A JP 2011190471A JP 5706276 B2 JP5706276 B2 JP 5706276B2
Authority
JP
Japan
Prior art keywords
test case
code
code block
test
user
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.)
Expired - Fee Related
Application number
JP2011190471A
Other languages
English (en)
Other versions
JP2012084131A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2012084131A publication Critical patent/JP2012084131A/ja
Application granted granted Critical
Publication of JP5706276B2 publication Critical patent/JP5706276B2/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/3664Environments for testing or debugging software
    • 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/3688Test management for test execution, e.g. scheduling of test suites
    • 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
    • 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/3684Test management for test design, e.g. generating new test cases

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)

Description

本発明は、統合開発環境(IDE:Integrated Development Environment)と一般に呼ばれる統合プログラミング・ツールにおいてコンピュータ・プログラムを開発しながら、プログラム・コードを非同期的にテストするシステムおよび関連する方法を開示する。
従来のコンピュータ・プログラム開発モデルでは、プログラマは、プログラム・コードの入力、プログラム・コードの実行可能フォーマットへの変換、および意図した結果を求めてプログラム・コードを検証するための実行可能プログラム・コードの実行という、典型的なサイクルを繰り返す。
プログラム・コードは、複数のモジュールを含み、これらが互いに呼び出しを行って、リターン時にデータを交換するため、プログラム・コードのデバッギングは、従来のIDEツールを用いても効率が悪く、大きな労働力を要する。
本発明の一実施形態によれば、統合開発環境(IDE)における非同期コード・テスト(asynchronous code testing)の方法は、コンピュータのプロセッサが、ソース・コード・エディタを介してユーザによって提供された入力に従って、データベース内に入力コードを作成するステップであって、IDEは、ソース・コード・エディタ、影響アナライザ(impact analyzer)、テスト・ケース・ランチャ(test case launcher)、およびグラフィカル・ユーザ・インターフェース(GUI:graphical user interface)を含み、データベースは、IDEをホストしているコンピュータに結合されている、該ステップと、影響アナライザを使用して、入力コードからテスト・ケース・リストを生成するステップであって、影響アナライザは、ユーザが入力コードのコード・ブロックを変更した直後にテスト・ケース・リストが生成されるように、ソース・コード・エディタと同時に実行され、テスト・ケース・リストの各テスト・ケースは、個別のテスト・ケース識別子と、個別の開始優先度(launching priority)とを含む少なくとも1つのテスト・ケースを含み、個別の開始優先度は、前記変更されたコード・ブロックに各テスト・ケースがどの程度強く関連するかを定量化し、前記各テスト・ケースは、個別のテスト・ケース識別子によって一意的に特定される、該ステップと、変更されたコード・ブロックに関するテスト実行結果を、テスト・ケース・リストの前記少なくとも1つのテスト・ケースを各テスト・ケースの個別の開始優先度に基づきテスト・ケース・ランチャを使用して非同期的に実行することによって、発生させるステップと、テスト実行結果を、GUIを用いてユーザに伝達するステップとを含む。
本発明の一実施形態によれば、コンピュータ・プログラム製品は、コンピュータ可読プログラム・コードを具現化するコンピュータ可読メモリ・ユニットを含む。コンピュータ可読プログラム・コードは、コンピュータ・システムのプロセッサによって実行されると統合開発環境(IDE)における非同期コード・テストの方法を実装する命令を含む。
本発明の一実施形態によれば、コンピュータ・システムは、プロセッサと、プロセッサに結合されたコンピュータ可読メモリ・ユニットとを含み、コンピュータ可読メモリ・ユニットは、プロセッサによって実行されると統合開発環境(IDE)における非同期コード・テストの方法を実装する命令を含む。
本発明の一実施形態によれば、コンピュータ・インフラストラクチャをサポートするプロセスは、コンピューティング・システムにおけるコンピュータ可読コードの作成、統合、ホスト、維持、および展開のうちの少なくとも1つに関して少なくとも1つのサポート・サービスを提供することを含み、このコードは、コンピューティング・システムとともに、統合開発環境(IDE)における非同期コード・テストの方法を実行することができる。
本発明の実施形態による、統合開発環境(IDE)における非同期コード・テストのためのシステムを示す。 本発明の実施形態による、図1の統合開発環境(IDE)ツールによって実行される非同期コード・テストの方法を示すフローチャートである。 本発明の実施形態による、図2のステップ120で影響アナライザによって実行される、入力コードに対する更新のコード・ブロック構造を解析する方法を示すフローチャートである。 本発明の実施形態による、図2のステップ130でテスト・ケース・ランチャによって実行される、テスト・ケース・リストのエントリを実行してテスト実行結果を生成する方法を示すフローチャートである。 本発明の実施形態による、図3のステップ220で影響アナライザによって構築されたコード・ブロック構造を備える、データベースに記憶された入力コードの例である。 本発明の実施形態による、図5のコード・ブロック間の様々な関係を示す。 本発明の実施形態による、図3のステップ260で影響アナライザによって作成されたテスト・ケース・リストの例を示す。 本発明の実施形態による、図3のステップ260で影響アナライザによって作成されたテスト・ケース・リストの例を示す。 本発明の実施形態による、図1の統合開発環境(IDE)ツールの画面表示を示す。 本発明の実施形態による、統合開発環境(IDE)における非同期コード・テストに使用されるコンピュータ・システムを示す。
図1は、本発明の実施形態による、統合開発環境(IDE)ツール21における非同期コード・テストのためのシステム10を示す。
システム10は、ユーザ11、統合開発環境(IDE)ツール21、およびIDEツール21に結合されたデータベース31を含む。本発明の一実施形態では、データベース31は、IDEツール21をホストするコンピュータ・システムの記憶装置/メモリ・デバイスから割り当てられる。採用されるコンピュータ・システムのコンポーネントの詳細については、下記の図10の説明を参照されたい。
IDEツール21は、ソース・コード・エディタ22、影響アナライザ23、テスト・ケース・ランチャ24、およびグラフィカル・ユーザ・インターフェース(GUI)25を含む。IDEツール21はさらに、コンパイラ、ローダ、リンカなどの従来のIDEツールの典型的なコンポーネントを含むが、これらについては本明細書には記載されない。IDEツール21によって実行されるステップについては、下記の図2の説明を参照されたい。
IDEツールは、典型的には、ソフトウェア開発プロジェクトにおいて、プログラマのブログラミング効率および生産性を改善するために採用される。従来の統合開発環境(IDE)ツールの例は、特に、Eclipse(TM)、IBM(IBM社の登録商標)Rational(IBM社の登録商標)Application Developer(RAD)、Microsoft(R).NET(TM) Visual Studio(R)などであると考えられる(Eclipseは、Eclipse Foundationの米国およびその他の国々における商標であり、IBMおよびRationalはインターナショナル・ビジネス・マシーンズ・コーポレーションの米国およびその他の国々における登録商標であり、Microsoft、Visual Studioおよび.NETは、Microsoft Corporationの米国およびその他の国々における登録商標または商標である)。
ユーザ11は、GUI25を介してIDEツール21と対話して、データベース31内の入力コード32を作成し、それを編集し、さらに影響アナライザ23によって生成される1つ以上のテスト・ケースを実行するためにテスト・ケース・ランチャ24を動作させる。
入力コード32は、ユーザ11がソフトウェア・プロジェクトの一部として開発している対象コードである。典型的なソフトウェア開発方法では、ユーザ11は、対象コードを編集し、対象コードをテストして対象コードが意図した結果を発生させるかどうか確かめるというサイクルを繰り返す。ユーザ11が対象コードを変更すると、ユーザ11はさらに、対象コードの変更に対応するテスト・ケースも書く必要がある。テスト・ケースは、対象コードに出現する各変数のデータ値および条件の組み合わせであり、変更された対象コードがどのように動くかを検査し、変更された対象コードによって生成される結果を得るためのものである。テスト・ケースの実行において、従来のIDEツールは、順次または同期実行モードを利用し、対象コードの呼び出し元(caller)は、呼び出し先(callee)のリターンを待ってからプログラム・フローを続行する。順次実行モードとは対照的に、対象コードが非同期実行モードで実行される場合、対象コードの呼び出し元は、呼び出し先のリターンを待たず、呼び出し先を呼び出した後は次のステップへと続行する。呼び出されるモジュールはそれぞれ、呼び出し先モジュールまたは単に呼び出し先とも呼ばれ、呼び出し元モジュールのスレッドとは別のスレッドで実行される。呼び出し先は、呼び出し先が実行を完了した後、呼び出し先のスレッドを終了させ、呼び出し元モジュールに制御を返す。マルチスレッド処理環境でのバックグラウンド処理のように、通常、時間のかかる動作は、非同期的に実行される。
本明細書では、「テスト・ケース」という用語は、変更されたコード・ブロックに関連する一連の条件、もしくは変数のインスタンス、またはその両方として定義され、対象コードが正しく動作し、対象コードを変更する際にユーザが意図した結果を発生させるかどうかを、ユーザが判断できるようにするものである。ソフトウェア工学で典型的なテスト・ケース・フォーマットは、特に、テスト・ケース識別子、説明、ステップ番号/実行順序、前提条件(単数または複数)、深度、フラグなどを含む。IBM WebSphere(IBM社の登録商標)Studio Asset Analyzer(WSAA)は、メインフレーム、Java(R)、および複合アプリケーションを含む企業アプリケーション内および企業アプリケーション間の依存関係について自動解析を提供する、市販のIT維持ツールの例である(WebSphereは、インターナショナル・ビジネス・マシーンズ・コーポレーションの米国およびその他の国々における登録商標であり、Javaは、Sun Microsystemsの米国およびその他の国々における商標または登録商標である)。本発明の一実施形態では、テスト・ケース・フォーマットは、JUnitテスト・ケース・クラス「org.junit.Test」をインポートすることによって使用される、Javaプログラミング言語のJUnitモデルを採用する。
影響アナライザ23は、データベース31への入力コード32の更新がユーザ11によって行われると、入力コード32を自動的に解析する。その後、影響アナライザ23は、テスト・ケースと、個々に関連する開始優先度との少なくとも1つのペア、すなわち(test case,launching priority)を含むテスト・ケース・リスト33を生成し、テスト・ケース・リストをデータベース31に記憶する。影響アナライザ23によって実行されるステップおよびテスト・ケース・リスト33の詳細については、下記の図3の説明を参照されたい。テスト・ケース・リスト33の例については、下記の図8を参照されたい。
入力コード32の各コード・ブロックは、ユーザ11によって変更された入力コード32のコード・ブロックと関係している。コード・ブロックは、ユーザ11によって入力コード32において採用されたプログラミング言語によって定義される。変更されたコード・ブロックと、各コード・ブロックとの間の個別の関連度は、入力コード32において採用されたプログラミング言語の構造に従って決定される。本明細書では、「コード・ブロック」という用語は、特定可能なプログラミング要素または単位として定義される。変更されたコード・ブロックと、入力コード32の各コード・ブロックとの間の個別の関連度は、各コード・ブロックの個別の関連強度(association strength)値として定量化される。関連強度の計算において考慮される要素は、特に、深度と呼ばれるコード・ブロックのネスティング・レベル、コード・ブロックを呼び出す呼び出し元の数、呼び出しの頻度などであればよい。
影響アナライザ23は、コード・ブロック単位に基づき各テスト・ケースを生成し、テスト・ケース内のコード・ブロックと、変更されたコード・ブロックとの間のすべての関連強度の合計/優先度を集合的に表すよう、各テスト・ケースの個別の開始優先度を計算する。したがって、テスト・ケースが、変更されたコード・ブロックに強く関連するコード・ブロックを含む場合、テスト・ケースの開始優先度は、そのような、2つのコード・ブロック間の強い関連を反映する。
テスト・ケース・ランチャ24は、影響アナライザ23によって生成されたテスト・ケース・リスト33を、データベース31から読み出し、様々な実行モードでテスト・ケース・リスト33のテスト・ケースを実行する。テスト・ケース・ランチャ24は、テスト・ケース・リスト33を実行キュー42に記憶し、実行キュー42では、テスト・ケース・リスト33内のテスト・ケースが、各テスト・ケースの個々に関連する開始優先度によって順序付けられる。テスト・ケース・ランチャ24によって実行されるステップに関しては、下記の図4の説明を参照されたい。
本発明の一実施形態では、テスト・ケース・ランチャ24は、GUI25を介してユーザ11によって選択されたテスト・ケースを実行する。テスト・ケース・ランチャ24は、各テスト・ケースを実行してテスト実行結果34を生成するためにユーザによってトリガされると、実行キュー42をポップする。本発明の他の実施形態では、テスト・ケース・ランチャ24は、各テスト・ケースの個々に関連する開始優先度に従って、テスト・ケース・リスト33のテスト・ケースを自動的に実行する。本発明の同実施形態では、影響アナライザ23およびテスト・ケース・ランチャ24が、リアルタイムで何のユーザ対話もなくシームレスに動作するため、ユーザ11が入力コード32のコード・ブロックを更新し、関係のあるテスト・ケースのコンテキストが完成すると、ユーザ11は、即座にテスト実行結果34を見ることができる。
データベース31は、ユーザ11によって提供された入力コード32と、影響アナライザ23によって生成されたテスト・ケース・リスト33と、テスト・ケース・ランチャ24によって生成されたテスト実行結果34とを記憶する。ユーザ11は、GUI25およびソース・コード・エディタ22を使用して、入力コード32を変更する。影響アナライザ23は、テスト・ケース・ランチャ24がアクセスするよう、データベース31内にテスト・ケース・リスト33を記憶する。影響アナライザ23およびテスト・ケース・ランチャ24が同じプラットフォーム上で実行される本発明の実施形態では、データベース31は、リアルタイム応答のために、ローカル・メモリ・デバイスとして実装されるとよい。
本発明は、ソフトウェア・プロジェクトのデバッギング効率/作業生産性を改善するためのIDEツール21のコンポーネントとして、ソフトウェア開発の統合テスト段階よりも、特に単体テスト段階で実装されるとよい。入力コードが更新されるたびにテスト・ケースを自動的に実行することによって、ユーザは、入力コードの更新のテスト・ケースを作成および実行する時間を節約することができる。さらに、コーディング段階の間に各更新を自動でテストすることで、累積エラーの可能性が減り、結果として、更新された入力コードにおいて不具合の原因をより容易に特定できるようになる。さらに、テスト・ケースを非同期的に実行することによって、入力コード内の更新されたコード・ブロックのテストにおいて、呼び出し先の動作によってもたらされる遅延を伴わずに、テスト結果が生成されることが可能である。様々なプログラミング言語の従来の単体テスト・フレームワークは、特に、JavaのJUnit、C言語のCUnit、Eclipse FoundationのEclipse(TM)プロセス・フレームワーク(EPF:Eclipse Process Framework)である(EclipseはEclipse Foundationの米国およびその他の国々における商標または登録商標)。本発明は、ユーザが、変更された入力コードを別々にテストしなくても入力コードの変更の結果をリアルタイムで見ることができるようにする。
図2は、本発明の実施形態による、上記の図1の統合開発環境(IDE)ツールによって実行される非同期コード・テストの方法を示すフローチャートである。
ステップ110において、IDEツールは、データベースもしくはその他任意のメモリ・デバイスまたはその両方に、ソース・コード・エディタを用いたユーザ入力に基づき、入力コードを作成するが、この作成は、この入力コードがデータベースもしくはその他任意のメモリ・デバイスまたはその両方に存在しない場合に行われる。入力コードが既にデータベースもしくはその他任意のメモリ・デバイスまたはその両方に存在する場合は、IDEツールは、データベースに記憶されている入力コードを、ユーザ入力に基づき更新する。IDEツールは、ステップ120に移る。
ステップ120でIDEツールの影響アナライザは、ステップ110で作成/更新された入力コードに対応するテスト・ケース・リストを生成する。テスト・ケース・リストは、少なくとも1つのテスト・ケースと、前記少なくとも1つのテスト・ケースの各テスト・ケースに関連する個別の開始優先度とを含む。影響アナライザは、ユーザがソース・コード・エディタを用いて入力コードを編集する間、ソース・コード・エディタと同時に実行される。影響アナライザは、ソース・コード・エディタから入力コードの更新を検出すると、入力コードの更新を解析するようトリガされる。影響アナライザによって実行されるステップについては、下記の図3の説明を参照されたい。IDEツールは、ステップ130に移る。
ステップ130で、IDEツールは、テスト・ケース・ランチャを実行して、ステップ120で影響アナライザによって作成されたテスト・ケース・リストを実行することによって、テスト実行結果を生成する。本発明の一実施形態では、テスト・ケース・ランチャは、開始優先度に従ってテスト・ケース・リストを自動的に実行するよう構成されている。本発明の他の実施形態では、テスト・ケース・ランチャは、ユーザによってテスト・ケース・ランチャのグラフィカル・ユーザ・インターフェース(GUI)を介して選択される、テスト・ケース・リストのエントリを実行するよう構成されている。テスト・ケース・ランチャによって実行されるステップについては、下記の図4の説明を参照されたい。IDEツールは、ステップ140に移る。
ステップ140で、IDEツールは、ステップ130でテスト・ケース・ランチャによって生成されたテスト実行結果を、テスト・ケース・ランチャのGUIを介してユーザに伝達する。テスト・ケース・ランチャ・ユーザ・インターフェースの例については、図9および付随する説明を参照されたい。IDEツールは、ステップ110で入力コードに対して行われた更新の非同期コード・テストを完了する。IDEツールは、ユーザがデータベースの入力コードを修正すれば、ステップ110〜140を繰り返すとよい。
図3は、本発明の実施形態による、上記の図2のステップ120の影響アナライザによって実行される、入力コードに対する更新のコード・ブロック構造を解析する方法を示すフローチャートである。
ステップ210で、影響アナライザは、入力コードを、データベースもしくはその他のメモリ・デバイスまたはその両方から、影響アナライザのローカル・メモリにロードする。その後、影響アナライザは、ロードされた入力コードに対応する第1のスナップショットを作る。本明細書では、「スナップショット」という用語は、ソース・コード・エディタを介して表示されるとおりの最新の入力コードを含む、影響アナライザの実行スタック(run stack)から獲得される一連のデータとして定義される。デバッギングのコンテキストでは、スナップショットという用語は、Javaスタック・トレースにおける、Java仮想マシン(JVM:Java Virtual Machine)のスレッド状態を示すようより広く使用されている。任意のプロセスの実行スタックのコンテンツは一時的なものであるが、実行スタック・コンテンツを用いて作られたスナップショットは、通常の1つのデータとして、不変でアクセス可能な状態が保たれる。影響アナライザは、ステップ220に移る。
ステップ220で、影響アナライザは、ステップ210の第1のスナップショットを構文解析し、第1のスナップショットのコード・ブロック構造を構築する。コード・ブロック構造は、入力コード用に採用されたプログラミング言語の構文に従って決定される。入力コードがJavaプログラミング言語を利用するコード・ブロック構造の例については、下記の図5、6、7、8を参照されたい。コード・ブロック構造は、本明細書では、コール・パス情報(call path information)と呼ばれることもある。影響アナライザは、ステップ230に移る。
ステップ230で、影響アナライザは、ユーザによる入力コードの更新を検出するが、これはユーザがソース・コード・エディタ内でプログラム・コードの変更を行った場合である。本発明の一実施形態では、ソース・コード・エディタは、ユーザが、入力コードのプログラミング要素を完成させた後に所定の期間タイピングを休止すると、入力コードに対する更新を影響アナライザに通知するよう構成されている。例えば、ユーザが「print(a);」をタイピングした後15秒間休止すると、影響アナライザは入力コードの更新を検出する。影響アナライザは、ステップ240に移る。
ステップ240で、影響アナライザは、ステップ230で検出された変更された入力コードに対応する第2のスナップショットを作る。影響アナライザは、ステップ250に移る。
ステップ250で、影響アナライザは、ステップ210からの第1のスナップショットと、ステップ240からの第2のスナップショットとを比較することによって、変更されたコード・ブロックを決定する。影響アナライザは、ステップ260に移る。
ステップ260で、影響アナライザは、(test case, launching priority)として表記される、テスト・ケースと、各テスト・ケースに個々に関連する開始優先度との少なくとも1つのペアを含むテスト・ケース・リストを、ステップ220で構築されたコード・ブロック構造に基づき作成する。各テスト・ケースは、(code block, association strength)の1つ以上のペアを含み、第1の引数「code block」は、第2のスナップショットと、第1のスナップショットとの間の変化による影響を受けるコード・ブロックを特定し、第2の引数「association strength」は、第1の引数として特定されたコード・ブロックが、変更されたコード・ブロックにどの程度強く関連するかを定量化する。テスト・ケースの開始優先度は、テスト・ケース内の影響されるすべてのコード・ブロックのすべての関連強度の合計/優先度を集合的に表すよう計算される。影響アナライザは、ステップ270に移る。
本発明の一実施形態では、影響アナライザは、組(source file id, code block id)を用いてテスト・ケース内のコード・ブロックを示す。本発明の同実施形態において、第2のパラメータのcode block idは、コール・パス情報をさらに含む。テスト・ケース・リストのエントリおよびテスト・ケース・リストのインスタンスの個別の例については、下記の図7および8を参照されたい。
ステップ270において、影響アナライザは、テスト・ケース・ランチャがテスト・ケースをリアルタイムで実行するよう、ステップ260で生成されたテスト・ケース・リストを、データベースもしくはその他の高速メモリ・デバイスまたはその両方に記憶する。本発明の他の実施形態では、影響アナライザは、生成されたテスト・ケース・リストを、テスト・ケース・ランチャに直接的に伝達するとよい。影響アナライザは、入力コードの更新の処理を完了し、IDEツールは、上記の図2のステップ130に移る。
図4は、本発明の実施形態による、上記の図2のステップ130のテスト・ケース・ランチャによって実行される、テスト・ケース・リストのエントリを実行してテスト実行結果を生成する方法を示すフローチャートである。
ステップ310で、テスト・ケース・ランチャは、データベースもしくはその他の高速メモリ・デバイスまたはその両方から、上記の図3のステップ270で影響アナライザが記憶したテスト・ケース・リストを読み出す。テスト・ケース・ランチャは、ステップ320に移る。
ステップ320で、テスト・ケース・ランチャは、読み出されたテスト・ケース・リストからのテスト・ケースを有する実行キューを構成する。一実施形態では、実行キューは、テスト・ケース・リスト内の各テスト・ケースの開始優先度に基づき順序付けられる。テスト・ケース・ランチャは、ステップ330に移る。
ステップ330で、テスト・ケース・ランチャは、実行キューをユーザに表示する。テスト・ケース・ランチャは、ステップ340に移る。
ステップ340で、テスト・ケース・ランチャは、実行キュー内のテスト・ケースを、各テスト・ケースに関連する個別の開始優先度の順に実行する。本発明の一実施形態では、テスト・ケース・ランチャは、実行キュー内の各テスト・ケースを非同期実行モードで自動的に実行するよう構成されている。別の実施形態では、テスト・ケース・ランチャは、各テスト・ケースの個別の開始優先度にかかわらず、非同期テスト用のテスト・ケース(単数または複数)を選択するようユーザに促すよう構成されている。ユーザが実行キューからテスト・ケースを選択すると、テスト・ケース・ランチャは、選択されたテスト・ケースを非同期実行モードで実行する。テスト・ケース・ランチャは、ステップ350に移る。
ステップ350で、テスト・ケース・ランチャは、ステップ340から生じたデータを記録すること、もしくはデータをデータベースに記憶すること、またはその両方によってテスト実行結果を生成する。テスト・ケース・ランチャは、テスト・ケース・リストの処理を完了し、IDEツールは、上記の図2のステップ140に移る。
図5は、本発明の実施形態による、上記の図3のステップ220で影響アナライザによって構築された静的なコード・ブロック構造を有する、データベースに記憶された入力コードの例である。
行L101〜L117は、関数Main()を構成し、これは、Javaプログラミング言語のコード・ブロック構造における最上位コード・ブロック「A」である。
行L102〜L113は、関数func1()を構成し、これは、最上位コード・ブロック「A」内の第1の第2位コード・ブロック「B」である。
行L103〜L112は、for()ループを構成し、これは、第1の第2位コード・ブロック「B」内の第1の第3位コード・ブロック「C」である。
行L104〜L111は、for()ループの本体を構成し、これは、第1の第3位コード・ブロック「C」内の第4位コード・ブロック「D」である。
行L106〜L108は、第1のif()条件節を構成し、これは、第4位コード・ブロック「D」内の第1の第5位コード・ブロック「E」である。
行L107は、第1のif()条件節の本体を構成し、これは、第1の第5位コード・ブロック「E」内の第1の第6位コード・ブロック「F」によって表されている。第1の第6位コード・ブロック「F」は、条件「(p1>1000)」が満たされると実行される。第1の第6位コード・ブロック「F」は、行L114から始まる関数func2()を呼び出す。
行L109〜L111は、第2のif()条件節を構成し、これは、第4位コード・ブロック「D」内の第2の第5位コード・ブロック「G」である。
行L110は、第2のif()条件節の本体を構成し、これは、第2の第5位コード・ブロック「G」内の第2の第6位コード・ブロック「H」によって表されている。第2の第6位コード・ブロック「H」は、条件「(p2<0)」が満たされると実行される。第2の第6位コード・ブロック「H」は、新たな値「100」を変数p2に代入する。
行L114〜L116は、関数func2()を構成し、これは、最上位コード・ブロック「A」内の第2の第2位コード・ブロック「I」である。
行L115は、関数func2()の本体を構成し、これは、第2の第2位コード・ブロック「I」内の第2の第3位コード・ブロック「J」によって表されている。第2の第2位コード・ブロック「I」は、行L107から関数func2()が呼び出されると実行される。
図6は、本発明の実施形態による、上記の図5のコード・ブロック間の様々な関係を示す。
本発明の同実施形態において、静的なコード・ブロック構造が、利用されているプログラミング言語の構造に基づき、影響アナライザもしくは従来の静的解析ツールまたはその両方によって自動的に解析されるとよい。上記の図5のJavaコード・ブロックA、B、C、D、E、F、G、H、I、およびJは、上位コード・ブロックが下位コード・ブロックを含むよう、すなわちネストするよう、階層的に構造化されている。実線の矢は、個別の上位コード・ブロックから始まり個別の下位コード・ブロックへ向かう、コード・ブロック間の静的な包含関係を表す。図6に示されている包含関係は、A→B→C→D→E→F、A→B→C→D→G→H、およびA→I→Jである。
FからIへの破線の曲線は、コード・ブロックFがコード・ブロックIを呼び出すことを表し、これは、コード・ブロック間の動的呼び出し関係と呼ばれる。
本発明の同実施形態において、テスト・ケースは、JUnitフォーマットの自動実行可能なソース・コードである。第1のテスト・ケースT1は、func1(1000, 2000)であり、すなわち、func1()を、引数int p1=1000、int p2=2000により呼び出し、第1のテスト・ケースT1の実行シーケンスは、上記の図5の包含関係および呼び出し関係に基づき、(B−C−D−E−F−I−J)である。第2のテスト・ケースT2は、func2(123)であり、すなわち、func2()を、引数int d=123により呼び出し、第2のテスト・ケースT2の実行シーケンスは、上記の図5の包含関係および呼び出し関係に基づき、(I−J)である。
ユーザがコード・ブロックJを編集すると、第2のテスト・ケースT2が第1のテスト・ケースT1よりもコード・ブロックJにより直接的に関連することから、影響アナライザは、第1のテスト・ケースT1よりも高い開始優先度を、第2のテスト・ケースT2に指定し、コード・ブロックJの更新が、第1のテスト・ケースT1よりも第2のテスト・ケースT2の方に強く影響を及ぼすことを示す。個別の開始優先度に従って、第2のテスト・ケースT2が最初に実行され、続いて第1のテスト・ケースT1が実行される。本発明の別の実施形態では、ユーザは、個別の開始優先度をオーバーライドして、テスト・ケースを実行する順序を調整することもできる。
図7および8は、本発明の実施形態による、図3のステップ260において影響アナライザによって作成されたテスト・ケース・リストの例を示す。
図7は、本発明の実施形態による、テスト・ケース・リストのエントリとしての例示のテスト・ケース・フォーマットである。
テスト・ケースは、テスト・ケースid Aおよびテスト・ケース開始優先度Bを含む。テスト・ケースid Aによって表されている各テスト・ケースは、m個のコード・ブロックA1...Amを含み、mは各テスト・ケースの個別の正の整数である。
図8は、本発明の実施形態による、影響アナライザが上記の図3のステップ270を実行した後にデータベースに記憶される、テスト・ケース・リストの例を示す。
テスト・ケース・リストは、n個のテスト・ケースを含み、nは正の整数である。第jのテスト・ケースは、m個のコード・ブロックを有し、mはjの個別の正の整数である。第jのテスト・ケース内の第kのコード・ブロックは、CB_ID kとして示されている、コード・ブロックを表すコード・ブロック識別子と、CB_CP kとして示されている、コード・ブロックのコール・パスと、CB_AS kとして示されている、コード・ブロックと更新されたコード・ブロックとの間の関連強度とを含む。本発明のこの実施形態では、関連強度の値が小さいほど、呼び出しもしくは包含またはその両方の関係に基づく、2つのブロック間の関連がより強いことを示す。
この例では、変更されたコード・ブロックは、SRC_001_001として示されている第1のソース・ファイルの第1のコード・ブロックとして特定される。第1のテスト・ケースは、テスト・ケースid TC_001と、3つのコンポーネント・コード・ブロックのすべての関連強度の合計である、八(8)という開始優先度とを含む。第1のテスト・ケースTC_001は、個別のコード・ブロックid、SRC_001_001、SRC_001_002、およびSRC_002_034によって表されている3つのコード・ブロックを含む。
第1のコード・ブロックSRC_001_001は、コール・パスSRC_001によって表されている第1のソース・ファイルを介して呼び出される。第1のコード・ブロックSRC_001_001は、一(1)という関連強度を有するが、これは、第1のコード・ブロックSRC_001_001の包含深度によって計算される。
第1のテスト・ケースTC_001の第2のコード・ブロックSRC_001_002も、コール・パスSRC_001によって表されている第1のソース・ファイルを介して呼び出される。第2のコード・ブロックSRC_001_002は、二(2)という関連強度を有する。
第3のコード・ブロックSRC_002_034は、コール・パスSRC_002によって表されている第2のソース・ファイルを介して呼び出される。第3のコード・ブロックSRC_002_034は、五(5)という関連強度を有する。
第2のテスト・ケースは、テスト・ケースid TC_002と、4つのコンポーネント・コード・ブロックのすべての関連強度の合計である、十八(18)という開始優先度とを含む。第2のテスト・ケースTC_002は、個別のコード・ブロックid、SRC_001_001、SRC_001_002、SRC_002_034、およびSRC_002_050によって表されている4つのコード・ブロックを含む。
最初の3つのコード・ブロックは、第1のテスト・ケースTC_001と同じである。第4のコード・ブロックSRC_002_050は、コール・パスSRC_002によって表されている第2のソース・ファイルを介して呼び出される。第4のコード・ブロックSRC_002_050は、十(10)という関連強度を有し、これは、第4のコード・ブロックSRC_002_050が、変更されたコード・ブロックと弱く関連しているということを示す。
2つのテスト・ケースTC_001およびTC_002の間で、第1のテスト・ケースTC_001は、八(8)というより高い開始優先度を有するため、テスト・ケース・ランチャは、まず第1のテスト・ケースTC_001を実行して、次に第2のテスト・ケースTC_002を実行する。
本発明の別の実施形態では、各コード・ブロックは、コード・ブロックidおよび関連強度のみを含んでもよく、その場合は影響アナライザが、コード・ブロックid内にコール・パス情報を含め、テスト・ケース・ランチャは、コード・ブロックidからコール・パス情報を復号可能である。
図9は、本発明の実施形態による、上記の図1の統合開発環境(IDE)ツールの画面表示400を示す。
「編集:sample.java」という見出しのフレーム410は、ソース・コード・エディタのユーザ・ウィンドウである。フレーム410は、上記の図5に示された入力コードを表示し、ユーザがフレーム410のウィンドウ内で入力コードを変更できるようにする。ユーザがプログラミング要素の更新を完了すると、影響アナライザは、第2のスナップショットを取得し、第2のスナップショットと、第1のスナップショットとを、入力コードのコード・ブロック構造に基づき比較することによって、変更されたコード・ブロックを特定する。
「実行するテスト・ケース(単数または複数)」という見出しのフレーム420は、上記の図4のステップ330を実行した結果としての、テスト・ケース・ランチャの実行キューの表示ウィンドウである。本発明の一実施形態では、テスト・ケース・ランチャは、各テスト・ケースの個別のテスト・ケースidおよび簡単な説明を表示する。テスト・ケースの説明の例は、特に、「func1()の通常システム・テスト」、「func2()の異常システム・テスト」、「外部呼び出しテスト」などであってもよい。
「テスト結果(単数または複数)」という見出しのフレーム430は、テスト・ケース・ランチャによって生成されたテスト実行結果の表示ウィンドウである。テスト実行結果は、テスト・ケースが成功か否か、失敗したテスト・ケース識別子および所定のエラー・コード、欠けているデータ項目などを示すとよい。
図10は、本発明の実施形態による、統合開発環境(IDE)における非同期コード・テストに使用されるコンピュータ・システム90を示す。
コンピュータ・システム90は、プロセッサ91、プロセッサ91に結合された入力デバイス92、プロセッサ91に結合された出力デバイス93、ならびにプロセッサ91にそれぞれ結合されたメモリ・デバイス94および95を含む。本明細書では、コンピュータ・システム90は、任意の種類のプログラム可能データ処理装置を表す。
入力デバイス92は、コンピュータ・システム90への入力データ96を受け取るために利用される。入力デバイス92は、特に、キーボード、マウス、キーパッド、タッチ・スクリーン、スキャナ、音声認識デバイス、センサ、ネットワーク・インターフェース・カード(NIC:network interface card)、ボイス/ビデオ・オーバー・インターネット・プロトコル(VOIP:Voice/video over Internet Protocol)アダプタ、無線アダプタ、電話アダプタ、専用回線アダプタなどとしてもよい。出力デバイス93は、コンピュータ・プログラム・コード97によって生成された結果をコンピュータ・システム90のユーザに伝達するために利用される。出力デバイス93は、特に、プリンタ、プロッタ、コンピュータ画面、磁気テープ、リムーバブル・ハード・ディスク、フレキシブル・ディスク、NIC、VOIPアダプタ、無線アダプタ、電話アダプタ、専用回線アダプタ、可聴信号生成器もしくは可視信号生成器、またはその両方、発光ダイオード(LED:light emitting diode)などとしてもよい。
本発明のコンポーネントはいずれも、本発明の統合開発環境(IDE)における非同期コード・テストのプロセスに関してコンピューティング・インフラストラクチャを展開または統合することを提案するサービス・プロバイダにより展開、管理、サービス提供などされることができる。したがって、本発明は、コンピュータ可読コードをコンピューティング・システム(例えばコンピュータ・システム90)に統合、ホスト、維持、および展開することを含む、コンピュータ・インフラストラクチャをサポートするプロセスを開示し、このコードは、コンピューティング・システムとともに、統合開発環境(IDE)における非同期コード・テストの方法を実行することができる。
別の実施形態では、本発明は、契約、宣伝、もしくは手数料、またはそのいずれかの組み合わせに基づき本発明のプロセス・ステップを実行する方法を提供する。すなわち、ソリューション・インテグレータなどのサービス・プロバイダは、本発明の統合開発環境(IDE)における非同期コード・テストのプロセスを、作成、維持、サポートなどすることを提案することができる。この場合、サービス・プロバイダは、1つ以上の顧客に対して本発明のプロセス・ステップを実行するコンピュータ・インフラストラクチャを作成、維持、サポートなどすることができる。見返りとして、サービス・プロバイダは、契約もしくは手数料の取り決めもしくはその両方に従って顧客(単数または複数)から支払いを受け取ること、もしくは1つ以上のサード・パーティに対する広告コンテンツの販売からの支払いを受け取ること、またはその両方ができる。
図10は、コンピュータ・システム90を、ハードウェアとソフトウェアとの特定の構成として示すが、当業者には周知であると考えられる、ハードウェアとソフトウェアとの任意の構成が、上記に記載された目的のために、図10の特定のコンピュータ・システム90とともに利用されてもよい。例えば、メモリ・デバイス94および95は、独立したメモリ・デバイスではなく、単一のメモリ・デバイスの一部であってもよい。
当業者であれば当然のことであるが、本発明の側面は、システム、方法またはコンピュータ・プログラム製品として具現化され得る。したがって、本発明の側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、または本願明細書においてすべて概して「回路」、「モジュール」もしくは「システム」と呼ばれ得る、ソフトウェアおよびハードウェアの側面を兼ね備えた実施形態の形態をとってもよい。さらに、本発明の側面は、コンピュータ可読プログラム・コードが具現化された1つ以上のコンピュータ可読媒体(単数または複数)において具現化されたコンピュータ・プログラム製品の形態をとることもできる。
1つ以上のコンピュータ可読媒体(単数または複数)の任意の組み合わせが利用され得る。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体とされ得る。本明細書では、「メモリ・デバイス」94、95という用語は、コンピュータ可読記憶媒体を表す。コンピュータ可読記憶媒体は、例えば、限定はされないが、電子、磁気、光学、電磁気、赤外線、もしくは半導体システム、装置、もしくはデバイス、または前述のものの任意の適切な組み合わせとすることもできる。コンピュータ可読記憶媒体のより具体的な例(包括的でないリスト)には、1つ以上のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read−only memory)、消去可能プログラム可能読み取り専用メモリ(EPROM(erasable programmable read−only memory)またはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM:compact disc read−only memory)、光学式記憶デバイス、磁気記憶デバイスまたは前述のものの任意の適切な組み合わせが含まれるであろう。この文書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置もしくはデバイスによって、またはそれに関連して使用されるプログラムを含むこと、または記憶することができる任意の有形の媒体であればよい。
コンピュータ可読信号媒体は、例えば、ベースバンドに、または搬送波の一部として、伝播データ信号において具現化されたコンピュータ可読プログラム・コードを伴う伝播データ信号を含み得る。そのような伝播信号は、限定はされないが、電磁気、光学、またはその任意の適切な組み合わせを含む様々な形態のいずれかをとってよい。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体でなく、命令実行システム、装置もしくはデバイスによって、またはそれに関連して使用されるプログラムを伝達すること、伝播させること、または搬送することができる、任意のコンピュータ可読媒体としてよい。
コンピュータ可読媒体上に具現化されたプログラム・コードは、限定はされないが、無線、有線、光ファイバ・ケーブル、RFなど、または前述のものの任意の適切な組み合わせを含む任意の適切な媒体を使用して送られてもよい。
本発明の側面の動作を実行するコンピュータ・プログラム・コード97は、Java(R)、Smalltalk(R)、C++または同様のものなどのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの従来の手続きプログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書かれていてよい。コンピュータ・プログラム・コード97は、スタンド・アロン・ソフトウェア・パッケージとして、完全にユーザのコンピュータ上で実行されること、部分的にユーザのコンピュータ上で実行されること、または部分的にユーザのコンピュータ上で、かつ部分的にリモート・コンピュータ上で実行されること、または完全にリモート・コンピュータもしくはサーバ上で実行されることもできる。後者のシナリオでは、ローカル・エリア・ネットワーク(LAN:local area network)、もしくは広域ネットワーク(WAN:wide area network)を含む任意のタイプのネットワークを介してリモート・コンピュータがユーザのコンピュータに接続されてもよく、または、外部コンピュータに接続されてもよい(例えば、インターネット・サービス・プロバイダを使用しインターネットを介して)。
本発明の側面は、本発明の実施形態による方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図、またはその両方を参照して記載されている。当然のことながら、フローチャート図もしくはブロック図、またはその両方の各ブロック、およびフローチャート図もしくはブロック図、またはその両方の複数ブロックの組み合わせは、コンピュータ・プログラム命令により実装可能である。「コンピュータ・プログラム命令」という用語は、本明細書では「コンピュータ・プログラム・コード」97という用語と置き換え可能である。当該コンピュータ・プログラム命令が、マシンをもたらすよう、汎用コンピュータ、専用コンピュータ、またはその他のプログラム可能データ処理装置のプロセッサに提供されて、この命令が、コンピュータまたはその他のプログラム可能データ処理装置のプロセッサを用いて実行されて、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実装する手段を作り出すようにすることもできる。
さらに、特定の形で機能するようコンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスに指示することができる当該コンピュータ・プログラム命令は、コンピュータ可読記憶媒体に記憶されて、コンピュータ可読記憶媒体に記憶されたこの命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実装する命令を含む製品をもたらすようにすることもできる。
さらに、コンピュータ・プログラム命令は、コンピュータ、その他のプログラム可能データ処理装置、またはその他のデバイスにロードされて、コンピュータ、その他のプログラム可能装置、またはその他のデバイス上で一連の動作ステップが実行されるようにしてコンピュータに実装されるプロセスをもたらし、コンピュータまたはその他のプログラム可能装置上で実行される命令が、フローチャートもしくはブロック図またはその両方のブロックもしくは複数ブロックにおいて指定された機能/動作を実装するためのプロセスを提供するようにすることもできる。
各図面のフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の考えられる実装のアーキテクチャ、機能性および動作を示す。この関連で、フローチャートまたはブロック図内の各ブロックは、指定の論理機能(単数または複数)を実装する1つ以上の実行可能命令を含むモジュール、セグメント、またはコードの一部を表すこともできる。なお、さらに、いくつかの代わりの実装では、ブロック内に示されている機能が、図面に示されているのとは異なる順序で生じてもよい。例えば、関連する機能性次第で、連続して示されている2つのブロックが実際には事実上同時に実行されてもよく、または、各ブロックが逆順で実行されることがあってもよい。なお、さらに、ブロック図もしくはフローチャート図またはその両方の各ブロック、およびブロック図もしくはフローチャート図またはその両方の複数ブロックの組み合わせは、指定の機能もしくは動作を実行する専用ハードウェア・ベース・システム、または専用ハードウェアおよびコンピュータ命令の組み合わせにより実装することができる。
特許請求の範囲のミーンズまたはステップ・プラス・ファンクション構成要素すべての対応する構造、材料、動作、および等価物は、明確に請求されている他の請求される構成要素とともに機能を実行する任意の構造、材料、または動作を含むものとする。本発明の記載は、例証および説明のために示されたものであるが、包括的であることも、開示された形態の発明に限定されることも目的としていない。当業者には、本発明の範囲および意図から逸脱することのない、多数の変更および変形が明らかであろう。実施形態は、本発明の原理および実際の応用をもっともよく説明して、当業者が、意図される特定の用途に適する様々な変更を用いた様々な実施形態に関して、本発明を理解できるように選ばれ、記載された。
11 ユーザ
21 統合開発環境(IDE)ツール
22 ソース・コード・エディタ
23 影響アナライザ
24 テスト・ケース・ランチャ
25 グラフィカル・ユーザ・インターフェース(GUI)
31 データベース
32 入力コード
33 テスト・ケース・リスト
34 テスト実行結果
42 実行キュー

Claims (11)

  1. 統合開発環境(IDE)における非同期コード・テストの方法であって、前記方法は、
    コンピュータのプロセッサが、ソース・コード・エディタを介してユーザによって提供された入力に従って、データベース内に入力コードを作成するステップであって、前記IDEは、前記ソース・コード・エディタ、影響アナライザ、テスト・ケース・ランチャ、およびグラフィカル・ユーザ・インターフェース(GUI)を含み、前記データベースは、前記IDEをホストしている前記コンピュータに結合されている、前記ステップと、
    前記影響アナライザを使用して、前記入力コードからテスト・ケース・リストを生成するステップであって、前記影響アナライザは、前記ユーザが前記入力コードのコード・ブロックを変更した直後に前記テスト・ケース・リストが生成されるように、前記ソース・コード・エディタと同時に実行され、前記テスト・ケース・リストの各テスト・ケースは、個別のテスト・ケース識別子と、個別の開始優先度とを含む少なくとも1つのテスト・ケースを含み、前記個別の開始優先度は、前記変更されたコード・ブロックに各テスト・ケースがどの程度強く関連するかを定量化し、前記各テスト・ケースは、前記個別のテスト・ケース識別子によって一意的に特定される、前記ステップと、
    前記変更されたコード・ブロックに関するテスト実行結果を、前記テスト・ケース・リストの前記少なくとも1つのテスト・ケースを各テスト・ケースの前記個別の開始優先度に基づき前記テスト・ケース・ランチャを使用して非同期的に実行することによって、発生させるステップと、
    前記テスト実行結果を、前記GUIを用いて前記ユーザに伝達するステップと、
    を含む方法。
  2. 前記テスト・ケース・リストを前記生成するステップは、
    前記作成するステップからの前記入力コードの第1のスナップショットを取得するステップであって、前記第1のスナップショットは、前記影響アナライザの実行スタックの一部である、前記ステップと、
    前記第1のスナップショットを構文解析することによって、前記入力コードのコード・ブロック構造を構築するステップであって、前記コード・ブロック構造は、前記入力コードにおいて採用されているプログラミング言語によって決定される、前記ステップと、
    前記ユーザが前記入力コードの変更を完了したことを検出すると、前記入力コードの第2のスナップショットを取得するステップと、
    前記変更されたコード・ブロックを、前記第1のスナップショットと、前記第2のスナップショットとを比較することによって決定するステップと、
    前記変更されたコード・ブロックによる影響を受ける少なくとも1つのコード・ブロックを、前記構築するステップからの前記コード・ブロック構造から選択し、その後、選択されたコード・ブロックそれぞれが前記変更されたコード・ブロックにどの程度強く関連するかを定量化する個別の関連強度に、前記選択されたコード・ブロックそれぞれを関係付けるステップと、
    前記選択された少なくとも1つのコード・ブロックおよび前記個別の関連強度を含む、テスト・ケースを作成し、前記選択された少なくとも1つのコード・ブロックのすべての関連強度の合計として、前記テスト・ケースの開始優先度を計算するステップと、
    前記作成されたテスト・ケースおよび計算された開始優先度を、前記テスト・ケース・リストのエントリとして前記データベースに記憶するステップと、
    を含む、請求項1に記載の方法。
  3. 選択されたコード・ブロックそれぞれの前記個別の関連強度は、前記選択されたコード・ブロックそれぞれと、前記変更されたコード・ブロックとの間の、前記コード・ブロック構造において決定される包含関係および呼び出し関係によって決定され、前記コード・ブロックそれぞれおよび前記変更されたコード・ブロックが相互に直接的に呼び出す場合、ならびに前記コード・ブロックそれぞれおよび前記変更されたコード・ブロックが互いを直接包含する場合、前記関連強度はより強く、前記コード・ブロックそれぞれの関連強度すべての合計が小さいほど、前記開始優先度はより強い、請求項2に記載の方法。
  4. 前記テスト実行結果を前記発生させるステップは、
    前記データベースから前記テスト・ケース・リストを読み出すステップであって、前記データベースはリアルタイムのメモリ動作のために使用可能である、前記ステップと、
    前記読み出されたテスト・ケース・リストの少なくとも1つのテスト・ケースを有する実行キューをセットするステップと、
    前記GUIを使用して、前記実行キューを前記ユーザに対して表示するステップと、
    前記表示された実行キューからの前記少なくとも1つのテスト・ケースを、前記少なくとも1つのテスト・ケースの各テスト・ケースに関連する個別の開始優先度の順に、非同期的に実行するステップと、
    前記各テスト・ケースの前記テスト実行結果を生成するステップであって、前記テスト実行結果は、前記テスト・ケース識別子と、前記テスト・ケースが成功か、または失敗かについてのインジケーションとを含む、前記ステップと、
    を含む、請求項1に記載の方法。
  5. 前記テスト実行結果を前記発生させるステップは、
    前記表示の後で、前記ユーザに、実行する第1のテスト・ケースを選択するよう促すステップであって、その結果前記ユーザは、前記第1のテスト・ケースに関連する開始優先度にかかわらず前記テスト・ケースを選択する、前記ステップと、
    第1のテスト実行結果を、前記選択された第1のテスト・ケースを非同期的に実行することによって生成するステップと、
    をさらに含む、請求項4に記載の方法。
  6. 請求項1−5のいずれか1項に記載の方法の各ステップをコンピュータに実行させるためのコンピュータ・プログラム。
  7. プロセッサと、前記プロセッサに結合されたコンピュータ可読メモリ・ユニットとを含むコンピュータ・システムであって、前記コンピュータ可読メモリ・ユニットは、前記プロセッサによって実行されると統合開発環境(IDE)における非同期コード・テストの方法を実装する命令を含み、前記方法は、
    ソース・コード・エディタを介してユーザによって提供された入力に従って、データベース内に入力コードを作成するステップであって、前記IDEは、前記ソース・コード・エディタ、影響アナライザ、テスト・ケース・ランチャ、およびグラフィカル・ユーザ・インターフェース(GUI)を含み、前記データベースは、前記IDEをホストしている前記コンピュータに結合されている、前記ステップと、
    前記影響アナライザを使用して、前記入力コードからテスト・ケース・リストを生成するステップであって、前記影響アナライザは、前記ユーザが前記入力コードのコード・ブロックを変更した直後に前記テスト・ケース・リストが生成されるように、前記ソース・コード・エディタと同時に実行され、前記テスト・ケース・リストの各テスト・ケースは、個別のテスト・ケース識別子と、個別の開始優先度とを含む少なくとも1つのテスト・ケースを含み、前記個別の開始優先度は、前記変更されたコード・ブロックに各テスト・ケースがどの程度強く関連するかを定量化し、前記各テスト・ケースは、前記個別のテスト・ケース識別子によって一意的に特定される、前記ステップと、
    前記変更されたコード・ブロックに関するテスト実行結果を、前記テスト・ケース・リストの前記少なくとも1つのテスト・ケースを各テスト・ケースの前記個別の開始優先度に基づき前記テスト・ケース・ランチャを使用して非同期的に実行することによって、発生させるステップと、
    前記テスト実行結果を、前記GUIを用いて前記ユーザに伝達するステップと、
    を含む、コンピュータ・システム。
  8. 前記テスト・ケース・リストを前記生成するステップは、
    前記作成するステップからの前記入力コードの第1のスナップショットを取得するステップであって、前記第1のスナップショットは、前記影響アナライザの実行スタックの一部である、前記ステップと、
    前記第1のスナップショットを構文解析することによって、前記入力コードのコード・ブロック構造を構築するステップであって、前記コード・ブロック構造は、前記入力コードにおいて採用されているプログラミング言語によって決定される、前記ステップと、
    前記ユーザが前記入力コードの変更を完了したことを検出すると、前記入力コードの第2のスナップショットを取得するステップと、
    前記変更されたコード・ブロックを、前記第1のスナップショットと、前記第2のスナップショットとを比較することによって決定するステップと、
    前記変更されたコード・ブロックによる影響を受ける少なくとも1つのコード・ブロックを、前記構築するステップからの前記コード・ブロック構造から選択し、その後、選択されたコード・ブロックそれぞれが前記変更されたコード・ブロックにどの程度強く関連するかを定量化する個別の関連強度に、前記選択されたコード・ブロックそれぞれを関係付けるステップと、
    前記選択された少なくとも1つのコード・ブロックおよび前記個別の関連強度を含む、テスト・ケースを作成し、前記選択された少なくとも1つのコード・ブロックのすべての関連強度の合計として、前記テスト・ケースの開始優先度を計算するステップと、
    前記作成されたテスト・ケースおよび計算された開始優先度を、前記テスト・ケース・リストのエントリとして前記データベースに記憶するステップと、
    を含む、請求項に記載のコンピュータ・システム。
  9. 選択されたコード・ブロックそれぞれの前記個別の関連強度は、前記選択されたコード・ブロックそれぞれと、前記変更されたコード・ブロックとの間の、前記コード・ブロック構造において決定される包含関係および呼び出し関係によって決定され、前記コード・ブロックそれぞれおよび前記変更されたコード・ブロックが相互に直接的に呼び出す場合、ならびに前記コード・ブロックそれぞれおよび前記変更されたコード・ブロックが互いを直接包含する場合、前記関連強度はより強く、前記コード・ブロックそれぞれの関連強度すべての合計が小さいほど、前記開始優先度はより強い、請求項に記載のコンピュータ・システム。
  10. 前記テスト実行結果を前記発生させるステップは、
    前記データベースから前記テスト・ケース・リストを読み出すステップであって、前記データベースはリアルタイムのメモリ動作のために使用可能である、前記ステップと、
    前記読み出されたテスト・ケース・リストの少なくとも1つのテスト・ケースを有する実行キューをセットするステップと、
    前記GUIを使用して、前記実行キューを前記ユーザに対して表示するステップと、
    前記表示された実行キューからの前記少なくとも1つのテスト・ケースを、前記少なくとも1つのテスト・ケースの各テスト・ケースに関連する個別の開始優先度の順に、非同期的に実行するステップと、
    前記各テスト・ケースの前記テスト実行結果を生成するステップであって、前記テスト実行結果は、前記テスト・ケース識別子と、前記テスト・ケースが成功か、または失敗かについてのインジケーションとを含む、前記ステップと、
    を含む、請求項に記載のコンピュータ・システム。
  11. 前記テスト実行結果を前記発生させるステップは、
    前記表示の後で、前記ユーザに、実行する第1のテスト・ケースを選択するよう促すステップであって、その結果前記ユーザは、前記第1のテスト・ケースに関連する開始優先度にかかわらず前記テスト・ケースを選択する、前記ステップと、
    第1のテスト実行結果を、前記選択された第1のテスト・ケースを非同期的に実行することによって生成するステップと、
    をさらに含む、請求項10に記載のコンピュータ・システム。
JP2011190471A 2010-10-06 2011-09-01 非同期コード・テスト方法、コンピュータ・プログラム製品、コンピュータ・システムおよびプロセス(統合開発環境(ide)における非同期コード・テスト) Expired - Fee Related JP5706276B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/899,043 US8826239B2 (en) 2010-10-06 2010-10-06 Asynchronous code testing in integrated development environment (IDE)
US12/899043 2010-10-06

Publications (2)

Publication Number Publication Date
JP2012084131A JP2012084131A (ja) 2012-04-26
JP5706276B2 true JP5706276B2 (ja) 2015-04-22

Family

ID=45926122

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011190471A Expired - Fee Related JP5706276B2 (ja) 2010-10-06 2011-09-01 非同期コード・テスト方法、コンピュータ・プログラム製品、コンピュータ・システムおよびプロセス(統合開発環境(ide)における非同期コード・テスト)

Country Status (2)

Country Link
US (3) US8826239B2 (ja)
JP (1) JP5706276B2 (ja)

Families Citing this family (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7350194B1 (en) * 2001-09-24 2008-03-25 Oracle Corporation Techniques for debugging computer programs involving multiple computing machines
US8826239B2 (en) 2010-10-06 2014-09-02 International Business Machines Corporation Asynchronous code testing in integrated development environment (IDE)
US9092579B1 (en) * 2011-05-08 2015-07-28 Panaya Ltd. Rating popularity of clusters of runs of test scenarios based on number of different organizations
US9069904B1 (en) * 2011-05-08 2015-06-30 Panaya Ltd. Ranking runs of test scenarios based on number of different organizations executing a transaction
US9170925B1 (en) * 2011-05-08 2015-10-27 Panaya Ltd. Generating test scenario templates from subsets of test steps utilized by different organizations
US9170809B1 (en) * 2011-05-08 2015-10-27 Panaya Ltd. Identifying transactions likely to be impacted by a configuration change
US9201773B1 (en) * 2011-05-08 2015-12-01 Panaya Ltd. Generating test scenario templates based on similarity of setup files
US9348735B1 (en) * 2011-05-08 2016-05-24 Panaya Ltd. Selecting transactions based on similarity of profiles of users belonging to different organizations
US9201774B1 (en) * 2011-05-08 2015-12-01 Panaya Ltd. Generating test scenario templates from testing data of different organizations utilizing similar ERP modules
US8893087B2 (en) 2011-08-08 2014-11-18 Ca, Inc. Automating functionality test cases
US10169213B2 (en) * 2011-11-29 2019-01-01 Red Hat, Inc. Processing of an application and a corresponding test file in a content repository
US9552202B2 (en) 2011-12-08 2017-01-24 International Business Machines Corporation Automated and heuristically managed solution to quantify CPU and path length cost of instructions added, changed or removed by a service team
US20130339930A1 (en) * 2012-06-18 2013-12-19 South Dakota Board Of Regents Model-based test code generation for software testing
US9069899B2 (en) * 2012-06-27 2015-06-30 Microsoft Technology Licensing, Llc Integrating diagnostic information in development environment
US8990778B1 (en) * 2012-09-14 2015-03-24 Amazon Technologies, Inc. Shadow test replay service
US9047413B2 (en) * 2012-10-05 2015-06-02 Software Ag White-box testing systems and/or methods for use in connection with graphical user interfaces
US10067858B2 (en) 2012-10-12 2018-09-04 Vmware, Inc. Cloud-based software testing
US10387294B2 (en) 2012-10-12 2019-08-20 Vmware, Inc. Altering a test
US9684587B2 (en) * 2012-10-12 2017-06-20 Vmware, Inc. Test creation with execution
WO2014117320A1 (en) * 2013-01-29 2014-08-07 Hewlett-Packard Development Company, L.P. Generating test code to test executable code
US10182128B1 (en) 2013-02-07 2019-01-15 Amazon Technologies, Inc. Optimization of production systems
EP2962186A4 (en) * 2013-02-28 2016-10-12 Hewlett Packard Entpr Dev Lp PROVISION OF CODE CHANGE JOB PACKAGES OF VARIOUS SIZE FOR VALIDATORS
US9785542B2 (en) * 2013-04-16 2017-10-10 Advantest Corporation Implementing edit and update functionality within a development environment used to compile test plans for automated semiconductor device testing
US9389986B2 (en) * 2013-05-06 2016-07-12 Microsoft Technology Licensing, Llc Identifying impacted tests from statically collected data
US9311223B2 (en) * 2013-05-21 2016-04-12 International Business Machines Corporation Prioritizing test cases using multiple variables
US10825565B2 (en) 2013-06-14 2020-11-03 Syntel, Inc. System and method for validating medical claim data
JP6217212B2 (ja) * 2013-07-25 2017-10-25 富士通株式会社 テストプログラム、テスト方法及びテスト装置
US9111037B1 (en) * 2013-08-21 2015-08-18 Ca, Inc. Method and apparatus to enable mainframe computer testing for software testing management platform
US10026064B2 (en) 2013-09-13 2018-07-17 Microsoft Technology Licensing, Llc Automatically recommending updates based on stored lifecycle information
US9665359B2 (en) 2013-09-13 2017-05-30 Microsoft Technology Licensing, Llc Automatically resolving conflicts after installation of selected updates in a computer system
US9626176B2 (en) 2013-09-13 2017-04-18 Microsoft Technology Licensing, Llc Update installer with technical impact analysis
US9830142B2 (en) 2013-09-13 2017-11-28 Microsoft Technology Licensing, Llc Automatic installation of selected updates in multiple environments
US9836388B1 (en) 2013-09-26 2017-12-05 Amazon Technologies, Inc. Software testing environment that includes a duplicating proxy service
US9965380B2 (en) * 2013-10-02 2018-05-08 International Business Machines Corporation Automated test runs in an integrated development environment system and method
IN2013DE02948A (ja) * 2013-10-04 2015-04-10 Unisys Corp
US10769054B1 (en) * 2014-02-13 2020-09-08 Amazon Technologies, Inc. Integrated program code marketplace and service provider network
US9507695B2 (en) * 2014-04-14 2016-11-29 International Business Machines Corporation Risk-based test coverage and prioritization
US9703692B2 (en) * 2014-07-30 2017-07-11 Hitachi, Ltd. Development supporting system
US9672029B2 (en) * 2014-08-01 2017-06-06 Vmware, Inc. Determining test case priorities based on tagged execution paths
US10389697B1 (en) 2014-08-27 2019-08-20 Amazon Technologies, Inc. Software container activation and throttling
US9514031B2 (en) 2014-09-22 2016-12-06 International Business Machines Corporation Auto-deployment and testing of system application test cases in remote server environments
US9952915B2 (en) * 2014-11-06 2018-04-24 Microsoft Technology Licensing, Llc Event processing development environment
US20160134508A1 (en) 2014-11-12 2016-05-12 International Business Machines Corporation Non-disruptive integrated network infrastructure testing
IN2015DE01249A (ja) * 2015-05-06 2015-06-05 Hcl Technologies Ltd
CN106547678B (zh) * 2015-09-16 2019-03-15 伊姆西公司 用于白盒测试的方法和装置
CN105204994B (zh) * 2015-09-18 2018-06-29 上海斐讯数据通信技术有限公司 一种自动化测试方法及系统
CN105138462B (zh) * 2015-09-24 2017-11-21 武汉泰世达科技有限公司 一种测试软件集成框架及测试数据的处理方法
US9436585B1 (en) 2015-11-19 2016-09-06 International Business Machines Corporation Image patching in an integrated development environment
CN105320599A (zh) * 2015-11-26 2016-02-10 上海斐讯数据通信技术有限公司 一种web自动化测试的系统及方法
CN105653261B (zh) * 2015-12-22 2019-04-12 曙光云计算集团有限公司 基于云计算环境下的开发集成测试方法及系统
US10346290B2 (en) * 2016-10-31 2019-07-09 International Business Machines Corporation Automatic creation of touring tests
CN107832227B (zh) * 2017-11-24 2020-04-10 平安科技(深圳)有限公司 业务系统的接口参数测试方法、装置、设备和存储介质
CN109871309B (zh) * 2017-12-04 2020-12-04 中国移动通信集团公司 一种计费系统测试案例生成方法和系统
US10423523B2 (en) * 2018-02-02 2019-09-24 Ca, Inc. Automated selection of test cases for regression testing
US10496379B2 (en) * 2018-02-07 2019-12-03 Sap Se Facilitated production of code for software testing
US10671519B2 (en) * 2018-04-27 2020-06-02 Microsoft Technology Licensing, Llc Unit testing for changes to version control
CN109634864A (zh) * 2018-12-12 2019-04-16 江苏满运软件科技有限公司 入口函数自动溯源方法、装置、电子设备、存储介质
CN109684214B (zh) * 2018-12-21 2022-02-25 北京金山安全软件有限公司 一种ui测试方法和装置
CN109726132B (zh) 2019-01-03 2021-03-23 京东方科技集团股份有限公司 一种软件测试方法及软件测试自动化管理系统
US11151024B2 (en) * 2019-08-09 2021-10-19 International Business Machines Corporation Dynamic automation of DevOps pipeline vulnerability detecting and testing
CN110825621B (zh) * 2019-10-16 2021-05-14 四川大学 基于动态风险的回归测试用例优先级计算方法
CN112835652A (zh) 2019-11-25 2021-05-25 杭州中天微系统有限公司 数据交互方法及装置
US11354139B2 (en) * 2019-12-13 2022-06-07 Sap Se Integrated code inspection framework and check variants
US11176026B2 (en) * 2020-02-20 2021-11-16 International Business Machines Corporation Assignment of test case priorities based on combinatorial test design model analysis
US11307975B2 (en) 2020-02-20 2022-04-19 International Business Machines Corporation Machine code analysis for identifying software defects
US11663113B2 (en) 2020-02-20 2023-05-30 International Business Machines Corporation Real time fault localization using combinatorial test design techniques and test case priority selection
WO2021183125A1 (en) * 2020-03-11 2021-09-16 Hewlett-Packard Development Company, L.P. Projected resource consumption level determinations for code elements
US11132181B1 (en) 2020-07-30 2021-09-28 International Business Machines Corporation Computer enhanced and automatic computer-generated integrated development environment reconfiguration
US11847035B2 (en) 2021-08-23 2023-12-19 International Business Machines Corporation Functional test of processor code modification operations
US12072793B2 (en) 2021-12-16 2024-08-27 International Business Machines Corporation Function result prediction
US11704099B1 (en) * 2022-03-31 2023-07-18 Amazon Technologies, Inc. Discovering matching code segments according to index and comparative similarity
JP2024048916A (ja) * 2022-09-28 2024-04-09 株式会社オートネットワーク技術研究所 情報処理システム、情報処理方法およびコンピュータプログラム

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6499A (en) 1987-03-17 1989-01-05 Nippon Kayaku Co Ltd 23-phenylsteroids and production thereof
JPS64999A (en) 1987-06-23 1989-01-05 Fujitsu Ltd Pitch position extracting system
JP2709386B2 (ja) 1987-06-24 1998-02-04 株式会社 エイ・ティ・ア−ル自動翻訳電話研究所 スペクトログラムの正規化方法
JPH02199551A (ja) * 1989-01-30 1990-08-07 Toshiba Corp データ処理装置
US5390325A (en) * 1992-12-23 1995-02-14 Taligent, Inc. Automated testing system
JPH07210424A (ja) * 1994-01-14 1995-08-11 Toshiba Corp ソフトウェアテスト支援システム
JPH07219980A (ja) 1994-02-02 1995-08-18 Hitachi Ltd テスト実行方式
JPH09218805A (ja) 1996-02-13 1997-08-19 Oki Electric Ind Co Ltd 通信ソフトウェアの試験制御方法
JPH10214204A (ja) 1997-01-29 1998-08-11 Oki Electric Ind Co Ltd デバッガー
JPH10269104A (ja) 1997-03-25 1998-10-09 Hitachi Ltd 並列システムテスト方法
JPH11259280A (ja) 1998-03-13 1999-09-24 Matsushita Electric Ind Co Ltd プログラム開発支援装置及びコンピュータシステムに適用されるプログラムを記録した記録媒体
US6510402B1 (en) * 1999-02-04 2003-01-21 International Business Machines Corporation Component testing with a client system in an integrated test environment network
US6256773B1 (en) * 1999-08-31 2001-07-03 Accenture Llp System, method and article of manufacture for configuration management in a development architecture framework
US20040002958A1 (en) * 2002-06-26 2004-01-01 Praveen Seshadri System and method for providing notification(s)
US7334219B2 (en) * 2002-09-30 2008-02-19 Ensco, Inc. Method and system for object level software testing
US20050081106A1 (en) * 2003-10-08 2005-04-14 Henry Chang Software testing
EP1680741B1 (en) * 2003-11-04 2012-09-05 Kimberly-Clark Worldwide, Inc. Testing tool for complex component based software systems
US20050144593A1 (en) * 2003-12-31 2005-06-30 Raghuvir Yuvaraj A. Method and system for testing an application framework and associated components
US20050223361A1 (en) * 2004-04-01 2005-10-06 Belbute John L Software testing based on changes in execution paths
JP2006024006A (ja) * 2004-07-08 2006-01-26 Denso Corp テストケース生成装置、テストケース生成プログラム、モデルベース開発プログラム、ソースコード生成妥当性診断装置、ソースコード生成妥当性診断プログラム、およびモデルベース開発方法。
US7458063B2 (en) * 2004-09-14 2008-11-25 Microsoft Corporation Method and apparatus for supporting functionality documentation
US7954088B2 (en) 2005-03-23 2011-05-31 Microsoft Corporation Method and apparatus for executing unit tests in application host environment
US7562255B2 (en) * 2005-08-11 2009-07-14 Microsoft Corporation Configurable system and methods for writing and executing test components
US7992133B1 (en) * 2006-02-14 2011-08-02 Progress Software Corporation Techniques for debugging distributed applications
US20090103902A1 (en) * 2006-03-24 2009-04-23 Matsushita Electric Industrial Co., Ltd. Reproduction device, debug device, system lsi, and program
JP2007316875A (ja) 2006-05-25 2007-12-06 Hitachi Ltd 自動リグレクションテスト装置および方法
JP2008003985A (ja) * 2006-06-26 2008-01-10 Dainippon Screen Mfg Co Ltd 開発支援システム、開発支援方法および開発支援プログラム
US8117598B2 (en) * 2007-09-27 2012-02-14 Oracle America, Inc. Method and apparatus to automatically identify specific code changes to probabilistically exclude from regression
JP5022262B2 (ja) 2008-02-12 2012-09-12 株式会社アドバンテスト デバッグ中にツールを使用可能な試験システム及び方法
US8516451B2 (en) * 2008-06-13 2013-08-20 Hewlett-Packard Development Company, L.P. System and method for creating virtual callback objects
JP2010122959A (ja) * 2008-11-20 2010-06-03 Nec Corp テスト支援システム、方法、及び、プログラム
US8645341B2 (en) * 2010-03-31 2014-02-04 Salesforce.Com, Inc. Method and system for automatically updating a software QA test repository
US9141519B2 (en) * 2010-10-05 2015-09-22 Infinera Corporation Accurate identification of software tests based on changes to computer software code
US8826239B2 (en) 2010-10-06 2014-09-02 International Business Machines Corporation Asynchronous code testing in integrated development environment (IDE)
US8984485B2 (en) * 2013-05-01 2015-03-17 International Business Machines Corporation Analysis of source code changes

Also Published As

Publication number Publication date
JP2012084131A (ja) 2012-04-26
US20150212932A1 (en) 2015-07-30
US8826239B2 (en) 2014-09-02
US20120089964A1 (en) 2012-04-12
US9569346B2 (en) 2017-02-14
US20140325485A1 (en) 2014-10-30
US9075919B2 (en) 2015-07-07

Similar Documents

Publication Publication Date Title
JP5706276B2 (ja) 非同期コード・テスト方法、コンピュータ・プログラム製品、コンピュータ・システムおよびプロセス(統合開発環境(ide)における非同期コード・テスト)
CN111142867B (zh) 微服务架构下的服务可视化编排系统及方法
US8694967B2 (en) User interface inventory
JP5295269B2 (ja) コンポーネント・モデル基盤の仮想ソフトウェア・プラットホームを生成する方法、これを利用してソフトウェア・プラットホーム・アーキテクチャを検証する方法及びその装置
US8225288B2 (en) Model-based testing using branches, decisions, and options
US8359584B2 (en) Debugging from a call graph
JP5607741B2 (ja) ランタイム挙動に基づくアプリケーションの自動修正
US9569204B2 (en) End-to-end continuous integration and verification of software
US20110016452A1 (en) Method and system for identifying regression test cases for a software
US8589864B2 (en) Automating the creation of an application provisioning model
US20050273757A1 (en) Methods, systems, and computer program products for summarizing operational behavior of a computer program
US20120291045A1 (en) Registration and execution of highly concurrent processing tasks
Kothari et al. Deriving state machines from TinyOS programs using symbolic execution
JP5396979B2 (ja) ソフトウェア開発支援装置、システム、ソフトウェア開発支援装置の機能拡張方法、及びプログラム
US8418148B2 (en) Thread execution analyzer
JP6268029B2 (ja) テストケース生成装置及びテストケース生成方法
US10083029B2 (en) Detect application defects by correlating contracts in application dependencies
US10037197B2 (en) Flexible microinstruction system for constructing microprograms which execute tasks, gateways, and events of BPMN models
US20130111432A1 (en) Validation of a system model including an activity diagram
Gönczy et al. Methodologies for model-driven development and deployment: An overview
CN111367796A (zh) 应用程序调试方法及装置
US8769506B2 (en) Using a command interpreter at design time
Goulão et al. Streamlining scenario modeling with model-driven development: A case study
Petry et al. Model-Based Testing of Software Product Lines
Barbie Reporting of performance tests in a continuous integration environment

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140409

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141218

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150226

R150 Certificate of patent or registration of utility model

Ref document number: 5706276

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees