JPH0954704A - 言語プロセッサのテストプログラム自動作成システム - Google Patents

言語プロセッサのテストプログラム自動作成システム

Info

Publication number
JPH0954704A
JPH0954704A JP7205667A JP20566795A JPH0954704A JP H0954704 A JPH0954704 A JP H0954704A JP 7205667 A JP7205667 A JP 7205667A JP 20566795 A JP20566795 A JP 20566795A JP H0954704 A JPH0954704 A JP H0954704A
Authority
JP
Japan
Prior art keywords
test
program
test item
processing unit
item
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
JP7205667A
Other languages
English (en)
Inventor
Shigenori Tanji
茂典 丹治
Masao Koike
政男 小池
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 JP7205667A priority Critical patent/JPH0954704A/ja
Publication of JPH0954704A publication Critical patent/JPH0954704A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 プログラム構文に依存しないテスト項目を作
成し、全てのプログラム構文および機能に対して網羅性
のある言語プロセッサのテストプログラムの作成を可能
とする。 【構成】 操作者からの入力に基づき、言語仕様に依存
しないテスト項目を作成するテスト項目作成処理部10
と、作成したテスト項目から重複するテスト項目を取り
除くテスト項目評価処理部11と、テスト対象となる言
語プロセッサのプログラム構文から、少なくとも構造、
文、式、要素を含むプログラム構成要素を抽出するプロ
グラム構成要素抽出処理部12と、抽出したプログラム
構成要素、および、作成し重複を取り除いたテスト項目
に基づき、テストプログラムを作成するテストプログラ
ム作成処理部13とを少なくとも具備する構成の言語プ
ロセッサのテストプログラム自動作成システム。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、言語プロセッサ(Lang
uage Processor)のテストプログラムの作成技術に関
し、特に、各言語プロセッサの言語仕様に対応したテス
トプログラムを効率良く作成するのに好適な言語プロセ
ッサのテストプログラム自動作成システムに関するもの
である。
【0002】
【従来の技術】言語プロセッサは、各々固有の言語仕様
(プログラム構文)を持ち、そのプログラム構文に従っ
て記述された原始プログラムを入力して構文解析を行な
い、その解析情報を用いて、言語プロセッサ内部で使用
する内部中間語に変換し、実行形式である目的プログラ
ムを生成する。また、言語プロセッサは、目的プログラ
ムの実行速度を上げるために、プログラム構文から抽出
した式や文、ループ構造などのプログラムの構成要素に
着目した最適化処理機能を備えているものがほとんどで
あり、さらに、ループに対するベクトル化命令の適用を
行なうベクトル化処理機能を備えているものもある。
【0003】言語プロセッサは、原始プログラムの構文
解析で得た解析情報のパターンによって、異なった様々
な処理を実行する。従って、これらの言語プロセッサの
テストを行なうに当たっては、文とデータの属性、およ
び、文と文の組合せ(プログラムパターン)等に着目し
たテストが必要であり、このようなテスト項目を人為的
に作成して、そのテスト項目に基づいてテストプログラ
ムを作成する必要がある。
【0004】特に、最適化処理機能やベクトル化処理機
能では、文と文の組み合わせ、または変数や式の出現位
置など、テスト条件の組み合わせが膨大にあり、それよ
うにテスト項目やテストプログラムを人為的に作成する
ことは不可能であり、コンピュータによる自動作成およ
び自動評価が必要である。さらに、言語仕様が複雑にな
るにつれて、プログラム構文を理解し、これに即した検
査項目の作成・評価を人為的に行なうことは困難であ
る。
【0005】このようなテスト項目やテストプログラム
を自動的に作成する技術、また、例えば本発明の発明者
等による特願平4−145239号公報に記載のよう
に、テスト項目とテストプログラムの両方を自動的に作
成する技術が知られている。テストプログラムの自動作
成技術としては、システムテストするデータ項目の属性
と、一定のテスト実行結果を得るための基本命令を記述
したテスト項目記述とをパラメータとして入力・解析
し、これによって、データ項目の組合せを全て使った基
本命令のテストプログラムと、テストプログラムを実行
するためのジョブ制御言語を作成するものが知られてい
る。また、複数のテストプログラムを自動的に併合し、
組合せにより新たなテストプログラムを複数作成する技
術が知られている。
【0006】また、テスト項目とテストプログラムの両
方を自動的に作成する技術(特願平4−145239号
公報)では、まず、予め構造データ、文データ、式デー
タ、要素データの各ファイルにデータ記述パラメータを
用いて記述されたテスト条件の、言語プロセッサの最適
化機能やベクトル化機能などに対応した組み合わせ方法
の指定を入力し、これら最適化機能やベクトル化機能な
どのテスト項目として必要なプログラムの条件、プログ
ラム中の文、式、要素の種別、および、出現位置の条件
を全て組み合わせたテスト項目を作成する(テスト項目
生成処理)。次に、作成したテスト項目を相互に比較評
価して重複の無いものとする(テスト項目比較・抽出処
理)。そして、残ったテスト項目を入力して、これらの
テスト項目に即したテストプログラムを作成する(テス
トプログラム生成処理)。このようにして、テスト項
目、および、そのテスト項目に対応したテストプログラ
ムを自動的に作成することができる。
【0007】しかし、これらの従来技術は、言語仕様に
強く依存したテスト項目を作成し、そのテスト項目に基
づきテストプログラムを自動作成するものである。従っ
て、全てのプログラム構文に対して網羅性のあるテスト
プログラムの作成はできない。また、基本命令に対する
テスト項目やテストプログラム、または最適化処理機能
やベクトル化処理機能に対するテスト項目やテストプロ
グラムといった、ある特定の機能に着目したテスト項目
やテストプログラムを作成することはできるが、全ての
機能について網羅性のあるテスト項目およびテストプロ
グラムを作成することはできない。
【0008】
【発明が解決しようとする課題】解決しようとする問題
点は、従来の技術では、プログラム構文に依存しないテ
スト項目を作成することができない点である。本発明の
目的は、これら従来技術の課題を解決し、全てのプログ
ラム構文および機能に対して網羅性のあるテストプログ
ラムを作成でき、言語プロセッサのテストの高効率化を
可能とする言語プロセッサのテストプログラム自動作成
システムを提供することである。
【0009】
【課題を解決するための手段】上記目的を達成するた
め、本発明の言語プロセッサのテストプログラム自動作
成システムは、操作者からの入力に基づき、「1つのテ
ストプログラム中の構造の数の範囲およびネスト数の範
囲」、「1つの構造中の文数の範囲」、「1つの文中の
式の数の範囲」、「1つの式中の要素の数の範囲」等、
言語仕様に依存しないテスト項目を作成するテスト項目
作成処理部10と、このテスト項目作成処理部10で作
成したテスト項目から重複するテスト項目を取り除くテ
スト項目評価処理部11と、テスト対象となる言語プロ
セッサのプログラム構文から、少なくとも構造、文、
式、要素を含むプログラム構成要素を抽出するプログラ
ム構成要素抽出処理部12と、このプログラム構成要素
抽出処理部12で抽出したプログラム構成要素、およ
び、テスト項目作成処理部10で作成しテスト項目評価
処理部11で重複を取り除いたテスト項目に基づき、テ
ストプログラムを作成するテストプログラム作成処理部
13とを少なくとも具備することを特徴とする。
【0010】
【作用】本発明においては、まず、オペレータが入力し
たテスト方針に基づき、1つのテストプログラム中の構
造の数の範囲およびネスト数の範囲、1つの構造中の文
数の範囲、1つの文中の式の数の範囲、1つの式中の要
素の数の範囲等、プログラム構文(言語仕様)に依存し
ないテスト項目を作成する。次に、作成したテスト項目
に同一のものがないか否か比較評価を行ない、同一のも
のを排除してテスト項目の重複を防ぐ。また、テスト対
象となる言語プロセッサのプログラム構文から、構造、
文、式、要素などのプログラム構成要素を抽出し、コン
ピュータ処理に適した構造に変換する。そして、変換し
たプログラム構成要素、および、重複が排除されたテス
ト項目とに基づき、テストプログラムを自動作成する。
このように、プログラム構文に依存しないテスト項目を
作成し、このテスト項目に従ってテストプログラムを作
成するので、このテストプログラムは、全てのプログラ
ム構文および機能に対して網羅性のあるものとなる。
【0011】
【実施例】以下、本発明の実施例を、図面により詳細に
説明する。図1は、本発明の言語プロセッサのテストプ
ログラム自動作成システムの本発明に係る構成の一実施
例を示すブロック図である。本図1において、1はCP
U(Central Processing Unit、中央処理装置)やメイ
ンメモリを具備して蓄積プログラム方式により本発明に
係るテストプログラム作成を含む種々の処理を行なう情
報処理装置、2はキーボードやCRT(Cathode Ray Tu
be、陰極線管)等からなるデータターミナル、3は磁気
ディスク等からなる記憶装置である。
【0012】情報処理装置1には、本発明に係る言語プ
ロセッサのテストプログラム自動作成を行なうテスト項
目作成処理部10、テスト項目評価処理部11、プログ
ラム構文要素抽出部12、テストプログラム作成処理部
13が設けられている。また、記憶装置3には、情報処
理装置1の各処理部で参照、あるいは作成されるテスト
項目ファイル30、テスト項目作成履歴ファイル31、
テスト項目マスタファイル32、プログラム構文記述フ
ァイル33、プログラム構成要素ファイル34、テスト
プログラムファイル35が格納されている。
【0013】以下、このような構成のテストプログラム
自動作成システムによる言語プロセッサのテストプログ
ラムの作成動作を説明する。まず、テストプログラムの
作成者が、データターミナル2から、テスト方針に基づ
き、例えば、新規に自動作成するテストプログラム全体
の行数や、1つのテストプログラム中の構造の数の範囲
およびネスト数の範囲、1つの構造中の文数の範囲、1
つの文中の式の数の範囲、1つの式中の要素の数の範囲
等、プログラム構文(言語仕様)に依存しないデータ
を、入力パラメータとして入力すると、情報処理装置1
は、テスト項目作成処理部10の図6に詳細を示す処理
により、図2にその詳細を示す内容のテスト項目ファイ
ル30を作成する。
【0014】すなわち、テスト項目作成処理部10は、
図6の処理において、まず、入力パラメータを解析する
(ステップ100)。次に、その解析結果に基づき、1
つのプログラム中の構造の数の範囲および、ネスト数の
範囲の決定(ステップ101)、1つの構造中の文数の
範囲の決定(ステップ102)、1つの文中の式数の範
囲の決定(ステップ103)、1つの式中の要素データ
数の範囲の決定(ステップ104)、および、プログラ
ムの行数(ステップ数)の決定(ステップ105)を行
なう。そして、決定された各数の範囲を組み合わせるこ
とによって、組み合わせテスト項目を自動的に作成し
(ステップ106)、作成した組み合わせテスト項目を
テスト項目ファイルへ出力する(ステップ107)。
【0015】この処理の結果、図2に示すように、テス
ト項目ファイル30には、各項目番号(1,2〜10)
別にテスト項目データが登録される。例えば、項目番号
「1」として、ステップ数「100」、1つのプログラ
ム中の構造の数の範囲「3以上5未満」、ネスト数の範
囲「10以上20未満」、1つの構造中の文の数の範囲
「5以上15未満」、1つの文中の式の数の範囲「3以
上20未満」、そして、1つの式中の要素の数の範囲
「2以上4未満」の組み合わせテスト項目が登録され
る。
【0016】これら、テスト項目ファイル30に登録さ
れているテスト項目は、プログラム構文に依存しないも
のであるが、これらのテスト項目は、図1のテスト項目
作成処理部10により重複して作成されている可能性が
ある。しかし、これらのテスト項目は、一定の規則で表
現されているので、構造の数、文の数、式の数などは、
新しく作成したものと同じものが図1のテスト項目作成
履歴ファイル31にあるか否かを容易に調べることがで
き、同一か否かの評価が可能である。そこで、図1のテ
スト項目評価処理部11により、図7に詳細を示す比較
評価処理を行ない、このような重複を回避する。その結
果、図1におけるテスト項目マスタファイル32が得ら
れる。
【0017】すなわち、図1のテスト項目評価処理部1
1は、図7の処理において、図1のテスト項目作成処理
部10により作成されたテスト項目データを入力し(ス
テップ200)、以下の処理を、最後のテスト項目まで
繰り返す。まず、図1のテスト項目作成履歴ファイル3
1の登録内容と比較し(ステップ202)、同一項目が
存在するか否かを判別する(ステップ203)。存在し
なければ、新しいテスト項目と判断して、図1のテスト
項目作成履歴ファイル31を更新し(ステップ20
4)、図1のテスト項目マスタファイル32への出力を
行なう(ステップ205)。尚、ステップ203の処理
において、同一項目が存在すれば、ステップ200に戻
り次のテスト項目データを入力する。
【0018】このようにして、図1のテスト項目評価処
理部11の処理が終了すると、図1の情報処理装置1
は、図1のプログラム構成要素抽出処理部12を起動
し、図8に詳細を示す処理を行なう。すなわち、図1の
プログラム構成要素抽出処理部12は、図8の処理にお
いて、図1のプログラム構文記述ファイル33に登録さ
れている(図3にその具体例を示す)テスト対象となる
言語プロセッサのプログラム構文から、構成要素を入力
し(ステップ300)、以下の処理を、最後の構成要素
入力まで繰り返す。
【0019】入力した構成要素の要素種別が「要素」で
あるか(ステップ302)、「式」であるか(ステップ
303)、「文」であるか(ステップ304)、あるい
は「構造」であるか(ステップ305)を順に判定し、
それぞれの要素種別に対応して構成要素の登録を行なう
(ステップ306〜309)。尚、ステップ305にお
いて否(N)であれば、「予約語(各プログラム言語の
中で意味や用法が予め決められており、ユーザが独自の
変数名などに使用することができない綴り)」の登録を
行なう(ステップ310)。そして、最後の構成要素に
対する処理が終了したならば、それぞれ登録したプログ
ラム構成要素を、図1のプログラム構成要素ファイル3
4に出力して(ステップ311)、処理を終了する。
【0020】図3は、図1におけるプログラム構文記述
ファイルの記述例を示す説明図である。本例は、テスト
対象の言語プロセッサのプログラム構文のデータファイ
ル構成の一例を示し、この記述規則に従ってテスト対象
の言語プロセッサのプログラム構文が全て図1のプログ
ラム構文記述ファイル33において記述されている。
【0021】図4は、図1におけるプログラム構成要素
抽出処理部が参照する表の記述例を示す説明図である。
本図は、図1,図3におけるプログラム構文記述ファイ
ルで使用される各データ記述パラメータの意味を説明す
る表を示している。本例では、データ記述パラメータは
「|」,「 '」,「[ ]」,「{ ! }」,「 ; 」の5種
類があり、図1のプログラム構成要素抽出処理部12
は、これらの各データ記述パラメータに対する意味を参
照して、図3に示すプログラム構成記述の内容を、図5
に示すデータ構成のプログラム構成要素ファイルに変換
する。
【0022】図5は、図1におけるプログラム構成要素
ファイルの記述例を示す説明図である。本図は、図1の
プログラム構成要素抽出処理部12により、図3に示す
プログラム構文記述ファイル33から抽出したプログラ
ム構成要素のデータ構成ファイルを示しており、構成要
素名「if文」や「ブロック」等に対応する構文が格納
されている。
【0023】このようにしてプログラム構文から抽出さ
れたプログラム構成要素と、図6,図7における処理で
作成・評価されたテスト項目とに基づき、図1のテスト
プログラム作成処理部13により、図9に詳細を示すテ
ストプログラム作成処理を行ない、テストプログラムを
自動的に作成し、図1におけるテストプログラムファイ
ル35が得られる。
【0024】すなわち、図1のテストプログラム作成処
理部13は、図9の処理において、図1のテスト項目マ
スタファイル32からテスト項目を入力して(ステップ
400)、以下の処理を、最後のテスト項目入力まで繰
り返す(ステップ401)。まず、構造の決定を行い
(ステップ402)、以下、文、式、要素の決定を行う
(ステップ403〜405)。次に、変数名称の割当て
を行ない(ステップ406)、変数宣言文の生成(ステ
ップ407)と、結果出力文の生成を行い(ステップ4
08)、そして、図1のテストプログラムファイル35
へ出力する(ステップ409)。
【0025】以上、図1〜図9を用いて説明したよう
に、本実施例の言語プロセッサのテストプログラム自動
作成システムでは、まず、操作者からの入力に基づき、
「1つのテストプログラム中の構造の数の範囲」および
「ネスト数の範囲」、「1つの構造中の文数の範囲」、
「1つの文中の式の数の範囲」、「1つの式中の要素の
数の範囲」等、プログラム構文(言語仕様)に依存しな
いテスト項目を作成し、次に、作成した各テスト項目の
比較・評価を行い、重複のないテスト項目を登録する。
このように、テスト項目を、プログラム構文に依存しな
いものとすることにより、全てのプログラム構文に対し
て網羅性を持たせることができ、言語プロセッサテスト
の基本項目から組み合わせ項目までの重複の無いテスト
項目を容易に自動作成することができる。
【0026】また、予め登録されたプログラム構文を入
力・解析することによって構造、文、式、要素等のプロ
グラム構成要素を抽出する。そして、作成・評価し登録
したテスト項目と抽出したプログラム構成要素に基づ
き、テストプログラムの作成を行なう。このことによ
り、全てのプログラム構文に対して網羅性のあるテスト
プログラムの作成が可能となる。尚、本発明は、図1〜
図9を用いて説明した実施例に限定されるものではな
く、その要旨を逸脱しない範囲において種々変更可能で
ある。
【0027】
【発明の効果】本発明によれば、プログラム構文に依存
しないテスト項目を作成することができ、全てのプログ
ラム構文および機能に対して網羅性のあるテストプログ
ラムを作成でき、言語プロセッサのテストの高効率化が
可能である。
【図面の簡単な説明】
【図1】本発明の言語プロセッサのテストプログラム自
動作成システムの本発明に係る構成の一実施例を示すブ
ロック図である。
【図2】図1におけるテスト項目ファイルのデータ構成
例を示す説明図である。
【図3】図1におけるプログラム構文記述ファイルの記
述例を示す説明図である。
【図4】図1におけるプログラム構成要素抽出処理部が
参照する表の記述例を示す説明図である。
【図5】図1におけるプログラム構成要素ファイルの記
述例を示す説明図である。
【図6】図1におけるテスト項目作成処理部の本発明に
係る処理動作例を示すフローチャートである。
【図7】図1におけるテスト項目評価処理部の本発明に
係る処理動作例を示すフローチャートである。
【図8】図1におけるプログラム構成要素抽出処理部の
本発明に係る処理動作例を示すフローチャートである。
【図9】図1におけるテストプログラム作成処理部の本
発明に係る処理動作例を示すフローチャートである。
【符号の説明】
1:情報処理装置、2:データターミナル、3:記憶装
置、10:テスト項目作成処理部、11:テスト項目評
価処理部、12:プログラム構成要素抽出処理部、1
3:テストプログラム作成処理部、30:テスト項目フ
ァイル、31:テスト項目作成履歴ファイル、32:テ
スト項目マスタファイル、33:プログラム構文記述フ
ァイル、34:プログラム構成要素ファイル、35:テ
ストプログラムファイル。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 言語プロセッサのテストプログラムを自
    動作成するシステムであって、操作者からの入力に基づ
    き、言語仕様に依存しないテスト項目を作成するテスト
    項目作成手段と、該テスト項目作成手段で作成したテス
    ト項目から重複するテスト項目を取り除くテスト項目評
    価手段と、テスト対象となる言語プロセッサのプログラ
    ム構文から、少なくとも構造、文、式、要素を含むプロ
    グラム構成要素を抽出するプログラム構成要素抽出手段
    と、該抽出したプログラム構成要素、および、上記作成
    して重複を取り除いたテスト項目に基づき、テストプロ
    グラムを作成するテストプログラム作成手段とを少なく
    とも具備することを特徴とする言語プロセッサのテスト
    プログラム自動作成システム。
JP7205667A 1995-08-11 1995-08-11 言語プロセッサのテストプログラム自動作成システム Pending JPH0954704A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7205667A JPH0954704A (ja) 1995-08-11 1995-08-11 言語プロセッサのテストプログラム自動作成システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7205667A JPH0954704A (ja) 1995-08-11 1995-08-11 言語プロセッサのテストプログラム自動作成システム

Publications (1)

Publication Number Publication Date
JPH0954704A true JPH0954704A (ja) 1997-02-25

Family

ID=16510703

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7205667A Pending JPH0954704A (ja) 1995-08-11 1995-08-11 言語プロセッサのテストプログラム自動作成システム

Country Status (1)

Country Link
JP (1) JPH0954704A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001028585A (ja) * 1999-07-13 2001-01-30 Sony Corp 配信コンテンツ生成方法、コンテンツ配信方法および装置、並びに、コード変換方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001028585A (ja) * 1999-07-13 2001-01-30 Sony Corp 配信コンテンツ生成方法、コンテンツ配信方法および装置、並びに、コード変換方法

Similar Documents

Publication Publication Date Title
CN112328226B (zh) 一种嵌入式系统自动化测试代码生成方法及装置
CN110008113B (zh) 一种测试方法、装置、电子设备
US20010037492A1 (en) Method and apparatus for automatically extracting verification models
US20020100022A1 (en) Method and apparatus for automatic verification of properties of a concurrent software system
US20090217246A1 (en) Evaluating Software Programming Skills
CN119576363A (zh) 自适应代码注释更新方法、系统、终端及存储介质
CN119690807B (zh) 大模型辅助的静态代码扫描结果分析方法、装置、电子设备和计算机可读存储介质
CN117331836A (zh) 一种基于代码语法树分析的评测方法
CN112416788A (zh) 一种分层规范的Web应用UI自动化测试方法
US8701084B1 (en) Preview of auto-fix changes to software code
JP2001522084A (ja) 機械語記述からisaシミュレータとアセンブラを生成する方法
WO2021086704A1 (en) Rules generation using learned repetitive code edits
JPH11306046A (ja) テストケース生成システム及びテストケース生成方法
CN108932225A (zh) 用于将自然语言需求转换成为语义建模语言语句的方法和系统
CN120012095A (zh) 一种基于知识图谱和大语言模型的漏洞修复方法及系统
CN108563561B (zh) 一种程序隐性约束提取方法及系统
JPH0540616A (ja) プログラム仕様生成方法
CN114237573B (zh) 一种编译器后端代码自动构建方法及系统
JPH0954704A (ja) 言語プロセッサのテストプログラム自動作成システム
Cyre et al. Generating validation feedback for automatic interpretation of informal requirements
JP2002288004A (ja) プログラムソース処理装置、プログラムソース処理方法、およびプログラムソース処理プログラム
Todorović et al. Automating the development of API-based generators using code idioms mining: N. Todorović et al.
CN119883860B (zh) 一种针对qemu元器件数字模型的智能化检测方法
Contractor Improving the Flexibility of CLARA's Automated Matching and Repair Processes
JP2882876B2 (ja) プログラム試験方法