JP6011712B2 - Correction management device, correction management method, and correction management program - Google Patents
Correction management device, correction management method, and correction management program Download PDFInfo
- Publication number
- JP6011712B2 JP6011712B2 JP2015501985A JP2015501985A JP6011712B2 JP 6011712 B2 JP6011712 B2 JP 6011712B2 JP 2015501985 A JP2015501985 A JP 2015501985A JP 2015501985 A JP2015501985 A JP 2015501985A JP 6011712 B2 JP6011712 B2 JP 6011712B2
- Authority
- JP
- Japan
- Prior art keywords
- metadata
- change
- test
- design model
- application program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
- G06F8/355—Round-trip engineering
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
本発明は、概して、修正管理装置、修正管理方法、及び修正管理プログラムに関する。より具体的には、本発明は、ソフトウェアの更新、及び設計とプログラムとの間の整合性の維持に関する。 The present invention generally relates to a correction management apparatus, a correction management method, and a correction management program. More specifically, the present invention relates to software updates and maintaining consistency between designs and programs.
ソフトウェア開発において、特にアジャイルソフトウェア開発において、要件又は仕様の変更がしばしば生じる場合がある。変更が生ずると、機能仕様書、設計書、実装、テスト仕様書、及びテストプログラムの間の整合性を維持する必要がある。 Changes in requirements or specifications often occur in software development, particularly in agile software development. As changes occur, consistency between functional specifications, design documents, implementations, test specifications, and test programs must be maintained.
通常、設計書、実装、テスト仕様書、及びプログラムの間の整合性は、手動によって維持される。結果として、変更が生じる度に、設計書とプログラム内のコードとを更新し、更新プログラムを再コンパイルして再実行する必要がある。そのため、変更する度に、更なるコストが加わり、開発サイクルのペースが落ちる。この問題は、ソフトウェア開発にとって障害になる。 Typically, consistency between design documents, implementations, test specifications, and programs is maintained manually. As a result, each time a change occurs, it is necessary to update the design document and code in the program, recompile the updated program, and re-execute. As a result, each change adds additional costs and slows down the development cycle. This problem is an obstacle for software development.
技術の進歩は、コンピューティングシステムのソフトウェアの整合性をある程度まで維持しながら、更新のためのコストの低減を可能にしている。特許文献1には、入力された設計定義から、テスト仕様書及びテストコードを生成するためのシステムが開示される。特許文献2には、別の関連システムが開示される。これらのシステムは、相対的に少ないコードにより、オブジェクトの属性のための値を一括して一度に設定することを目的とする。特許文献3は、a)データ型、データ名などを含む定義、及び、b)標準シナリオ又は標準スクリプトからスクリプトを生成するシステムを開示する。特許文献4は、プログラム設計管理システムを開示する。このシステムにおいて、メタデータは、ファイルの構成情報を含み、設計過程の間に設計者によって修正される。システムは、それに対応するファイルに対してメタデータ内の変更を反映する。他の関連システムは、特許文献5〜8に開示される。 Advances in technology have enabled the cost of updating to be reduced while maintaining the integrity of the computing system software to some extent. Patent Document 1 discloses a system for generating a test specification and a test code from an input design definition. Patent Document 2 discloses another related system. The purpose of these systems is to set the values for the attributes of an object all at once with relatively few codes. Patent Document 3 discloses a system that generates a script from a) a definition including a data type and a data name, and b) a standard scenario or a standard script. Patent Document 4 discloses a program design management system. In this system, the metadata includes file configuration information and is modified by the designer during the design process. The system reflects changes in the metadata for the corresponding file. Other related systems are disclosed in Patent Documents 5 to 8.
システムの要件又は仕様に変更が生じると、その設計書及び実装に対して変更が適切に反映されるか確かめる必要がある。更に、テストに関わるものであると、仕様書、設計書、実装、テスト仕様書、及びテストプログラムの間の整合性を維持する必要がある。 When changes occur to system requirements or specifications, it is necessary to ensure that the changes are properly reflected in the design and implementation. Furthermore, if it is involved in testing, it is necessary to maintain consistency between the specification, design, implementation, test specification, and test program.
問題は、設計書、実装、テスト仕様書、及びテストプログラムの間の整合性の維持が、恐らく別人である、設計者、開発者、及び試験者の手動によって非能率的に行われるということである。設計書及び実装の1つに対していくつかの変更がなされると、特許文献1〜8に開示された技術では、整合性を維持できない。 The problem is that maintaining consistency between design documents, implementations, test specifications, and test programs is done inefficiently by the manual operation of possibly separate designers, developers, and testers. is there. If some changes are made to one of the design document and the implementation, the techniques disclosed in Patent Documents 1 to 8 cannot maintain consistency.
本発明の目的は、上記の問題を解決する修正管理装置、修正管理方法、及び修正管理プログラムを提供することである。 An object of the present invention is to provide a correction management apparatus, a correction management method, and a correction management program that solve the above-described problems.
本発明によると、上述の課題は、
モデリング言語内にオブジェクトの構造を記載する設計モデルを記憶する設計モデル記憶手段と、
プログラミング言語内のオブジェクトを記載するアプリケーションプログラムを記憶するプログラム記憶手段と、
オブジェクトの構造を記載するメタデータを記憶するメタデータ記憶手段と、
アプリケーションプログラム及び設計モデルのうちの一方になされた修正から構造内の変更を抽出し、構造内の変更に従ってメタデータを更新し、更新されたメタデータに従ってアプリケーションプログラム及び設計モデルのうちの他方に対して構造内の変更を反映する操作手段と
を備える修正管理装置により解決される。
According to the present invention, the above problem is
Design model storage means for storing a design model describing the structure of an object in a modeling language;
Program storage means for storing an application program describing an object in a programming language;
Metadata storage means for storing metadata describing the structure of the object;
Extract changes in the structure from modifications made to one of the application program and the design model, update the metadata according to the change in the structure, and to the other of the application program and the design model according to the updated metadata This is solved by a correction management device comprising an operating means for reflecting changes in the structure.
本発明によると、上述の課題は、
モデリング言語内にオブジェクトの構造を記載する設計モデルを記憶し、
プログラミング言語内のオブジェクトを記載するアプリケーションプログラムを記憶し、
オブジェクトの構造を記載するメタデータを記憶し、
アプリケーションプログラム及び設計モデルのうちの一方になされた修正から構造内の変更を抽出し、構造内の変更に従ってメタデータを更新し、更新されたメタデータに従ってアプリケーションプログラム及び設計モデルのうちの他方に対して構造内の変更を反映すること
を備える修正管理方法により解決される。
According to the present invention, the above problem is
Store the design model that describes the structure of the object in the modeling language,
Store application programs that describe objects in programming languages;
Store metadata describing the structure of the object,
Extract changes in the structure from modifications made to one of the application program and the design model, update the metadata according to the change in the structure, and to the other of the application program and the design model according to the updated metadata And a modification management method comprising reflecting changes in the structure.
本発明によると、上述の課題は、
モデリング言語内にオブジェクトの構造を記載する設計モデルを記憶し、
プログラミング言語内のオブジェクトを記載するアプリケーションプログラムを記憶し、
オブジェクトの構造を記載するメタデータを記憶し、
アプリケーションプログラム及び設計モデルのうちの一方になされた修正から構造内の変更を抽出し、構造内の変更に従ってメタデータを更新し、更新されたメタデータに従ってアプリケーションプログラム及び設計モデルのうちの他方に対して構造内の変更を反映する処理
をコンピュータに実行させる修正管理プログラムにより解決される。
According to the present invention, the above problem is
Store the design model that describes the structure of the object in the modeling language,
Store application programs that describe objects in programming languages;
Store metadata describing the structure of the object,
Extract changes in the structure from modifications made to one of the application program and the design model, update the metadata according to the change in the structure, and to the other of the application program and the design model according to the updated metadata This is solved by a correction management program that causes a computer to execute a process that reflects a change in the structure.
本発明は、設計書と実装との間の整合性を維持するためのコスト及び負担が軽減される効果を有する。 The present invention has an effect of reducing the cost and burden for maintaining the consistency between the design document and the implementation.
本発明が様々な変形及び代替形態の余地のある一方で、その特定の実施形態は、図面内の例として示されており、詳細な説明によって本明細書において記載されることになる。但し、本発明を開示された特定の形態に限定するようには意図しておらず、逆に、本発明が、添付の請求項によって定義されるような本発明の精神及び範囲以内にある変形、均等物、及び代替手段をすべて網羅することを理解するべきである。 While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof have been shown by way of example in the drawings and will be described herein by way of detailed description. However, it is not intended to limit the invention to the particular forms disclosed, but on the contrary, the invention is within the spirit and scope of the invention as defined by the appended claims. It should be understood that all equivalents and alternatives are intended to be covered.
図1を参照すると、テストシステム100の簡略ブロック図が表される。図1のテストシステム100は、本発明の修正管理装置300の例である。テストシステム100は、設計モデル入力モジュール102及びテスト結果報告モジュール112に接続される。設計モデル入力モジュール102は、端末装置であってもよい。テスト結果報告モジュール112は、ディスプレイ装置であってもよい。
Referring to FIG. 1, a simplified block diagram of a test system 100 is represented. The test system 100 of FIG. 1 is an example of the
テストシステム100は、メタデータ操作モジュール106と、テスト制御/実行モジュール110と、設計モデル記憶部200と、プログラム記憶部201と、テスト部品記憶部202と、メタデータ記憶部203とを含む。
The test system 100 includes a
メタデータ操作モジュール106及びテスト制御/実行モジュール110は、コンピュータであるテストシステム100のプロセッサがメモリ内に格納されたプログラムを読み込んで実行すると機能する。同等の機能は、集積回路などのハードウェア部によって実現されることができる。設計モデル記憶部200、プログラム記憶部201、テスト部品記憶部202及びメタデータ記憶部203は、ハードウェアディスクドライブ又はICメモリのようなメモリ装置であってもよい。
The
また、図1に示すのは、テスト対象システム(SUT)114の構成要素である。テスト対象システム114は、テストシステム100と、設計モデル120と、テスト部品116とによってテストされる対象である。設計モデル120は、テスト対象システムの構造的側面及び行動的側面を表現する。テスト部品116は、テスト対象システム114と通信する部品又はテストの行動的側面を実現する外部構成要素である設計モデル120、テスト対象システム114、及びテスト部品116は、設計モデル記憶部200、プログラム記憶装置201及びテスト部品記憶装置202内にそれぞれ格納される。
Also shown in FIG. 1 are components of the system under test (SUT) 114. The
例えば、テスト対象システム114は、アプリケーションプログラムのようなソフトウェアであってもよい。テスト対象システム114は、C++又はJAVA(登録商標)言語のようなオブジェクト指向言語を用いてアプリケーションシステム内のオブジェクトの構造及び行動を記載し、グラフィカルユーザインタフェースによりパーソナルコンピュータ上で動作する。テスト対象システム114の別の例は、ネットワーク又は通信チャネルによって接続される1つ以上のコンピュータ上で実行するクライアント・サーバプログラムである。テスト対象システム114の更なる例は、携帯電話又はタブレット型コンピュータなどのモバイル機器のマイクロプロセッサ上に動作する制御プログラムである。本発明を実施するための装置、システム、及び方法は、あらゆるタイプのテスト対象システム114により同様に充分に機能し、本明細書における例示的な実施形態は、請求項に係る発明を何らかの方法で限定するようには意図されない。
For example, the
図3内に示されるテスト部品116は、テストシーケンス及びテストの動作条件を定義する。また、テスト部品116は、1つ以上のソフトウェアモジュールから構成されてもよい。その1つ以上のソフトウェアモジュールは、テスト対象システム114が動作する条件を初期化し、テスト対象システム114の適切な行動を確認するために行われる動作のシーケンスを定義し、及び/又は、テスト対象システム114への入力を提供することによって、テスト対象システム114と相互に作用することができる。例えば、ATM(現金自動預け払い機)を用いて、銀行口座から現金を引き出すシナリオの適切な行動を確認するために、テスト部品116は、ソフトウェアモジュールから構成されてもよい。そのソフトウェアモジュールは、引き出す口座、認証のためのPINコード及びカードデータベース、バンキングシステムによって行われる引き出し動作のシーケンス、及びATMに対する預金引き出しの入力を設定する。
The
テスト部品116は、ソースコードを編集することができるテキストエディタ内にプログラムコードを入力することによって、手動的に生成されてもよい。又は、テスト部品116は、プロトタイプから部分的に自動的に生成され、その後、テキストエディタによって要求通り修正されてもよい。例えば、テスト部品116は、動作条件がシナリオからシナリオに変化するように、テスト対象システム114のための複数の動作条件を設定するために修正されてもよい。
The
設計モデル120は、テスト対象システム114の構造的側面及び/又は行動的側面を表現することができるモデリング言語により記載されてもよい。設計モデル120は、テスト対象システム114内のオブジェクトの構造的側面及び行動的側面を記載してもよい。例えば、設計モデル120は、UML(ユニファイドモデリング言語)クラス図、オブジェクト図、状態遷移図、シーケンス図、及びユースケース図を含んでもよい。あるいは、設計モデル120は、JML(Javaモデリング言語)、又は他の種類のモデリング言語によって記載されてもよい。バンキングアプリケーション内のオブジェクトの「口座(Account)」クラスの設計モデルの例は、図4のUMLクラス図によって表される。図4に示すように、クラスの名前は「口座(Account)」である。第2の部分において、クラスの属性(別名、メンバー変数)は、個別のラインにリストアップされる。各ラインは、属性名と属性タイプとのペアを示す。第3の部分において、クラスのメソッドは、個別のラインにリストアップされる。各ラインは、括弧内のパラメータリストを有するメソッド名と戻り値のタイプとのペアを示す。
The
テスト制御/実行モジュール110は、テスト部品116とテスト対象システム114との間のインタフェースを提供し、テスト部品116によって定義されるようにテストを行う。好適な実施形態において、テスト制御/実行モジュール110は、図2に示すように、テスト制御122とテスト実行124を論理的に含む。テスト制御122は、テスト部品116内に定義されたオブジェクトの生成、テストの開始及び終了などのテスト動作に対する制御を提供してもよい。テスト実行124は、テスト部品116によって指定されたテスト行動を実現するためにプログラムコードを実際に実行する少なくともインタプリタ又は仮想マシンによって実現されてもよい。テスト実行124は、後述するメタデータ内の変更のために動的な更新をサポートするために、動的クラスローディング及び動的オブジェクトバインディングの能力を持つべきである。
The test control /
設計モデル入力モジュール102は、テスト対象システム114の設計モデル120を記載する入力を受信することができ、且つ設計モデル記憶部200内に保存された出力データを提供することができる、インタフェースであってもよい。好適な実施形態において、設計モデル入力モジュール102は、設計モデル120を入力又は編集するために用いることができる、キーボード、ポインティングデバイス、ディスプレイ、及びグラフィカルユーザインタフェースを有するコンピュータ端末である。
The design
テスト結果報告モジュール112は、映像出力及び/又は音声出力、及び/又はデータ出力を、記憶装置若しくはメモリに対して提供することができる物理的なディスプレイ端末若しくはインタフェースであってもよい。好適な実施形態において、テスト報告モジュール112は、テスト制御/実行モジュール110に接続されたグラフィカルユーザインタフェースを有するコンピュータ端末である。又は、テスト報告モジュール112は、ネットワーク若しくは何らかの通信媒体を介してテスト制御/実行モジュール110と通信してもよい。
The test
メタデータ記憶部203は、図4に示すようなメタデータを記憶する。メタデータは、テスト対象システム114内のオブジェクトの構造に関する仕様を提供する1セットのデータである。オブジェクトの構造は、オブジェクトのクラス名と、クラスの属性の名前及びタイプと、クラスのメソッドの名前及び戻り型と、クラスのメソッドの引数の名前及びタイプとを含む。例えば、図4に示すXML内に記述されたメタデータのレコードは、図6の設計モデルによって指定されたクラスの属性及びメソッドを伴うクラスの仕様を提供する。図4及び図6の上記の説明、例、及び構成要素は、単に例示的であって、請求項に係る発明を多少なりとも限定するようには意図されない。
The
図1に示されて、図5に更に詳細に示されるメタデータ操作モジュール106は、メタデータ126、128、130を生成することができるモジュールである。すなわち、メタデータ操作モジュール106は、(a)設計モデル120から設計書内の各オブジェクトのメタデータ126を生成し、(b)テスト対象システム114の各オブジェクトからメタデータ128を生成し、(c)テスト部品116の各オブジェクトからメタデータ130を生成する。以降、設計モデル120、テスト対象システム114及びテスト部品116の各々は、システム構成要素を指す。メタデータ操作モジュール106は、以下の(d)〜(g)のプロセスを行う能力を更に有する。(d)第1のシステム構成要素として以降称されるシステム構成要素の少なくとも1つに対して行われた修正を検出すること。(e)修正に従って、第1のシステム構成要素のメタデータを更新すること。(f)第2及び第3のシステム構成要素である他の2つのシステム構成要素のメタデータに対して、第1のシステム構成要素のメタデータに対して行われた更新を適用することによって、設計モデル120内のメタデータ126、テスト対象システム114内の対応するオブジェクトのメタデータ128、及びテスト部品116内の対応するオブジェクトのメタデータ130間の整合性を維持すること。(g)第2及び第3のシステム構成要素のメタデータに対して行われた変更を、第2及び第3のシステム構成要素に対してそれぞれ反映すること。
The
例えば、上記のプロセス(d)において、メタデータ操作モジュール106は、設計モデル120に対する修正を検出する。プロセス(e)において、メタデータ操作モジュール106は、修正に従ってメタデータ126を更新する。プロセス(f)において、メタデータ操作モジュール106は、メタデータ126、128、130間の整合性を維持するためにメタデータ128及び130を変更する。プロセス(g)において、メタデータ操作モジュール106は、メタデータ128に対して行われた変更、及びテスト部品116に対するメタデータ130に対して行われた変更を、テスト対象システム114に反映する。
For example, in the above process (d), the
プロセス(a)、(b)、及び(c)において、メタデータ操作モジュール106は、システム構成要素からメタデータを抽出するために、システム構成要素が記述された言語の構文規則を用いてもよい。例えば、メタデータ操作モジュール106は、テスト対象システム114及びテスト部品116がC++言語で記述された場合、テスト対象システム114及びテスト部品116から属性名及び属性タイプを抽出するためにC++言語の構文規則を用いる。
In processes (a), (b), and (c), the
プロセス(d)において、メタデータ操作モジュール106は、システム構成要素を修正するテキストエディタプログラムから通知を受信してもよい。
In process (d), the
プロセス(e)において、メタデータ操作モジュール106は、テキストエディタプログラムから第1のシステム構成要素に対して行われた修正のデータを受信してもよい。その後、第1のシステム構成要素のメタデータに対する修正がどこにどのように行われなければならないのか決定するために、第1のシステム構成要素が記述される言語の構文規則を用いてもよい。メタデータ操作モジュール106は、メタデータ126内の属性のタイプを変更するためにUMLの構文規則及び意味規則を用いて、属性のタイプが設計モデル120内で変更されることを検出する。
In process (e), the
プロセス(f)において、メタデータ操作モジュール106は、メタデータ126、128及び130が対応するオブジェクトごとに同一の構造を記載するように、第2及び第3のシステム構成要素のメタデータを更新する。例えば、対応するメソッドは、各メタデータ126、128及び130内に同一の名前及び同一の戻り型を有する。
In process (f), the
プロセス(g)において、メタデータ操作モジュール106は、第2のシステム構成要素のメタデータの更新版を参照し、第2のシステム構成要素が記述された言語の構文規則を用いてメタデータと第2のシステム構成要素との間の不一致を検出する。そして、メタデータ操作モジュール106は、メタデータに従って第2のシステム構成要素を修正する。例えば、第2のシステム構成要素がC++言語で記述されたSUT114である場合、メタデータ操作モジュール106は、C++言語の構文規則を用いて、メタデータ128内の属性のタイプと、SUT114のプログラムコード内の属性に対応する変数の定義との間の不一致を検出する。そして、メタデータ操作モジュール106は、メタデータ128に従って、SUT114内の定義内の変数のタイプを変更する。メタデータ操作モジュール106は、第3のシステム構成要素を同様に処理する。
In the process (g), the
それらの間の不整合性は、設計モデル120に対する修正によって、及び/又はテスト対象システム114のプログラムコード又はテスト部品116のプログラムコードの修正によって、引き起こされ得る。
Inconsistencies between them can be caused by modifications to the
例えば、図4のメタデータは、設計モデル120内の口座クラス(class Account)のメタデータ126を図示する。テスト対象システム114内の口座クラスのプログラムコードとしての実装の場合、メタデータ操作モジュール106は、口座クラスの実装のメタデータ128から口座クラスの設計モデル120のメタデータ126への依存関係を維持する。すなわち、テスト対象システム114内の口座クラスの各々の実装されるメソッドは、クラスの設計モデル120のメソッドのメタデータ126の対応する構成要素との関係を有する。また、テスト部品116内の「bobAccount」と呼ばれる口座(Account)のインスタンスオブジェクトの場合、メタデータ操作モジュール106は、インスタンスオブジェクト「bobAccount」から口座クラスの設計モデル120のメタデータ126への依存関係を維持する。
For example, the metadata of FIG. 4 illustrates the
メタデータ操作モジュール106が検出する変更は、設計モデル120、テスト対象システム114、及びテスト部品116内に生じるあらゆる変更を含む。すなわち、設計書内の変更に従って設計モデル120内に生じる変更、テスト対象システム114のプログラムコードの修正に従ってテスト対象システム114内に生じる変更、及びテスト部品116のプログラムコードの修正に従ってテスト部品116内に生じる変更を含む。
Changes detected by the
メタデータ操作モジュール106は、設計モデル120、テスト部品116、及びテスト対象システム114の変更に対してポーリングしてもよい。更に、テスト対象システム114及び/又はテスト部品116に対して行われた何らかの変更に関して、メタデータ操作モジュール106は、テスト制御/実行モジュール110に通知してもよい。その結果、モジュール110がランタイムオブジェクトを更新してテストを再実行することができる。
The
テストシステム100の動作を要約するために、ユーザは設計モデル入力モジュール102を用いて、設計モデル120を生成する。その後、ユーザは、テスト対象システム114を実装し、テスト部品116を設計通りに生成する。その後、メタデータ操作モジュール106は、設計モデル120、テスト部品116、及びテスト対象システム114から、メタデータ126、128、130を生成する。上記の前処理の各々が完了すると、必ずしも上記の順序ではないが、テストシステム100は、テスト対象システム114をテストする準備ができている。
To summarize the operation of the test system 100, the user uses the design
第1のテストにおいて、テスト制御/実行モジュール110は、テスト部品116を読み込み、及びテスト部品116によって指定されるように、テストを実行する。テスト部品116は、テスト対象システム114と相互に作用することによって、例えば、テスト対象システム114が提供するAPIを呼び出して、ステップを実行する。各々の行動スクリプトのテスト結果は、テスト結果報告モジュール112によってレポートするために記録される。
In the first test, the test control /
図7は、本発明の自動テストプロセスの動作を記載するフローチャートである。当業者は、テストプロセスが、変更を処理し、テストを中断し開始するために手動介入を要して行われてもよいし、又は、本発明により完全に自動化されたプロセスで行われてもよいことを認識するだろう。更に、本発明は、手動のプロセスと完全に自動化されたプロセスとの両方を組み込むハイブリッド手法が、設計モデル120内に生じる変更を処理することを可能にさせる。本質的には、本発明は、設計モデル120とメタデータ126との関係、テスト114下でのシステムの実装におけるメタデータ128とオブジェクトとの依存関係、及びテスト部品116の実装におけるメタデータ130とオブジェクトとの依存関係を定義する。更に、本発明は、変更を反映するための手段としてメタデータ126、128、130を活用する。当業者は、本発明が、完全に自動化されたプロセスが有効でない場合に既知の手動手順と組み合わせた自動プロセスと同様に、自動テストプロセスの提供が適することを認識するだろう。
FIG. 7 is a flowchart describing the operation of the automated test process of the present invention. Those skilled in the art will recognize that the test process may be performed with manual intervention to handle changes, interrupt and start the test, or may be performed in a fully automated process according to the present invention. You will recognize the good. Furthermore, the present invention allows a hybrid approach that incorporates both manual and fully automated processes to handle changes that occur within the
テストシステム100が処理することができる設計モデル120に対する変更は、メソッドの名前及び戻り型の変更、メソッドの署名内のデータ名及び引数のタイプの変更、クラス属性の名前及びタイプの変更、クラスの名前の変更、新たなメソッドの追加、新たな属性の追加、及び既存の属性及びメソッドの除去を含む。テストシステム100が処理することができるSUT114及びテスト部品116に対する変更は、以上に記載されたようなプログラムコード内の構造的な変更を含む。
Changes to the
自動テストプロセスは、設計モデル120が生成される動作200から開始する。これは、設計モデル入力モジュール102によって行うことができる。動作204では、テスト対象システム114を設計通りに実装し、その後、動作206では、システム行動をテストするためのテスト部品116を生成する。
The automated test process begins at
その後、動作208において、設計モデル120、テスト対象システム114、及びテスト部品116のメタデータ126が、メタデータ操作モジュール106によって生成される。メタデータ126、128及び130の生成は、ソフトウエアコンポーネントであるトランスフォーマによって実現されてもよい。トランスフォーマは、ソースコードの表現からメタデータ126、128、130のXML記述の間を変換する(その逆も成立する)ことができるコンパイラのように機能する。ソースコードの表現は、(a)設計モデル120の入力フォーマット、(b)SUT114のプログラムソースコード、又は(c)テスト部品116のプログラムソースコードであってもよい。これら3つの表現の各々ごとにトランスフォーマを有してもよい。それぞれのトランスフォーマは、(a)設計モデル120から設計モデル126のメタデータへの間、(b)SUT114からSUT128のメタデータへの間、及び(c)テスト部品116からテスト部品130のメタデータへの間をそれぞれ変換する。
Thereafter, in
次に、何らかの試験されていないテスト部品116が存在するか否かをテスト制御/実行モジュール110が判定する動作210において自動テストプロセスが起動される。存在する場合、動作212では、試験されていないテスト部品116をテストのために読み込み、動作214では、テスト部品116のテストを実行する。動作216では、次に、テスト結果を記録する。テストプロセスは、その後、試験されていないテスト部品116が存在するか否かをチェックする動作210まで一巡して戻ることによって継続する。テスト部品116がすべてテストされた場合、テストプロセスは、終了し、動作218では、テスト結果の報告を作成する。
Next, an automatic test process is initiated at
図8は、いくつかの変更がソースコードに対して行われる場合のメタデータ操作モジュール106の処理フローを表す。本明細書における用語「ソースコード(source)」は、設計モデル120又はSUT114又はテスト部品116(図5参照)を指してもよい。変更が生じる前の最初は、設計モデル126のメタデータ、SUT130のメタデータ、及びテスト部品128のメタデータは、それらがオブジェクトの同一の構造を記載する状態と同じ又は同等である。
FIG. 8 shows the processing flow of the
動作300では、ソースコード内の変更を検出する。これは、ソースコードの各々に対する何らかの状態変化を観察して自動的に通知するソフトウエアコンポーネントであるオブザーバをバインディングするによって実現することができる。オブザーバは、ソースコードに対して何らかの状態変化の106が生じるとメタデータ操作モジュールに通知し、また、変更の前(β)及び後(α)の内容を提供する。変更β及びαの内容は、メタデータを修正する後続の動作によって用いられるだろう。一旦変更が検出されれば、動作302では、実行する仮想マシンに休止することを命令することにより、テスト制御/実行モジュール110に対してその実行を休止するように命じる。
In
その後、動作304では、変更に従ってソースコードのメタデータを修正する。SによるソースコードのメタデータのXML記述を表すものとする(図4(a)のXML記述を参照)。動作208内に記載されたように、このようなメタデータを生成する対応するトランスフォーマによって、メタデータのXML記述に対する変更β及びαの内容を変換によって、動作304を実現することができる。
変換は、
β⇒m(β)、
α⇒m(α)、
であり、ここで、m(β)及びm(α)は、それぞれ、β及びαのメタデータのXML記述であり、その後、m(α)によってm(β)に対応するSの部分を置換する。
Thereafter, in
Conversion
β⇒m (β),
α⇒m (α),
Where m (β) and m (α) are XML descriptions of the metadata of β and α, respectively, and then replace the portion of S corresponding to m (β) by m (α) To do.
例えば、設計モデル120(ソースコード)に対して変更がなされるケースを図示するものとする。メソッド「credit」の引数「amount」のデータ型は、仕様書内の修正の結果として、整数(Integer)から文字列(String)に変更される。動作304では、設計モデル126のメタデータを更新する。これは、図4(b)に示すように、<arg type="Integer" name="amount">から<arg type="String" name="amount">に、メタデータの対応するXML記述を置換するメタデータ操作モジュール106によって行うことができる。
For example, a case where a change is made to the design model 120 (source code) is illustrated. The data type of the argument “amount” of the method “credit” is changed from an integer to a string as a result of the modification in the specification. In
動作306では、ソースコードではない他の2つのシステム構成要素のメタデータを修正する。同じ方式で、メタデータ操作モジュール106は、対応するS内の部分を、m(β)をm(α)に置換する。先の例から継続すると、メタデータ操作モジュール106は、<arg type="Integer" name="amount">から<arg type="String" name="amount">に、メタデータの対応するXML記述を置換することによって、SUT128のメタデータ及びテスト部品130のメタデータを修正する。
In
動作308では、ソースコード以外の2つのシステム構成要素に対して、メタデータの変更を反映する。動作208に記載したように、この動作は、対応するトランスフォーマによって実現することができる。先の例から、SUT114のトランスフォーマは、変更されたメタデータ128から新しい口座クラスを変換する。また、テスト部品116のトランスフォーマは、変更されたメタデータ130内の新しい口座クラスからインスタンス化された新しいオブジェクトを変換する。
In
一旦変更が反映されれば、動作310では、更新されたランタイムオブジェクトを再ロードしてテストの実行を再開するように、動作302の実行から休止された仮想マシンに命令する。それによって、動作310では、ランタイムオブジェクトを更新するようにテスト制御/実行モジュール110に指示する。
Once the change is reflected,
メタデータ操作モジュール106から構成される本発明の実施形態によれば、設計モデル120内の変更は、メタデータ126、128、130の変換を通じてテスト対象システム114及びテスト部品116の実装に反映されることができる。同様に、テスト対象システム114の実装内の変更は、メタデータ126、128、130の変換を通じて設計モデル120及びテスト部品116に反映されることができる。これは、設計書、実装及びテスト部品の間の整合性を維持するためのコスト及び労力を削減することができる。テスト制御/実行モジュール106から構成される本発明の実施形態によれば、テスト対象システム114又はテスト部品116内の修正は、手動の割り込みを伴わずに動的な再バインディングによって、テストにおいて有効になることができる。これは、時間を低減し、テストプロセスを制御するために必要だった配慮を最小限に抑えることができる。
According to an embodiment of the present invention comprising the
本発明の改善された実施形態において、メタデータの1つのみが修正管理装置200内に存在してもよい。この実施形態において、メタデータ操作モジュール106は、(a)、(b)及び(c)のプロセスのうちの1つのみを行ってもよく、必ずしもプロセス(f)を行う必要はない。
In an improved embodiment of the present invention, only one piece of metadata may be present in the
本発明の別の改善された実施形態において、システム構成要素の2つのみが修正管理装置300内に存在する。例えば、設計モデル120及びテスト対象システム114のみが、修正管理装置300内に存在してもよい。
In another improved embodiment of the present invention, only two of the system components are present in the
<第2の好ましい実施形態>
図9を参照すると、第2の好ましい実施形態における修正管理装置300の簡略ブロック図が表される。修正管理装置300は、設計モデル記憶部200と、プログラム記憶部201と、メタデータ記憶部203と、メタデータ操作部106とを備える。
<Second Preferred Embodiment>
Referring to FIG. 9, a simplified block diagram of a
設計モデル記憶装置200は、モデリング言語内のオブジェクトの構造を記載する設計モデル120を記憶する。プログラム記憶装置201は、テスト対象システムを記憶する。テスト対象システムは、プログラミング言語内のオブジェクトを記載するアプリケーションプログラムである。メタデータ記憶装置203は、オブジェクトの構造を記載するメタデータを記憶する。
The design
メタデータ操作部106は、アプリケーションプログラム及び設計モデル120のうちの一方になされた修正から構造内の変更を抽出する。更に、メタデータ操作部106は、構造内の変更に従ってメタデータを更新し、更新されたメタデータに従ってアプリケーションプログラム及び設計モデル120のうちの他方に対して構造内の変更を反映する。
The
設計書と実装との間の整合性を維持するためのコスト及び負担が軽減される。これは、メタデータ操作モジュール106により、設計モデル120内の変更がメタデータの変換を通じてテスト対象システム114の実装に反映され得る(その逆も成立する)からである。
Costs and burdens for maintaining consistency between the design document and the implementation are reduced. This is because a change in the
本発明は、コンピュータソフトウェアのテストの自動化用に用いることができるが、特にアジャイルソフトウェア開発には限定されない。本発明は、テスト対象システムの機能仕様書とテスト仕様書との間の整合性をチェックするために用いることができる。 The present invention can be used for computer software test automation, but is not particularly limited to agile software development. The present invention can be used to check the consistency between the functional specifications of the test target system and the test specifications.
100 テストシステム
102 設計モデル入力モジュール
106 メタデータ操作モジュール
110 テスト制御/実行モジュール
112 テスト結果報告モジュール
114 テスト対象システム
116 テスト部品
120 設計モデル
122 テスト制御
124 テスト実行
126 設計モデルのメタデータ
128 テスト部品のメタデータ
130 テスト対象システムのメタデータ
200 設計モデル記憶部
201 プログラム記憶部
202 テスト部品記憶装置
203 メタデータ記憶部
300 修正管理装置
DESCRIPTION OF SYMBOLS 100
Claims (11)
プログラミング言語内の前記オブジェクトを記載するアプリケーションプログラムを記憶するプログラム記憶手段と、
前記オブジェクトの前記構造を記載するメタデータを記憶するメタデータ記憶手段と、
前記アプリケーションプログラム及び前記設計モデルのうちの一方になされた修正から前記構造内の変更を抽出し、前記構造内の前記変更に従って前記メタデータを更新し、前記更新されたメタデータに従って前記アプリケーションプログラム及び前記設計モデルのうちの他方に対して前記構造内の前記変更を反映する操作手段と、
前記アプリケーションプログラムをテストするためのテスト部品を記憶するテスト部品記憶手段を備え、
前記操作手段は、前記アプリケーションプログラム、前記設計モデル、及び前記テスト部品のうちの1つにおいてなされた修正から前記構造内の前記変更を抽出し、前記アプリケーションプログラム、前記設計モデル、及び前記テスト部品のうちの他の2つに対して、前記構造内の前記変更を反映する
修正管理装置。 Design model storage means for storing a design model describing the structure of an object in a modeling language;
Program storage means for storing an application program that describes the object in a programming language;
Metadata storage means for storing metadata describing the structure of the object;
Extracting changes in the structure from modifications made to one of the application program and the design model, updating the metadata in accordance with the changes in the structure, and applying the application program and in accordance with the updated metadata An operating means for reflecting the change in the structure to the other of the design models;
Test part storage means for storing a test part for testing the application program,
The operating means extracts the change in the structure from a modification made in one of the application program, the design model , and the test part, and the operation means extracts the change in the application program, the design model, and the test part. A correction management device that reflects the change in the structure to the other two.
請求項1に記載の修正管理装置。 The structure of the object includes an attribute name and type, a method, and an argument of the method, and the change in the structure extracted and reflected by the manipulation means is a change in the name and / or the type The correction management device according to claim 1, comprising:
請求項1に記載の修正管理装置。 The structure of the object includes method attributes and names, and the changes in the structure extracted and reflected by the manipulation means include new attributes and / or addition of new methods and / or The modification management device according to claim 1, comprising removal of existing attributes and / or existing methods.
請求項1乃至3のいずれか1項に記載の修正管理装置。 The operation means 1) generates first metadata and second metadata from the design model and the application program, respectively, and stores them in the metadata storage means, and 2a) stores the first metadata. Referring to, extract the change in the structure from the modifications made in the design model, reflect the change to the first metadata and the second metadata, and then the second 2b) reflecting the change in the structure to the application program, or 2b) referring to the second metadata and from the modifications made in the application program The change is extracted, the change is reflected to the first metadata and the second metadata, and then the first metadata is referred to. Modification management apparatus according to any one of claims 1 to 3 to reflect the changes in the structure with respect to the design model.
を更に備える請求項4に記載の修正管理装置。 The correction management apparatus according to claim 4 , further comprising: a test control unit that tests the application program using the test component after the operation unit finishes reflecting the change.
前記反映の際に、前記アプリケーションプログラム、前記設計モデル、及び前記アプリケーションプログラムをテストするためのテスト部品のうちの1つにおいてなされた修正から前記構造内の前記変更を抽出し、前記アプリケーションプログラム、前記設計モデル、及び前記テスト部品のうちの他の2つに対して、前記構造内の前記変更を反映する
修正管理方法。 A change in the structure is extracted from a modification made to one of an application program that describes the object in a programming language and a design model that describes the structure of the object in a modeling language, and the change in the structure Updating metadata describing the structure of the object and reflecting the change in the structure to the other of the application program and the design model according to the updated metadata;
In the reflection, the change in the structure is extracted from a modification made in one of the application program, the design model , and a test part for testing the application program, and the application program, A correction management method for reflecting the change in the structure to the other two of the design model and the test part.
請求項6に記載の修正管理方法。 The structure of the object, the name and type of attributes, including the method and arguments of the method, the change of the extracted is reflected in the structure, according to claim 6, including changes of the name and / or the type The correction management method described in 1.
請求項6に記載の修正管理方法。 The structure of the object includes method attributes and names, and the changes in the extracted and reflected structure may include new attributes and / or new method additions and / or existing attributes and / or Alternatively, the correction management method according to claim 6 , comprising removing an existing method.
前記反映の際に、前記アプリケーションプログラム、前記設計モデル、及び前記アプリケーションプログラムをテストするためのテスト部品のうちの1つにおいてなされた修正から前記構造内の前記変更を抽出し、前記アプリケーションプログラム、前記設計モデル、及び前記テスト部品のうちの他の2つに対して、前記構造内の前記変更を反映する
処理をコンピュータに実行させる修正管理プログラム。
A change in the structure is extracted from a modification made to one of an application program that describes the object in a programming language and a design model that describes the structure of the object in a modeling language, and the change is made according to the change in the structure Updating metadata describing the structure of the object and reflecting the change in the structure to the other of the application program and the design model according to the updated metadata;
In the reflection, the change in the structure is extracted from a modification made in one of the application program, the design model , and a test part for testing the application program, and the application program, A correction management program for causing a computer to execute a process of reflecting the change in the structure for the other two of the design model and the test part.
請求項9に記載の修正管理プログラム。 The structure of the object, the name and type of attributes, including the method and arguments of the method, the change in the structure that is reflected is extracted, according to claim 9, including changes of the name and / or the type Fix management program described in.
請求項9に記載の修正管理プログラム。 The structure of the object includes method attributes and names, and the changes in the extracted and reflected structure may include new attributes and / or new method additions and / or existing attributes and / or Alternatively, the correction management program according to claim 9 including removal of an existing method.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/069937 WO2014020773A1 (en) | 2012-07-31 | 2012-07-31 | A modification management apparatus, a modification management method and a modification management program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015527621A JP2015527621A (en) | 2015-09-17 |
JP6011712B2 true JP6011712B2 (en) | 2016-10-19 |
Family
ID=46852339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015501985A Active JP6011712B2 (en) | 2012-07-31 | 2012-07-31 | Correction management device, correction management method, and correction management program |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6011712B2 (en) |
WO (1) | WO2014020773A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076248B (en) * | 2021-04-08 | 2021-11-30 | 马上消费金融股份有限公司 | Application processing method, device and equipment and readable storage medium |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6502239B2 (en) * | 1998-11-12 | 2002-12-31 | Computer Associates Think, Inc | Method and apparatus for round-trip software engineering |
-
2012
- 2012-07-31 JP JP2015501985A patent/JP6011712B2/en active Active
- 2012-07-31 WO PCT/JP2012/069937 patent/WO2014020773A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2014020773A1 (en) | 2014-02-06 |
JP2015527621A (en) | 2015-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108027722B (en) | Dynamically updating applications in compilation and deployment | |
US8707263B2 (en) | Using a DSL for calling APIS to test software | |
US10489274B2 (en) | Using emulation to disassociate verification from stimulus in functional test | |
JP5415557B2 (en) | User script code conversion for debugging | |
US8490052B2 (en) | Declarative programming model for authoring and execution control and data flow for resource oriented system | |
US8448132B2 (en) | Systems and methods for modifying code generation templates | |
US8051405B2 (en) | System and method for build script generation in a software development environment | |
US8615750B1 (en) | Optimizing application compiling | |
Mayerhofer et al. | A runtime model for fUML | |
US7581190B2 (en) | Constructing user interfaces on top of cmdlets | |
JP5396979B2 (en) | Software development support device, system, software development support device function expansion method, and program | |
WO2019005228A1 (en) | Automated source code adaption to inject features between platform versions | |
EP2564316B1 (en) | Resumable methods | |
US9304762B2 (en) | Automatically customizing a computer-executable application at runtime | |
US20170300305A1 (en) | Executable guidance experiences based on implicitly generated guidance models | |
US20110271248A1 (en) | Converting controls into source code | |
US9454382B2 (en) | Verification of UML state machines | |
JP6011712B2 (en) | Correction management device, correction management method, and correction management program | |
US20130111432A1 (en) | Validation of a system model including an activity diagram | |
US11442845B2 (en) | Systems and methods for automatic test generation | |
US20210208912A1 (en) | Simulated change of immutable objects during execution runtime | |
Cabral et al. | Automated formal specification generation and refinement from requirement documents | |
US10545742B2 (en) | Annotation-driven framework for generating state machine updates | |
Fenner | Migration of software systems to platform as a service based cloud environments | |
Groenewegen et al. | Evolution of the WebDSL Runtime |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150617 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150617 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160229 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160315 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160511 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160607 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160727 |
|
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: 20160823 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160905 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Ref document number: 6011712 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |