JPWO2007072652A1 - プログラム処理パターン自動解析処理装置 - Google Patents

プログラム処理パターン自動解析処理装置 Download PDF

Info

Publication number
JPWO2007072652A1
JPWO2007072652A1 JP2007526095A JP2007526095A JPWO2007072652A1 JP WO2007072652 A1 JPWO2007072652 A1 JP WO2007072652A1 JP 2007526095 A JP2007526095 A JP 2007526095A JP 2007526095 A JP2007526095 A JP 2007526095A JP WO2007072652 A1 JPWO2007072652 A1 JP WO2007072652A1
Authority
JP
Japan
Prior art keywords
processing
program
pattern
branch
processing 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
JP2007526095A
Other languages
English (en)
Inventor
俊一 新原
俊一 新原
Original Assignee
俊一 新原
俊一 新原
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 俊一 新原, 俊一 新原 filed Critical 俊一 新原
Publication of JPWO2007072652A1 publication Critical patent/JPWO2007072652A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

プログラム処理パターン自動解析処理装置10は、入力されたソースプログラムPR1に含まれる入り組んだ分岐節をそれぞれ独立した分岐節として捉え、当該独立した分岐節の処理手順を設定することによって分岐条件を解析し、分岐条件が真の処理及び偽の処理についてのそれぞれの処理手順を解析した解析結果を示す管理テーブルTB1を作成する分岐条件解析処理部23を備え、ソースプログラムコードに記述された処理手順を自動的に解析する。これにより、プログラム処理パターン自動解析処理装置10は、プログラム開発及びシステム開発において、人為的ミスの低減や作業の効率化を図るとともに、定量的な品質の計測手段を提供することにより、プログラムやシステムの品質の向上化を支援することができる。

Description

本発明は、ソースプログラムコードに記述された処理手順を自動的に解析するプログラム処理パターン自動解析処理装置及びプログラム処理パターン自動解析処理方法、並びにプログラム処理パターン自動解析処理プログラムに関し、特に、分岐処理を含むソースプログラムコードに記述された分岐条件別の処理手順(以下、処理パターンという。)を自動的に解析するプログラム処理パターン自動解析処理装置及びプログラム処理パターン自動解析処理方法、並びにプログラム処理パターン自動解析処理プログラムに関する。
従来から、プログラム開発は、a)プログラム設計書に基づくソースプログラムの作成、b)単体テスト、c)複数の連結して稼働するプログラムを組み合わせて行う組み合わせテストや総合テスト等のテストの順に行われている。
a)ソースプログラムの作成においては、プログラマがプログラム設計書に基づいて、機能ベースの処理パターンを記述したドキュメントを手書きで作成し、機能ベースの処理パターン通りにソースプログラムの処理手順が作成されていることを確認する作業を行った後、当該ソースプログラムをコンピュータによって実行可能な形式への変換を行っている。
また、b)単体テストにおいては、処理パターン毎に入力データと出力結果とを対比することができるテスト結果の検証用ドキュメントをプログラマが手書きで作成し、プログラムが稼働する単体テスト用のコンピュータ環境を構築した上で、検証用ドキュメントにしたがったテストデータの作成を行う。そして、単体テストにおいては、コンピュータによってプログラムを実行させ、実行結果と検証用ドキュメントの内容とを照合することにより、プログラムの品質を確認している。
なお、単体テストにおいては、本来全てのプログラムステップベースの処理パターンに対して検証し、カバレッジ(網羅率)情報として品質の尺度としなければならないが、その作業は膨大であるため、簡易的に、ソースプログラムで使用されている命令の総数を分母とし実行された命令の総数を分子とするカバレッジ情報や、ソースプログラムで使用されている分岐命令の総数を分母とし実行された分岐命令の総数を分子とするカバレッジ情報が使用されている。しかしながら、これらのカバレッジ情報は、いずれもプログラムステップベースの処理パターンとは関連性が薄いため、目安として代用されているにすぎないのが現状である。
さらに、c)組み合わせテストや総合テスト等のテストにおいては、基本設計書やシステム設計書に基づいて、機能ベースの処理パターンのドキュメントをシステムエンジニア(以下、SEという。)が手書きで作成するとともに、複数の連結して稼働するプログラム全体の機能ベースの処理パターンに基づいた入力データと出力結果とを対比することができるテスト結果の検証用ドキュメントを作成し、プログラムが稼働するテスト用のコンピュータ環境を構築した上で、検証用ドキュメントにしたがったテストデータの作成を行う。そして、テストにおいては、コンピュータによってプログラムを実行させ、実行結果と検証用ドキュメントの内容とを照合することにより、システムの品質を確認している。
また、テストにおいては、本来全ての連結されたプログラムステップベースの処理パターンに対して検証し、カバレッジ情報として品質の尺度としなければならないが、その作業は膨大であるため、簡易的に、機能ベースの処理パターンがカバレッジ情報として多く使用されている。しかしながら、これは、連結されたプログラムステップベースの処理パターンとは関連性が薄いため、テスト実行時にバグの収束状況に合わせた調整、例えばバグが収束していなければ機能を詳細に落として機能ベースの処理パターン数を増加させることによってテスト数を増やして品質を上げるといった調整をする等、目安として代用されているのが現状である。
なお、このようなプログラム開発を支援するための技術としては、例えば特許文献1等が提案されている。
特開平5−20038号公報
具体的には、この特許文献1には、複数の仕様書エディタ等の開発支援ツールを有するプログラム開発支援システムが開示されている。特に、このプログラム開発支援システムは、予め登録したコンピュータプログラム開発手順にしたがって、開発手順に対応する開発支援ツールを連続的に起動してプログラム開発を誘導するものである。これにより、このプログラム開発システムにおいては、プログラム開発の手順の標準化を図り、成果物の均一化及び均質化を図ることができ、プログラムの品質や生産性を向上させることができるとしている。
ところで、上述したa)ソースプログラムの作成においては、プログラマは、プログラム設計書に基づいて機能ベースの処理パターンのドキュメント(例えばフローチャート)を作成し、ソースプログラムの処理手順を目視で確認しているが、複雑なプログラムコードを処理パターン別に目視で確認することは困難であり、ミスが発生しやすいという問題があった。
また、上述したb)単体テストにおいては、プログラマが機能ベースの処理パターン毎に入力データと期待される実行結果とを対比した検証用ドキュメントを手書きで作成しているが、ドキュメント作成に多大な労力がかかり、また、プログラムが複雑になるとミスが発生しやすいという問題があった。さらに、単体テストにおいては、本来全てのプログラムステップベースの処理パターンに対して検証し、カバレッジ情報として品質の尺度としなければならないが、その作業は膨大であるため、上述した簡易的な方法がとられている。したがって、単体テストにおいては、プログラムの品質を定量的に計測することができないという問題があった。
さらに、上述したc)テストにおいては、本来全ての連結されたプログラムステップベースの処理パターンに対して検証し、カバレッジ情報として品質の尺度としなければならないが、その作業は膨大であるため、上述した簡易的な方法がとられているため、システムの品質を定量的に計測することができないという問題があった。
このように、システム開発は、プログラマやSEの手作業に起因する人為的なミスを誘発することがあった。また、プログラムやシステムの品質を正確に表す定量的な計測手段を有しないため、システムが常に不安定であり、突然予期しない大きな障害が発生したり、社会的重大事故を招来したりするケースもあった。
本発明は、このような実情に鑑みてなされたものであり、ソースプログラムのプログラムステップベースの処理パターンを自動的に解析し、本来のカバレッジ情報の分母となる処理パターンの総数を提供し、さらに、プログラム開発支援ツールと連携して当該カバレッジ情報の分子となる実行された処理パターンの総数を提供することにより、プログラムの品質を正確に表す定量的な計測手段を提供し、あわせて人為的なミスを最小限に抑え、ドキュメント作成にかかる労力を大幅に低減することができるプログラム処理パターン自動解析処理装置及びプログラム処理パターン自動解析処理方法、並びにプログラム処理パターン自動解析処理プログラムを提供することを目的とする。また、本発明は、テストにおける連結したプログラム群のプログラムステップベースの処理パターンを自動的に解析し、本来のカバレッジ情報の分母となる連結処理パターンの総数を提供し、さらに、プログラム開発支援ツールと連携して当該カバレッジ情報の分子となる実行された連結処理パターンの総数を提供することにより、システムの品質を正確に表す定量的な計測手段を提供し、あわせて人為的なミスを最小限に抑え、ドキュメント作成にかかる労力を大幅に低減することができるプログラム処理パターン自動解析処理装置及びプログラム処理パターン自動解析処理方法、並びにプログラム処理パターン自動解析処理プログラムを提供することを目的とする。
上述した目的を達成する本発明にかかるプログラム処理パターン自動解析処理装置は、ソースプログラムコードに記述された処理手順を自動的に解析するプログラム処理パターン自動解析処理装置であって、入力されたソースプログラムに含まれる入り組んだ分岐節をそれぞれ独立した分岐節として捉え、当該独立した分岐節の処理手順を設定することによって分岐条件を解析し、分岐条件が真の処理及び偽の処理についてのそれぞれの処理手順を解析した解析結果を示す管理テーブルを作成する分岐条件解析処理手段と、上記分岐条件解析処理手段によって作成された上記管理テーブルを記憶する管理テーブル記憶手段とを備えることを特徴としている。
このような本発明にかかるプログラム処理パターン自動解析処理装置においては、ソースプログラムに含まれる入り組んだ分岐節をそれぞれ独立した分岐節として捉え、当該独立した分岐節の処理手順を設定することによって分岐条件を解析し、分岐条件が真の処理及び偽の処理についてのそれぞれの処理手順を解析した解析結果を管理テーブルとして作成することから、複雑な分岐節が含まれているソースプログラムであっても容易に且つ確実に解析を行うことができる。
また、本発明にかかるプログラム処理パターン自動解析処理装置は、上記管理テーブルの先頭行から分岐条件が真の処理についての処理手順を抽出してこれを1番目の処理パターンとし、上記1番目の処理パターンの最後の行から遡り、最初に現れる分岐条件が偽の処理以降について真の処理にしたがって処理手順を抽出してこれを2番目の処理パターンとするような処理を繰り返し、全ての処理パターンを抽出する処理パターン別処理手順解析処置手段と、上記処理パターン別処理手順解析処理手段による解析によって作成された処理パターン別処理手順テーブルを記憶する処理パターン別処理手順テーブル記憶手段とを備える。上記処理パターン別処理手順解析処理手段は、全ての分岐条件が真の処理及び偽の処理に対してこのような処理を繰り返し行うことにより、全ての処理パターンを抽出し、上記処理パターン別処理手順テーブルを作成することができる。
さらに、本発明にかかるプログラム処理パターン自動解析処理装置は、上記処理パターン別処理手順テーブルを編集し、処理パターン別に処理手順を並べたドキュメントを作成する、及び/又は、コンピュータ環境にて実行されたプログラムのトレース情報をプログラム開発支援ツールから受け取り、上記処理パターン別処理手順テーブルとの照合を行い、プログラムステップベースの処理パターン別のカバレッジ情報を算出する処理パターン別処理手順テーブル編集処理手段を備える。
これにより、本発明にかかるプログラム処理パターン自動解析処理装置においては、ソースプログラムの作成及び単体テストの際の人為的なミスを最小限に抑え、ドキュメント作成にかかる労力を大幅に低減することができるとともに、プログラムの品質を大幅に向上させることができる。
さらにまた、本発明にかかるプログラム処理パターン自動解析処理装置は、ソースプログラム単位で作成された複数の上記処理パターン別処理手順テーブルに基づいて、処理パターン別の連結処理手順を解析し、複数の上記処理パターン別処理手順テーブルのパターンを連結した連結処理パターンを示す処理パターン別連結処理手順テーブルを作成する処理パターン別連結処理手順解析処理手段を備える。そして、本発明にかかるプログラム処理パターン自動解析処理装置は、上記処理パターン別連結処理手順テーブルを編集し、連結処理パターン別に処理手順を並べたドキュメントを作成する、及び/又は、コンピュータ環境にて実行されたプログラムのトレース情報をプログラム開発支援ツールから受け取り、上記処理パターン別連結処理手順テーブルとの照合を行い、プログラムステップベースの連結処理パターン別のカバレッジ情報を算出する処理パターン別連結処理手順テーブル編集処理手段を備える。
これにより、本発明にかかるプログラム処理パターン自動解析処理装置においては、テストの際にSEが手書きで作成する各種ドキュメントに正確且つ有用な情報を提供することができ、人為的なミスを低減するとともに、システムの品質を大幅に向上させることができる。
また、上述した目的を達成する本発明にかかるプログラム処理パターン自動解析処理方法は、ソースプログラムコードに記述された処理手順を自動的に解析するプログラム処理パターン自動解析処理方法であって、コンピュータが、入力されたソースプログラムに含まれる入り組んだ分岐節をそれぞれ独立した分岐節として捉え、当該独立した分岐節の処理手順を設定することによって分岐条件を解析し、分岐条件が真の処理及び偽の処理についてのそれぞれの処理手順を解析した解析結果を示す管理テーブルを作成する分岐条件解析処理工程と、上記コンピュータが、上記分岐条件解析処理工程にて作成された上記管理テーブルを所定の記憶手段に記憶させる管理テーブル記憶工程とを備えることを特徴としている。
さらに、上述した目的を達成する本発明にかかるプログラム処理パターン自動解析処理プログラムは、ソースプログラムコードに記述された処理手順を自動的に解析するコンピュータ実行可能なプログラム処理パターン自動解析処理プログラムであって、上記コンピュータを、入力されたソースプログラムに含まれる入り組んだ分岐節をそれぞれ独立した分岐節として捉え、当該独立した分岐節の処理手順を設定することによって分岐条件を解析し、分岐条件が真の処理及び偽の処理についてのそれぞれの処理手順を解析した解析結果を示す管理テーブルを作成する分岐条件解析手段、及び、上記分岐条件解析手段にて作成された上記管理テーブルを所定の記憶手段に記憶させる管理テーブル記憶手段として機能させることを特徴としている。
このような本発明にかかるプログラム処理パターン自動解析処理方法及びプログラム処理パターン自動解析処理プログラムにおいては、ソースプログラムに含まれる入り組んだ分岐節をそれぞれ独立した分岐節として捉え、当該独立した分岐節の処理手順を設定することによって分岐条件を解析し、分岐条件が真の処理及び偽の処理についてのそれぞれの処理手順を解析した解析結果を管理テーブルとして作成することから、複雑な分岐節が含まれているソースプログラムであっても容易に且つ確実に解析を行うことができる。
以上のような本発明においては、プログラム及びシステムの品質を定量的に計測することが可能となるため、プログラム及びシステムの品質を大幅に向上させ、安定稼働を実現することが可能となる。また、本発明においては、プログラマやSEの手作業が軽減されることから、作業効率の大幅な向上を図ることが可能となる。
本発明の実施の形態として示すプログラム処理パターン自動解析処理装置の構成を説明するブロック図である。 同プログラム処理パターン自動解析処理装置の機能的な構成を説明するブロック図である。 同プログラム処理パターン自動解析処理装置において、ソースプログラムの処理手順を自動的に解析する際の一連の処理を説明するフローチャートである。 同プログラム処理パターン自動解析処理装置において、プログラムコード正規化処理を行う際の一連の処理を説明するフローチャートである。 分岐節の正規化形式の具体例について説明するための図である。 プログラムコード正規化処理において、読み込んだ命令文がIF文である場合における変換前のソースプログラムと変換後の正規化後ソースプログラムとの具体例について説明するための図である。 プログラムコード正規化処理において、読み込んだ命令文がIF文以外の他の条件分岐命令である場合における変換前のソースプログラムと変換後の正規化後ソースプログラムとの具体例について説明するための図である。 原文行番号対応テーブルの具体例について説明するための図である。 複雑に入り組んだ分岐節の具体例について説明するための図である。 同プログラム処理パターン自動解析処理装置において、分岐条件解析処理を行う際の一連の処理を説明するフローチャートである。 管理テーブルの具体例について説明するための図である。 管理テーブル及び処理パターン別処理手順テーブルの具体例について説明するための図である。 同プログラム処理パターン自動解析処理装置において、処理パターン別処理手順テーブル編集処理を行う際の一連の処理を説明するフローチャートである。 処理パターン別に処理手順を並べたドキュメントの具体例について説明するための図である。 単体テストの検証用ドキュメントの具体例について説明するための図である。 コンピュータ環境にて実行されたプログラムのトレース情報の具体例について説明するための図である。 カバレッジ情報の具体例について説明するための図である。 処理パターン別連結処理手順解析処理について説明するための図であり、複数の処理パターン別処理手順テーブルの各パターンを割り付ける様子を説明するための図である。 処理パターン別連結処理手順テーブルの具体例について説明するための図である。 連結処理パターン別に処理手順を並べたドキュメントの具体例について説明するための図である。
以下、本発明を適用した具体的な実施の形態について図面を参照しながら詳細に説明する。
この実施の形態は、ソースプログラムコードに記述された処理手順を自動的に解析するプログラム処理パターン自動解析処理装置である。特に、このプログラム処理パターン自動解析処理装置は、分岐処理を含むソースプログラムコードに記述された分岐条件別の処理手順(以下、処理パターンという。)を自動的に解析することができるものである。
なお、以下では、説明の便宜上、解析対象としてのソースプログラムがC言語で記述されているものとして説明する。
図1に示すように、プログラム処理パターン自動解析処理装置10は、プログラマやシステムエンジニア(以下、SEという。)等の解析処理を行うユーザによって操作されるパーソナルコンピュータやワークステーション等のコンピュータとして構成され、各部を統括的に制御するCPU(Central Processing Unit)11と、各種プログラムを含む各種情報を格納する読み取り専用のROM(Read Only Memory)12と、ワークエリアとして機能するRAM(Random Access Memory)13と、各種情報を読み出し及び/又は書き込み可能に記憶する記憶部14と、外部のネットワーク網に接続して通信を行う通信部15と、ユーザインターフェースとしての図示しない所定の操作デバイスを介した入力操作の処理及び制御を行う入力操作制御部16と、各種情報を表示する表示部17とを備える。
CPU11は、記憶部14等に格納されているプログラム処理パターン自動解析処理プログラムを含む各種プログラムを実行し、各部を統括的に制御する。
ROM12は、各種プログラムをはじめとする各種情報を格納している。このROM12に格納されている情報は、CPU11の制御のもとに読み出される。
RAM13は、CPU11が各種プログラムを実行する際のワークエリアとして機能し、CPU11の制御のもとに、処理過程で生成された各種情報を一時記憶するとともに、記憶している各種情報を読み出す。
記憶部14は、プログラム処理パターン自動解析処理プログラム及び解析対象のソースプログラムを含む各種プログラムや、各種画像データや音声データをはじめとする各種情報を記憶している。この記憶部14に記憶されている情報は、CPU11の制御のもとに読み出される。なお、この記憶部14としては、例えば、ハードディスクや不揮発性メモリ等を用いることができる。また、記憶部14には、本体に対して着脱可能とされるフレキシブルディスクやメモリカード等の記憶媒体に対して、各種情報の読み出し及び/又は書き込みを行うドライブ装置も含まれる。
通信部15は、例えば、アナログ回線、いわゆるイーサネット(登録商標)等から構成されるLAN(Local Area Network)、ISDN(Integrated Services Digital Network)、ADSL(Asymmetric Digital Subscriber Line)、若しくはFTTH(Fiber To The Home)等の各種ネットワーク回線、IEEE(Institute of Electrical and Electronic Engineers)802.11に準拠した無線LAN若しくはいわゆるブルートゥース(Bluetooth(登録商標))等の各種無線通信方式、又はいわゆるFOMA(登録商標)等のW−CDMA(Wideband-Code Division Multiple Access)方式若しくはHDR(High Data Rate)等のCDMA−2000方式といった、各種方式に基づくネットワークに接続するためのインターフェースであり、CPU11の制御のもとに、外部との通信を行う。
入力操作制御部16は、例えば、キーボード、マウス、キーパッド、赤外線リモートコントローラ、スティックキー、又はプッシュボタンといった、ユーザインターフェースとしての図示しない所定の操作デバイスを介した入力操作を受け付け、操作内容を示す制御信号をCPU11に対して供給する。
表示部17は、例えば、液晶ディスプレイ(Liquid Crystal Display;LCD)、プラズマ・ディスプレイ・パネル(Plasma Display Panel;PDP)、有機エレクトロルミネッセンス(Organic ElectroLuminescent)ディスプレイ、又はCRT(Cathode Ray Tube)といった、各種表示デバイスであり、CPU11の制御のもとに、各種画像データや、その他の各種情報を表示する。例えば、表示部17は、CPU11によってプログラム処理パターン自動解析処理プログラムが起動されると、その画面を表示する。
このような各部を備えるプログラム処理パターン自動解析処理装置10は、CPU11の制御のもとにプログラム処理パターン自動解析処理プログラムを実行することにより、機能的には図2に示すような構成とされる。すなわち、プログラム処理パターン自動解析処理装置10は、ソースプログラムPR1を入力するソースプログラム入力部21と、このソースプログラム入力部21を介して入力されたソースプログラムPR1を正規化するプログラムコード正規化処理部22と、このプログラムコード正規化処理部22によって正規化された正規化後ソースプログラムPR2に基づいて分岐条件を解析する分岐条件解析処理部23と、この分岐条件解析処理部23による解析によって作成された管理テーブルTB1に基づいて処理パターン別の処理手順を解析する処理パターン別処理手順解析処理部24と、この処理パターン別処理手順解析処理部24による解析によって作成された処理パターン別処理手順テーブルTB2を編集する処理パターン別処理手順テーブル編集処理部25と、処理パターン別処理手順テーブルTB2に基づいて処理パターン別の連結処理手順を解析する処理パターン別連結処理手順解析処理部26と、この処理パターン別連結処理手順解析処理部26による解析によって作成された処理パターン別連結処理手順テーブルTB3を編集する処理パターン別連結処理手順テーブル編集処理部27と、処理パターン別処理手順テーブル編集処理部25による編集結果及び処理パターン別連結処理手順テーブル編集処理部27による編集結果を出力する出力部28とを備える。
ソースプログラム入力部21は、記憶部14等に記憶されているソースプログラムPR1や外部から入力されたソースプログラムPR1を入力し、1行ずつプログラムコード正規化処理部22に供給する。
プログラムコード正規化処理部22は、ソースプログラム入力部21を介して入力されたソースプログラムPR1を後述する手順にしたがって正規化し、正規化後ソースプログラムPR2を作成する。この作成された正規化後ソースプログラムPR2は、RAM13や記憶部14等に読み出し可能に記憶される。
分岐条件解析処理部23は、プログラムコード正規化処理部22によって正規化された正規化後ソースプログラムPR2に含まれる分岐条件を解析し、その解析結果を示す管理テーブルTB1を作成する。この作成された管理テーブルTB1は、RAM13や記憶部14等に読み出し可能に記憶される。
処理パターン別処理手順解析処理部24は、分岐条件解析処理部23によって作成された管理テーブルTB1に基づいて処理パターン別の処理手順を解析し、その解析結果を示す処理パターン別処理手順テーブルTB2を作成する。この作成された処理パターン別処理手順テーブルTB2は、RAM13や記憶部14等に読み出し可能に記憶される。
処理パターン別処理手順テーブル編集処理部25は、処理パターン別処理手順解析処理部24によって作成された処理パターン別処理手順テーブルTB2を編集し、ソースプログラムの作成及び単体テストを支援するドキュメントやカバレッジ情報を作成する。これら作成されたドキュメントやカバレッジ情報は、出力部28に供給される。
処理パターン別連結処理手順解析処理部26は、処理パターン別処理手順テーブルTB2に基づいて処理パターン別の連結処理手順を解析し、処理パターン別連結処理手順テーブルTB3を作成する。この作成された処理パターン別連結処理手順テーブルTB3は、RAM13や記憶部14等に読み出し可能に記憶される。
処理パターン別連結処理手順テーブル編集処理部27は、処理パターン別連結処理手順解析処理部26によって作成された処理パターン別連結処理手順テーブルTB3を編集し、組み合わせテストや総合テスト等のテストを支援するドキュメントやカバレッジ情報を作成する。これら作成されたドキュメントやカバレッジ情報は、出力部28に供給される。
出力部28は、処理パターン別処理手順テーブル編集処理部25による編集結果としてのドキュメントやカバレッジ情報、及び処理パターン別連結処理手順テーブル編集処理部27による編集結果としてのドキュメントやカバレッジ情報を、表示部17に出力して表示させたり、通信部15を介して印刷装置等によって出力させたりする。
このようなプログラム処理パターン自動解析処理装置10は、CPU11の制御のもとにプログラム処理パターン自動解析処理プログラムを実行することにより、図3に示すような一連の手順にしたがって、ソースプログラムPR1の処理手順を自動的に解析する。
まず、プログラム処理パターン自動解析処理装置10は、同図に示すように、ステップS1において、ソースプログラム入力部21を介してソースプログラムPR1から1行だけ読み込み、ステップS3において、読み込んだ1行の命令文に対して、プログラムコード正規化処理部22によるプログラムコード正規化処理を施す。ここで、プログラムコード正規化処理とは、後に詳述するが、IF文、SWITCH文、FOR文、WHILE文といったソースプログラムPR1に含まれる様々な条件分岐命令を、例えばIF文形式に統一する処理である。
プログラム処理パターン自動解析処理装置10は、ソースプログラムPR1を1行ずつ読み込む度に、このようなプログラムコード正規化処理を行う。そして、プログラム処理パターン自動解析処理装置10は、ステップS2において、ソースプログラムPR1の全ての行の読み込みが終了したと判定した場合には、ステップS4において、正規化後ソースプログラムPR2に基づいて、分岐条件解析処理部23による分岐条件解析処理を行い、分岐条件が"真"の処理及び"偽"の処理についてのそれぞれの処理手順を解析した解析結果を示す管理テーブルTB1を作成する。ここで、分岐条件解析処理とは、後に詳述するが、複雑に入り組んだ分岐節をそれぞれ独立した分岐節として捉え、当該独立した分岐節の処理手順を設定する処理である。
続いて、プログラム処理パターン自動解析処理装置10は、ステップS5において、管理テーブルTB1に基づいて、処理パターン別処理手順解析処理部24による処理パターン別処理手順解析処理を行い、処理パターン別処理手順テーブルTB2を作成する。この処理パターン別処理手順解析処理についても、後に詳述するものとする。
続いて、プログラム処理パターン自動解析処理装置10は、ステップS6において、処理パターン別処理手順テーブル編集処理部25による処理パターン別処理手順テーブルTB2の編集を行い、ソースプログラムの作成及び単体テストを支援するドキュメントやカバレッジ情報を作成する。この処理パターン別処理手順テーブル編集処理についても、後に詳述するものとする。
プログラム処理パターン自動解析処理装置10は、このようにして単体テストを行うと、ステップS7において、他のソースプログラムがあるか否かを判定する。ここで、プログラム処理パターン自動解析処理装置10は、他のソースプログラムがある場合には、ステップS1からの処理を繰り返す一方で、他のソースプログラムがない場合には、ステップS8において、処理パターン別処理手順テーブルTB2に基づいて、処理パターン別連結処理手順解析処理部26による処理パターン別連結処理手順解析処理を行い、処理パターン別連結処理手順テーブルTB3を作成する。この処理パターン別連結処理手順解析処理についても、後に詳述するものとする。
そして、プログラム処理パターン自動解析処理装置10は、ステップS9において、処理パターン別連結処理手順テーブル編集処理部27による処理パターン別連結処理手順テーブルTB3の編集を行い、テストを支援するドキュメントやカバレッジ情報を作成し、テストを含む一連の処理を終了する。処理パターン別連結処理手順テーブル編集処理についても、後に詳述するものとする。
プログラム処理パターン自動解析処理装置10は、このような一連の手順にしたがって、ソースプログラムPR1の処理手順を自動的に解析することができる。
以下、上述した各処理について具体的に説明する。
まず、プログラムコード正規化処理について説明する。
プログラムコード正規化処理部22は、図4に示すような一連の手順にしたがって、プログラムコード正規化処理を行う。なお、以下では、説明の便宜上、IF文形式に統一する正規化処理を行うものとする。
すなわち、プログラムコード正規化処理部22は、図3中ステップS1及びステップS2の処理を行い、ソースプログラムPR1から1行だけ読み込むと、図4に示すように、ステップS11において、読み込んだ1行の命令文が条件分岐命令であり且つIF文であるか否かを判定する。
ここで、プログラムコード正規化処理部22は、読み込んだ命令文がIF文であると判定した場合には、ステップS12において、IF文の省略形については分岐節の正規化形式への変換を行う。このとき、プログラムコード正規化処理部22は、原文と変換後の命令文との対応を図るため、変換後の各行に変換行番号を設定する。なお、プログラムコード正規化処理部22は、原文の行が複数に分割される場合には、枝番等を付したりすることによって対応をとる。具体的には、分岐節の正規化形式とは、例えば図5に示すように、先頭の分岐条件の命令文を分岐点とし、真の処理の開始コード及び終了コードと偽の処理の開始コード及び終了コードとで明確に閉じられた形式である。したがって、プログラムコード正規化処理部22は、例えば図6左側に示すように、真及び偽の処理の開始コードや終了コードが省略された場合には、同図右側に示すように、真及び偽の処理の開始コードや終了コードを付した形式に変換し、変換後の各行に、原文の行番号との対応関係がわかるような変換行番号を設定する。
一方、プログラムコード正規化処理部22は、読み込んだ命令文がIF文以外の他の条件分岐命令であると判定した場合には、ステップS13において、IF文の正規化された分岐節形式への変換を行い、変換後の各行に変換行番号を設定することによって原文と変換後の命令文との対応をとる。具体的には、プログラムコード正規化処理部22は、例えば図7に示すようなFOR文の場合には、"引数1、ラベル、if(引数2)、{、引数3、gotoラベル、}"といったように、IF文形式に変換するためのテンプレートを予め作成しておき、そのテンプレートに対する当てはめを行うことによって変換を行う。なお、プログラムコード正規化処理部22は、他の条件分岐命令についても同様にテンプレートを用いることにより、容易に変換を行うことができる。
プログラムコード正規化処理部22は、このようなステップS12又はステップS13の処理を行い、全ての変換を終了すると、ステップS14において、変換後の命令文に行番号001〜からなる変換後行番号を改めて付し、正規化後ソースプログラムPR2を作成する。また、プログラムコード正規化処理部22は、原文の行番号、変換行番号、及び変換後行番号の対応関係を後の処理にて利用するために、例えば図8に示すように、これら各行番号の対応関係を示す原文行番号対応テーブルTB4を作成してRAM13や記憶部14等に読み出し可能に記憶する。
プログラムコード正規化処理部22は、ソースプログラムPR1を1行ずつ読み込む度に、このような処理を行い、ステップS2において、ソースプログラムPR1の全ての行の読み込みが終了したと判定した場合には、一連のプログラムコード正規化処理を終了する。
プログラムコード正規化処理部22は、このような一連の手順にしたがって、プログラムコード正規化処理を行うことができる。
つぎに、分岐条件解析処理について説明する。
分岐条件解析処理とは、例えば図9に示すように、分岐節の中に分岐節が存在する場合等、複雑に入り組んだ分岐節をそれぞれ独立した分岐節として捉え、当該独立した分岐節の処理手順を設定することによって分岐条件を解析する処理である。分岐条件解析処理部23は、図10に示すような一連の手順にしたがって、このような分岐条件解析処理を行う。
すなわち、分岐条件解析処理部23は、同図に示すように、ステップS21において、正規化後ソースプログラムPR2から1行だけ読み込むと、ステップS24において、読み込んだ1行の命令文が条件分岐命令であるか否かを判定する。このとき、分岐条件解析処理部23は、後述する処理パターン別連結処理手順作成処理のため、読み込んだ正規化後ソースプログラムPR2が前の処理対象と異なる場合には、正規化後ソースプログラム毎に、管理テーブルTB1及び処理パターン別処理手順テーブルTB2が固有なものとなるように、ステップS23において、これら管理テーブルTB1及び処理パターン別処理手順テーブルTB2に固有のプログラムID(PGM ID)を設定した上で、ステップS24へと処理を移行する。
ここで、分岐条件解析処理部23は、読み込んだ命令文が条件分岐命令であると判定した場合には、ステップS25において、その条件分岐命令の処理を行い、ステップS21からの処理を繰り返す。一方、分岐条件解析処理部23は、読み込んだ命令文が条件分岐命令でないと判定した場合には、ステップS26へと処理を移行し、読み込んだ命令文が開始コードであり直前の命令が条件分岐命令であるか否かを判定する。分岐条件解析処理部23は、条件分岐命令の直後は必ず分岐条件が"真"の処理となることから、読み込んだ命令文が開始コードであり直前の命令が条件分岐命令であると判定した場合には、ステップS27において、分岐条件"真"の処理を開始し、ステップS21からの処理を繰り返す。また、分岐条件解析処理部23は、読み込んだ命令文が開始コードでなく直前の命令が条件分岐命令でないと判定した場合には、ステップS28において、当該命令文が偽の処理の開始コードであるか否かを判定する。そして、分岐条件解析処理部23は、読み込んだ命令文が偽の処理の開始コードであると判定した場合には、ステップS29において、分岐条件"偽"の処理を開始し、ステップS21からの処理を繰り返す。さらに、分岐条件解析処理部23は、読み込んだ命令文が偽の処理の開始コードでないと判定した場合には、ステップS30において、当該命令文が終了コードであるか否かを判定する。分岐条件解析処理部23は、読み込んだ命令文が終了コードであると判定した場合には、ステップS31において、終了コード処理を行い、ステップS21からの処理を繰り返す一方で、当該命令文が終了コードでないと判定した場合には、ステップS32において、その他のコード処理を行い、ステップS21からの処理を繰り返す。
分岐条件解析処理部23は、正規化後ソースプログラムPR2を1行ずつ読み込む度に、このようなステップS21乃至ステップS32の処理を行う。そして、分岐条件解析処理部23は、ステップS22において、正規化後ソースプログラムPR2の全ての行の読み込みが終了した場合には、ステップS33において、処理手順の設定処理を行うことによって管理テーブルTB1を作成し、一連の分岐条件解析処理を終了する。
ここで、ステップS25、ステップS27、ステップS29、ステップS31、ステップS32、及びステップS33の各処理の詳細について、図11に示す管理テーブルTB1の具体例を用いて説明する。
まず、ステップS25における条件分岐命令処理について説明する。
分岐条件解析処理部23は、当該行が条件分岐命令である場合には、分岐節毎に識別可能な識別子を設定する。なお、識別子は、分岐節がネスト構造の場合には、同一の深みが複数あることを考慮した識別子とする。
つぎに、ステップS27における分岐条件"真"の開始処理について説明する。
分岐条件解析処理部23は、当該行が真の処理の開始コードである場合には、当該行の直前の条件分岐命令の識別子を当該真の処理の開始コードの識別子として設定する。
つぎに、ステップS29における分岐条件"偽"の開始処理について説明する。
分岐条件解析処理部23は、当該行が偽の処理の開始コードである場合には、当該行の直前の真の処理の終了コードの識別子を当該偽の処理の開始コードの識別子として設定する。
つぎに、ステップS31における終了コード処理について説明する。
分岐条件解析処理部23は、当該行が終了コードである場合に、当該行の直前の行がその他のコード若しくは開始コードであるならば、その識別子を当該終了コードの識別子として設定する。また、分岐条件解析処理部23は、当該行の直前の行が終了コードであるならば、その識別子と異なる識別子が現れるまで遡り、その異なる識別子を当該終了コードの識別子として設定する。このとき、分岐条件解析処理部23は、その異なる識別子が終了コードである場合には、さらに異なる識別子が現れるまで繰り返し設定する。ここで、分岐条件解析処理部23は、当該終了コードが真の処理の終了コードであるか偽の処理の終了コードであるかを判定する。そして、分岐条件解析処理部23は、当該行から同一識別子の行を遡り、最初に現れる開始コードが真の処理の開始コードである場合には、当該終了コードは真の処理の終了コードであると判定する。また、分岐条件解析処理部23は、当該行から同一識別子の行を遡り、最初に現れる開始コードが偽の処理の開始コードである場合には、当該終了コードは偽の処理の終了コードであると判定する。
つぎに、ステップS32におけるその他のコード処理について説明する。
分岐条件解析処理部23は、当該行がその他のコードである場合に、当該行の直前の行がその他のコード、真の処理の開始コード若しくは偽の処理の開始コードであるならば、その識別子を当該その他のコードの識別子として設定する。また、分岐条件解析処理部23は、当該行の直前の行が偽の終了コードであるならば、その識別子と異なる識別子が現れるまで遡り、その異なる識別子を当該その他のコードの識別子として設定する。ただし、分岐条件解析処理部23は、その異なる識別子がやはり偽の処理の終了コードである場合には、同一の処理を繰り返し設定する。
つぎに、ステップS33における処理手順設定処理について説明する。
分岐条件解析処理部23は、当該行が条件分岐命令である場合には、まず当該条件分岐命令と同一の識別子を有する真の処理の開始コードの行番号を、条件分岐命令の真の処理の次処理行番号に設定し、続いて、当該条件分岐命令と同一の識別子を有する偽の処理の開始コードの行番号を、条件分岐命令の偽の処理の次処理行番号に設定する。また、分岐条件解析処理部23は、当該行が真の処理の開始コードである場合には、当該行以降に最初に現れる同一識別子の行の行番号を次処理行番号に設定する。さらに、分岐条件解析処理部23は、当該行が偽の処理の開始コードである場合には、当該行以降に最初に現れる同一識別子の行の行番号を次処理行番号に設定する。さらにまた、分岐条件解析処理部23は、当該行がその他のコードである場合には、当該行以降に最初に現れる同一識別子の行の行番号を次処理行番号に設定する。また、分岐条件解析処理部23は、当該行が真の処理の終了コードである場合には、識別子が同一である偽の処理の終了コードの行番号を次処理行番号に設定する。そして、分岐条件解析処理部23は、当該行が偽の処理の終了コードである場合には、直後の行の行番号を次処理行番号に設定する。
分岐条件解析処理部23は、以上のような一連の手順にしたがって、分岐条件解析処理を行うことができる。
つぎに、処理パターン別処理手順解析処理について説明する。
処理パターン別処理手順解析処理部24は、分岐条件解析処理部23によって設定された処理手順を、分岐を含まない一連の連続した処理として再設定するものである。なお、ここでは、図12に示す管理テーブルTB1及び処理パターン別処理手順テーブルTB2の具体例を用いて説明する。まず、処理パターン別処理手順解析処理部24は、管理テーブルの先頭行から次処理行番号にしたがって抽出された行を、処理パターン別処理手順テーブルに設定する。このとき、処理パターン別処理手順解析処理部24は、当該行が条件分岐命令である場合には、真の処理の次処理行番号にしたがって処理パターン別処理手順テーブルの最後まで進み、これを1番目の処理パターンとして登録する。続いて、処理パターン別処理手順解析処理部24は、1番目の処理パターンの最後の行から遡り、最初に現れる条件分岐命令を検索し、当該条件分岐命令が偽の処理の次処理行番号にしたがって進む。このとき、処理パターン別処理手順解析処理部24は、1番目の処理パターンと同様に、当該行が条件分岐命令である場合には、真の処理の次処理行番号にしたがって処理パターン別処理手順テーブルの最後まで進み、これを2番目の処理パターンとして登録する。処理パターン別処理手順解析処理部24は、以降同様の方法を繰り返し、全ての条件分岐命令の真の処理の次処理行番号及び偽の処理の次処理行番号を処理することにより、全ての処理パターンを抽出することができる。
処理パターン別処理手順解析処理部24は、このような一連の手順にしたがって、処理パターン別処理手順解析処理を行うことができる。
つぎに、処理パターン別処理手順テーブル編集処理について説明する。
処理パターン別処理手順テーブル編集処理部25は、従来のソースプログラムの作成及び単体テストにおける問題を解決するために、処理パターン別処理手順テーブル編集処理として、図13に示すように、ステップS51における処理パターン別処理手順ドキュメントの編集と、ステップS52における処理パターン別カバレッジ情報の編集とを行う。
具体的には、処理パターン別処理手順テーブル編集処理部25は、ステップS51における処理パターン別処理手順ドキュメントの編集として、処理パターン別処理手順テーブルTB2に基づいて、例えば図14に示すように、処理パターン別に処理手順を並べたドキュメントを自動的に作成する。
この処理パターン別処理手順ドキュメントは、処理パターン別に処理手順が並んでおり、プログラマが作成する処理パターンのドキュメント(例えば図15に示すフローチャート)と容易に照合することができる。これは、先に図9に示した従来のソースプログラムコードとの照合と比較すれば一目瞭然である。また、プログラム処理パターン自動解析処理装置10においては、条件分岐行が明確であるため、その条件と前後の処理により、テストデータを容易に考案し、作成することができる。さらに、プログラム処理パターン自動解析処理装置10においては、処理手順から条件分岐行のみ抽出した一覧表形式のドキュメントにより、テスト状況の確認を行うことができる。さらにまた、プログラム処理パターン自動解析処理装置10においては、処理パターン別に処理手順を並べテスト結果を手書きによって記入できるフォーマットにすることにより、検証用及び納品用のドキュメントを作成することができる。これにより、プログラム処理パターン自動解析処理装置10においては、ソースプログラム作成時における人為的ミスを最小限に抑え、ドキュメント作成にかかるプログラマの労力を大幅に低減することができる。
また、処理パターン別処理手順テーブル編集処理部25は、図13中ステップS52における処理パターン別カバレッジ情報の編集として、例えば図16に示すように、コンピュータ環境にて実行されたプログラムのトレース情報をプログラム開発支援ツールから受け取り、トレース情報に含まれるソースプログラムの行番号と処理パターン別処理手順テーブルTB2の行番号との照合を行い、どの処理パターンが実行されたかを把握する。これにより、処理パターン別処理手順テーブル編集処理部25は、例えば図17に示すように、本来のプログラム品質を示すプログラムステップベースの処理パターンの総数を分母とし、テスト実行されたプログラムステップベースの処理パターンの総数を分子とする定量的な品質情報を得ることができる。
処理パターン別処理手順テーブル編集処理部25は、このような一連の手順にしたがって、処理パターン別処理手順テーブル編集処理を行うことができる。
つぎに、処理パターン別連結処理手順解析処理について説明する。
処理パターン別連結処理手順解析処理部26は、図18に示すように、ソースプログラム単位で作成された複数の処理パターン別処理手順テーブルTB2のうちPGM・ID xxxxxxxxに対応する先のテーブルの各パターンに対して、PGM・ID yyyyyyyに対応する後のテーブルの各パターンを割り付けることにより、図19に示すように、これら先のテーブルと後のテーブルとのパターンを連結した連結処理パターンを示す処理パターン別連結処理手順テーブルTB3を作成する。連結のためのアルゴリズムは、以下のとおりである。まず、処理パターン別連結処理手順解析処理部26は、先頭のプログラムから最後のプログラムまでのそれぞれの最初の処理パターンを抽出し、これを1番目の連結処理パターンとして処理パターン別連結処理手順テーブルTB3に登録する。続いて、処理パターン別連結処理手順解析処理部26は、1番目の連結処理パターンの最後のプログラムの処理パターンを2番目の処理パターンに置き換え、これを2番目の連結処理パターンとして登録する。処理パターン別連結処理手順解析処理部26は、最後のプログラムの処理パターンを全て処理するまでこのような処理を繰り返し、それぞれ連結処理パターンとして登録する。そして、処理パターン別連結処理手順解析処理部26は、1番目の連結処理パターンの最後のプログラムを1つ遡るプログラムの処理パターンを、2番目の処理パターンと置き換え、最後のプログラムに対して上記と同様の処理を繰り返し、それぞれ連結処理パターンとして登録する。処理パターン別連結処理手順解析処理部26は、最後から2番目のプログラムの処理パターンを全て処理すると、最後から3番目のプログラムの処理パターンに対する処理といったように、順次同様の処理を繰り返しながら遡っていき、先頭のプログラムの処理パターンまで全てを処理することにより、連結処理パターンを作成することができる。
処理パターン別連結処理手順解析処理部26は、このようにして、処理パターン別連結処理手順解析処理を行うことができる。
つぎに、処理パターン別連結処理手順テーブル編集処理について説明する。
処理パターン別連結処理手順テーブル編集処理部27は、従来のテストにおける問題を解決するために、処理パターン別連結処理手順テーブルTB3に基づいて、例えば図20に示すように、連結処理パターン別に処理手順を並べたドキュメントやカバレッジ情報を作成する。
この連結処理パターン別処理手順ドキュメントは、図20に示すように、連結処理パターン別に処理手順が並んでいるため、SEが作成する様々なドキュメントに対して正確且つ有用な情報を提供することができ、人為的なミスを低減することができる。また、処理パターン別連結処理手順テーブル編集処理部27は、コンピュータ環境にて実行されたプログラムのトレース情報をプログラム開発支援ツールから受け取り、トレース情報に含まれるソースプログラムの行番号と処理パターン別連結処理手順テーブルTB3の行番号との照合を行い、どの連結処理パターンが実行されたかを把握する。これにより、処理パターン別連結処理手順テーブル編集処理部27は、本来のシステム品質を示すプログラムステップベースの連結処理パターンの総数を分母とし、テスト実行されたプログラムステップベースの連結処理パターンの総数を分子とする定量的な品質情報を得ることができる。
処理パターン別連結処理手順テーブル編集処理部27は、このようにして、処理パターン別連結処理手順テーブル編集処理を行うことができる。
以上説明したように、本発明の実施の形態として示すプログラム処理パターン自動解析処理装置10は、入力されたソースプログラムに含まれる入り組んだ分岐節をそれぞれ独立した分岐節として捉え、当該独立した分岐節の処理手順を設定し、分岐を含まない一連の処理手順を解析することにより、処理パターンを抽出することができる。これにより、プログラム処理パターン自動解析処理装置10は、プログラム開発における人為的なミスを大幅に低減し、本来のプログラム品質を示す定量的な品質情報を提供することができる。また、プログラム処理パターン自動解析処理装置10は、システムとして複数の連結したプログラム群に対しても同様に連結処理パターンを抽出することができるため、システム開発における人為的なミスを低減し、本来のシステム品質を示す定量的な品質情報を提供することができる。
なお、本発明は、上述した実施の形態に限定されるものではない。例えば、上述した実施の形態では、解析対象としてのソースプログラムがC言語で記述されているものとして説明したが、本発明は、フォートランやCOBOL等、機械語以外のプログラミング言語であれば、条件分岐に関する文法体系が同様であることから、容易に適用することができる。
また、上述した実施の形態では、各条件分岐命令をIF文形式に統一する正規化処理を行うものとして説明したが、本発明は、他の条件分岐命令の形式に統一する正規化処理を行うようにしてもよい。
このように、本発明は、その趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。

Claims (7)

  1. ソースプログラムコードに記述された処理手順を自動的に解析するプログラム処理パターン自動解析処理装置であって、
    入力されたソースプログラムに含まれる入り組んだ分岐節をそれぞれ独立した分岐節として捉え、当該独立した分岐節の処理手順を設定することによって分岐条件を解析し、分岐条件が真の処理及び偽の処理についてのそれぞれの処理手順を解析した解析結果を示す管理テーブルを作成する分岐条件解析処理手段と、
    上記分岐条件解析処理手段によって作成された上記管理テーブルを記憶する管理テーブル記憶手段とを備えること
    を特徴とするプログラム処理パターン自動解析処理装置。
  2. 上記管理テーブルの先頭行から分岐条件が真の処理についての処理手順を抽出してこれを1番目の処理パターンとし、上記1番目の処理パターンの最後の行から遡り、最初に現れる分岐条件が偽の処理以降について真の処理にしたがって処理手順を抽出してこれを2番目の処理パターンとするような処理を繰り返し、全ての処理パターンを抽出する処理パターン別処理手順解析処置手段と、
    上記処理パターン別処理手順解析処理手段による解析によって作成された処理パターン別処理手順テーブルを記憶する処理パターン別処理手順テーブル記憶手段とを備えること
    を特徴とする請求の範囲第1項記載のプログラム処理パターン自動解析処理装置。
  3. 上記処理パターン別処理手順テーブルを編集し、処理パターン別に処理手順を並べたドキュメントを作成する、及び/又は、コンピュータ環境にて実行されたプログラムのトレース情報をプログラム開発支援ツールから受け取り、上記処理パターン別処理手順テーブルとの照合を行い、プログラムステップベースの処理パターン別のカバレッジ情報を算出する処理パターン別処理手順テーブル編集処理手段を備えること
    を特徴とする請求の範囲第2項記載のプログラム処理パターン自動解析処理装置。
  4. ソースプログラム単位で作成された複数の上記処理パターン別処理手順テーブルに基づいて、処理パターン別の連結処理手順を解析し、複数の上記処理パターン別処理手順テーブルのパターンを連結した連結処理パターンを示す処理パターン別連結処理手順テーブルを作成する処理パターン別連結処理手順解析処理手段を備えること
    を特徴とする請求の範囲第2項記載のプログラム処理パターン自動解析処理装置。
  5. 上記処理パターン別連結処理手順テーブルを編集し、連結処理パターン別に処理手順を並べたドキュメントを作成する、及び/又は、コンピュータ環境にて実行されたプログラムのトレース情報をプログラム開発支援ツールから受け取り、上記処理パターン別連結処理手順テーブルとの照合を行い、プログラムステップベースの連結処理パターン別のカバレッジ情報を算出する処理パターン別連結処理手順テーブル編集処理手段を備えること
    を特徴とする請求の範囲第4項記載のプログラム処理パターン自動解析処理装置。
  6. ソースプログラムコードに記述された処理手順を自動的に解析するプログラム処理パターン自動解析処理方法であって、
    コンピュータが、入力されたソースプログラムに含まれる入り組んだ分岐節をそれぞれ独立した分岐節として捉え、当該独立した分岐節の処理手順を設定することによって分岐条件を解析し、分岐条件が真の処理及び偽の処理についてのそれぞれの処理手順を解析した解析結果を示す管理テーブルを作成する分岐条件解析処理工程と、
    上記コンピュータが、上記分岐条件解析処理工程にて作成された上記管理テーブルを所定の記憶手段に記憶させる管理テーブル記憶工程とを備えること
    を特徴とするプログラム処理パターン自動解析処理方法。
  7. ソースプログラムコードに記述された処理手順を自動的に解析するコンピュータ実行可能なプログラム処理パターン自動解析処理プログラムであって、
    上記コンピュータを、
    入力されたソースプログラムに含まれる入り組んだ分岐節をそれぞれ独立した分岐節として捉え、当該独立した分岐節の処理手順を設定することによって分岐条件を解析し、分岐条件が真の処理及び偽の処理についてのそれぞれの処理手順を解析した解析結果を示す管理テーブルを作成する分岐条件解析手段、及び、
    上記分岐条件解析手段にて作成された上記管理テーブルを所定の記憶手段に記憶させる管理テーブル記憶手段として機能させること
    を特徴とするプログラム処理パターン自動解析処理プログラム。
JP2007526095A 2005-12-22 2006-11-24 プログラム処理パターン自動解析処理装置 Pending JPWO2007072652A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2005369631 2005-12-22
JP2005369631 2005-12-22
PCT/JP2006/323434 WO2007072652A1 (ja) 2005-12-22 2006-11-24 プログラム処理パターン自動解析処理装置

Publications (1)

Publication Number Publication Date
JPWO2007072652A1 true JPWO2007072652A1 (ja) 2009-05-28

Family

ID=38188435

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007526095A Pending JPWO2007072652A1 (ja) 2005-12-22 2006-11-24 プログラム処理パターン自動解析処理装置

Country Status (2)

Country Link
JP (1) JPWO2007072652A1 (ja)
WO (1) WO2007072652A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8870639B2 (en) 2004-06-28 2014-10-28 Winview, Inc. Methods and apparatus for distributed gaming over a mobile device
JP7306026B2 (ja) * 2019-04-01 2023-07-11 カシオ計算機株式会社 プログラムを変換するためのプログラム、情報処理装置、及び、情報処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6415836A (en) * 1987-07-10 1989-01-19 Mitsubishi Electric Corp Detection system for comprehensiveness of software test
JPH07311694A (ja) * 1994-05-16 1995-11-28 Hitachi Ltd プログラム実行パスの解析方法
JPH11272503A (ja) * 1998-03-24 1999-10-08 Hitachi Software Eng Co Ltd プログラムのテストデータ自動生成装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0291766A (ja) * 1988-09-29 1990-03-30 Toshiba Corp 制御依存解析方式
JPH09128266A (ja) * 1995-10-31 1997-05-16 Fujitsu Ltd 原始プログラム経路検索装置及びその検索方法
JPH10232795A (ja) * 1997-02-19 1998-09-02 Hitachi Ltd ソフトウェア部品組み合わせテスト方法
JPH10320190A (ja) * 1997-05-20 1998-12-04 Fujitsu Ltd ソースプログラム経路検索装置および検索プログラムを記録した媒体
JP4257096B2 (ja) * 2002-10-21 2009-04-22 株式会社日立製作所 ソースプログラムの静的解析装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6415836A (en) * 1987-07-10 1989-01-19 Mitsubishi Electric Corp Detection system for comprehensiveness of software test
JPH07311694A (ja) * 1994-05-16 1995-11-28 Hitachi Ltd プログラム実行パスの解析方法
JPH11272503A (ja) * 1998-03-24 1999-10-08 Hitachi Software Eng Co Ltd プログラムのテストデータ自動生成装置

Also Published As

Publication number Publication date
WO2007072652A1 (ja) 2007-06-28

Similar Documents

Publication Publication Date Title
CN104317589B (zh) 一种用于加载动态链接库的代码自动生成方法及装置
CN104407973B (zh) 一种自动化单元测试的实现方法及装置
US6055369A (en) Apparatus for visual programming with screen flow
CN111488145B (zh) 一种基于业务域数据模型库的微服务代码生成系统及方法
US7107182B2 (en) Program and process for generating data used in software function test
JP2007515013A (ja) あらゆるソースプラットフォームからあらゆるターゲットプラットフォームへのソフトウェアコードのマイグレーション及び変換装置
US7702958B2 (en) Auto-recording tool for developing test harness files
CN101071378A (zh) 源代码生成方法、设备和程序
US7895575B2 (en) Apparatus and method for generating test driver
CN105094939A (zh) 一种基于Makefile自动编译技术实现的软件源文件静态分析方法
JP2007058368A (ja) プログラムの照合装置
CN104156199B (zh) 一种软件自动持续集成方法及系统
US9116708B2 (en) Program creation support apparatus, program, and information system
CN104484156B (zh) 多语言公式的编辑方法、编辑系统和多语言公式编辑器
JPWO2007072652A1 (ja) プログラム処理パターン自動解析処理装置
CN109086985A (zh) 面向航天器总装的专业测试信息管理系统
Oliveira et al. On the customization of batch refactoring
JP4835859B2 (ja) 状態遷移図作成装置および状態遷移図作成方法
Jahanbin et al. Test model generation using equivalence partitioning
CN112181399A (zh) 一种基于数据解析构建模型生成前端代码的方法
JP4767309B2 (ja) 情報処理装置、情報処理方法、及びコンピュータプログラム
JP2008140263A (ja) 単体試験支援装置
JP2009205242A (ja) 検証用プログラム自動生成装置、その方法及びプログラム
CN106843863A (zh) 一种空调控制参数可视化代码修改方法及代码修改器
CN109408392A (zh) 基于持续集成技术的软件集成测试方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120424

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070614