JPH02224143A - テストプログラム作成処理装置 - Google Patents
テストプログラム作成処理装置Info
- Publication number
- JPH02224143A JPH02224143A JP1046212A JP4621289A JPH02224143A JP H02224143 A JPH02224143 A JP H02224143A JP 1046212 A JP1046212 A JP 1046212A JP 4621289 A JP4621289 A JP 4621289A JP H02224143 A JPH02224143 A JP H02224143A
- Authority
- JP
- Japan
- Prior art keywords
- test program
- program
- description
- test
- statement
- 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
Links
- 238000013519 translation Methods 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims description 46
- 238000012360 testing method Methods 0.000 claims description 23
- 238000004519 manufacturing process Methods 0.000 claims description 17
- 238000012790 confirmation Methods 0.000 claims description 13
- 230000004044 response Effects 0.000 claims description 3
- 230000015572 biosynthetic process Effects 0.000 abstract 1
- 238000000034 method Methods 0.000 description 22
- 230000008569 process Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 241000282412 Homo Species 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000556 factor analysis Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概要〕
言語処理プログラム用のテストプログラムを作成するテ
ストプログラム作成処理装置に関し、テストプログラム
の自動作成の提供を目的とし、属性文法記述に従って記
述された処理対象文に対しての乱数的な選択処理により
生成される乱数文と、乱数文の実行結果の確認のための
テストルーチンを呼び出す確認文とを対とするテストプ
ログラムを作成するテストプログラム作成処理装置であ
って、属性文法記述を内部形式に変換するり−ダと、変
換された内部形式の内の非終端記号については、生成規
則に従って再帰的に展開を実行して内部形式テストプロ
グラムに翻訳し、かつこの展開にあたって非終端記号の
種、々の属性を構造体変数として管理するとともに、終
端記号についてはそのまま内部形式テストプログラムと
して扱う翻訳処理器と、意味記述の実行を翻訳処理器か
らの起動依願に応じて実行する意味記述解釈器と、作成
された内部形式テストプログラムを実行可能なテストプ
ログラムとして出力するライタとを備えるよう構成する
。
ストプログラム作成処理装置に関し、テストプログラム
の自動作成の提供を目的とし、属性文法記述に従って記
述された処理対象文に対しての乱数的な選択処理により
生成される乱数文と、乱数文の実行結果の確認のための
テストルーチンを呼び出す確認文とを対とするテストプ
ログラムを作成するテストプログラム作成処理装置であ
って、属性文法記述を内部形式に変換するり−ダと、変
換された内部形式の内の非終端記号については、生成規
則に従って再帰的に展開を実行して内部形式テストプロ
グラムに翻訳し、かつこの展開にあたって非終端記号の
種、々の属性を構造体変数として管理するとともに、終
端記号についてはそのまま内部形式テストプログラムと
して扱う翻訳処理器と、意味記述の実行を翻訳処理器か
らの起動依願に応じて実行する意味記述解釈器と、作成
された内部形式テストプログラムを実行可能なテストプ
ログラムとして出力するライタとを備えるよう構成する
。
本発明は、言語処理プログラム用のテストプログラムを
作成するテストプログラム作成処理装置に関し、特に、
自動的にテストプログラムを作成できるようにするテス
トプログラム作成処理装置に関するものである。
作成するテストプログラム作成処理装置に関し、特に、
自動的にテストプログラムを作成できるようにするテス
トプログラム作成処理装置に関するものである。
作成した言語処理プログラム(COBOLやFOIIT
RAN等のコンパイラに限られずに、コマンドを処理す
るプログラム等も含む)の機能を検査するために、マニ
ュアルに基づいて検証用のテストプログラムを作成して
、その実行結果を予想したものと比較してい(という手
法がとられることになる。
RAN等のコンパイラに限られずに、コマンドを処理す
るプログラム等も含む)の機能を検査するために、マニ
ュアルに基づいて検証用のテストプログラムを作成して
、その実行結果を予想したものと比較してい(という手
法がとられることになる。
しかるに、言語処理プログラムの機能の数は多く、しか
も複数の機能の組み合わせまで検査しなければならない
ことから、61 tWしなければならない機能の数は極
めて多くなることになる。これから、言語処理プログラ
ムの機能の検査のために必要とされるテストプログラム
の作成に、多大な労力が費やされているというのが現状
である。このような背景の元に、言語処理プログラム用
のテストプログラムの自動作成処理装置の提供が望まれ
ているのである。
も複数の機能の組み合わせまで検査しなければならない
ことから、61 tWしなければならない機能の数は極
めて多くなることになる。これから、言語処理プログラ
ムの機能の検査のために必要とされるテストプログラム
の作成に、多大な労力が費やされているというのが現状
である。このような背景の元に、言語処理プログラム用
のテストプログラムの自動作成処理装置の提供が望まれ
ているのである。
従来では、人手によづて、言語処理プログラム用のテス
トプログラムが作成されていた。すなわち、プログラマ
等が、各種文法規則とその意味を記述したマニュアルか
ら要因分析を行ってテスト項目を設定して、テスト項目
にあった機能の実行とその結果の検証手続きとを記述し
たテストプログラムを作成していたのである。
トプログラムが作成されていた。すなわち、プログラマ
等が、各種文法規則とその意味を記述したマニュアルか
ら要因分析を行ってテスト項目を設定して、テスト項目
にあった機能の実行とその結果の検証手続きとを記述し
たテストプログラムを作成していたのである。
(発明が解決しようとする課題)
しかしながら、この要因分析やテスト項目の設定には極
めて大きな労力がかかることから、従来技術では、テス
トプログラムの作成に極めて多大な工数がとられてしま
うという問題点があった。
めて大きな労力がかかることから、従来技術では、テス
トプログラムの作成に極めて多大な工数がとられてしま
うという問題点があった。
そして、人手による方法では作成するテストプログラム
の内容に限度があることから、従来技術では、言語処理
プログラムの機能の検査を十分行っていないという問題
点もあったのである。
の内容に限度があることから、従来技術では、言語処理
プログラムの機能の検査を十分行っていないという問題
点もあったのである。
そこで、本出願人は、先に出願の「特願昭63−465
10号(昭和63年2月29日出願、“言語処理プログ
ラム検証方式°°)」で、言語処理プログラム用のテス
トプログラムの自動作成処理装置の発明杏案出した。次
に、第5図に従って、この特許出願の発明の概要につい
て説明する。
10号(昭和63年2月29日出願、“言語処理プログ
ラム検証方式°°)」で、言語処理プログラム用のテス
トプログラムの自動作成処理装置の発明杏案出した。次
に、第5図に従って、この特許出願の発明の概要につい
て説明する。
図中、lは構文・意味記述であって、言語処理プログラ
ムの処理対象文を生成規則と意味記述とからなる属性文
法記述に従って記述するもの、2はTP自動作成部であ
って、構文・意味記述lからテストプログラムを自動作
成するもの・、3はTP自動作成部2が備える生成規則
選択部であって、構文・意味記述l中の生成規則に対し
て乱数的な選択処理を施すことで処理対象文の一態様を
なす乱数文を作成するもの、4はTP自動作成部2が備
える確認文挿入部であって、作成された乱数文の実行に
より引き起こされる実行結果の確認を行うためのテスト
ルーチンを呼び出す確認文を乱数文に対応付けて挿入す
るもの、5はTP自動作成部2が備える記号表であって
、乱数文名等を格納するもの、6はTP自動作成部2に
より作成される一連の検証プログラムであって、言語処
理プロダラムのテストプログラムをなすもの、7は自動
判定部であって、検証プログラム6の乱数文を言語処理
プログラムに実行させたときの実行結果が正しいものと
なるのか否かを、その乱数文に対応付けられている確認
文により呼び出されるテストルーチンに従って自動的に
判定するもの、8は結果−覧表であって、自動判定部7
の判定結果をプリントアウトするものである。
ムの処理対象文を生成規則と意味記述とからなる属性文
法記述に従って記述するもの、2はTP自動作成部であ
って、構文・意味記述lからテストプログラムを自動作
成するもの・、3はTP自動作成部2が備える生成規則
選択部であって、構文・意味記述l中の生成規則に対し
て乱数的な選択処理を施すことで処理対象文の一態様を
なす乱数文を作成するもの、4はTP自動作成部2が備
える確認文挿入部であって、作成された乱数文の実行に
より引き起こされる実行結果の確認を行うためのテスト
ルーチンを呼び出す確認文を乱数文に対応付けて挿入す
るもの、5はTP自動作成部2が備える記号表であって
、乱数文名等を格納するもの、6はTP自動作成部2に
より作成される一連の検証プログラムであって、言語処
理プロダラムのテストプログラムをなすもの、7は自動
判定部であって、検証プログラム6の乱数文を言語処理
プログラムに実行させたときの実行結果が正しいものと
なるのか否かを、その乱数文に対応付けられている確認
文により呼び出されるテストルーチンに従って自動的に
判定するもの、8は結果−覧表であって、自動判定部7
の判定結果をプリントアウトするものである。
このように構成される先の特許出願の発明にあっては、
プログラマ等により第6図に示すような構文・意味記述
1が記述されると、生成規則選択部3は、構文・意味記
述l中の処理対象文の生成規則に対して乱数的な選択処
理を施すことで処理対象文の一態様をなす乱数文を作成
し、確認文挿入部4は、乱数文の正しい実行結果を引数
とする確認文を挿入していくことで、言語処理プログラ
ム用のテストプログラムを自動生成していくよう処理す
ることになる。
プログラマ等により第6図に示すような構文・意味記述
1が記述されると、生成規則選択部3は、構文・意味記
述l中の処理対象文の生成規則に対して乱数的な選択処
理を施すことで処理対象文の一態様をなす乱数文を作成
し、確認文挿入部4は、乱数文の正しい実行結果を引数
とする確認文を挿入していくことで、言語処理プログラ
ム用のテストプログラムを自動生成していくよう処理す
ることになる。
このような構成をとる先の特許出願の発明の実用性を高
めていくためには、第6図に示すような、特定の言語で
記述される分かりにくい属性文法記述ではなくて、人間
にとって分かり昌い属性文法記述から直ちにテストプロ
グラムを作成できるようにする手段を講じていく必要が
あるとともに、機能追加があるときにも簡単に対応でき
るようにする手段を講じていく必要があり、更に、作成
されていく一連のテストプログラムの実行順序を自由に
変更できるようにする手段を講じていく必要があるので
ある。
めていくためには、第6図に示すような、特定の言語で
記述される分かりにくい属性文法記述ではなくて、人間
にとって分かり昌い属性文法記述から直ちにテストプロ
グラムを作成できるようにする手段を講じていく必要が
あるとともに、機能追加があるときにも簡単に対応でき
るようにする手段を講じていく必要があり、更に、作成
されていく一連のテストプログラムの実行順序を自由に
変更できるようにする手段を講じていく必要があるので
ある。
本発明はかかる事情に鑑みてなされたものであって、先
の特許出願のテストプログラム作成処理装置の発明を一
歩進めて、実用性の高いテストプログラムの自動作成処
理装置の提供を目的とするものである。
の特許出願のテストプログラム作成処理装置の発明を一
歩進めて、実用性の高いテストプログラムの自動作成処
理装置の提供を目的とするものである。
第1図は本発明の原理構成図である。
図中、10は属性文法記述であって、検査対象となる言
語処理プログラムの処理対象文についての属性文法を記
述するとともに、この処理対象文の実行結果の確認を行
うテストルーチンの呼び出しのための確認文を記述する
もの、11は属性文法記述lOをなす生成規則であって
、処理対象文の生成規則を記述するもの、12は生成規
則ll中の終端記号であって、それ以上展開されること
のない記号であるもの、13は生成規則11中の非P:
端記号であって、生成規則11に従って展開されてい(
記号であるもの、14は属性文法記述10をなす意味記
述であって、処理対象文中の意味内容を記述するもの、
20は本発明を具備するテストプログラム作成処理装置
であって、言語処理プログラム用のテストプログラムを
自動作成するもの、21はリーダであって、属性文法記
述10を内部形式に変換するもの、22は翻訳処理器で
あって、リーダ21により変換された内部形式を翻訳し
て内部形式テストプログラムを作成する展開処理部23
と、内部形式テストプログラムの作成にあたって必要と
なる意味記述14の実行依願を行う意味記述処理依頼部
26とを備えるもの、24は展開処理部23が備える乱
数発生部であって、生成規則に関しての選択処理に必要
となる乱数を発生させるもの、25は展開処理部23が
備える構造体変数管理部であって、内部形式テストプロ
グラムの作成にあたって必要とされる種々の属性を構造
体変数として管理するもの、27は意味記述解釈器であ
って、意味記述処理依頼部26からの起動依頼に応じて
処理要求のある意味記述14を実行するもの、28はラ
イタであって、翻訳処理器22により作成された内部形
式テストプログラムを実行可能なテストプログラムとし
てファイル等に出力するもの、30は出力されたテスト
プログラムである。
語処理プログラムの処理対象文についての属性文法を記
述するとともに、この処理対象文の実行結果の確認を行
うテストルーチンの呼び出しのための確認文を記述する
もの、11は属性文法記述lOをなす生成規則であって
、処理対象文の生成規則を記述するもの、12は生成規
則ll中の終端記号であって、それ以上展開されること
のない記号であるもの、13は生成規則11中の非P:
端記号であって、生成規則11に従って展開されてい(
記号であるもの、14は属性文法記述10をなす意味記
述であって、処理対象文中の意味内容を記述するもの、
20は本発明を具備するテストプログラム作成処理装置
であって、言語処理プログラム用のテストプログラムを
自動作成するもの、21はリーダであって、属性文法記
述10を内部形式に変換するもの、22は翻訳処理器で
あって、リーダ21により変換された内部形式を翻訳し
て内部形式テストプログラムを作成する展開処理部23
と、内部形式テストプログラムの作成にあたって必要と
なる意味記述14の実行依願を行う意味記述処理依頼部
26とを備えるもの、24は展開処理部23が備える乱
数発生部であって、生成規則に関しての選択処理に必要
となる乱数を発生させるもの、25は展開処理部23が
備える構造体変数管理部であって、内部形式テストプロ
グラムの作成にあたって必要とされる種々の属性を構造
体変数として管理するもの、27は意味記述解釈器であ
って、意味記述処理依頼部26からの起動依頼に応じて
処理要求のある意味記述14を実行するもの、28はラ
イタであって、翻訳処理器22により作成された内部形
式テストプログラムを実行可能なテストプログラムとし
てファイル等に出力するもの、30は出力されたテスト
プログラムである。
本発明では、リーダ21の処理に従って、属性文法記述
10を翻訳処理器22が解釈し易い形式である内部形式
に変換する。この内部形式を受は取ると、展開処理部2
3は、非終端記号13については、生成規則11に従っ
て再帰的に展開を実行していくことで、内部形式テスト
プログラムに翻訳してい(とともに、終端記号12につ
いては、そのまま内部形式テストプログラムとして扱う
よう処理していく。この内部形式テストプログラムへの
翻訳時に意味記述14の実行が必要となる場合には、意
味記述処理依頼部26は、意味記述解釈器27を起動し
ていくよう処理し、このようにして起動される意味記述
解釈器27は、構造体変数管理部25の属性を新たなも
のに更新していく処理を実行する。そして、展開処理部
23は、内部形式テストプログラムへの翻訳を、この更
新された属性を参照しながら実行してい(とともに、翻
訳にあたって必要となる生成規則ll中に含まれる選択
性の規則に関しては、乱数発生部24が発生する乱数値
に従って、選択対象の選択や値の選択を実行していくこ
とになる。
10を翻訳処理器22が解釈し易い形式である内部形式
に変換する。この内部形式を受は取ると、展開処理部2
3は、非終端記号13については、生成規則11に従っ
て再帰的に展開を実行していくことで、内部形式テスト
プログラムに翻訳してい(とともに、終端記号12につ
いては、そのまま内部形式テストプログラムとして扱う
よう処理していく。この内部形式テストプログラムへの
翻訳時に意味記述14の実行が必要となる場合には、意
味記述処理依頼部26は、意味記述解釈器27を起動し
ていくよう処理し、このようにして起動される意味記述
解釈器27は、構造体変数管理部25の属性を新たなも
のに更新していく処理を実行する。そして、展開処理部
23は、内部形式テストプログラムへの翻訳を、この更
新された属性を参照しながら実行してい(とともに、翻
訳にあたって必要となる生成規則ll中に含まれる選択
性の規則に関しては、乱数発生部24が発生する乱数値
に従って、選択対象の選択や値の選択を実行していくこ
とになる。
このようにして、内部形式テストプログラムへの翻訳処
理が終了すると、属性文法記述10に記述されている確
認文中のパラメータ部分に、処理対象文の一態樺として
翻訳された乱数文の実行結果に関しての値が設定され、
言語処理プログラム用のテストプログラムの基本単位に
相当する内部形式プログラムの作成が終了することにな
る。内部形式プログラムの作成が終了すると、ライタ2
8は、内部形式テストプログラムを実行可能なテストプ
ログラム30として出力して処理を終了する。
理が終了すると、属性文法記述10に記述されている確
認文中のパラメータ部分に、処理対象文の一態樺として
翻訳された乱数文の実行結果に関しての値が設定され、
言語処理プログラム用のテストプログラムの基本単位に
相当する内部形式プログラムの作成が終了することにな
る。内部形式プログラムの作成が終了すると、ライタ2
8は、内部形式テストプログラムを実行可能なテストプ
ログラム30として出力して処理を終了する。
以上のように、本発明では、リーダ21、翻訳処理器2
2、意味記述解釈器27及びライタ28という構成に従
って言語処理プログラム用のテストプログラムの自動作
成を実現した。このようにリーダ21を備えるようにし
たことから、属性文法記述lOの記述を特定の言語で記
述しなければならないということがなくなり、分かり易
い属性文法記述10に従ってテストプログラム3oを作
成できるようになる。そして、意味記述解釈器27を翻
訳処理器22とは別に備えるようにしたことから、機能
追加の要求に対しても意味記述解釈器27だけの簡単な
変更で対応できるようになる。
2、意味記述解釈器27及びライタ28という構成に従
って言語処理プログラム用のテストプログラムの自動作
成を実現した。このようにリーダ21を備えるようにし
たことから、属性文法記述lOの記述を特定の言語で記
述しなければならないということがなくなり、分かり易
い属性文法記述10に従ってテストプログラム3oを作
成できるようになる。そして、意味記述解釈器27を翻
訳処理器22とは別に備えるようにしたことから、機能
追加の要求に対しても意味記述解釈器27だけの簡単な
変更で対応できるようになる。
しかも、ライタ28を備えるようにしたことから、一連
のテストプログラム30の実行順序の変更等が容易に実
行できるようになる。
のテストプログラム30の実行順序の変更等が容易に実
行できるようになる。
以下、実施例に従って本発明の詳細な説明する。
第2図に、本発明により自動作成されるテストプログラ
ムの使用方法の説明図を示す。図中、第1図で説明した
ものと同じものについては、同一の記号で示しである。
ムの使用方法の説明図を示す。図中、第1図で説明した
ものと同じものについては、同一の記号で示しである。
40は検査対象となる言語処理プログラムであって、属
性文法記述lOに記述されることになる処理対象文のコ
ンパイル処理を実行するもの、41はテスト用オブジェ
クトプログラムであって、言語処理プログラム40によ
りコンパイルされたテストプログラム30のオブジェク
トプログラムであるもの、42はリンカであって、テス
ト用オブジェクトプログラム41とライブラリ43のプ
ログラムとのリンクを実行するもの、44はリンカ42
によってテスト用オブジェクトプログラム41とリンク
されることになるCHECKプログラムであって、テス
トプログラム30中に記述される乱数文の実行結果のT
11!認を行うテストルーチンであるもの、45は実行
単位をなすロードモジュール、46はロードモジュール
45の実行結果を表す実行結果出力である。
性文法記述lOに記述されることになる処理対象文のコ
ンパイル処理を実行するもの、41はテスト用オブジェ
クトプログラムであって、言語処理プログラム40によ
りコンパイルされたテストプログラム30のオブジェク
トプログラムであるもの、42はリンカであって、テス
ト用オブジェクトプログラム41とライブラリ43のプ
ログラムとのリンクを実行するもの、44はリンカ42
によってテスト用オブジェクトプログラム41とリンク
されることになるCHECKプログラムであって、テス
トプログラム30中に記述される乱数文の実行結果のT
11!認を行うテストルーチンであるもの、45は実行
単位をなすロードモジュール、46はロードモジュール
45の実行結果を表す実行結果出力である。
この図に示すように、本発明のテストプログラム作成処
理装置20は、言語処理プログラム40の機能の検証の
ために必要となるテストプログラム30を作成するため
に用意されるものであり、この必要とされるテストプロ
グラム30を、マニュアルに従って記述される属性文法
記述lOから自動作成するよう処理することになる。
理装置20は、言語処理プログラム40の機能の検証の
ために必要となるテストプログラム30を作成するため
に用意されるものであり、この必要とされるテストプロ
グラム30を、マニュアルに従って記述される属性文法
記述lOから自動作成するよう処理することになる。
第3図に、「代入文」に関しての属性文法記述10の一
実施例を示すとともに、第4図に、本発明のテストプロ
グラム作成処理装置20に従って、この「代入文」に関
しての属性文法記述IOから自動作成されることになる
テストプログラム30の一実施例を示す。この第3図の
属性文法記述10は、様々な形式の「代入文」を複数個
作成して、言語処理プログラム40がそれらの「代入文
」についての計算処理を行ったときに、正しい数値を算
出するのか否かをテストするためにプログラマ等により
作成されることになる。この属性文法記述IOと第6図
のそれとを比較すれば明らかなように、本発明の属性文
法記述10は、人間にとって極めて分かり易い記述形式
となっている。
実施例を示すとともに、第4図に、本発明のテストプロ
グラム作成処理装置20に従って、この「代入文」に関
しての属性文法記述IOから自動作成されることになる
テストプログラム30の一実施例を示す。この第3図の
属性文法記述10は、様々な形式の「代入文」を複数個
作成して、言語処理プログラム40がそれらの「代入文
」についての計算処理を行ったときに、正しい数値を算
出するのか否かをテストするためにプログラマ等により
作成されることになる。この属性文法記述IOと第6図
のそれとを比較すれば明らかなように、本発明の属性文
法記述10は、人間にとって極めて分かり易い記述形式
となっている。
この第3図の属性文法記述10から作成されることにな
るテストプログラム30は、「代人文」の−態様である
乱数文(「代人文」の生成規則に対しての乱数的な選択
処理により生成される)と、CHECKプログラム44
を呼び出すための確認文との対を基本単位にして、この
基本単位を複数つなげることで構成される。具体的に説
明するならば、第4図中の AAE=−299*44B CALL CHECK(1,AAE、−133952
)がテストプログラム30の基本単位をなすものである
。この基本単位の意味するところは、AAE=−299
*44B という乱数文を言語処理プログラム40で処理させると
、変数名のrAAEjのところに、−133952(=
−2991448)の値がセットされていれば正しい処
理がなされたことになるので、この変数名と値とを引数
にして、CHECKプログラム44の呼び出しを行うC
ALL CHECK(1,AAE、−133952)
というin認文を、この乱数文と対にして記述するので
ある。ここで、確認文中の引数の1゛°は碓認文の通番
を表している。
るテストプログラム30は、「代人文」の−態様である
乱数文(「代人文」の生成規則に対しての乱数的な選択
処理により生成される)と、CHECKプログラム44
を呼び出すための確認文との対を基本単位にして、この
基本単位を複数つなげることで構成される。具体的に説
明するならば、第4図中の AAE=−299*44B CALL CHECK(1,AAE、−133952
)がテストプログラム30の基本単位をなすものである
。この基本単位の意味するところは、AAE=−299
*44B という乱数文を言語処理プログラム40で処理させると
、変数名のrAAEjのところに、−133952(=
−2991448)の値がセットされていれば正しい処
理がなされたことになるので、この変数名と値とを引数
にして、CHECKプログラム44の呼び出しを行うC
ALL CHECK(1,AAE、−133952)
というin認文を、この乱数文と対にして記述するので
ある。ここで、確認文中の引数の1゛°は碓認文の通番
を表している。
従来では、このようなテストプログラム30は、スヘて
人手によって作成されていた。これに対して、本発明で
は、第3図に示すような極めて分かり易い属性文法記述
10から、このような人手により作成されていたテスト
プログラム30を自動作成するよう処理することになる
。この属性文法記述10が特定の言語(例えばLISP
)でな(て、このような誰にでも分かる記述で構成でき
るようになったのは、第1図でも説明したように、リー
ダ21を備えるようにしたからである。
人手によって作成されていた。これに対して、本発明で
は、第3図に示すような極めて分かり易い属性文法記述
10から、このような人手により作成されていたテスト
プログラム30を自動作成するよう処理することになる
。この属性文法記述10が特定の言語(例えばLISP
)でな(て、このような誰にでも分かる記述で構成でき
るようになったのは、第1図でも説明したように、リー
ダ21を備えるようにしたからである。
次に、第3図の属性文法記述10を例にとりながら、本
発明のテストプログラム30の作成処理について詳細に
説°明する。
発明のテストプログラム30の作成処理について詳細に
説°明する。
リーダ21(第1図で説明したものである)は、第3図
の属性文法記述10を読み取ると、この読み取った属性
文法記述10を翻訳処理器22(第1図で説明したもの
である)が処理し易い形式である内部形式に変換する。
の属性文法記述10を読み取ると、この読み取った属性
文法記述10を翻訳処理器22(第1図で説明したもの
である)が処理し易い形式である内部形式に変換する。
このようにして、内部形式の形で属性文法記述10を受
は取ると、翻訳処理器22は、内部形式の記号が意味す
るところの内容に従って、以下のような処理を実行する
ことで、第4図のテストプログラム30を自動作成して
いくことになる。
は取ると、翻訳処理器22は、内部形式の記号が意味す
るところの内容に従って、以下のような処理を実行する
ことで、第4図のテストプログラム30を自動作成して
いくことになる。
すなわち、出発記号の「¥文法記述」に続いて記述され
る (設定 項番値 1) に従って、システム変数表の1項番値」という変数名の
ところに、“1°°をセットする。この設定処理は、翻
訳処理器22が「設定」という記号を解釈したときに、
意味記述解釈器27(第1図で説明したものである)が
管理する「設定」という名の関数に起動をかけることで
実行されることになる。この意味記述解釈器27は、具
体的には、例えばLISPシステムで構成されて、定義
されている関数の呼び出しがかかると、その関数の処理
を実行して処理値を翻訳処理器22に返すよう処理する
ことになる。また、「項番値」というシステム変数は、
具体的には、作成されるテストプログラム30中の確認
文の通番を管理する。
る (設定 項番値 1) に従って、システム変数表の1項番値」という変数名の
ところに、“1°°をセットする。この設定処理は、翻
訳処理器22が「設定」という記号を解釈したときに、
意味記述解釈器27(第1図で説明したものである)が
管理する「設定」という名の関数に起動をかけることで
実行されることになる。この意味記述解釈器27は、具
体的には、例えばLISPシステムで構成されて、定義
されている関数の呼び出しがかかると、その関数の処理
を実行して処理値を翻訳処理器22に返すよう処理する
ことになる。また、「項番値」というシステム変数は、
具体的には、作成されるテストプログラム30中の確認
文の通番を管理する。
翻訳処理器22は、続いて記述される
く″aNL″代人文 5 10> &により、所定の
数(この例では、5がら10までの間の乱数値で指定さ
れる)の「代入文」についてのテストプログラム30を
作成する必要があることを知る。ここで、「”aNL’
Jは、作成する代人文のテキストを1つずつ改行して
いけという指定を表す記号であり、また、「&」は、文
末を意味する記号である。この「代入文」は「#」で区
切られていないので、そのままテキストとできない非終
端記号である。このような非終端記号は、別の位置にど
のようにテキストに展開していけばよいかが記述されて
いるので、翻訳処理器22は、その展開規則(生成規則
)に従って展開処理を実行する。なお、r′」で区切ら
れた終端記号については、展開処理が実行されることは
ない。
数(この例では、5がら10までの間の乱数値で指定さ
れる)の「代入文」についてのテストプログラム30を
作成する必要があることを知る。ここで、「”aNL’
Jは、作成する代人文のテキストを1つずつ改行して
いけという指定を表す記号であり、また、「&」は、文
末を意味する記号である。この「代入文」は「#」で区
切られていないので、そのままテキストとできない非終
端記号である。このような非終端記号は、別の位置にど
のようにテキストに展開していけばよいかが記述されて
いるので、翻訳処理器22は、その展開規則(生成規則
)に従って展開処理を実行する。なお、r′」で区切ら
れた終端記号については、展開処理が実行されることは
ない。
この例では、続いて、
変数 = 式
と「代人文」の定義がされており、更に、この定義中の
「変数」がいかなるものであるかが、図中の0部分で展
開されており、この定義中の「式」がいかなるものであ
るかが、図中の■部分で展開されている。この■及び■
部分の「1」の記号は、いずれか1つのものを乱数に従
って選択することを表している。これから、翻訳処理器
22は、乱数処理に従って「代入文」の「変数」として
、例えばrAAEJの変数名を選択し、「代人文」の「
式」として、例えばr数1本数2」の式を選択する。こ
のとき実行する乱数による選択対象の選択は、具体的に
はJ選択対象の前に記述されている数値(この例では、
すべて“100”である)の総和の内にある数値を乱数
に従って発生させて、その発生した数値がどのゾーンの
選択対象に属しているのかで行うことになる。また、[
数1本数2」のように、更に展開されるものについては
、その展開規則に従って展開を続行していく。この例で
は、「数1本数2」は、更に0部分で展開されているの
で、その展開に従って、例えば、「数値l」として’−
299”を選択し、「数値2」として“448°゛を選
択することになる。
「変数」がいかなるものであるかが、図中の0部分で展
開されており、この定義中の「式」がいかなるものであ
るかが、図中の■部分で展開されている。この■及び■
部分の「1」の記号は、いずれか1つのものを乱数に従
って選択することを表している。これから、翻訳処理器
22は、乱数処理に従って「代入文」の「変数」として
、例えばrAAEJの変数名を選択し、「代人文」の「
式」として、例えばr数1本数2」の式を選択する。こ
のとき実行する乱数による選択対象の選択は、具体的に
はJ選択対象の前に記述されている数値(この例では、
すべて“100”である)の総和の内にある数値を乱数
に従って発生させて、その発生した数値がどのゾーンの
選択対象に属しているのかで行うことになる。また、[
数1本数2」のように、更に展開されるものについては
、その展開規則に従って展開を続行していく。この例で
は、「数1本数2」は、更に0部分で展開されているの
で、その展開に従って、例えば、「数値l」として’−
299”を選択し、「数値2」として“448°゛を選
択することになる。
このようにして、第4図のテストプログラム30の先頭
に位置する代入文の一態様であるAAE=−299*4
4B というテキストが作成されることになる。なお、■部分
の展開規則中に記述されている (NEQ*GNTERMV*O) は、除算処理の分母の値が“0゛°でないことが条件に
なることを表している。
に位置する代入文の一態様であるAAE=−299*4
4B というテキストが作成されることになる。なお、■部分
の展開規則中に記述されている (NEQ*GNTERMV*O) は、除算処理の分母の値が“0゛°でないことが条件に
なることを表している。
「代入文Jの定義に続いて記述される
r代入 変数 (値 式)1
により、翻訳処理器22は、意味記述解釈器27が管理
する「代入」という名の関数に起動をかけることで、テ
スト対象言語用の変数表の「変数」のところに、1式」
の値を設定するよう処理する。
する「代入」という名の関数に起動をかけることで、テ
スト対象言語用の変数表の「変数」のところに、1式」
の値を設定するよう処理する。
いまの場合、「変数」としてはrAAE、が選択されて
いるので、このrAAEJという変数名のところに1式
」の値を設定する。この「弐」の値は、具体的には、■
部分の選択規則の「数1本数2」の後に続いて記述され
ている r値設定(*(値 数1)(値 数2))Jで算出され
る。この算出処理も、意味記述解釈器27により実行さ
れて、いまの場合では、「数値1」の値である”’−2
99”と、「数値2」の値である448°゛との乗算値
である“−1339521が、この「式」の値として算
出される。これから、rAAEjという変数名のところ
に、“−133952”が設定されることになる。
いるので、このrAAEJという変数名のところに1式
」の値を設定する。この「弐」の値は、具体的には、■
部分の選択規則の「数1本数2」の後に続いて記述され
ている r値設定(*(値 数1)(値 数2))Jで算出され
る。この算出処理も、意味記述解釈器27により実行さ
れて、いまの場合では、「数値1」の値である”’−2
99”と、「数値2」の値である448°゛との乗算値
である“−1339521が、この「式」の値として算
出される。これから、rAAEjという変数名のところ
に、“−133952”が設定されることになる。
「代入文」の定義の最後では、「確認」を展開すること
が要求されている。この「ra認」がいかなるものであ
るかは、図中の0部分で展開されている。これから、翻
訳処理器22は、この0部分の展開規則に従って、「項
番」の値の“1”と、「変数」のrAAEjと、「変数
値」の“−133952″とを且数として、CHECK
プログラム44の呼び出しを行う CALL CHECK(1,AAE、−133952
)という確認文の展開を実行する。このようにして、A
AE=−299*44B CALL CHECK(1,AAE、−133952
)という内部形式テストプログラムの作成が終了するこ
とになる。そして、最後に、0部分の更新規則に従って
、意味記述解釈器27に起動をかけて、システム変数表
の「項番値」の変数名の値を1つ歩進させる処理を1テ
うよう処理する。
が要求されている。この「ra認」がいかなるものであ
るかは、図中の0部分で展開されている。これから、翻
訳処理器22は、この0部分の展開規則に従って、「項
番」の値の“1”と、「変数」のrAAEjと、「変数
値」の“−133952″とを且数として、CHECK
プログラム44の呼び出しを行う CALL CHECK(1,AAE、−133952
)という確認文の展開を実行する。このようにして、A
AE=−299*44B CALL CHECK(1,AAE、−133952
)という内部形式テストプログラムの作成が終了するこ
とになる。そして、最後に、0部分の更新規則に従って
、意味記述解釈器27に起動をかけて、システム変数表
の「項番値」の変数名の値を1つ歩進させる処理を1テ
うよう処理する。
このようにして、翻訳処理器22は、以下同様の処理を
繰り返していくことで、第4図に示したような内部形式
テストプログラムの作成を実行することになる。すなわ
ち、乱数に従って、代入文の様々な態様を実現して、内
部形式テストプログラムの自動作成を実行するのである
。そして、属性文法記述10に対応する内部形式テスト
プログラムの作成が終了すると、ライタ28(第1図で
説明したものである)は、この作成した内部形式テスト
プログラムを実行可能なテストプログラムとして出力し
てテストプログラム30の作成処理を終了する。
繰り返していくことで、第4図に示したような内部形式
テストプログラムの作成を実行することになる。すなわ
ち、乱数に従って、代入文の様々な態様を実現して、内
部形式テストプログラムの自動作成を実行するのである
。そして、属性文法記述10に対応する内部形式テスト
プログラムの作成が終了すると、ライタ28(第1図で
説明したものである)は、この作成した内部形式テスト
プログラムを実行可能なテストプログラムとして出力し
てテストプログラム30の作成処理を終了する。
以上の具体例で説明したように、本発明では、翻訳処理
器22は、属性文法記述10中の非終端記号については
、展開規則(主に、終端記号と非終端記号と意味記述と
からなる)に従って再帰的に内部形式非終端記号に翻訳
していくとともに、属性文法記述10中の終端記号につ
いては、殆ど翻訳せずにそのままのものとして解釈し、
属性文法記述10中の意味記述(非終端記号を展開して
いくための関数の起動指示や、非終端記号を扱う関数の
起動指示等)については、意味記述解釈器27に起動を
依鯨してい(よう処理する。そして、内部形式の非終端
記号を種々の属性からなる構造体変数として扱うよう処
理することで、この展開処理を実現することになる。こ
の構造体変数として扱われる属性としては、例えば、展
開結果(展開規則によりどのように展開したかを内部形
式終端記号、内部形式非終端記号の順序集合体として保
持)、値(式の計算結果や変数名など非終端記号を展開
した結果の意味的値を保持)、変数表(テスト対象言語
用の変数情報やテストプログラム作成上必要となる変数
情報を保持)等がある。
器22は、属性文法記述10中の非終端記号については
、展開規則(主に、終端記号と非終端記号と意味記述と
からなる)に従って再帰的に内部形式非終端記号に翻訳
していくとともに、属性文法記述10中の終端記号につ
いては、殆ど翻訳せずにそのままのものとして解釈し、
属性文法記述10中の意味記述(非終端記号を展開して
いくための関数の起動指示や、非終端記号を扱う関数の
起動指示等)については、意味記述解釈器27に起動を
依鯨してい(よう処理する。そして、内部形式の非終端
記号を種々の属性からなる構造体変数として扱うよう処
理することで、この展開処理を実現することになる。こ
の構造体変数として扱われる属性としては、例えば、展
開結果(展開規則によりどのように展開したかを内部形
式終端記号、内部形式非終端記号の順序集合体として保
持)、値(式の計算結果や変数名など非終端記号を展開
した結果の意味的値を保持)、変数表(テスト対象言語
用の変数情報やテストプログラム作成上必要となる変数
情報を保持)等がある。
このように、本発明によれば、直観的に分かり昌い属性
文法記述から、応用範囲の広い言語処理プログラム用の
テストプログラムが効率的に自動作成できるようになる
。しかも、機能追加は主に意味記述解釈器27に対して
行えばよいので、柔軟性にも富むことになる。そして、
リーダ21が付加されていることから、テストプログラ
ムの生成規則の機能拡張や変更に対しても柔軟に対応で
きるとともに、ライタ28が付加されていることから、
テストプログラムの作成順番と出力順番を変更したりす
るといったような加工を施すこともできることになる。
文法記述から、応用範囲の広い言語処理プログラム用の
テストプログラムが効率的に自動作成できるようになる
。しかも、機能追加は主に意味記述解釈器27に対して
行えばよいので、柔軟性にも富むことになる。そして、
リーダ21が付加されていることから、テストプログラ
ムの生成規則の機能拡張や変更に対しても柔軟に対応で
きるとともに、ライタ28が付加されていることから、
テストプログラムの作成順番と出力順番を変更したりす
るといったような加工を施すこともできることになる。
これから、本発明を用いることで、テスト効率が著しく
高められるとともに、テストの質も著しく高められるこ
とになる。
高められるとともに、テストの質も著しく高められるこ
とになる。
第1図は本発明の原理構成図、
第2図は本発明により自動作成されるテストプログラム
の使用方法を説明する説明図、第3図は属性文法記述の
一実施例図、 第4図は第3図の属性文法記述から作成されるテストプ
ログラムの説明図、 第5図及び第6図は先に出願の発明の説明図であるJ 図中、10は属性文法記述、11は生成規則、14は意
味記述、20はテストプログラム作成処理装置、21は
リーダ、22は翻訳処理器、23は展開処理部、24は
乱数発生部、25は構造体変数管理部、26は意味記述
処理依頼部、27は意味記述解釈器、2Bはライタ、3
0はテストプログラムである。
の使用方法を説明する説明図、第3図は属性文法記述の
一実施例図、 第4図は第3図の属性文法記述から作成されるテストプ
ログラムの説明図、 第5図及び第6図は先に出願の発明の説明図であるJ 図中、10は属性文法記述、11は生成規則、14は意
味記述、20はテストプログラム作成処理装置、21は
リーダ、22は翻訳処理器、23は展開処理部、24は
乱数発生部、25は構造体変数管理部、26は意味記述
処理依頼部、27は意味記述解釈器、2Bはライタ、3
0はテストプログラムである。
Claims (1)
- 【特許請求の範囲】 生成規則と意味記述とからなる属性文法記述に従って記
述された言語処理プログラムの処理対象文に対して、生
成規則に関しての乱数的な選択処理を施すことで該処理
対象文の一態様をなす乱数文を生成するとともに、該乱
数文の実行結果の確認を行うテストルーチンの呼び出し
のための確認文を、該属性文法記述中に該処理対象文と
対応付けて記述することで該乱数文と対にして生成して
、言語処理プログラム用のテストプログラムとなすテス
トプログラム作成処理装置であって、 上記属性文法記述を内部形式に変換するリーダ(21)
と、 該リーダ(21)により変換された内部形式の内の非終
端記号については、生成規則に従って再帰的に展開を実
行して対応する内部形式テストプログラムに翻訳し、か
つこの展開にあたって必要とされる非終端記号の種々の
属性を構造体変数として管理するとともに、終端記号に
ついてはそのまま内部形式テストプログラムとして扱う
よう処理する翻訳処理器(22)と、 該翻訳処理器(22)による内部形式テストプログラム
の作成にあたって必要となる意味記述の実行を、該翻訳
処理器(22)からの起動依頼に応じて実行する意味記
述解釈器(27)と、 上記翻訳処理器(22)により作成された内部形式テス
トプログラムを実行可能なテストプログラムとして出力
するライタ(28)とを備えることを、特徴とするテス
トプログラム作成処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1046212A JPH02224143A (ja) | 1989-02-27 | 1989-02-27 | テストプログラム作成処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP1046212A JPH02224143A (ja) | 1989-02-27 | 1989-02-27 | テストプログラム作成処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH02224143A true JPH02224143A (ja) | 1990-09-06 |
Family
ID=12740792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP1046212A Pending JPH02224143A (ja) | 1989-02-27 | 1989-02-27 | テストプログラム作成処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH02224143A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6924366B2 (en) | 1995-06-07 | 2005-08-02 | Bioteknologisk Institut | Recombinant hexose oxidase, a method of producing same and use of such enzyme |
US7745599B1 (en) | 1995-06-07 | 2010-06-29 | Danisco A/S | Hexose oxidase-encoding DNAs and methods of use thereof |
US8178090B2 (en) | 1995-06-07 | 2012-05-15 | Danisco A/S | Recombinant hexose oxidase |
-
1989
- 1989-02-27 JP JP1046212A patent/JPH02224143A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6924366B2 (en) | 1995-06-07 | 2005-08-02 | Bioteknologisk Institut | Recombinant hexose oxidase, a method of producing same and use of such enzyme |
US7544795B2 (en) | 1995-06-07 | 2009-06-09 | Danisco A/S | Recombinant hexose oxidase, a method of producing same and use of such enzyme |
US7727572B2 (en) | 1995-06-07 | 2010-06-01 | Danisco A/S | Recombinant hexose oxidase, a method of producing same and use of such enzyme |
US7745599B1 (en) | 1995-06-07 | 2010-06-29 | Danisco A/S | Hexose oxidase-encoding DNAs and methods of use thereof |
US8178090B2 (en) | 1995-06-07 | 2012-05-15 | Danisco A/S | Recombinant hexose oxidase |
US8338153B2 (en) | 1995-06-07 | 2012-12-25 | Dupont Nutrition Biosciences Aps | Recombinant hexose oxidase, a method of producing same and use of such enzyme |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5276880A (en) | Method for parsing and representing multi-versioned computer programs, for simultaneous and synchronous processing of the plural parses | |
Sánchez-Cuadrado et al. | Bottom-up meta-modelling: An interactive approach | |
US6877155B1 (en) | System and method for generating target language code utilizing an object oriented code generator | |
KR100314262B1 (ko) | 그래픽언어기술프로세스내다수도구사용대화식컴퓨터프로그램개발방법및그장치 | |
US5920717A (en) | Method and apparatus for automated program-generation | |
US6901579B1 (en) | Generation of source code from classes and maintaining the comment that indicates the role of the class in the generated source code | |
Cabral et al. | Formal specification generation from requirement documents | |
US20040158820A1 (en) | System for generating an application framework and components | |
Dick et al. | Computer aided transformation of Z into Prolog | |
WO2004102380A2 (en) | Method and system for storing pending changes to data | |
JP2004348737A (ja) | コマンド用サポートファイルの生成方法および生成システム | |
JPH02224143A (ja) | テストプログラム作成処理装置 | |
KR20090011974A (ko) | 컴파일 대상 파일 추출 방법 | |
Oliveira et al. | A tactic language for refinement of state-rich concurrent specifications | |
US5628012A (en) | Method and apparatus for querying a database containing disjunctive information | |
JPH0685150B2 (ja) | コンピユータ・プログラム変換装置および方法 | |
Gapeyev et al. | Statically typed document transformation: An Xtatic experience | |
Henry | A technique for hiding proprietary details while providing sufficient information for researchers; or, do you recognize this well-known algorithm? | |
Masiero et al. | Development and instantiation of a generic application generator | |
JPH02224144A (ja) | テストプログラム作成処理装置 | |
JPH02224148A (ja) | テストプログラム作成処理装置 | |
JPH02224146A (ja) | テストプログラム作成処理装置 | |
Mishchenko et al. | New functionalities of the system for processing natural language specifications and its operating environment | |
JPH0728630A (ja) | プログラム生成装置 | |
Tsai et al. | Knowledge-based system for rapid prototyping |