JP2009134662A - 性能テストデータ構築ツール - Google Patents

性能テストデータ構築ツール Download PDF

Info

Publication number
JP2009134662A
JP2009134662A JP2007311899A JP2007311899A JP2009134662A JP 2009134662 A JP2009134662 A JP 2009134662A JP 2007311899 A JP2007311899 A JP 2007311899A JP 2007311899 A JP2007311899 A JP 2007311899A JP 2009134662 A JP2009134662 A JP 2009134662A
Authority
JP
Japan
Prior art keywords
data
value
file
input
pattern
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.)
Pending
Application number
JP2007311899A
Other languages
English (en)
Inventor
Yasuki Imai
泰樹 今井
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 Ltd
Original Assignee
Hitachi 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 Ltd filed Critical Hitachi Ltd
Priority to JP2007311899A priority Critical patent/JP2009134662A/ja
Publication of JP2009134662A publication Critical patent/JP2009134662A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

【課題】従来、スキーマ情報に依存せずに、かつパターンに沿ったデータを作成できる方
法は存在するが、そのデータ生成方法において全ての市販のデータベース製品に汎用的に
対応できる方法は存在せず、製品が異なる場合には、都度ツールを開発する必要が発生し
ていた。
【解決手段】前記課題を解決するため、本発明では、性能テストに使用する大量データを
、その入力ファイルを出力するプログラムを自動生成することにより、汎用的かつ効率的
に作成する。
【選択図】図1

Description

本発明は、システムの性能テストの準備を効率化する技術である。その中でも、大量の
データの入力ファイルを出力するプログラミングソースを自動的に生成する技術である。
システムの性能テストの準備を効率化する技術として、特許文献1が存在する。特許文
献1では、スキーマ情報を取得し、それを元にしてデータを作成する方法が開示されてい
る。より具体的には、スキーマ情報として、表名、列名、属性、桁数、制約の情報を抽出
し、それに加え、作成するデータパターンを入力することにより、そのパターンに沿った
データを作成することが記載されている。
特開2000−20529号公報
性能テストで利用するデータの準備方法は、一般的に以下に2通りに分けられる。1点
目は、そのシステムが本番稼働しているシステムで既にデータが存在する場合には、その
本番データを使用する方法。但し、本番データが存在しないシステムについてはこの方法
は適用できない。2点目は、アプリケーション開発者が、データ要件に合わせデータを出
力するプログラムを開発する方法である。但しこの方法はアプリケーション開発者に想定
外の負担を与えてきた。
特許文献1では、この課題を解決すべく、スキーマ情報に依存せずに、かつパターンに
沿ったデータを作成できる方法を提示している。しかし、そのデータ生成方法は全ての市
販のデータベース製品に汎用的に対応できる方法は記載されておらず、製品が異なる場合
には、都度ツールを開発する必要が発生すると考えられる。
本発明では、性能テストで使用されるデータを、市販のデータベース製品への入力ファ
イルに着目することにより、汎用的なデータ入力ファイルを出力するプログラムを自動生
成する方法を提示する。
本発明により、汎用的なデータベース入力データファイルを作成することが可能となり
、市販のデータベース製品に依存することなく性能テストで必要となるデータを容易に作
成することが可能となる。
以下、本発明の実施の形態を詳細に説明する。図1は本発明を示すシステム構成図であ
り、図2は、入力データ項目ファイルを示すデータ図である。
図3、4、5は処理手順の実施の形態を示すフローチャートである。まず、図1の構成
図について説明する。構成図では、本発明を実装した際の処理の手順を説明する。本発明
の主要な機能は図1の3に示す「データベース格納プログラム(図1−10)への入力フ
ァイル出力プログラム自動生成アプリケーション」である。このアプリケーションに性能
テストで使用するためのデータに関する要件情報を入力することにより、その要件を充足
する形式のデータを出力するプログラミングソースを自動的に生成することができる。以
下、使用する流れに従って説明する。使用者は、ハードウェア1(図1−1)上に保存さ
れている入力データ項目ファイル(図1−2)に、増幅するパターンを入力する。増幅す
るパターンは、以下5種類の中から選択する。一般的なデータアクセスソフトのデータへ
のアクセス方法は、データの種類の数、そして、データの値の拡散率に影響を受ける。下
記パターンによりその内容をほぼ網羅することが可能となる。つまり、このパターンを設
けることにより作成するデータ内容を本番データの内容へ近づけることが可能となり、性
能テストの信頼性の向上にも繋がる。例えば、日付などは、通常ある一定の日付が何万件
も存在する可能性は少ない。インターネットバンキングのデータベースで格納されている
利用者が入金した日付情報は、一定であるはずがなく、多くの種類の日付が存在するはず
である。この点は、下記のパターン(3)に該当する。また、入金した額もその都度異な
るはずであるが、インターネットバンキングで入金できる金額には上限があるため、その
上限以下の値を多く保存していることが予想することができる。これについては下記パタ
ーン(5)にて実現する。このような本番データ近いにデータの多様性を持たせることが
可能となる。
(1)一定値を設定する。
(2)数値をインクリメント設定する。
(3)日付をインクリメント設定する。
(4)指定した特定の数値を繰り返し設定する。
(5)指定した下限から上限までの間の数値をインクリメント設定する。
入力ファイル出力プログラム自動生成アプリケーション(図1−3)を実行することに
より、入力ファイル出力プログラムのソースファイル(図1−4)が、ハードウェア1(
図1−1)上に自動生成される。このソースファイルのアルゴリズムは図3に示すフロー
チャートの内容となる。これについては後述する。
このプロセスは、従来はアプリケーション開発者が手動で開発していた箇所となる。こ
のプログラムソースファイル(図1−4)を、ハードウェア2(図1−5)上に転送する
。ハードウェア2(図1−5)はハードウェア1(図1−1)と同一でも可能であるが、
スペックの高いハードウェアを使用することにより時間の短縮が可能となる。プログラム
ソースファイル(図1−4)をコンパイルし、プログラムモジュール(図1−8)を作成
する。このプログラムモジュールを実行すると、要件に沿ったカンマ区切りファイル(図
1−9)を出力する。このカンマ区切りファイル(図1−9)を入力ファイルとして、デ
ータベース格納ツールにより、データベースに入力ファイルのデータを格納する。
次に図2により、要件を確定させるための入力データ項目について説明する。「テーブ
ル名」にはデータベース上のデータを格納する対象テーブルを記載する。「データベース
識別情報」は、データベースを識別するための情報を格納する。「作成レコード数」には
、作成するデータのレコード数を設定する。「論理項目名」には、テーブル上での項目の
日本語名称を記載する。「物理項目名」には、テーブル上での項目名を記載する。この名
前は、実際にデータベース管理ソフトが識別可能な情報を入力する。「型」にはデータの
形式をデータベース管理ソフトに合わせて設定する。「パターン」には、増幅するパター
ンを入力する。パターンの設定は上述した5通りの方法が存在する。
「倍数」に数値を設定することによって、インクリメントの幅を調整することができる
。指定しない場合には、デフォルト値として1を採用する。例えば、「倍数」に2を設定
した場合には、上述した「パターン」項目にて「S」を指定していると、2毎にインクリ
メントしていくこととなる。
「設定値」には最終的にデータベースに入力したい数値を設定する。「パターン」毎に
入力方法は下記の通りとなる。
(1)「パターン」が未入力の場合
一定値としたい数値を設定する。
(2)「S」を指定した場合
インクリメントを開始する初期値を設定する。
(3)「D」を指定した場合
インクリメントを開始する初期日付を設定する。
(4)「P」を指定した場合
繰り返しする数値を設定する。
(5)「R」を指定した場合
インクリメントする範囲の最小値と最大値を設定する。
次に、図3、4、および5のフローチャートにより、図1−3で示した「入力ファイル
出力プログラム自動生成アプリケーション」の処理の流れを説明する 図2で示した入力
データ項目ファイルをオープン(ステップ101)し、入力ファイルの「テーブル名」の
データを読み込み、データが存在するか否かを確認する(ステップ102)。テーブル名
のデータが存在しない場合は処理を中止する。テーブル名のデータが存在する場合は、こ
のテーブル名を使用し、プログラムソースを出力するファイル名を決定し、このファイル
のファイルポインタ作成(ステップ103)し、追記するためにそのファイルポインタを
オープンする(ステップ104)。
本例では、入力ファイルのテーブル名に「EXAMPLE_TABLE」と記載されているので、「E
XAMPLE_TABLE」を読み込み、プログラムソースを出力するファイルは、EXAMPLE_TABLE.プ
ログラム拡張子となる。
プログラムの定型ヘッダ部を出力ファイルに書き込む(ステップ105)。定型ヘッダ
とは、各プログラミング言語を記述する際に必要となる宣言文に該当する。
図2で示した入力データ項目ファイルの「作成レコード数」を読み込み、作成レコード
数_変数へ格納する(ステップ106)。本例では、1,000件となっているので、この値を
作成レコード数_変数へ格納する。
変数宣言部の作成処理(ステップ107)は図4を用いて説明する。入力データ項目フ
ァイルより「物理項目名」を読み込む(ステップ201)。読み込んだ物理項目名を物理項
目名_変数へ格納(ステップ202)する。本例では、「物理項目名」の先頭にある「TRIHIKI_NO」を読み込み、これを物理項目名_変数へ格納する。
入力データ項目ファイルより「型」を読み込み、型_変数へ格納(ステップ203)す
る。本例では、「TRIHIKI_NO」の「型」としては「CHAR」を読み込む。格納された型_変
数の内容を出力可能な情報であるかを条件指定により確認(ステップ204)する。出力
可能な情報かどうかは、データベース格納プログラム(図1−10)の制約に従う。デー
タベース格納プログラムで入力文字として許容しない型があれば、この型をステップ20
4にて条件指定する。
対象外の「型」である場合には、条件不一致とし、次の「物理項目名」を読み込む(ス
テップ210)。またステップ204により出力すべき項目の条件と一致した場合には、
「改行コードの変換」(ステップ205)処理を行う。次の図2の「物理項目名」が存在
するまで上述の処理を繰り返し実行する。すべての「物理項目名」の読み込みが終了した
場合には、「値出力ループの作成処理」(ステップ108)へ進む。本例では、「TRIHIK
I_NO」の読込から開始し、「B_NO」までの17レコードをループして読み込む処理をする。
「値出力ループの作成処理」について図5を用いて説明する。入力データ項目ファイル
の「倍数」に値が存在するかを確認する(ステップ301)。「倍数」に値が存在する場
合には、「倍数」の数値を倍数_変数の初期値1と乗算した結果を、再度倍数_変数へ格納
する(ステップ302)。本例では、4つ目のレコード「A_NITIJI」の「倍数」に3が存在
する。この場合、倍数_変数は、初期値1に3が乗算され、3が入力される。この倍数_変数
をループ関数の増加分として使用することによって、日付を3日間隔で出力することが可
能となる。ループ関数では、1ループが完了する毎に、この倍数_変数を加算して次のル
ープを実行する。本例では、3,6,9,12と倍数_変数の3を順次カウントアップしていく。「
倍数」指定が無い場合には、倍数_変数にはデフォルト値を入力する。本例では、1つ目の
レコード「TRIHIKI_NO」の「倍数」には値は存在しない。従って、「TRIHIKI_NO」につい
ての倍数_変数は初期値1のままとなる。
次に、「パターン」を読み込み(ステップ303)、未入力の場合には、入力データ項
目ファイルの設定値を固定値として設定する関数を出力する(ステップ305)。本例で
は、2つ目のレコードの「A_FLG」の「パターン」には値は存在しない。従って、「設定値
」に設定されている「1」をレコード件数「1000」回繰り返して出力する関数を作成する
「パターン」が「S」の場合には、入力データ項目ファイルの設定値を、倍数_変数を使
用して以下のように増幅させる。1ループ処理毎に入力データ項目ファイルの設定値を「
倍数_変数」分増加させ出力する関数を生成する(ステップ307)。尚、ループは「レ
コード件数」分繰り返し処理する。この処理を以下カウントアップループと呼ぶこととす
る。「本例では、1つ目のレコードの「TRIHIKI_NO」の「パターン」値が「S」が設定さ
れている。従って、「設定値」に設定されている「9000000001」を初期値とし、レコード
件数「1000」回数分、1ずつインクリメントする出力する関数を作成する。
「パターン」が「D」の場合には、入力データ項目ファイルの設定日付を倍数_変数にて
日付をカウントアップループする関数を出力する(ステップ309)。本例では、4つ目
のレコードの「A_NITIJI」の「パターン」値が「D」が設定されている。従って、「設定
値」に存在する「2006/10/03,2006/11/01」を読みこみ、初期日付を2006年10月3日と設定
し、最大日付を2006年11月1日と設定する。また、「倍数」の値には「3」が存在するた
め、増加する間隔が3日であるため、初期日付2006年10月3日から3日ずつ2006年11月1日
まで進める関数を作成する。尚、日付が2000年11月1日に達した場合には、再度開始日付
である2006年10月3日から日付を出力する。
「パターン」が「P」の場合には、入力データ項目ファイルに指定されている複数のイ
ンプット情報からの数値をループして作成する関数を出力する(ステップ311)。本例
では、12番目のレコードの「A_STA」の「パターン」値が「P」が設定されている。従っ
て、「設定値」に存在する「1,2,3,4」を読みこみ、この4つの数値を1000件順番に繰り返
す関数を作成する。
「パターン」が「R」の場合には、入力データ項目ファイルの入力値(最小値と最大値)
の範囲の中で倍数_変数を用いカウントアップする関数を出力する(ステップ313)。
本例では、7番目のレコードの「C_EVNT_NO」の「パターン」値が「R」が設定されている
。従って、「設定値」に存在する「901,1000」を読みこむ。初期値を901、最大値を1000
とし、初期値から1ずつ最大値1000まで順次増加出力する関数を作成する。尚、最大値に
達し場合には、再度初期値901に戻り処理を繰り返す。このパターンの関数の順番は上記
に限定されることはなく、入れ替え可能である。
次の読込設定値が存在しない場合には処理を中止し、後処理(ステップ109)を実行
して完了する。後処理は、各プログラミング言語に依存するが、主にヘッダで指定した関
数のオープンの対となるクローズ処理を出力する。
システム構成図。 入力データ項目ファイルを示すデータ図。 処理手順の実施の形態を示すフローチャート(全体編)。 処理手順の実施の形態を示すフローチャート(変数宣言部の作成処理編)。 処理手順の実施の形態を示すフローチャート(値出力ループの作成処理編)。
符号の説明
1…ハードウェア1、パソコン等、2…入力データ項目ファイル、3…入力ファイル出
力プログラム自動生成アプリケーション、4…プログラムソースファイル、5…ハードウ
ェア2、サーバ等、6…プログラムソースファイル(4と同)、7…プログラムコンパイ
ラ、8…プログラムモジュール、9…カンマ区切りファイル、10…データベース格納プ
ログラム、11…データベース。

Claims (1)

  1. 性能テストで使用されるデータを、市販のデータベース製品への入力ファイルに着目す
    ることにより、汎用的なデータ入力ファイルを出力するプログラムを自動生成することを
    特徴とする性能テストデータ構築ツール。
JP2007311899A 2007-12-03 2007-12-03 性能テストデータ構築ツール Pending JP2009134662A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007311899A JP2009134662A (ja) 2007-12-03 2007-12-03 性能テストデータ構築ツール

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007311899A JP2009134662A (ja) 2007-12-03 2007-12-03 性能テストデータ構築ツール

Publications (1)

Publication Number Publication Date
JP2009134662A true JP2009134662A (ja) 2009-06-18

Family

ID=40866461

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007311899A Pending JP2009134662A (ja) 2007-12-03 2007-12-03 性能テストデータ構築ツール

Country Status (1)

Country Link
JP (1) JP2009134662A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010073052A (ja) * 2008-09-19 2010-04-02 Toshiba Corp テストデータ生成装置、及びテストデータ生成方法
US9092577B2 (en) 2011-02-02 2015-07-28 Hitachi, Ltd. Method for generating test data for evaluating program execution performance

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010073052A (ja) * 2008-09-19 2010-04-02 Toshiba Corp テストデータ生成装置、及びテストデータ生成方法
US9092577B2 (en) 2011-02-02 2015-07-28 Hitachi, Ltd. Method for generating test data for evaluating program execution performance

Similar Documents

Publication Publication Date Title
EP3631618B1 (en) Automated dependency analyzer for heterogeneously programmed data processing system
CN107038242B (zh) 一种面向区块链全局智能合约业务数据解析方法
Prowell et al. Cleanroom software engineering: technology and process
JP5197688B2 (ja) 統合環境生成器
US7340475B2 (en) Evaluating dynamic expressions in a modeling application
CN101887365B (zh) 用于构造基于组件的应用的可执行代码的方法和编译器
US10782961B2 (en) Analyzing components related to a software application in a software development environment
CN110275861B (zh) 数据存储方法及装置、存储介质、电子装置
CN106991100B (zh) 数据导入方法及装置
KR20150132858A (ko) 메타데이터 관리를 위한 시스템
CN102810057A (zh) 一种记录日志的方法
US8407235B2 (en) Exposing and using metadata and meta-metadata
CN112463149B (zh) 一种面向软件定义卫星的可复用代码库构建方法与装置
CN110990055B (zh) 一种基于程序分析的Pull Request功能分类方法
CN111061733A (zh) 数据处理方法、装置、电子设备和计算机可读存储介质
US20110296373A1 (en) Command line shell command generation based on schema
JP2009134662A (ja) 性能テストデータ構築ツール
Oliveira et al. ETL standard processes modelling-a novel BPMN approach
CN107577476A (zh) 一种基于模块划分的安卓系统源码差异性分析方法、服务器及介质
Mendes et al. Systematic spreadsheet construction processes
CN112051987B (zh) 业务数据处理方法、装置及设备、程序生成方法及装置
EP3289454B1 (en) Online data management system
Rahman et al. Pattern analysis of TXL programs
CN115469848A (zh) 一种前端实现多文件编译器的方法
Sonnleitner et al. Persistence of workflow control data in temporal databases