JP2014032447A - デグレードテスト支援システム、デグレードテスト支援方法及びデグレードテスト支援プログラム - Google Patents

デグレードテスト支援システム、デグレードテスト支援方法及びデグレードテスト支援プログラム Download PDF

Info

Publication number
JP2014032447A
JP2014032447A JP2012171058A JP2012171058A JP2014032447A JP 2014032447 A JP2014032447 A JP 2014032447A JP 2012171058 A JP2012171058 A JP 2012171058A JP 2012171058 A JP2012171058 A JP 2012171058A JP 2014032447 A JP2014032447 A JP 2014032447A
Authority
JP
Japan
Prior art keywords
name
module
source
database
execution result
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
JP2012171058A
Other languages
English (en)
Other versions
JP6006577B2 (ja
Inventor
Kazuya Ueno
和哉 上野
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.)
Hitachi Systems Ltd
Original Assignee
Hitachi Systems Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Systems Ltd filed Critical Hitachi Systems Ltd
Priority to JP2012171058A priority Critical patent/JP6006577B2/ja
Publication of JP2014032447A publication Critical patent/JP2014032447A/ja
Application granted granted Critical
Publication of JP6006577B2 publication Critical patent/JP6006577B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】デグレード発生箇所を容易に判定すること。
【解決手段】改修前後のソースのステップ毎に処理実行順を出力させる処理順出力機能及びステップで参照可能な変数を出力させる変数値出力機能を埋め込んだ改修前後のテスト用ソースを生成するテスト用ソース生成部005と、改修前後のテスト用オブジェクトコードを実行した際に出力された処理フロー情報を処理フローDB019に格納すると共に出力された変数を実行結果DB020に格納するテスト実行部と、前記実行結果DB020から実行結果の変数の値に差異があるレコードを判定して表示させる実行結果比較部007と、デグレード発生箇所を含むシーケンス図を生成するシーケンス図生成部008と、デグレード発生箇所が影響を及ぼす呼び出し先一覧情報を表示する呼び出し先の一覧抽出部009とを備えたデグレードテスト支援システム。
【選択図】図1

Description

本発明は、コンピュータのソフトウェアをバージョンアップした際に品質がバージョンアップ前より悪くなることや修正した不具合やバグが再発・復活するデグレードを試験することができるデグレードテスト支援システム、デグレードテスト支援方法及びデグレードテスト支援プログラムに係り、特にデグレードテスト作業工数削減及びデグレード発生時の調査作業工数を削減することができるデグレードテスト支援システム、デグレードテスト支援方法及びデグレードテスト支援プログラムに関する。
一般にデグレードとは、ソフトウェアをバージョンアップした際に品質がバージョンアップ前より悪くなることや修正した不具合やバグが再発・復活することを意味し、ソフトウェア開発企業等においては、このデグレードが発生したか否かを試験するためのデグレードテストが行われている。
このデグレードテストに関する技術が記載された文献としては、下記の特許文献1及び2が挙げられ、該特許文献1には、改善前後のプログラムを実行するステップと、改善前プログラムによる実行結果とそのジャーナルを改善前DB(データベース)及び改善前ジャーナルに格納するステップと、改善後プログラムによる実行結果及びそのジャーナルを改善後DB(データベース)並びに改善後ジャーナルとに格納するステップと、改善前後のDB及びジャーナルを比較するステップと、比較の結果、不一致データ項目名が作成済みの改善項目内容DBにあるか否かを判定するステップと、不一致データ項目名があると判定したときに警告を発するステップと、不一致データ項目名が改善対象データ項目にないと判定したときにエラー表示してDBのキーとプログラム改善前後のデータ項目名とプログラム改善前後の内容をデグレード判別結果ファイルに出力するステップとを実行することによって、改修前後プログラムにおける当該プログラムのデグレード有無を効率よく検証及び確認する技術が記載され、特許文献2には、バージョンアップ前の当初ソフトウェアを第1コンピュータシステムに搭載し、検査員がキーボード及びマウスを使ってテストを行い、このテスト結果をコンバートして表示部に表示し、こうして得たテスト手順及びテスト結果をコンバートして第1コンピュータシステム内に電子ファイル化して格納し、バグ検出があれば第3コンピュータシステムに収集したバグ関連情報を第2コンピュータシステム内に格納することによって、当初のソフトウェアのテスト内容を学習すると共に、バージョンアップソフトウェアを第1コンピュータシステムに搭載して同一テストを行う場合は、上記学習結果であるテスト手順を読出して自動的なテストを行い、このテスト結果も、上記ファイル化したテスト結果と比較することでチェックし、バグ関連情報もバグ検出時には利用して点検に供する技術が記載されている。
特開2005−276040号公報 特開平8−212108号公報
前述の特許文献1に記載の技術は、改修前後プログラムにおける当該プログラムのデグレード有無を効率よく検証、確認することができ、特許文献2に記載の技術は、改修前後プログラムのテスト内容を電子ファイル化し、デグレード検出を効率的に確認することができるものの、デグレード発生タイミングやデグレード発生箇所を確認することが考慮されておらず、プログラム設計書の見直し及びソースの解析が必要となるという課題と、デグレードが発生したメソッドを参照しているモジュールを確認することが考慮されておらず、影響範囲の特定に漏れが発生する可能性があるという課題があった。
特に近年においては、システム開発案件において短納期や高品質化の要求が高まっており、その中で大規模システムの改修作業ではデグレードテストにおける工数が大きなウェイトを占め、デグレードが発生した場合の発生箇所の特定や影響範囲の特定にも膨大な工数が費やされ、工程の圧迫が課題となっている。
本発明の目的は、前述の従来技術による課題を解決しようとするものであり、デグレード発生タイミングやデグレード発生箇所を判定すると共にデグレードが発生したメソッドを参照しているモジュールを判定して表示することができるデグレードテスト支援システム、デグレードテスト支援方法及びデグレードテスト支援プログラムを提供することである。
本発明の他の目的は、デグレードテストの作業工数削減およびデグレードチェックの漏れを防止すること、また、デグレード発生時の調査作業の軽減や手戻り作業の軽減を可能とするデグレードテスト支援システム、デグレードテスト支援方法及びデグレードテスト支援プログラムを提供することである。
前記目的を達成するため本発明は、階層構造のモジュール及びメソッドを含む改修後のソースをテストするための担当用コンピュータと接続され、改修前後のソースを参照して改修後のソースにデグレードが発生したか否かを試験するデグレードテスト支援システムであって、
前記改修前後のソースを格納するソースデータベースと、
前記改修前後のソースのモジュール又はメソッドの階層と処理順とを含む処理フロー情報を格納する処理フローデータベースと、
前記改修前後のソースの各ステップが参照する変数を格納する実行結果データベースと、
前記改修前後のソースのステップ毎に処理実行順を出力させる処理順出力機能及び前記ステップで参照可能な変数を出力させる変数値出力機能を埋め込んだ改修前後のテスト用ソースを生成するテスト用ソース生成部と、
前記改修前後のテスト用ソースから改修前後のテスト用オブジェクトコードを生成するコンパイル部と、
前記改修前後のテスト用オブジェクトコードを実行し、前記処理順出力機能によって出力された処理フロー情報を前記処理フローデータベースに格納すると共に前記変数値出力機能によって出力された変数を前記実行結果データベースに格納するテスト実行部と、
前記実行結果データベースから実行結果の変数の値に差異がある前記改修前後のテスト用オブジェクトコードのレコードを抽出し、該抽出したレコードのモジュール名及びメソッド名と、該抽出したレコードの上位レコードの上位モジュール名及び上位メソッド名を前記処理フローデータベースに格納した処理フロー情報の階層及び処理順を参照して抽出し、該抽出した複数のモジュール名及びメソッド名並びに上位モジュール名及び上位メソッド名を担当用コンピュータに表示させる実行結果比較部とを備えることを第1の特徴とする。
また、本発明は、前記第1の特徴のデグレードテスト支援システムにおいて、前記実行結果データベースが、改修前テスト用オブジェクトコードの実行により出力された変数を格納する改修前実行結果データベースと、改修後テスト用オブジェクトコードの実行により出力された変数を格納する改修後実行結果データベースとを含み、
前記実行結果比較部が、改修前実行結果データベース及び改修後実行結果データベース個々のモジュール名とメソッド名と行数と変数名と値のフィールドを等結合し、前記値のフィールドが異なるレコードを実行結果の変数の値に差異があるレコードとして抽出することを第2の特徴とする。
また、本発明は、前記何れかの特徴のデグレードテスト支援システムにおいて、前記処理フローデータベースが、改修前ソースのモジュール又はメソッドの階層と処理順とを含む改修前処理フロー情報を格納する改修前処理フローデータベースと、改修後ソースのモジュール又はメソッドの階層と処理順とを含む改修後処理フロー情報を格納する改修後処理フローデータベースとを含み、
前記改修前処理フローデータベースに格納した改修前ソースのモジュール又はメソッドの階層と処理順とに基づいてモジュール及びメソッド間のやりとりを時間軸に沿って表現する階層前シーケンス図を生成し、前記改修後処理フローデータベースに格納した改修後ソースのモジュール又はメソッドの階層と処理順とに基づいてモジュール及びメソッド間のやりとりを時間軸に沿って表現する階層後シーケンス図を生成し、前記実行結果比較部により抽出した実行結果の変数の値に差異があるレコードのモジュール又はメソッドの色を変化させて担当用コンピュータに表示させるシーケンス図生成部を備えることを第3の特徴とする。
また、本発明は、前記何れかの特徴のデグレードテスト支援システムにおいて、階層データベースからデグレード発生箇所の対象モジュール名及び対象メソッド名を上位対象モジュール名及び上位対象メソッド名として抽出する上位抽出工程と、前記階層データベースから前記上位対象モジュール名及び上位対象メソッド名を階層構造の親とする下位対象モジュール名及び下位対象メソッド名とを抽出する下位抽出工程と、該下位抽出工程を前記下位対象モジュール名及び下位対象メソッド名がソースの最終行でないと判定するまで繰り返す繰り返し工程とを実行し、前記上位抽出工程及び下位抽出工程によって抽出した対象モジュール名及び対象メソッド名とに基づいてデグレード発生箇所の対象モジュール名及び対象メソッド名が影響を及ぼす呼び出し先一覧情報を作成して表示する呼び出し先一覧抽出部を設けたことを第4の特徴とする。
更に、本発明は、階層構造のモジュール及びメソッドを含む改修後のソースをテストするための担当用コンピュータと接続され、改修前後のソースを格納するソースデータベースと、前記改修前後のソースのモジュール又はメソッドの階層と処理順とを含む処理フロー情報を格納する処理フローデータベースと、前記改修前後のソースの各ステップが参照する変数を格納する実行結果データベースとを備え、前記改修前後のソースを参照して改修後のソースにデグレードが発生したか否かを試験するコンピュータシステムのデグレードテスト支援方法であって、
該コンピュータシステムが、
前記改修前後のソースのステップ毎に処理実行順を出力させる処理順出力機能及び前記ステップで参照可能な変数を出力させる変数値出力機能を埋め込んだ改修前後のテスト用ソースを生成するテスト用ソース生成工程と、
前記改修前後のテスト用ソースから改修前後のテスト用オブジェクトコードを生成するコンパイル工程と、
前記改修前後のテスト用オブジェクトコードを実行し、前記処理順出力機能によって出力された処理フロー情報を前記処理フローデータベースに格納すると共に前記変数値出力機能によって出力された変数を前記実行結果データベースに格納するテスト実行工程と、
前記実行結果データベースから実行結果の変数の値に差異がある前記改修前後のテスト用オブジェクトコードのレコードを抽出し、該抽出したレコードのモジュール名及びメソッド名と、該抽出したレコードの上位レコードの上位モジュール名及び上位メソッド名を前記処理フローデータベースに格納した処理フロー情報の階層及び処理順を参照して抽出し、該抽出した複数のモジュール名及びメソッド名並びに上位モジュール名及び上位メソッド名を担当用コンピュータに表示させる実行結果比較工程とを実行することを第5の特徴とする。
また、本発明は、前記第5の特徴のデグレードテスト支援方法において、前記実行結果データベースが、改修前テスト用オブジェクトコードの実行により出力された変数を格納する改修前実行結果データベースと、改修後テスト用オブジェクトコードの実行により出力された変数を格納する改修後実行結果データベースとを含み、
前記コンピュータシステムが、前記実行結果比較工程において、改修前実行結果データベース及び改修後実行結果データベース個々のモジュール名とメソッド名と行数と変数名と値のフィールドを等結合し、前記値のフィールドが異なるレコードを実行結果の変数の値に差異があるレコードとして抽出することを第6の特徴とする。
また、本発明は、前記何れかの特徴のデグレードテスト支援方法において、前記処理フローデータベースが、改修前ソースのモジュール又はメソッドの階層と処理順とを含む改修前処理フロー情報を格納する改修前処理フローデータベースと、改修後ソースのモジュール又はメソッドの階層と処理順とを含む改修後処理フロー情報を格納する改修後処理フローデータベースとを含み、
前記コンピュータシステムが、改修前処理フローデータベースに格納した改修前ソースのモジュール又はメソッドの階層と処理順とに基づいてモジュール及びメソッド間のやりとりを時間軸に沿って表現する階層前シーケンス図を生成し、前記改修後処理フローデータベースに格納した改修後ソースのモジュール又はメソッドの階層と処理順とに基づいてモジュール及びメソッド間のやりとりを時間軸に沿って表現する階層後シーケンス図を生成し、前記実行結果比較工程により抽出した実行結果の変数の値に差異があるレコードのモジュール又はメソッドの色を変化させて担当用コンピュータに表示させるシーケンス図生成工程を実行することを第7の特徴とする。
また、本発明は、前記何れかの特徴のデグレードテスト支援方法において、前記コンピュータシステムが、階層データベースからデグレード発生箇所の対象モジュール名及び対象メソッド名を上位対象モジュール名及び上位対象メソッド名として抽出する上位抽出工程と、前記階層データベースから前記上位対象モジュール名及び上位対象メソッド名を階層構造の親とする下位対象モジュール名及び下位対象メソッド名とを抽出する下位抽出工程と、該下位抽出工程を前記下位対象モジュール名及び下位対象メソッド名がソースの最終行でないと判定するまで繰り返す繰り返し工程とを実行し、前記上位抽出工程及び下位抽出工程によって抽出した対象モジュール名及び対象メソッド名とに基づいてデグレード発生箇所の対象モジュール名及び対象メソッド名が影響を及ぼす呼び出し先一覧情報を作成して表示する工程とを実行する呼び出し先一覧抽出を行うことを第8の特徴とする。
更に、本発明は、階層構造のモジュール及びメソッドを含む改修後のソースをテストするための担当用コンピュータと接続され、改修前後のソースを格納するソースデータベースと、前記改修前後のソースのモジュール又はメソッドの階層と処理順とを含む処理フロー情報を格納する処理フローデータベースと、前記改修前後のソースの各ステップが参照する変数を格納する実行結果データベースとを備え、前記改修前後のソースを参照して改修後のソースにデグレードが発生したか否かを試験するコンピュータシステムのデグレードテスト支援プログラムであって、
該コンピュータシステムに、
前記改修前後のソースのステップ毎に処理実行順を出力させる処理順出力機能及び前記ステップで参照可能な変数を出力させる変数値出力機能を埋め込んだ改修前後のテスト用ソースを生成するテスト用ソース生成機能と、
前記改修前後のテスト用ソースから改修前後のテスト用オブジェクトコードを生成するコンパイル機能と、
前記改修前後のテスト用オブジェクトコードを実行し、前記処理順出力機能によって出力された処理フロー情報を前記処理フローデータベースに格納すると共に前記変数値出力機能によって出力された変数を前記実行結果データベースに格納するテスト実行機能と、
前記実行結果データベースから実行結果の変数の値に差異がある前記改修前後のテスト用オブジェクトコードのレコードを抽出し、該抽出したレコードのモジュール名及びメソッド名と、該抽出したレコードの上位レコードの上位モジュール名及び上位メソッド名を前記処理フローデータベースに格納した処理フロー情報の階層及び処理順を参照して抽出し、該抽出した複数のモジュール名及びメソッド名並びに上位モジュール名及び上位メソッド名を担当用コンピュータに表示させる実行結果比較機能とを実現させることを第9の特徴とする。
また、本発明は、前記第9の特徴のデグレードテスト支援プログラムにおいて、前記実行結果データベースが、改修前テスト用オブジェクトコードの実行により出力された変数を格納する改修前実行結果データベースと、改修後テスト用オブジェクトコードの実行により出力された変数を格納する改修後実行結果データベースとを含み、
前記実行結果比較機能において、前記コンピュータシステムに、改修前実行結果データベース及び改修後実行結果データベース個々のモジュール名とメソッド名と行数と変数名と値のフィールドを等結合する機能と、前記値のフィールドが異なるレコードを実行結果の変数の値に差異があるレコードとして抽出させる機能とを実現させることを第10の特徴とする。
また、本発明は、前記何れかの特徴のデグレードテスト支援プログラムにおいて、前記処理フローデータベースが、改修前ソースのモジュール又はメソッドの階層と処理順とを含む改修前処理フロー情報を格納する改修前処理フローデータベースと、改修後ソースのモジュール又はメソッドの階層と処理順とを含む改修後処理フロー情報を格納する改修後処理フローデータベースとを含み、
前記コンピュータシステムに、改修前処理フローデータベースに格納した改修前ソースのモジュール又はメソッドの階層と処理順とに基づいてモジュール及びメソッド間のやりとりを時間軸に沿って表現する階層前シーケンス図を生成する機能と、前記改修後処理フローデータベースに格納した改修後ソースのモジュール又はメソッドの階層と処理順とに基づいてモジュール及びメソッド間のやりとりを時間軸に沿って表現する階層後シーケンス図を生成する機能と、前記実行結果比較機能により抽出した実行結果の変数の値に差異があるレコードのモジュール又はメソッドの色を変化させたシーケンス図を担当用コンピュータに表示させる機能を実現させることを第11の特徴とする。
また、本発明は、前記何れかの特徴のデグレードテスト支援プログラムにおいて、前記コンピュータシステムに、階層データベースからデグレード発生箇所の対象モジュール名及び対象メソッド名を上位対象モジュール名及び上位対象メソッド名として抽出する上位抽出機能と、前記階層データベースから前記上位対象モジュール名及び上位対象メソッド名を階層構造の親とする下位対象モジュール名及び下位対象メソッド名とを抽出する下位抽出機能と、該下位抽出機能を前記下位対象モジュール名及び下位対象メソッド名がソースの最終行でないと判定するまで繰り返す繰り返し機能とを実行させ、前記上位抽出機能及び下位抽出機能によって抽出した対象モジュール名及び対象メソッド名とに基づいてデグレード発生箇所の対象モジュール名及び対象メソッド名が影響を及ぼす呼び出し先一覧情報を作成して表示機能による呼び出し先一覧抽出機能を実現させることを第12の特徴とする。
本発明によるデグレードテスト支援システム、デグレードテスト支援方法及びデグレードテスト支援プログラムは、改修前後のソースのステップ毎に処理実行順を出力させる処理順出力機能及び前記ステップで参照可能な変数を出力させる変数値出力機能を埋め込んだ改修前後のテスト用ソースを生成するテスト用ソース生成部と、前記改修前後のテスト用オブジェクトコードを実行した際に出力された処理フロー情報を処理フローデータベースに格納すると共に出力された変数を実行結果データベースに格納するテスト実行部と、実行結果データベースから実行結果の変数の値に差異がある改修前後のテスト用オブジェクトコードのレコードを抽出し、該抽出したレコードのモジュール名及びメソッド名と、該抽出したレコードの上位レコードの上位モジュール名及び上位メソッド名を処理フローデータベースに格納した処理フロー情報の階層及び処理順を参照して抽出し、該抽出した複数のモジュール名及びメソッド名並びに上位モジュール名及び上位メソッド名を担当用コンピュータに表示させる実行結果比較部とを備えたことによって、デグレード発生タイミングやデグレード発生箇所を判定することができる。
更に、本発明は、階層データベースからデグレード発生箇所の対象モジュール名及び対象メソッド名を上位対象モジュール名及び上位対象メソッド名として抽出し、該抽出した上位対象モジュール名及び上位対象メソッド名に対して下層の下位対象モジュール名及び下位対象メソッド名を抽出し、これら抽出したモジュール名及び対象メソッド名に基づいてデグレード発生箇所の対象モジュール名及び対象メソッド名が影響を及ぼす呼び出し先一覧情報を作成することができる。
本発明の実施形態によるデグレードテスト支援システムの構成を示す図。 本実施形態によるデグレードテスト支援システムの概略動作を説明するための図。 本実施形態によるソース解析部の処理フローを示す図。 本実施形態によるモジュール関連分析部の処理フローを示す図。 本実施形態によるモジュール階層分析部の処理フローを示す図。 本実施形態によるテスト用ソース生成部の処理フローを示す図。 本実施形態による実行結果比較部の処理フローを示す図。 本実施形態によるシーケンス図生成部の処理フローを示す図。 本実施形態による呼び出し先の一覧抽出機能部の処理フローを示す図。 本実施形態によるソースデータベースを説明するための図。 本実施形態による変数データベースを説明するための図。 本実施形態による関連データベースを説明するための図。 本実施形態による階層データベースを説明するための図。 本実施形態による処理フローデータベースを説明するための図。 本実施形態による実行結果データベースを説明するための図。 本実施形態による出力結果が異なる情報を一覧表示する画面イメージ図。 本実施形態によるシーケンス図の表示画面イメージ図。 本実施形態によるソース内容表示画面イメージ図。 本実施形態による呼び出し先の抽出一覧画面イメージ図。 本実施形態による画面遷移図。
以下、本発明によるデグレードテスト支援方法及びデグレードテスト支援プログラムを実現するデグレードテスト支援システムの一実施形態を図面を参照して詳細に説明する。
[構成]
本実施形態によるデグレードテスト支援システムは、図1に示す如く、デグレードテスト担当用のコンピュータ(PC)021とネットワーク90を介して接続されるサーバ001内に構築され、改修前後のプログラムのソースの内容を格納するソースデータベース(DB)015と、該ソースのモジュール又はメソッドが参照する変数の内容を格納する変数データベース(DB)016と、前記モジュール又はメソッドからの呼び出し元及び呼び出し先の情報を格納する関連データベース(DB)017と、プログラムを構成するモジュールの最上位モジュールから最下位モジュールまでの階層情報を格納する階層データベース(DB)018と、改修前後のモジュール又はメソッドの階層と処理順とを含む処理フロー情報を格納する処理フローデータベース(DB)019と、各ステップで参照可能な変数の値を格納する実行結果データベース(DB)020と、改修前後のソースからソース内容及び変数の内容を登録するソース解析部002と、改修前後のソースからメソッド呼び出し箇所を抽出したモジュール関連情報を登録するモジュール関連分析部003と、前記関連DB017から各モジュールの階層情報を登録するモジュール階層分析部004と、改修前後のソースからテスト用ソースを生成するテスト用ソース生成部005と、テスト用ソースから既存の技術を利用してテスト用のオブジェクトコードを生成するコンパイル部006と、実行結果を比較し実行結果の差異が発生した箇所を抽出する実行結果比較部007と、改修前後のシーケンス図を生成するシーケンス図生成部008と、該当モジュールの呼び出し先を抽出する呼び出し先一覧抽出部009とを備える。なお、本実施形態で述べるプログラムとは、階層構造のモジュール及びメソッドを含み、これらモジュール及びメソッドの纏まりをソース(コード)と呼び、階層構造のモジュール及びメソッド間のやりとりを時間軸に沿って表現する図をシーケンス図と呼ぶ。
前記ソースDB015は、デグレードテストの対象となるプログラムのソース(コード)を格納するものであって、図10(a)に示す如く、ユニークに採番された識別子であるIDと、バージョンアップ等による改修前(フラグ「0」)と改修後(フラグ「1」)を区別するための区分と、ソースのモジュール名と、ソースの「振る舞い」を表すメソッドのメソッド名と、ソースの行数と、該当行のソースを格納するコードとの各項目情報とから成り、具体的には、図10(b)に示す如く、ID「1」のソースが、区分が「0」、モジュール名が「XXX」、メソッド名が「XXX01」、行数が「1」、コードが「XXX01_step01」であり、ID「2」のソースが、区分が「0」、モジュール名が「XXX」、メソッド名が「XXX01」、行数が「2」、コードが「XXX01_step02」の如く格納されている。
前記変数DB016は、前記ソースが実行中に参照する変数名及び変数値を格納するものであって、図11(a)に示す如く、ユニークに採番された識別子であるIDと、バージョンアップ等による改修前(フラグ「0」)と改修後(フラグ「1」)を区別するための区分と、ソースのモジュール名と、ソースの「振る舞い」を表すメソッドのメソッド名と、ソースの行数と、該当行のソースが参照する変数名と、ソースにより宣言されているデータ型と、参照される範囲を表すレベル(他モジュールからの参照可が「1」、同一モジュール内のみで参照可が「2」、当該メソッド内のみで参照可が「3」)との各項目情報とから成り、具体的には、図11(b)に示す如く、ID「3」のソースが、区分が「0」、モジュール名が「YYY」、メソッド名が「yyy01」、行数が「4」、変数名が「v_yyy_02」、データ型が「String」、レベルが「3」であり、ID「4」のソースが、区分が「0」、モジュール名が「YYY」、メソッド名が「yyy02」、行数が「9」、変数名が「v_yyy_03」、データ型が「String」、レベルが「3」の如く格納されている。
前記関連DB017は、呼びだし元の親モジュール又は親メソッドと呼び出し先の子モジュール又は子メソッドとの関連を格納するものであって、図12(a)に示す如く、ユニークに採番された識別子であるIDと、バージョンアップ等による改修前(フラグ「0」)と改修後(フラグ「1」)を区別するための区分と、呼びだし元の親モジュール名と、呼びだし元の親メソッド名と、前記親モジュールの行数を表す親_行数と、呼び出し先のモジュール名である子_モジュール名と、呼び出し先のメソッド名である子_メソッド名との各項目情報とから成り、具体的には、図12(b)に示す如く、ID「1」且つ区分「0」の親モジュール名「XXX」のモジュールの親メソッド名が「xxx01」、親_行数が「4」、子_モジュール名が「YYY」、子_メソッド名が「yyy01」であり、ID「5」且つ区分「0」の親モジュール名「WWW」のモジュールの親メソッド名が「www01」、親_行数が「10」、子_モジュール名が「ZZZ」、子_メソッド名が「zzz01」の如く格納されている。
前記階層DB018は、ソースを構成するモジュール及びメソッド中の最上位モジュール・最上位メソッドから最下位モジュール・最下位メソッドまでの階層構造を格納するものであって、図13(a)に示す如く、ユニークに採番された識別子であるIDと、バージョンアップ等による改修前(フラグ「0」)と改修後(フラグ「1」)を区別するための区分と、プログラム階層構造の最上位のモジュール名を表す基準_モジュール名と、プログラム階層構造の最上位のメソッド名である基準_メソッド名と、プログラムの階層位置を表す階層(最上位モジュールの場合「1」)と、呼び出し元のモジュール名を表す親_モジュール名と、呼び出し元のメソッド名を表す親_メソッド名と、呼び出し元の行数を表す親_行数と、呼び出し先のモジュール名を表す子_モジュール名と、呼び出し先のメソッド名を表す子_メソッド名の各項目情報とから成り、具体的には、図13(b)に示す如く、ID「1」且つ区分「0」のモジュールの基準_モジュール名が「XXX」、基準_メソッド名が「xxx01」、階層が「1」、親_モジュール名が「XXX」、親_メソッド名が「xx01」、親_行数が「4」、子_モジュール名が「YYY」、子_メソッド名が「yyy01」の如く格納されている。
前記処理フローDB019は、改修前後のモジュール又はメソッドの階層とステップの処理順とを含む処理フロー情報を格納するものであって、図14(a)に示す如く、ユニークに採番された識別子であるIDと、バージョンアップ等による改修前(フラグ「0」)と改修後(フラグ「1」)を区別するための区分と、プログラムの階層位置を表す階層(最上位モジュールが「1」、次階層が「2」・・・)と、処理が実行される順に割り当てられる連番を表す処理No(処理番号)と、呼び出し元の処理Noを表す上位処理No(上位処理番号)と、実行されたメソッドのモジュール名と、実行されたステップのメソッド名と、実行されたステップの行数と、ステップが実行される前に登録されたレコードを示すフラグである処理前Fと、ステップが実行された後に登録されたレコードを示すフラグである処理後Fと、各ステップの処理時間をms単位で表す時間との各項目情報とから成り、具体的には、図14(b)に示す如く、最初にID「1」・区分「0」・階層「1」・処理No「1」のモジュール名「XXX」の行数「2」のメソッド「xxx01」が実行された後に、ID「2」〜「5」・区分「0」・階層「2」・処理No「2」及び「3」のモジュール名「YYY」のメソッド「yyy01」が実行される等の改修前後の処理フロー情報を格納している。
前記実行結果DB020は、各ステップで参照可能な変数の値を格納するものであって、図15に示す如く、ユニークに採番された識別子であるIDと、バージョンアップ等による改修前(フラグ「0」)と改修後(フラグ「1」)を区別するための区分と、処理が実行された順に割れ当てられる連番と、実行されたメソッドのモジュール名と、実行されたステップのメソッド名と、実行されたステップの行数と、ステップ実行による出力対象の変数名と、ステップ実行による出力対象の変数が要素数の場合に各要素の値を識別するための要素数と、変数の値の各項目情報とから成り、具体的には、図15(a)及び(b)に示す如く格納される。
[動作]
[全体動作]
次に、前述のように構成されたデグレードテスト支援システムの全体動作を説明するが、このデグレードテスト支援処理は、改修後のソースに大きなエラーが含まれる場合は、後述するコンパイル時又はテスト実行時に検出され、これらコンパイル時又はテスト実行時には発見されないデグレードのテストを対象とするものであって、改修前後の処理フローDB019と実行結果DB020からデグレード発生箇所をリストアップし、改修前後のシーケンス図030及び031を生成し、差異が発生した箇所の色を変えて表示することにより利用者が発生箇所を容易に特定できるようにすると共に、デグレード発生箇所となるモジュールの呼び出し先のリストを表示して影響範囲を明確にするものである。
さて、本実施形態によるデグレードテスト支援システムは、まず、図2に示す如く、コンピュータ(PC)021を用いてデグレードテスト担当がネットワーク022を介して改修前ソース028及び改修後ソース029を入力091する工程と、該入力した改修前ソース028及び改修後ソース029並びに変数宣言部により判定した変数をソース解析部002により解析してソースDB015並びに変数DB016に登録する工程と、モジュール関連分析部003が前記改修前ソース028及び改修後ソース029のモジュールの関連(呼びだし元の親モジュール又は親メソッドと呼び出し先の子モジュール又は子メソッドとの関連)を分析して前記関連DB017に格納する工程と、モジュール階層分析部004がモジュールの階層構造(プログラムを構成する最上位モジュールから最下位モジュールまでの階層構造)を階層DB018に格納する工程と、テスト用ソース生成部005が、改修前後のソースのステップ毎に処理実行順を追跡する為の情報を出力させる処理順出力機能(サブプログラム)及び前記ステップで参照可能な変数の値を出力させる変数値出力機能(サブプログラム)を埋め込んだ改修前ソース(テスト用)010及び改修後ソース(テスト用)011を生成する工程と、前記コンパイル部006が該生成した改修前ソース(テスト用)010及び改修後ソース(テスト用)011をコンパイルした改修前オブジェクトコード(テスト用)012及び改修後オブジェクトコード(テスト用)013を生成する工程とを実行することによって、改修前後のソースに処理順出力機能及び変数値出力機能を埋め込んだテスト用のオブジェクトコードを生成するように動作する。
次いで、本実施形態によるデグレードテスト支援システムは、前記改修前後のプログラム(オブジェクトコード012及び013)に対してテスト実行部022及び023が予め定めたテストケースを実行する工程と、このテストケースを実行した際に前記処理順出力機能及び変数値出力機能を埋め込んだテスト用のオブジェクトコードから出力されるステップ毎の処理実行順及び該当ステップで参照可能な変数の値を処理フローDB019並びに実行結果DB020に格納する工程と、実行結果比較部007が前記処理フローDB019並びに実行結果DB020に格納したステップ毎の処理実行順及び該当ステップで参照可能な変数の値に基づいてデグレード発生有無を後述の処理により判定して改修前後の出力結果が異なる情報を一覧表示024する工程と、デグレードが発生していると判定したときにシーケンス図生成部008が改修前後のプログラムのシーケンス図を後述の処理により生成してデグレード発生箇所が一目で判るように実行結果が異なる箇所の色を変えて表示025する工程と、呼び出し先の一覧抽出部009がデバッグ発生箇所となるモジュールの呼び出し先のリストを後述の処理により表示する工程とを実行する。
前記改修前後の出力結果が異なる情報を一覧表示024する工程による表示画面は、例えば図16に示す如く、「呼び出し先一覧」としてモジュール及びメソッド「XXX.xxx01()」がモジュール及びメソッド「YYY.yyy02()」を呼び出し、該モジュール及びメソッド「YYY.yyy02()」が破線で示すモジュール及びメソッド「ZZZ.zzz01()」を呼び出し、このモジュール及びメソッド「ZZZ.zzz01()」が改修前後で異なることを色分け等によって表示される。
前記改修前後のプログラムのシーケンス図をデグレード発生箇所が一目で判るように実行結果が異なる箇所の色を変えて表示025する工程は、図17に示す如く、左側の改修前のソースが、モジュール「XXX」「YYY」「ZZZ」を備え、前記モジュール「XXX」及びモジュール「YYY」との間でメソッド「yyy01」〜メソッド「yyy03」の処理結果としてモジュール「ZZZ」にメソッド「zzz01」の変数値を出力するシーケンスのとき、改修後のシーケンスに示す如く破線で示すメソッド「zzz01」の変数値が改修前と異なることを色分け等によって表示する。
これら画面表示は、図20に示す如く、最初に「出力結果が異なる情報一覧画面を表示」024に続いて、「シーケンス図表示画面を表示」025及び「呼び出し先一覧画面を表示」026が行われ、最後に図18に示した「ソース内容表示画面を表示」027に遷移するように表示させる。前記「ソース内容表示画面を表示」027による表示画面は、図18に示す如く、画面右側に改修前のメソッド「zzz01」の各レコードと改修前のメソッド「zzz01」の各レコードとが表示され、本例の場合は、改修後のメソッド「zzz01」が実行するstep02の結果が異なることを色分け表示(図面では太字)される。
このように本実施形態によるデグレードテスト支援システム、デグレードテスト支援方法及びデグレードテスト支援プログラムは、改修前後のソースに処理順出力機能及び変数値出力機能を埋め込んだテスト用のオブジェクトコード012及び013を生成し、この生成したテスト用のオブジェクトコード012及び013の実行し、このテストケースを実行した際に前記処理順出力機能及び変数値出力機能を埋め込んだテスト用のオブジェクトコードから出力されるステップ毎の処理実行順及び該当ステップで参照可能な変数の値を処理フローDB019並びに実行結果DB020に格納し、これら改修前後のオブジェクトコードから出力されるステップ毎の処理実行順及び該当ステップで参照可能な変数の値を比較することによってデグレード発生有無を判定し、図16〜図19に示したシーケンス図や呼び出し先を表示することによって、デグレード発生タイミングとデグレード発生箇所とデグレードが発生したメソッドを参照しているモジュールとを判定して表示することができる。
[詳細動作]
次に前述した各処理部の詳細動作について説明する。
[ソース解析部002動作]
前記ソース解析部002により解析した改修前ソース028及び改修後ソース029をソースDB015に格納すると共に変数宣言部を解析した変数を変数DB016に登録する工程は、図3に示す如く、ソースファイルを読み込むステップS301と、該ステップS301により読み込んだソースのレコードが最終行か否かを判定し、最終行と判定したときに処理を終了するステップS302と、該ステップS302により最終行でないと判定したとき、カレント(現在の)行を読み込むステップS303と、該ステップS303により読み込んだカレント行の内容をソースDB015へ格納するステップS304と、前記カレント行が変数宣言部か判定し、変数宣言部でないと判定したときに前記ステップS302に戻るステップS306と、該ステップS306において変数宣言部であると判定したとき、該変数宣言部により宣言された変数の内容を変数DB016へ格納して前記ステップS307とを実行することによって、改修前後のソース及び変数を抽出して図10及び図11の如くソースDB015及び変数DB016に登録することができる。
[モジュール関連分析部003動作]
前記モジュール関連分析部003による改修前ソース028及び改修後ソース029のモジュールの関連(呼びだし元の親モジュール又は親メソッドと呼び出し先の子モジュール又は子メソッドとの関連)を分析して関連DB017に格納する工程は、図4に示す如く、ソースファイルを読み込むステップS401と、該ステップS401により読み込んだソースのレコードが最終行か否かを判定し、最終行と判定したときに処理を終了するステップS402と、該ステップS402において最終行でないと判定したときにカレント行を読み込むステップS403と、該ステップS403により読み込んだカレント行が下位モール呼び出しのためのメソッド呼び出し箇所か否かを判定し、下位モール呼び出しでないと判定したときに前記ステップS402に戻るステップS404と、該ステップS404において下位モール呼び出しであると判定したときに当該カレント行に含まれる呼び出し元のモジュール名とメソッド名と呼び出し先のモジュール名とメソッド名とを関連DB017へ格納し、前記ステップS402に戻るステップS405とを実行することによって、親子モジュール及びモジュールの関連を図12に示した如く関連DB017に格納することができる。
[モジュール階層分析部004動作]
前記モジュール階層分析部004によるモジュールの階層構造(プログラムを構成する最上位モジュールから最下位モジュールまでの階層構造)の経路を階層DB018に格納する工程は、図5に示す如く、モジュール階層分析部004が、変数[v_Kaisou]を宣言するステップS501と、変数の初期化のために変数[v_Kaisou]に値「1」を代入するステップS502と、関連DB107から最上位モジュールを抽出し、関連DBを別名「関連DB1」と「関連DB2」に設定し、該「関連DB1」の「親_モジュール名」「親_メソッド名」と「関連DB2」の「子_モジュール名」「子_メソッド名」の間で外部結合を行い、「関連DB1」のレコードに対して「関連DB2」のレコードが結合されないレコードを抽出するステップS504とを実行する。このステップS504による関連DB107から最上位モジュールを抽出する処理は、例えば、「関連DB1」の「親_モジュール」と「関連DB2」の「子_モジュール」とが親子関係で結合されている場合、前記「関連DB1」の「親_モジュール」が更に上位のモジュールに結合されていないことの判定によって行われる。
次いで、本実施形態による階層構造の経路の抽出処理は、モジュール階層分析部004が、前記ステップS504により抽出した最上位モジュールが最終レコードか否かを判定するステップS505と、該ステップS505において最終レコードでないと判定したとき、階層DB018の「階層」フィールドに変数[v_Kaisou]の値を格納して前記ステップS505に戻るステップS506と、前記ステップS505において最終レコードと判定したとき、変数[v_Kaisou]の値にプラス「1」して変数値をカウントアップするステップS508と、階層DB018からカレント階層モジュールを抽出(初回実行時は1階層目のデータを抽出し、2回目以降に実行する場合は、順次階層をカウントアップし、これをカレント階層に設定)するステップS510と、該ステップS510において階層DB018からレコードが抽出できたか判定し、レコードが抽出できないと判定したときに処理を終了するステップS511と、該ステップS511においてレコードが抽出できたと判定したときに最終レコードか否かを判定し、最終レコードと判定したときに前記ステップS508に戻るステップS512と、該ステップS512において最終レコードでないと判定したときに関連DB017から前記上位モジュールに対する次の下位モジュールを抽出するステップS514とを実行する。
このステップS514による下位モジュールの抽出は、前記ステップS510により抽出したカレントモジュール(「子_モジュール名」「子_メソッド名」)から関連DBの「親_モジュール名」「親_メソッド名」を絞り込むことによって、本例ではステップS504内に図示した関連DB2の「子_モジュール名」及び「子_メソッド名」を判定することによって行われる。
次いで本実施形態による階層構造の経路の抽出処理は、前記ステップS514により抽出した下位モジュールが最終レコードか否かを判定し、最終レコードと判定したときに前記ステップS512に戻るステップS515と、該ステップS515において最終レコードでないと判定したとき、階層DB018の「階層」フィールドに変数[v_Kaisou]の値を格納して前記ステップS515に戻るステップS516とを実行する。
これら一連の処理によって本実施形態によるモジュール階層分析部004が関連DB107に格納した改修前後のソースプログラムに含まれるプログラムを構成する最上位モジュールから最下位モジュールまでの階層構造の経路をモジュール及びメソッドの親子関係に基づいて階層DB018に格納することができる。
前記テスト用ソース生成部005によるテスト用ソースの生成処理は、ソースファイルの各ステップの前後に処理フローDB019へデータ登録する処理順出力機能と各ステップ処理後に参照可能な変数の内容を実行結果DBへ登録する変数値出力機能を追加したテスト用ソースを生成するものであって、図6に示す如く、ソースファイルを読み込むステップS601と、該読み込んだソースファイルが最終行か否かを判定するステップS602と、該ステップS602において最終行でないと判定したときにカレント行を読み込むステップS603と、該ステップS603により読み込んだカレント行が処理ステップか否かを判定するステップS604と、該ステップS604においてカレント行が処理ステップであると判定したときに処理フロー(処理順出力機能)用の開始ステップをテストソース600の一時記憶領域へ格納するステップS605と、該ステップS605又は前記ステップS604において処理ステップでないと判定したとき、当該カレント行のソース(ステップ)をテストソース600の一時記憶領域へ格納するステップS607と、カレント行が処理ステップか判定し、処理ステップでないと判定したときに前ステップS602に戻るステップS609と、該ステップS609においてカレント行が処理ステップであると判定したとき、処理フロー(処理順出力機能)終了ステップをテストソース600一時記憶領域へ格納するステップS610と、変数DB016からカレント行において参照可能な変数を抽出するステップS613と、該ステップS613により抽出したカレント行が最終レコードか否かを判定し、最終レコードと判定したときに前記ステップS602に戻るステップS614と、該ステップS614において最終レコードでないと判定したとき、変数の値を出力する変数値出力機能をテストソース600の一時記憶領域へ格納するステップS615と、前記ステップS602において読み込んだソースファイルが最終行であると判定したとき、前記テストソース600から処理順出力機能及び変数値出力機能を埋め込んだテスト用ソース010及び011を出力するステップS618とを実行することによって、ソース実行に伴う処理フロー及び変数を出力するためのテスト用ソースを生成することができる。
[実行結果比較部007動作]
前記実行結果比較部007による処理フローDB019並びに実行結果DB020に格納したステップ毎の処理実行順(処理フロー情報)及び該当ステップで参照可能な変数の値に基づいてデグレード発生有無を後述の処理により判定して改修前後の出力結果が異なる情報を一覧表示024する工程は、図7に示す如く、まず、変数[v_WorkNo](変数の変数名)を宣言するステップS701と、改修前後の実行結果DB020A及び020Bを比較し、処理結果の変数の値に差異があるレコードを抽出するステップS704を実行する。
このステップS704は、実行結果DBを別名の「実行結果(改修前)」及び「実行結果(改修後)」に設定し、「実行結果(改修前)」では、「区分」フィールドが「0:改修前」のデータを対象とし、「実行結果(改修後)」では、「区分」フィールドが「1:改修後」のデータを対象とし、それぞれのテーブルの「モジュール名」「メソッド名」「行数」「変数名」「要素数」フィールドで等結合を行い、「実行結果(改修前)」と「実行結果(改修後)」の「値」フィールドが異なるレコードを判定することによって抽出する。
これを図15の実行結果DBの改修前後を参照して具体的に説明すると、このステップS704は、図15(b)に示した改修前の実行結果DB020AのID「16」〜「18」のモジュール「ZZZ」のメソッド「v_xxx_01」とメソッド「v_zzz_01」とメソッド「v_zzz_02」が実行され、該メソッド「v_zzz_02」の変数の値が「z_value_02」が出力されたのに対し、図15(c)に示した改修後の実行結果DB020BのID「16」〜「18」のモジュール「ZZZ」のメソッド「v_xxx_01」とメソッド「v_zzz_01」とメソッド「v_zzz_02」が実行され、該メソッド「v_zzz_02」の変数の値が「z_value_03」が出力された場合、このメソッド「v_zzz_02」の変数の値が異なるため、当該メソッド「v_zzz_02」のレコードを「値」フィールドが異なるレコードとして判定する。
次いで、本実施形態による改修前後の出力結果が異なる情報を一覧表示024する工程は、前記ステップS704により抽出した「値」フィールドが異なるレコードが最終レコードか否かを判定するステップS705と、該ステップS705において最終レコードでないと判定したとき、変数[v_WorkNo]に前記ステップS704で取得した処理NOを格納(代入)するステップS706と、該ステップS706により格納した変数[v_WorkNo]の値が空か否かを判定し、空であると判定したときに前記ステップS705に戻るステップS707と、該ステップS707において変数[v_WorkNo]の値が空でないと判定したとき、処理フローDB019から、処理フローDB019の処理NOが変数[v_Work_No]の値と等しいレコードの上位処理NOを取得するステップS709と、該ステップS709により取得した変数[v_WorkNo]に前記ステップS709で取得した処理NOを格納(代入)するステップS710と、該ステップS710で格納した上位モジュールのモジュール名及びメソッド名を画面表示用の一時記憶領域に格納して前記ステップS707に戻るステップS711と、前記ステップS705において最終レコードであると判定したとき、前記画面表示用の一時記憶領域の内容を元に出力結果が異なる情報一覧表示画面を表示するステップS713とを実行することによって、実行結果が異なるデータに基づいて該実行結果が異なるモジュールの上位モジュールを抽出し図16に示した如き画面を表示することができる。
[シーケンス図生成部008動作]
前記シーケンス図生成部008による改修前後のプログラムのシーケンス図を生成してデグレード発生箇所が一目で判るように実行結果が異なる箇所の色を変えて表示025する工程は、図8に示すように、改修前処理フローDB019Aから処理フロー情報(図14)を抽出するステップS802と、該抽出した処理フロー情報のレコードが最終行か否かを判定するステップS803と、該ステップS803において最終行でないと判定したとき、カレントレコードの情報を元に改修前シーケンス図811(図17左側図)を生成するステップS804と、前記した改修前後の実行結果DB020A及び020Bからカレントレコードにおける改修前後の実行結果を抽出して比較するステップS808と、該比較の結果、改修前後の実行結果に差異があるか否かを判定し、差異がないと判定したときに前記ステップS803に戻るステップS809と、該ステップS809において差異があると判定したとき、差異があったカレント(現在)ステップの色を変更した改修前シーケンス図811を生成して前記ステップS803に戻るステップS810とを実行することによって、改修前処理フローの全行に対する実行結果値に変化が有ったか否かステップ毎に判定し、変化があったステップの色を変更することができる。
次いで、本実施形態によるシーケンス図生成部008による実行結果が異なる箇所の色を変えて表示025する工程は、前記ステップS803において最終行であると判定したとき、改修後処理フローDB019Bから処理フロー情報を抽出するステップS813と、該抽出した処理フロー情報のレコードが最終行か否かを判定するステップS814と、該ステップS814において最終行でないと判定したとき、カレントレコードの情報を元に改修後シーケンス図816(図17右側図)を生成するステップS815と、前記した改修前後の実行結果DB020A及び020Bからカレントレコードにおける改修前後の実行結果を抽出して比較するステップS819と、該比較の結果、改修前後の実行結果に差異があるか否かを判定し、差異がないと判定したときに前記ステップS814に戻るステップS820と、該ステップS820において差異があると判定したとき、差異があったカレント(現在)ステップの色を変更した改修後シーケンス図822を生成して前記ステップS814に戻るステップS821とを実行することによって、改修後処理フローの全行に対する実行結果値に変化が有ったか否かステップ毎に判定し、変化があったステップの色を変更することができる。
即ち、本実施形態によるシーケンス図生成部008は、図14に例示した改修前後の処理フロー情報に基づいて改修前後の処理フロー図を生成し、この生成した改修前後の処理フロー図に対してソースの実行結果の差異(変数内)を実行結果DB020A及び020Bに基づいて判定し、差異があった変数値を出力したステップの該当箇所(例えば、図17右側の破線部分)を色分け表示することによって、デグレード発生タイミングやデグレード発生箇所を管理者に目視可能に表示することができる。
[呼び出し先の一覧抽出部009動作]
前記呼び出し先の一覧抽出部009によるデバッグ発生箇所となるモジュールの呼び出し先のリストを後述の処理により表示する工程は、図9に示すように、変数[v_Module]及び変数[v_Method]を宣言するステップS901と、本処理の引数にデグレード発生箇所の対象モジュール名及び対象メソッド名を引き渡すために階層DB018から、階層DB.子_モジュール名=[対象モジュール名(デグレードが発生した対象モジュール名)]及び階層DB.子_メソッド名=[対象メソッド名(デグレードが発生した対象メソッド名)]の条件を満たすレコードを上位モジュールをとして抽出するステップS903と、該抽出したレコードが最終行か否かを判定するステップS904と、該ステップS904において最終行でないと判定したとき、呼び出し先のモジュール名及びメソッド名を画面表示用の一時記憶領域である呼び出し先モジュール一覧906に格納するステップS905と、前記上位モジュール抽出のステップS903で取得した親_モジュール名、親_メソッド名をそれぞれ変数[v_Module]、[v_Method]に格納(代入)するステップS907と、該ステップS907により格納した変数[v_Module]又は変数[v_Method]の何れか一方の値が空か否かを判定し、空白であると判定したときに前記ステップS904に戻るステップS908と、該ステップS908において空白でないと判定したとき、階層DB018から、階層DB.子_モジュール名=変数[v_Module]及び階層DB.子_メソッド名=変数[v_Method]の条件が一致する上位モジュールを抽出するステップS910と、該ステップS910により抽出した呼び出し先のモジュール名及びメソッド名を画面表示用の一時記憶領域である呼び出し先モジュール一覧912に格納するステップS911と、前記ステップS907で抽出した上位モジュール抽出処理で取得した親_モジュール名、親_メソッド名をそれぞれ変数[v_Module]、[v_Method]に格納し、前記ステップS908に戻るステップS913と、前記ステップS904において階層DB018から抽出したレコードが最終行と判定したとき、画面表示用の前記一時記憶領域の内容に基づいて呼び出し先の一覧表示画面915を生成するステップS914とを実行することによって、図19に示した如き、デバッグ発生箇所となる破線で示すモジュール及びメソッド「ZZZ.zzz01()」を参照して影響を及ぼすモジュール及びメソッド「WWW.www01()」を表示することができる。即ち、デクレード発生箇所を起点として階層関係あるモジュール名及びメソッド名を抽出することによって、デグレードが影響を及ぼす他のモジュール名及びメソッド名を容易に表示することができる。
このように本実施形態によるデグレードテスト支援方法及びデグレードテスト支援プログラムを実現するデグレードテスト支援システムは、改修前後のソースのステップ毎に処理実行順を出力させる処理順出力機能及び前記ステップで参照可能な変数を出力させる変数値出力機能を埋め込んだ改修前後のテスト用ソースを生成するテスト用ソース生成部005と、改修前後のテスト用オブジェクトコードを実行した際に出力された処理フロー情報を処理DB019に格納すると共に出力された変数を実行結果DB020に格納するテスト実行部022及び023と、実行結果DB020から実行結果の変数の値に差異がある改修前後のテスト用オブジェクトコードのレコードを抽出し、該抽出したレコードのモジュール名及びメソッド名と、該抽出したレコードの上位レコードの上位モジュール名及び上位メソッド名を処理フローデータベースに格納した処理フロー情報の階層及び処理順を参照して抽出し、該抽出した複数のモジュール名及びメソッド名並びに上位モジュール名及び上位メソッド名を担当用コンピュータ021の表示部に表示させる実行結果比較部007とを備えたことによって、デグレード発生タイミングやデグレード発生箇所を判定することができ、階層DB018からデグレード発生箇所の対象モジュール名及び対象メソッド名を上位対象モジュール名及び上位対象メソッド名として抽出し、該抽出した上位対象モジュール名及び上位対象メソッド名に対して下層の下位対象モジュール名及び下位対象メソッド名を抽出し、これら抽出したモジュール名及び対象メソッド名に基づいてデグレード発生箇所の対象モジュール名及び対象メソッド名が影響を及ぼす範囲を表示する呼び出し先の一覧抽出部009を設けたことによりデグレード影響範囲を容易に表示することができる。従って、本発明によれば、デグレードテストの作業工数削減およびデグレードチェックの漏れを防止し、デグレード発生時の調査作業の軽減や手戻り作業を軽減することができる。
000 デグレード支援システム、001 サーバ、002 ソース解析部、
003 モジュール関連分析部、004 モジュール階層分析部、
005 ソース生成機能部、006 コンパイル部、007 実行結果比較部、
008 シーケンス図生成部、009 呼び出し先の一覧抽出部、
010 改修前ソース(テスト用)、011 改修後ソース(テスト用)、
012 オブジェクトコード、021 デグレードテスト担当用のコンピュータ、
022 テスト実行部、90 ネットワーク、028 改修前ソース、
029 改修後ソース

Claims (12)

  1. 階層構造のモジュール及びメソッドを含む改修後のソースをテストするための担当用コンピュータと接続され、改修前後のソースを参照して改修後のソースにデグレードが発生したか否かを試験するデグレードテスト支援システムであって、
    前記改修前後のソースを格納するソースデータベースと、
    前記改修前後のソースのモジュール又はメソッドの階層と処理順とを含む処理フロー情報を格納する処理フローデータベースと、
    前記改修前後のソースの各ステップが参照する変数を格納する実行結果データベースと、
    前記改修前後のソースのステップ毎に処理実行順を出力させる処理順出力機能及び前記ステップで参照可能な変数を出力させる変数値出力機能を埋め込んだ改修前後のテスト用ソースを生成するテスト用ソース生成部と、
    前記改修前後のテスト用ソースから改修前後のテスト用オブジェクトコードを生成するコンパイル部と、
    前記改修前後のテスト用オブジェクトコードを実行し、前記処理順出力機能によって出力された処理フロー情報を前記処理フローデータベースに格納すると共に前記変数値出力機能によって出力された変数を前記実行結果データベースに格納するテスト実行部と、
    前記実行結果データベースから実行結果の変数の値に差異がある前記改修前後のテスト用オブジェクトコードのレコードを抽出し、該抽出したレコードのモジュール名及びメソッド名と、該抽出したレコードの上位レコードの上位モジュール名及び上位メソッド名を前記処理フローデータベースに格納した処理フロー情報の階層及び処理順を参照して抽出し、該抽出した複数のモジュール名及びメソッド名並びに上位モジュール名及び上位メソッド名を担当用コンピュータに表示させる実行結果比較部とを備えることを特徴とするデグレードテスト支援システム。
  2. 前記実行結果データベースが、改修前テスト用オブジェクトコードの実行により出力された変数を格納する改修前実行結果データベースと、改修後テスト用オブジェクトコードの実行により出力された変数を格納する改修後実行結果データベースとを含み、
    前記実行結果比較部が、改修前実行結果データベース及び改修後実行結果データベース個々のモジュール名とメソッド名と行数と変数名と値のフィールドを等結合し、前記値のフィールドが異なるレコードを実行結果の変数の値に差異があるレコードとして抽出することを特徴とする請求項1記載のデグレードテスト支援システム。
  3. 前記処理フローデータベースが、改修前ソースのモジュール又はメソッドの階層と処理順とを含む改修前処理フロー情報を格納する改修前処理フローデータベースと、改修後ソースのモジュール又はメソッドの階層と処理順とを含む改修後処理フロー情報を格納する改修後処理フローデータベースとを含み、
    前記改修前処理フローデータベースに格納した改修前ソースのモジュール又はメソッドの階層と処理順とに基づいてモジュール及びメソッド間のやりとりを時間軸に沿って表現する階層前シーケンス図を生成し、前記改修後処理フローデータベースに格納した改修後ソースのモジュール又はメソッドの階層と処理順とに基づいてモジュール及びメソッド間のやりとりを時間軸に沿って表現する階層後シーケンス図を生成し、前記実行結果比較部により抽出した実行結果の変数の値に差異があるレコードのモジュール又はメソッドの色を変化させて担当用コンピュータに表示させるシーケンス図生成部を備えることを特徴とする請求項1及び請求項2記載のデグレードテスト支援システム。
  4. 階層データベースからデグレード発生箇所の対象モジュール名及び対象メソッド名を上位対象モジュール名及び上位対象メソッド名として抽出する上位抽出工程と、前記階層データベースから前記上位対象モジュール名及び上位対象メソッド名を階層構造の親とする下位対象モジュール名及び下位対象メソッド名とを抽出する下位抽出工程と、該下位抽出工程を前記下位対象モジュール名及び下位対象メソッド名がソースの最終行でないと判定するまで繰り返す繰り返し工程とを実行し、前記上位抽出工程及び下位抽出工程によって抽出した対象モジュール名及び対象メソッド名とに基づいてデグレード発生箇所の対象モジュール名及び対象メソッド名が影響を及ぼす呼び出し先一覧情報を作成して表示する呼び出し先一覧抽出部を備えることを特徴とする請求項1から3何れかに記載のデグレードテスト支援システム。
  5. 階層構造のモジュール及びメソッドを含む改修後のソースをテストするための担当用コンピュータと接続され、改修前後のソースを格納するソースデータベースと、前記改修前後のソースのモジュール又はメソッドの階層と処理順とを含む処理フロー情報を格納する処理フローデータベースと、前記改修前後のソースの各ステップが参照する変数を格納する実行結果データベースとを備え、前記改修前後のソースを参照して改修後のソースにデグレードが発生したか否かを試験するコンピュータシステムのデグレードテスト支援方法であって、
    該コンピュータシステムが、
    前記改修前後のソースのステップ毎に処理実行順を出力させる処理順出力機能及び前記ステップで参照可能な変数を出力させる変数値出力機能を埋め込んだ改修前後のテスト用ソースを生成するテスト用ソース生成工程と、
    前記改修前後のテスト用ソースから改修前後のテスト用オブジェクトコードを生成するコンパイル工程と、
    前記改修前後のテスト用オブジェクトコードを実行し、前記処理順出力機能によって出力された処理フロー情報を前記処理フローデータベースに格納すると共に前記変数値出力機能によって出力された変数を前記実行結果データベースに格納するテスト実行工程と、
    前記実行結果データベースから実行結果の変数の値に差異がある前記改修前後のテスト用オブジェクトコードのレコードを抽出し、該抽出したレコードのモジュール名及びメソッド名と、該抽出したレコードの上位レコードの上位モジュール名及び上位メソッド名を前記処理フローデータベースに格納した処理フロー情報の階層及び処理順を参照して抽出し、該抽出した複数のモジュール名及びメソッド名並びに上位モジュール名及び上位メソッド名を担当用コンピュータに表示させる実行結果比較工程とを実行することを特徴とするデグレードテスト支援方法。
  6. 前記実行結果データベースが、改修前テスト用オブジェクトコードの実行により出力された変数を格納する改修前実行結果データベースと、改修後テスト用オブジェクトコードの実行により出力された変数を格納する改修後実行結果データベースとを含み、
    前記コンピュータシステムが、前記実行結果比較工程において、改修前実行結果データベース及び改修後実行結果データベース個々のモジュール名とメソッド名と行数と変数名と値のフィールドを等結合し、前記値のフィールドが異なるレコードを実行結果の変数の値に差異があるレコードとして抽出することを特徴とする請求項5記載のデグレードテスト支援方法。
  7. 前記処理フローデータベースが、改修前ソースのモジュール又はメソッドの階層と処理順とを含む改修前処理フロー情報を格納する改修前処理フローデータベースと、改修後ソースのモジュール又はメソッドの階層と処理順とを含む改修後処理フロー情報を格納する改修後処理フローデータベースとを含み、
    前記コンピュータシステムが、改修前処理フローデータベースに格納した改修前ソースのモジュール又はメソッドの階層と処理順とに基づいてモジュール及びメソッド間のやりとりを時間軸に沿って表現する階層前シーケンス図を生成し、前記改修後処理フローデータベースに格納した改修後ソースのモジュール又はメソッドの階層と処理順とに基づいてモジュール及びメソッド間のやりとりを時間軸に沿って表現する階層後シーケンス図を生成し、前記実行結果比較工程により抽出した実行結果の変数の値に差異があるレコードのモジュール又はメソッドの色を変化させて担当用コンピュータに表示させるシーケンス図生成工程を実行することを特徴とする請求項5及び請求項6記載のデグレードテスト支援方法。
  8. 前記コンピュータシステムが、階層データベースからデグレード発生箇所の対象モジュール名及び対象メソッド名を上位対象モジュール名及び上位対象メソッド名として抽出する上位抽出工程と、前記階層データベースから前記上位対象モジュール名及び上位対象メソッド名を階層構造の親とする下位対象モジュール名及び下位対象メソッド名とを抽出する下位抽出工程と、該下位抽出工程を前記下位対象モジュール名及び下位対象メソッド名がソースの最終行でないと判定するまで繰り返す繰り返し工程とを実行し、前記上位抽出工程及び下位抽出工程によって抽出した対象モジュール名及び対象メソッド名とに基づいてデグレード発生箇所の対象モジュール名及び対象メソッド名が影響を及ぼす呼び出し先一覧情報を作成して表示する工程とを実行する呼び出し先一覧抽出を行うことを特徴とする請求項5から7何れかに記載のデグレードテスト支援方法。
  9. 階層構造のモジュール及びメソッドを含む改修後のソースをテストするための担当用コンピュータと接続され、改修前後のソースを格納するソースデータベースと、前記改修前後のソースのモジュール又はメソッドの階層と処理順とを含む処理フロー情報を格納する処理フローデータベースと、前記改修前後のソースの各ステップが参照する変数を格納する実行結果データベースとを備え、前記改修前後のソースを参照して改修後のソースにデグレードが発生したか否かを試験するコンピュータシステムのデグレードテスト支援プログラムであって、
    該コンピュータシステムに、
    前記改修前後のソースのステップ毎に処理実行順を出力させる処理順出力機能及び前記ステップで参照可能な変数を出力させる変数値出力機能を埋め込んだ改修前後のテスト用ソースを生成するテスト用ソース生成機能と、
    前記改修前後のテスト用ソースから改修前後のテスト用オブジェクトコードを生成するコンパイル機能と、
    前記改修前後のテスト用オブジェクトコードを実行し、前記処理順出力機能によって出力された処理フロー情報を前記処理フローデータベースに格納すると共に前記変数値出力機能によって出力された変数を前記実行結果データベースに格納するテスト実行機能と、
    前記実行結果データベースから実行結果の変数の値に差異がある前記改修前後のテスト用オブジェクトコードのレコードを抽出し、該抽出したレコードのモジュール名及びメソッド名と、該抽出したレコードの上位レコードの上位モジュール名及び上位メソッド名を前記処理フローデータベースに格納した処理フロー情報の階層及び処理順を参照して抽出し、該抽出した複数のモジュール名及びメソッド名並びに上位モジュール名及び上位メソッド名を担当用コンピュータに表示させる実行結果比較機能とを実現させることを特徴とするデグレードテスト支援プログラム。
  10. 前記実行結果データベースが、改修前テスト用オブジェクトコードの実行により出力された変数を格納する改修前実行結果データベースと、改修後テスト用オブジェクトコードの実行により出力された変数を格納する改修後実行結果データベースとを含み、
    前記実行結果比較機能において、前記コンピュータシステムに、改修前実行結果データベース及び改修後実行結果データベース個々のモジュール名とメソッド名と行数と変数名と値のフィールドを等結合する機能と、前記値のフィールドが異なるレコードを実行結果の変数の値に差異があるレコードとして抽出させる機能とを実現させることを特徴とする請求項9記載のデグレードテスト支援プログラム。
  11. 前記処理フローデータベースが、改修前ソースのモジュール又はメソッドの階層と処理順とを含む改修前処理フロー情報を格納する改修前処理フローデータベースと、改修後ソースのモジュール又はメソッドの階層と処理順とを含む改修後処理フロー情報を格納する改修後処理フローデータベースとを含み、
    前記コンピュータシステムに、改修前処理フローデータベースに格納した改修前ソースのモジュール又はメソッドの階層と処理順とに基づいてモジュール及びメソッド間のやりとりを時間軸に沿って表現する階層前シーケンス図を生成する機能と、前記改修後処理フローデータベースに格納した改修後ソースのモジュール又はメソッドの階層と処理順とに基づいてモジュール及びメソッド間のやりとりを時間軸に沿って表現する階層後シーケンス図を生成する機能と、前記実行結果比較機能により抽出した実行結果の変数の値に差異があるレコードのモジュール又はメソッドの色を変化させたシーケンス図を担当用コンピュータに表示させる機能を実現させることを特徴とする請求項9及び請求項10記載のデグレードテスト支援プログラム。
  12. 前記コンピュータシステムに、階層データベースからデグレード発生箇所の対象モジュール名及び対象メソッド名を上位対象モジュール名及び上位対象メソッド名として抽出する上位抽出機能と、前記階層データベースから前記上位対象モジュール名及び上位対象メソッド名を階層構造の親とする下位対象モジュール名及び下位対象メソッド名とを抽出する下位抽出機能と、該下位抽出機能を前記下位対象モジュール名及び下位対象メソッド名がソースの最終行でないと判定するまで繰り返す繰り返し機能とを実行させ、前記上位抽出機能及び下位抽出機能によって抽出した対象モジュール名及び対象メソッド名とに基づいてデグレード発生箇所の対象モジュール名及び対象メソッド名が影響を及ぼす呼び出し先一覧情報を作成して表示機能とを実現させ呼び出し先一覧抽出機能を設けたことを特徴とする請求項9から11何れかに記載のデグレードテスト支援プログラム。
JP2012171058A 2012-08-01 2012-08-01 デグレードテスト支援システム、デグレードテスト支援方法及びデグレードテスト支援プログラム Expired - Fee Related JP6006577B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012171058A JP6006577B2 (ja) 2012-08-01 2012-08-01 デグレードテスト支援システム、デグレードテスト支援方法及びデグレードテスト支援プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012171058A JP6006577B2 (ja) 2012-08-01 2012-08-01 デグレードテスト支援システム、デグレードテスト支援方法及びデグレードテスト支援プログラム

Publications (2)

Publication Number Publication Date
JP2014032447A true JP2014032447A (ja) 2014-02-20
JP6006577B2 JP6006577B2 (ja) 2016-10-12

Family

ID=50282248

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012171058A Expired - Fee Related JP6006577B2 (ja) 2012-08-01 2012-08-01 デグレードテスト支援システム、デグレードテスト支援方法及びデグレードテスト支援プログラム

Country Status (1)

Country Link
JP (1) JP6006577B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019016201A (ja) * 2017-07-07 2019-01-31 三菱電機インフォメーションシステムズ株式会社 プログラム比較方法、プログラム比較装置およびプログラム比較プログラム
WO2023199407A1 (ja) * 2022-04-12 2023-10-19 日本電信電話株式会社 保守作業支援装置、保守作業支援方法及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320234A (ja) * 1997-05-21 1998-12-04 Hitachi Ltd ソフトウェアの自動テスト方法
JP2009244969A (ja) * 2008-03-28 2009-10-22 Nippon Telegr & Teleph Corp <Ntt> プログラム動作比較装置及び方法及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320234A (ja) * 1997-05-21 1998-12-04 Hitachi Ltd ソフトウェアの自動テスト方法
JP2009244969A (ja) * 2008-03-28 2009-10-22 Nippon Telegr & Teleph Corp <Ntt> プログラム動作比較装置及び方法及びプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019016201A (ja) * 2017-07-07 2019-01-31 三菱電機インフォメーションシステムズ株式会社 プログラム比較方法、プログラム比較装置およびプログラム比較プログラム
WO2023199407A1 (ja) * 2022-04-12 2023-10-19 日本電信電話株式会社 保守作業支援装置、保守作業支援方法及びプログラム

Also Published As

Publication number Publication date
JP6006577B2 (ja) 2016-10-12

Similar Documents

Publication Publication Date Title
US10261781B2 (en) Correcting non-compliant source code in an integrated development environment
US11386154B2 (en) Method for generating a graph model for monitoring machinery health
US9734214B2 (en) Metadata-based test data generation
CN102681835A (zh) 代码克隆通知以及体系结构改变可视化
CN102567201B (zh) 跨模型的图形用户界面测试脚本自动修复方法
US9152539B2 (en) Tag-based graphical user interface production systems and methods
JP2008191963A (ja) ソースコード検証システム、ソースコード検証方法、およびソースコード検証用プログラム
US9342439B2 (en) Command coverage analyzer
WO2012052215A1 (en) Software development
CN104021072A (zh) 用于评估失效的软件程序的机器和方法
JP2015204065A (ja) テストケース生成装置及びテストケース生成方法
CN104657274A (zh) 软件界面测试方法及装置
JP6310527B1 (ja) オブジェクト分析装置、オブジェクト分析方法、及びプログラム
CN112241370A (zh) 一种api接口类的校验方法、系统及装置
Gao et al. Testing coverage analysis for software component validation
JP7557431B2 (ja) ソースコード修正支援装置及びソースコード修正支援方法
JP6006577B2 (ja) デグレードテスト支援システム、デグレードテスト支援方法及びデグレードテスト支援プログラム
Gorthi et al. Specification-based approach to select regression test suite to validate changed software
JP7318704B2 (ja) テスト装置、テスト方法及びプログラム
CN116016270A (zh) 一种交换机测试管理方法、装置、电子设备和存储介质
JP2008197897A (ja) テストパターン作成装置及び作成方法
JPWO2016151710A1 (ja) 仕様構成装置および方法
JP6287093B2 (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法及びプログラム
JP2014002565A (ja) アプリケーションプログラムの影響範囲抽出方法および影響範囲抽出プログラム
KR102176133B1 (ko) 소프트웨어 테스트 케이스 자동 생성 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160412

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160516

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160801

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

R150 Certificate of patent or registration of utility model

Ref document number: 6006577

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees