(57)【特許請求の範囲】
【請求項１】
アプリケーションの各画面の表示情報および前記画面間の遷移情報を含む画面設計情報に基づいて、そのアプリケーションの画面遷移図を表示する画面遷移図表示手段と、
前記アプリケーションを動作させて、前記アプリケーションを実現するプログラムのソースコードの中の実行された部分を検出する検出手段と、
前記画面設計情報および前記検出手段による検出結果に基づいて、前記アプリケーションの画面毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報、および前記アプリケーションの遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成するカバレッジ生成手段と、
前記画面遷移図表示手段により表示される前記画面遷移図上の各画面および各遷移の少なくともいずれか一方に、前記生成された各コードカバレッジ情報をそれぞれ対応付けて表示するカバレッジ表示手段と、
を備えるアプリケーション開発支援装置。
【請求項２】
前記画面設計情報の前記アプリケーションの前記画面間の遷移情報は、自画面遷移の遷移情報をさらに含み、
前記カバレッジ生成手段は、前記画面設計情報および前記検出手段による検出結果に基づいて、前記アプリケーションの各画面の前記自画面遷移を含む遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報をさらに生成する、
請求項１に記載のアプリケーション開発支援装置。
【請求項３】
前記カバレッジ表示手段は、前記画面毎または前記遷移毎の前記コードカバレッジ情報について、閾値に基づいて、区別可能に前記画面遷移図上に表示させる、
請求項１または２に記載のアプリケーション開発支援装置。
【請求項４】
前記カバレッジ表示手段は、個別に設定された、前記アプリケーションの前記画面毎の前記コードカバレッジ情報の表示分けに使用する閾値と、前記アプリケーションの前記遷移毎の前記コードカバレッジ情報の表示分けに使用する閾値を用いる、
請求項３に記載のアプリケーション開発支援装置。
【請求項５】
前記画面遷移図上で、前記画面毎または前記遷移毎に前記ソースコードの閲覧の指示を受け付ける受付手段と、
前記受付手段によりコード閲覧指示を受け付けた前記画面または前記遷移の前記ソースコードを、前記検出手段により検出された、実行済み部分と、それ以外の部分とに区別して表示するソースコード表示手段と、
をさらに備える、
請求項１乃至４いずれか１項に記載のアプリケーション開発支援装置。
【請求項６】
前記画面設計情報は、前記アプリケーションの各画面に含まれる、入力操作対象となる入力画面部品に関する設計情報を含み、
前記アプリケーションのテストに使用するテストシナリオを、前記画面設計情報を元に生成するテストシナリオ生成手段と、
前記テストシナリオを用いたテスト動作により前記検出手段が検出した、実行済み部分以外のソースコードの未実行部分を特定する未実行部特定手段と、
前記画面毎または前記遷移毎の前記ソースコードの前記未実行部分において、前記画面の前記入力画面部品の識別情報を抽出して、前記画面の前記入力画面部品のうち、テスト未実行のものを特定する画面部品特定手段と、を備え、
前記テストシナリオ生成手段は、
前記テスト未実行であると特定された前記入力画面部品への入力操作を示す入力操作命令を少なくとも含むテストシナリオを生成する、
請求項１乃至５いずれか一項に記載のアプリケーション開発支援装置。
【請求項７】
前記画面毎または前記遷移毎の前記ソースコードにおいて、前記画面の前記入力画面部品への入力操作内容に応じた分岐条件に従い実行される各分岐処理を抽出する分岐処理抽出手段と、
抽出された前記分岐条件に従い実行される各分岐処理のうち、前記未実行部分に対応する、テスト未実行の分岐処理を特定する未実行処理特定手段と、
前記画面毎または前記遷移毎の前記ソースコードにおいて、特定された前記テスト未実行の分岐処理に対応する、前記未実行部分を提示する提示手段と、をさらに備える、
請求項６に記載のアプリケーション開発支援装置。
【請求項８】
前記テストシナリオ生成手段は、
ユーザによる前記入力画面部品への入力操作を示す入力操作命令の前記テストシナリオへの追加の指示を受け付け、前記追加の指示を受け付けた前記入力操作命令を前記テストシナリオに追加する、
請求項７に記載のアプリケーション開発支援装置。
【請求項９】
前記アプリケーションの画面設計情報を元に、前記テスト未実行であると特定された分岐処理に関連する、前記入力画面部品に対応する入力項目に関する属性情報を取得する属性情報取得手段と、
取得した前記入力項目に関する属性情報に基づいて、前記テスト未実行の前記分岐処理を実行させる分岐条件を満たすように、前記アプリケーションの前記テストシナリオに基づくテストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストケースのバリエーションを生成するテストケース生成手段と、
をさらに備える、
請求項７または８に記載のアプリケーション開発支援装置。
【請求項１０】
前記画面遷移図上の前記画面毎または前記遷移毎に、前記コードカバレッジが閾値以下を示すものを対象として抽出する対象抽出手段をさらに備え、
前記対象として抽出された前記画面または前記遷移について、
前記未実行部特定手段により特定された前記ソースコードの前記未実行部分について、前記テストシナリオ生成手段が、前記アプリケーションのテストシナリオを生成する、
請求項６乃至９いずれか一項に記載のアプリケーション開発支援装置。
【請求項１１】
アプリケーション開発支援装置が、
アプリケーションの各画面の表示情報および前記画面間の遷移情報を含む画面設計情報に基づいて、そのアプリケーションの画面遷移図を表示し、
前記アプリケーションを動作させて、前記アプリケーションを実現するプログラムのソースコードの中の実行された部分を検出し、
前記画面設計情報および前記実行された部分の検出結果に基づいて、前記アプリケーションの画面毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報、および前記アプリケーションの遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成し、
前記画面遷移図上の各画面および各遷移の少なくともいずれか一方に、前記生成された各コードカバレッジ情報をそれぞれ対応付けて表示する、
アプリケーション開発支援装置のデータ処理方法。
【請求項１２】
コンピュータに、
アプリケーションの各画面の表示情報および前記画面間の遷移情報を含む画面設計情報に基づいて、そのアプリケーションの画面遷移図を表示する手順、
前記アプリケーションを動作させて、前記アプリケーションを実現するプログラムのソースコードの中の実行された部分を検出する手順、
前記画面設計情報および前記検出する手順による検出結果に基づいて、前記アプリケーションの画面毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報、および前記アプリケーションの遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成する手順、
前記画面遷移図を表示する手順により表示される前記画面遷移図上の各画面および各遷移の少なくともいずれか一方に、前記生成された各コードカバレッジ情報をそれぞれ対応付けて表示する手順、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション開発支援装置、そのデータ処理方法、およびプログラムに関する。
【背景技術】
【０００２】
ウェブアプリケーションに関するテストケースおよびテストデータを自動的に生成する技術の一例が特許文献１に記載されている。このテストケース生成装置は、画面遷移定義情報からテストケース生成の対象画面を取得し、画面構成情報からテスト対象カラムを取得し、データ定義情報からテスト対象カラムに対する制約を取得し、テスト対象カラムに対する制約とテストケーステンプレートをマッチングさせ、テストケースとテストデータを生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２６０３９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術では、自動で生成されたテストケースが適切な範囲で設定されているか、漏れがないか、等が、直感的には分かりにくく、精査に時間がかかるといった問題点があった。テストケースの網羅性の確認を疎かにしてしまうと、テストの精度が低くなり、アプリケーションの信頼性を維持することができない。
【０００５】
一般的に、テスト動作によって、ソースコードのどの部分が実行されたかを検査し、その結果から網羅範囲を示すカバレッジが取得される。このカバレッジ情報は、テストの完成度やテスト結果の信頼度の指標の一部に用いられている。テストケースを適切な範囲で漏れなく作成することで、コードカバレッジを拡げ、効率的なテストを実施でき、テスト結果の信頼度を向上できる。高い信頼性を確保できるテストを効率よく実施することは、アプリケーション開発の全体工数を削減することにも繋がる。
【０００６】
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、アプリケーションの開発を支援するアプリケーション開発支援装置、そのデータ処理方法、およびプログラムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の各側面では、上述した課題を解決するために、それぞれ以下の構成を採用する。
【０００８】
第一の側面は、アプリケーション開発支援装置に関する。
第一の側面に係るアプリケーション開発支援装置は、
アプリケーションの各画面の表示情報および前記画面間の遷移情報を含む画面設計情報に基づいて、そのアプリケーションの画面遷移図を表示する画面遷移図表示手段と、
前記アプリケーションを動作させて、前記アプリケーションを実現するプログラムのソースコードの中の実行された部分を検出する検出手段と、
前記画面設計情報および前記検出手段による検出結果に基づいて、前記アプリケーションの画面毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報、および前記アプリケーションの遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成するカバレッジ生成手段と、
前記画面遷移図表示手段により表示される前記画面遷移図上の各画面および各遷移の少なくともいずれか一方に、前記生成された各コードカバレッジ情報をそれぞれ対応付けて表示するカバレッジ表示手段と、を有する。
【０００９】
第二の側面は、少なくとも１つのコンピュータにより実行されるアプリケーション開発支援装置のデータ処理方法に関する。
第二の側面に係るアプリケーション開発支援装置のデータ処理方法は、
アプリケーション開発支援装置が、
アプリケーションの各画面の表示情報および前記画面間の遷移情報を含む画面設計情報に基づいて、そのアプリケーションの画面遷移図を表示し、
前記アプリケーションを動作させて、前記アプリケーションを実現するプログラムのソースコードの中の実行された部分を検出し、
前記画面設計情報および前記実行部分の検出結果に基づいて、前記アプリケーションの画面毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報、および前記アプリケーションの遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成し、
前記画面遷移図上の各画面および各遷移の少なくともいずれか一方に、前記生成された各コードカバレッジ情報をそれぞれ対応付けて表示する、ことを含む。
【００１０】
なお、本発明の他の側面としては、上記第二の側面の方法を少なくとも１つのコンピュータに実行させるプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
このコンピュータプログラムは、コンピュータにより実行されたとき、コンピュータに、アプリケーション開発支援装置上で、そのデータ処理方法を実施させるコンピュータプログラムコードを含む。
【００１１】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【００１２】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【００１３】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障のない範囲で変更することができる。
【００１４】
さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【発明の効果】
【００１５】
上記各側面によれば、アプリケーションの開発を支援する技術を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施の形態に係るアプリケーション開発支援装置の構成を論理的に示す機能ブロック図である。
【図２】本実施形態のアプリケーション開発支援装置の開発支援対象のアプリケーションの画面遷移図の例を示す図である。
【図３】本実施形態のアプリケーション開発支援装置の開発支援対象のアプリケーションの画面遷移図の例を示す図である。
【図４】本実施形態のアプリケーション開発支援装置の開発支援対象のアプリケーションの画面毎および遷移毎のソースコードを説明するための図である。
【図５】本発明の実施の形態に係るアプリケーション開発支援装置を実現するコンピュータのハードウェア構成を示すブロック図である。
【図６】本発明の実施の形態に係るアプリケーション開発支援装置のデータ処理方法における処理手順を示すフローチャートである。
【図７】本実施形態のアプリケーション開発支援装置の開発支援対象のアプリケーションのテスト時のカバレッジ情報表示画面の表示例を示す図である。
【図８】本発明の実施の形態に係るアプリケーション開発支援装置の構成を論理的に示す機能ブロック図である。
【図９】本実施形態のアプリケーション開発支援装置によるカバレッジ情報表示画面の一例を示す図である。
【図１０】本実施形態のアプリケーション開発支援装置によるソースコード画面の一例を示す図である。
【図１１】本発明の実施の形態に係るアプリケーション開発支援装置の構成を論理的に示す機能ブロック図である。
【図１２】本実施形態のアプリケーション開発支援装置がテストするアプリケーションのメイン画面の一例を示す図である。
【図１３】本発明の実施の形態に係るアプリケーション開発支援装置のデータ処理方法における処理手順を示すフローチャートである。
【図１４】本発明の実施の形態に係るアプリケーション開発支援装置の構成を論理的に示す機能ブロック図である。
【図１５】本発明の実施の形態に係るアプリケーション開発支援装置の構成を論理的に示す機能ブロック図である。
【図１６】本発明の実施の形態に係るアプリケーション開発支援装置におけるテストシナリオおよびテストケースを説明するための図である。
【図１７】本発明の実施の形態に係るアプリケーション開発支援装置を利用するアプリケーション開発システムの構成の一例を示すブロック図である。
【図１８】本実施形態のアプリケーション開発支援装置を含む開発システムにより開発されたアプリケーションを利用したシステムの構成の一例を示すブロック図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００１８】
（第１の実施の形態）
本発明の第１の実施の形態に係るアプリケーション開発支援装置、そのデータ処理方法およびプログラムについて、以下説明する。
図１は、本発明の実施の形態に係るアプリケーション開発支援装置１００の構成を論理的に示す機能ブロック図である。
本発明の実施の形態に係るアプリケーション開発支援装置１００は、アプリケーションの各画面の表示情報および画面間の遷移情報を含む画面設計情報１１０に基づいて、そのアプリケーションの画面遷移図１２０を表示する画面遷移図表示部１０２と、アプリケーションを動作させて、アプリケーションを実現するプログラムのソースコード１１２の中の実行された部分を検出する検出部１０４と、画面設計情報１１０および検出部１０４による検出結果に基づいて、アプリケーションの画面毎のソースコード１１２に対する実行済み部分の網羅範囲を示すコードカバレッジ情報、およびアプリケーションの遷移毎のソースコード１１２に対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成するカバレッジ生成部１０６と、画面遷移図表示部１０２により表示される画面遷移図上の各画面および各遷移の少なくともいずれか一方に、生成された各コードカバレッジ情報をそれぞれ対応付けて表示するカバレッジ表示部１０８と、を備える。
【００１９】
本発明のアプリケーション開発支援装置は、アプリケーションの開発を支援する装置である。本実施形態では、アプリケーション開発支援装置１００が開発するアプリケーションとして、ウェブアプリケーションを例に説明する。
本発明の開発対象となるアプリケーションは、ウェブアプリケーションに限定されるものではない。たとえば、サーバ、データベース、および端末の全てがユーザ側に含まれる、企業内のシステム等も開発対象となり得る。
【００２０】
また、本実施形態のアプリケーション開発支援装置１００は、図１７に示すような、アプリケーション開発システム１において、開発装置２０の一部の機能として組み込むことができる。
図１７は、本発明の実施の形態に係るアプリケーション開発支援装置１００を利用するアプリケーション開発システム１の構成の一例を示すブロック図である。
【００２１】
本発明の実施の形態に係るアプリケーション開発システム１において、開発装置２０は、ウェブサーバ３０で動作するウェブアプリケーション３２の開発を行う装置である。ウェブアプリケーション３２は、端末４０によりブラウザ４２を経由してインターネット等のネットワーク３を介して利用される。
【００２２】
ウェブアプリケーション３２は、たとえば、端末４０のブラウザ４２上に画面を表示させ、画面上での入力および操作を受け付ける。そして、ウェブアプリケーション３２が、入力操作に基づく処理を実行し、必要に応じてデータベース（ＤＢ：DataBase）２４を参照し、結果得られたデータに基づき形成される画面を端末４０のブラウザ４２上に表示させる。
開発装置２０は、画面設計情報１１０と、プログラムのソースコード１１２等を設計情報リポジトリ２２に記憶する。そして、開発装置２０は、これらの情報を元に、仕様書や設計書を作成し、プログラムを生成し、テストを行い、ウェブアプリケーション３２を完成させる。
【００２３】
図１８は、本実施形態のアプリケーション開発支援装置１００を含む開発システムにより開発されたアプリケーションを利用したシステムの構成の一例を示すブロック図である。
生成されたウェブアプリケーション３２は、たとえば、図１８に示すように、ウェブサーバ３０上で動作する。そして、ウェブアプリケーション３２は、ネットワーク３を介して端末４０（図では、複数の端末４０ａ、４０ｂを示す。特に、区別する必要がない場合は、端末４０と呼ぶ。）にてブラウザ４２経由で利用される。
なお、ブラウザ４２の種類は、特に限定されず、端末４０毎に異なる種類のブラウザ４２を用いてもよい。また、端末４０の種類、たとえば、ＯＳ（Operating System）等の種類も限定されず、異なる種類のＯＳで動作する端末４０が混在してもよい。
【００２４】
なお、図では、ウェブアプリケーション３２は、ウェブサーバ３０上にのみ存在するように示されているが、端末４０とウェブサーバ３０とが協働してウェブアプリケーション３２を動作させる。
【００２５】
具体的には、端末４０のブラウザ４２からインターネット等のネットワーク３を介してウェブサーバ３０のウェブページを表示させた時、ウェブアプリケーション３２に含まれる一部のプログラムが端末４０にダウンロードされる。この一部のプログラムは、ブラウザ４２上で動作する、Ｊａｖａ（登録商標）言語等のプログラミング言語で記述される。そして、その一部のプログラムが、端末４０のブラウザ４２上で、ウェブサーバ３０上のウェブアプリケーション３２と協働して動作する。
【００２６】
端末４０からブラウザ４２経由で利用されるウェブアプリケーション３２のウェブサーバ３０上で動作等は公知であり、本発明の本質に関わらないので詳細な説明は省略する。
開発装置２０で開発されたウェブアプリケーション３２は、テストされた後、実機のウェブサーバ３０に配備され、利用することができる。
【００２７】
本発明において、ウェブアプリケーション３２は、業務用アプリケーションを含むことができる。業務アプリケーションとは、企業の情報システムにおいて、企業活動の業務内容と直接関連のある販売、在庫管理、受注、流通、経費管理、資金管理、人財管理、書類管理などの情報処理やサービスを扱うシステムを実現するアプリケーションプログラムである。
【００２８】
図１に戻り、画面設計情報１１０とは、アプリケーション開発を行う際に、アプリケーションの画面構成、画面遷移、および各画面の部品（画面構成要素）配置、そのレイアウト、各画面構成要素の属性などを定義した情報を含む。また、各画面構成要素の属性は、画面構成要素に対するチェック機能に関する情報、たとえば、入力必須や英文字のみ入力可、および電話番号形式入力のみ許可等の情報を含む。
【００２９】
画面遷移図表示部１０２により表示される画面遷移図１２０は、画面１２２および画面１２２間の遷移（遷移メソッド１２４）の情報が含まれる。
図２は、本実施形態のアプリケーション開発支援装置１００の開発支援対象のアプリケーションの画面遷移図の例を示す図である。
図２（ａ）の画面遷移図１２０では、アプリケーションが、３つの画面１２２を有することが示されている。さらに、たとえば、メイン画面（Ｓ＿０１）では、選択ボタンの押下による遷移メソッド１２４により、情報画面（Ｓ＿０２）へ遷移することが示されている。画面遷移図１２０において、画面１２２間の遷移メソッド１２４は、遷移のトリガとなる操作ボタンの名称（ｂｔ＿０２）と、遷移方向を示す矢印で示されている。
同様に、情報画面（Ｓ＿０２）では、詳細ボタンの押下による遷移メソッド１２４により、詳細画面（Ｓ＿０３）に遷移することと、戻るボタンの押下による遷移メソッド１２４により、メイン画面（Ｓ＿０１）に戻ることが示されている。
そして、図２（ｂ）に示すように、カバレッジ情報表示画面１３０上には、各画面１２２および各遷移メソッド１２４についてカバレッジ情報１３２が対応付けて表示される。なお、図２（ｂ）では、各画面１２２と各遷移メソッド１２４の両方についてカバレッジ情報１３２が対応付けて表示されているが、画面１２２および遷移メソッド１２４の少なくともいずれか一方のカバレッジ情報１３２が表示されてもよい。
【００３０】
また、アプリケーションの各画面１２２の遷移メソッド１２４が、自画面遷移を含んでもよい。
本実施形態のアプリケーション開発支援装置１００において、画面設計情報１１０のアプリケーションの画面１２２間の遷移情報は、自画面遷移の遷移情報をさらに含む。
カバレッジ生成部１０６は、画面設計情報１１０および検出部１０４による検出結果に基づいて、アプリケーションの各画面１２２の自画面遷移を含む遷移毎のソースコード１１２に対する実行済み部分の網羅範囲を示すコードカバレッジ情報をさらに生成する。
そして、カバレッジ表示部１０８が、自画面遷移メソッド１２６についてもカバレッジ情報１３２を対応付けて表示する。
【００３１】
図３は、本実施形態のアプリケーション開発支援装置１００の開発支援対象のアプリケーションの画面遷移図の例を示す図である。
図３（ａ）に示すように、画面遷移図１２０では、たとえば、メイン画面（Ｓ＿０１）で、検索ボタンの押下による遷移（自画面遷移メソッド１２６）により、検索処理を行い、その結果を表示する自画面（メイン画面）（Ｓ＿０１）へ遷移することが示されている。
そして、図３（ｂ）に示すように、カバレッジ情報表示画面１３０上には、自画面遷移メソッド１２６についても、カバレッジ情報１３２が対応付けて表示される。
【００３２】
本実施形態において、上述した図１７のアプリケーション開発システム１の開発装置２０では、たとえば、図２（ａ）または図３（ａ）のような画面遷移図１２０を作成する機能を有する。さらに、開発装置２０で、各画面１２２および各遷移メソッド１２４（自画面遷移メソッド１２６を含む）の詳細設計情報を入力することで、画面設計情報１１０が設計情報リポジトリ２２に記憶される。そして、アプリケーション開発システム１では、これらの情報を元に、アプリケーションのソースコードの生成、実行モジュールの生成、テスト、そして実機への移行までの処理を行うことができる。さらに、各工程に関連するドキュメントの作成も、これらの情報を元に行うことができる。つまり、設計時に作成された画面遷移図１２０に関する情報を含む画面設計情報１１０は、そのまま、アプリケーションの設計書になるとともに、さらに、ソースコードの生成、実行モジュールの生成、テストシナリオの作成、テスト仕様書の作成、テストの実行、および、テスト結果報告書の作成に使用される。したがって、アプリケーションの設計とテスト結果と実機プログラムの間での内容の乖離を防ぐことができる。
【００３３】
本実施形態において、画面遷移図表示部１０２は、開発装置２０により作成されて設計情報リポジトリ２２に記憶された画面設計情報１１０を元に画面遷移図１２０を表示する。
画面遷移図１２０に含まれる画面１２２や遷移メソッド１２４に関する情報は、上述したように、設計時に画面遷移図１２０を生成する際に、詳細情報が決められ、画面設計情報１１０として設計情報リポジトリ２２に記憶される。
【００３４】
画面１２２に関する表示情報は、たとえば、各画面１２２のＩＤ、名称、種類（たとえば、ページ、またはポップアップ等）と、画面のデザイン（背景の属性情報、レイアウト、テキストコンテンツの内容、文字の属性情報（サイズ、フォント、色等）、画像ファイルの属性情報（ファイルのパス、表示サイズ等）等）、入力画面部品等の属性情報を含む。
【００３５】
入力画面部品とは、入力または選択される内容または操作指示を受け付けるためのＧＵＩ（Graphical User Interface）コンポーネントや、データを出力するコンポーネントを含む各種の画面構成要素のうち、入力（または選択）に関する部品を指す。たとえば、入力画面部品としては、テキストボックス、コンボボックス、リストボックス、プルダウンメニュー（ドロップダウンメニュー）、コンテキストメニュー、チェックボタン、ラジオボタン等が例示される。入力画面部品にて入力または選択される入力内容は、文字列、数値、および配列データ等を含む。
【００３６】
また、遷移メソッド１２４に関する遷移情報は、画面１２２間の関係に関する情報が含まれる。遷移情報は、たとえば、遷移のトリガとなる遷移元の画面内の画面部品の情報（ＩＤまたは名称）、遷移元の画面と遷移先の画面のＩＤまたは名称、遷移後の画面の種類（たとえば、ページ、またはポップアップ等）、遷移分岐の条件等の属性情報を含む。
【００３７】
本発明において、検出部１０４は、アプリケーションをテスト動作させて、アプリケーションを実現するプログラムのソースコード１１２の中の実行された部分を検出する。テストでは、たとえば、画面１２２の表示内容、操作に応じた動作、エラー時の処理等について確認する。
【００３８】
カバレッジ生成部１０６は、画面設計情報１１０および検出部１０４による検出結果に基づいて、アプリケーションの画面１２２毎のソースコード１１２の実行済み部分の網羅範囲を示すコードカバレッジ情報を生成する。さらに、カバレッジ生成部１０６は、アプリケーションの遷移メソッド１２４毎のソースコード１１２の実行済み部分の網羅範囲を示すコードカバレッジ情報を生成する。
【００３９】
ここで、本実施形態において、画面１２２毎のコードカバレッジ情報は、例として、画面１２２毎に、各画面１２２に対応するソースコード１１２のライン総数に対する、実行済み部分のライン数の百分率を算出した値を含む。本実施形態では、各画面１２２のソースコード１１２とは、その画面１２２内で閉じている処理を実現する際に実行されるプログラムのソースコードである。たとえば、アプリケーションにおける、画面１２２を表示する処理と、画面１２２上での操作（入力）受付処理とを含む。そのソースコード１１２は、たとえば、ＪＳＰ（JavaServer Pages）で記述されるが、これに限定されない。たとえば、画面１２２上での入力内容について誤入力があった時、新たな画面１２２への遷移を行なわずに、再入力を求める表示を同じ画面１２２上で行うような処理は、画面１２２に対応するソースコード１１２で実現される。
【００４０】
また、遷移メソッド１２４毎のコードカバレッジ情報は、例として、遷移メソッド１２４毎に、各遷移メソッド１２４を実現するためのソースコード１１２のライン総数に対する、実行済み部分のライン数の百分率を算出した値を含む。本実施形態では、各遷移メソッド１２４のソースコード１１２とは、画面１２２間の遷移を伴う処理を実現する際に実行されるプログラムのソースコードである。たとえば、条件成立または操作ボタンの押下受け付け等により画面遷移を行う条件分岐処理を含む。そのソースコード１１２は、たとえば、Ｊａｖａサーブレット、またはＢｅａｎ（Java Bean）により記述されるが、これらに限定されない。
【００４１】
図４に示すように、ウェブアプリケーション３２は、たとえば、各画面１２２を実現するＪＳＰのソースコード１１２、および各遷移メソッド１２４（自画面遷移メソッド１２６を含む）を実現するＪａｖａサーブレットのソースコード１１２から生成される実行モジュールを呼び出して動作する。
【００４２】
ここで、各画面１２２または各遷移メソッド１２４（自画面遷移メソッド１２６を含む）に対応する実行モジュール（プログラム）は、それぞれ個別のプログラムで構成されてもよい。あるいは、複数画面１２２または複数遷移メソッド１２４（自画面遷移メソッド１２６を含む）に対応する実行モジュール（プログラム）をまとめて１つのプログラムとして構成されてもよい。また、各画面１２２または各遷移メソッド１２４（自画面遷移メソッド１２６を含む）に対応する実行モジュール（プログラム）が、複数の関数、クラス、サブルーチン等のプログラムモジュールを組み合わせてそれぞれ含んでいてもよい。
【００４３】
なお、検出部１０４およびカバレッジ生成部１０６によるソースコード１１２の実行部分の検出方法およびソースコード１１２の実行済み部分の網羅範囲を示すコードカバレッジ情報の生成方法は、本発明の本質には関わらず、また当業者にとって自明であるので、ここでは詳細な説明は省略する。
【００４４】
カバレッジ表示部１０８は、図２（ｂ）または図３（ｂ）に示すように、各画面１２２および各遷移メソッド１２４（または自画面遷移メソッド１２６を含む）に、生成された各コードカバレッジ情報１３２をそれぞれ対応付けたカバレッジ情報表示画面１３０を表示する。図２（ｂ）または図３（ｂ）では、各画面１２２および各遷移メソッド１２４（または自画面遷移メソッド１２６を含む）に、それぞれ吹き出しイメージが対応付けて表示され、その吹き出しの中にカバレッジ情報１３２が表示されている。この例では、カバレッジ情報１３２は全ての画面１２２および遷移メソッド１２４（または自画面遷移メソッド１２６を含む）について常に表示されているが、これに限定されない。たとえば、カバレッジ情報表示画面１３０上で、通常はカバレッジ情報１３２が表示されなくてもよい。ユーザにより各画面１２２または各遷移メソッド１２４（または自画面遷移メソッド１２６を含む）が選択された場合や、マウスオーバーされた時に、カバレッジ情報１３２が表示されるようにしてもよい。
【００４５】
図５は、本発明の実施の形態に係るアプリケーション開発支援装置１００を実現するコンピュータ６０のハードウェア構成を示すブロック図である。
本実施形態において、図１のアプリケーション開発支援装置１００の各構成要素は、図５に示される任意のコンピュータ６０のハードウェアとソフトウェアの任意の組合せによって実現される。コンピュータ６０は、ＣＰＵ（Central Processing Unit）６２、メモリ６４、メモリ６４にロードされた本図の構成要素を実現するプログラム８０、そのプログラム８０を格納するハードディスクなどの記憶ユニット（ストレージ６６：補助記憶装置）、Ｉ／Ｏ（Input/Output）６８、ネットワーク接続用インタフェース（通信Ｉ／Ｆ（InterFace：インタフェース）７０）を備える。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下に説明する各機能ブロック図は、ハードウェア単位の構成ではなく、機能単位の論理的なブロックを示している。
また、以下の各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
【００４６】
本実施形態において、アプリケーション開発支援装置１００は、たとえば、サーバコンピュータ、パーソナルコンピュータ、またはそれらに相当するコンピュータにより実現することができる。アプリケーション開発支援装置１００を実現するコンピュータ６０は、たとえば、キーボードやマウス等の入力装置７２、ディスプレイ等の表示装置７４、入力装置７２と表示装置７４が一体となったタッチパネル（不図示）、マイクやスピーカ等の音声入出力装置（不図示）、または、プリンタ等の出力装置（不図示）と接続される。
【００４７】
なお、図１７の開発装置２０も、図３で示したコンピュータ６０と同様な構成を有する、サーバコンピュータ、パーソナルコンピュータ、またはそれらに相当するコンピュータにより実現することができる。
【００４８】
コンピュータ６０の各要素は、バス６９を介して互いに接続され、ＣＰＵ６２により各要素とともにアプリケーション開発支援装置１００全体が制御される。コンピュータ６０のＣＰＵ６２が、ストレージ６６に記憶されるプログラム８０をメモリ６４に読み出して実行することにより、アプリケーション開発支援装置１００の図１の各ユニットの各機能を実現することができる。なお、以下の各実施形態においても同様であり、各実施形態のアプリケーション開発支援装置の各ユニットの各機能は、コンピュータ６０のＣＰＵ６２が各実施形態に対応するプログラム８０を実行することにより実現される。
【００４９】
本実施形態のコンピュータプログラム８０は、アプリケーション開発支援装置１００を実現させるためのコンピュータ６０に、アプリケーションの各画面１２２の表示情報および画面１２２間の遷移情報を含む画面設計情報１１０に基づいて、そのアプリケーションの画面遷移図１２０を表示する手順、アプリケーションを動作させて、アプリケーションを実現するプログラムのソースコード１１２の中の実行された部分を検出する手順、画面設計情報１１０および検出する手順による検出結果に基づいて、アプリケーションの画面１２２毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報１３２、およびアプリケーションの遷移（遷移メソッド１２４または自画面遷移メソッド１２６）毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報１３２の少なくともいずれか一方を生成する手順、画面遷移図１２０を表示する手順により表示される画面遷移図１２０上の各画面１２２および各遷移（遷移メソッド１２４または自画面遷移メソッド１２６）の少なくともいずれか一方に、生成された各コードカバレッジ情報１３２をそれぞれ対応付けて表示する手順、を実行させるように記述されている。
【００５０】
本実施形態のコンピュータプログラム８０は、コンピュータ６０で読み取り可能な記録媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラム８０は、記録媒体からコンピュータ６０のメモリ６４にロードされてもよいし、ネットワーク３を通じてコンピュータ６０にダウンロードされ、メモリ６４にロードされてもよい。または、プログラム８０は、記録媒体からコンピュータ６０のストレージ６６に読み込まれて格納された後、メモリ６４にロードされてもよい。
【００５１】
コンピュータプログラム８０を記録する記録媒体は、非一時的な有形のコンピュータ６０が使用可能な媒体を含み、その媒体に、コンピュータ６０が読み取り可能なプログラムコードが埋め込まれる。コンピュータプログラム８０が、コンピュータ６０上で実行されたとき、コンピュータ６０に、アプリケーション開発支援装置１００を実現する以下の制御方法を実行させる。
【００５２】
このように構成された本実施形態のアプリケーション開発支援装置１００のデータ処理方法について、以下説明する。
図６は、本発明の実施の形態に係るアプリケーション開発支援装置１００のデータ処理方法における処理手順を示すフローチャートである。
本発明の実施の形態に係るアプリケーション開発支援装置１００のデータ処理方法は、アプリケーション開発支援装置１００が、アプリケーションの各画面１２２の表示情報および画面１２２間の遷移情報を含む画面設計情報１１０に基づいて、そのアプリケーションの画面遷移図１２０を表示し（ステップＳ１０１）、アプリケーションを動作させて（ステップＳ１０３）、アプリケーションを実現するプログラムのソースコード１１２の中の実行された部分を検出し（ステップＳ１０５）、画面設計情報１１０および実行部分の検出結果に基づいて、アプリケーションの画面１２２毎のソースコード１１２に対する実行済み部分の網羅範囲を示すコードカバレッジ情報１３２、およびアプリケーションの遷移（遷移メソッド１２４または自画面遷移メソッド１２６）毎のソースコード１１２に対する実行済み部分の網羅範囲を示すコードカバレッジ情報１３２の少なくともいずれか一方を生成し（ステップＳ１０７）、画面遷移図１２０上の各画面１２２および各遷移（遷移メソッド１２４または自画面遷移メソッド１２６）の少なくともいずれか一方に、生成された各コードカバレッジ情報１３２をそれぞれ対応付けて表示する（ステップＳ１０９）。
【００５３】
以上説明したように、本実施形態のアプリケーション開発支援装置１００において、検出部１０４がアプリケーションを動作させて、アプリケーションを実現するプログラムのソースコード１１２の中の実行された部分を検出する。そして、カバレッジ生成部１０６が、アプリケーションの画面１２２毎のソースコード１１２に対する実行済み部分の網羅範囲を示すコードカバレッジ情報、およびアプリケーションの遷移メソッド１２４（および自画面遷移メソッド１２６）毎のソースコード１１２に対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成する。そして、カバレッジ表示部１０８が、画面遷移図１２０上の各画面１２２および各遷移メソッド１２４（または自画面遷移メソッド１２６）の少なくともいずれか一方に、生成された各コードカバレッジ情報１３２をそれぞれ対応付けて表示する。
【００５４】
これにより、本発明の実施の形態のアプリケーション開発支援装置１００によれば、画面設計情報１１０に基づく画面遷移図１２０上の各画面１２２および各遷移メソッド１２４（または自画面遷移メソッド１２６）の少なくともいずれか一方について、テストのカバレッジ情報１３２をそれぞれ表示できる。したがって、具体的にアプリケーションのどの画面１２２またはどの遷移メソッド１２４（または自画面遷移メソッド１２６）についてどの程度テストが終了しているのかが視覚的に表示され、直感的に分かりやすい。
【００５５】
（第１の実施の形態の変形態様１）
次に、本発明の第１の実施の形態の変形態様１について説明する。
本実施形態のアプリケーション開発支援装置は、上述したアプリケーション開発支援装置１００とは、カバレッジ情報１３２を閾値に基づいて、区別可能に表示する点で相違する。
本実施形態のアプリケーション開発支援装置は、図１のアプリケーション開発支援装置１００と同様な構成を有するので、本実施形態では図１を用いて説明する。
【００５６】
本実施形態のアプリケーション開発支援装置１００において、カバレッジ表示部１０８は、画面１２２毎または遷移（遷移メソッド１２４および自画面遷移メソッド１２６）毎のコードカバレッジ情報１３２について、閾値に基づいて、区別可能に画面遷移図１２０上に表示させる。
【００５７】
また、アプリケーション開発支援装置１００において、カバレッジ表示部１０８は、個別に設定された、アプリケーションの画面１２２毎のコードカバレッジ情報１３２の表示分けに使用する閾値と、アプリケーションの遷移（遷移メソッド１２４および自画面遷移メソッド１２６）毎のコードカバレッジ情報１３２の表示分けに使用する閾値を用いる。
【００５８】
本実施形態では、カバレッジ情報１３２の表示分けに使用される閾値は、９８％と７０％の２つの値が設定されるものとする。このように、閾値は複数設定できる。たとえば、テスト完了の目安となるカバレッジの閾値（この例では９８％）と、それ以下のカバレッジの達成度合いを段階的に視覚的に区別できるように、少なくとも１つ閾値（この例では７０％）を設定できてもよい。
【００５９】
図７に示すように、カバレッジ情報表示画面１３０では、たとえば、カバレッジが所定の閾値９８％以上で、カバレッジ情報１３２が緑色で表示され（図では破線で示す）、カバレッジが閾値９８％未満で、カバレッジ情報１３２が赤色で表示される（図では実線で示す）。
本実施形態では、色替えにより、表示を区別しているが、これら限定されない。強調表示、網掛け表示、点滅表示、または、３Ｄ（3-Dimensional）表示等、様々な表示手法を用いて区別することができる。
【００６０】
さらに、詳細ボタンの押下による遷移メソッド１２４のカバレッジ情報１３２のように、カバレッジが所定の閾値７０％未満で、カバレッジ情報１３２を強調表示（図では、太線および二重線で示す）してもよい。
【００６１】
また、図では、カバレッジ情報１３２の表示と、各画面１２２、各遷移メソッド１２４、各自画面遷移メソッド１２６の表示の両方を同じように区別して表示しているが、これに限定されない。少なくともいずれか一方の表示を区別できればよい。たとえば、各画面１２２、各遷移メソッド１２４、各自画面遷移メソッド１２６の表示を閾値で区別して表示してもよい。あるいは、カバレッジ情報１３２の表示を閾値で区別して表示してもよい。
【００６２】
さらに、画面１２２のカバレッジ情報１３２と、遷移メソッド１２４のカバレッジ情報１３２と、自画面遷移メソッド１２６のカバレッジの閾値としてそれぞれ異なる値を設定できてもよい。これは、上述したように、画面１２２と、遷移メソッド１２４（または自画面遷移メソッド１２６）を実現するソースコードが、異なるプログラム言語で記述されていることや、プログラムの性質が異なること等から、生成されるカバレッジ情報の内容や精度等が異なることが想定されるためである。
また、閾値は、図１８の設計情報リポジトリ２２に格納されている、アプリケーションの設計書やプロジェクト計画書内で予め指定されていてもよい。カバレッジ表示部１０８が閾値を設計情報リポジトリ２２から取得してもよい。
【００６３】
このように、本実施形態のアプリケーション開発支援装置１００によれば、上記実施形態と同様な効果を奏するとともに、さらに、カバレッジ情報表示画面１３０で、閾値に基づいて、カバレッジ情報１３２を区別可能に表示できるので、視覚的に直感的にテストの達成度合いが分かりやすい。
【００６４】
（第１の実施の形態の変形態様２）
次に、本発明の第１の実施の形態の変形態様２について説明する。
本実施形態のアプリケーション開発支援装置は、上述したアプリケーション開発支援装置１００とは、カバレッジ情報表示画面１３０からソースコードを表示できる点で相違する。
図８は、本発明の実施の形態に係るアプリケーション開発支援装置１４０の論理的な構成を示す機能ブロック図である。
アプリケーション開発支援装置１４０は、図１のアプリケーション開発支援装置１００と同様な構成を有するとともに、さらに、指示受付部１４２と、ソースコード表示部１４４と、を備える。
【００６５】
本実施形態のアプリケーション開発支援装置１４０において、指示受付部１４２は、画面遷移図（カバレッジ情報表示画面１３０）上で、画面１２２毎または遷移（遷移メソッド１２４および自画面遷移メソッド１２６）毎にソースコードの閲覧の指示を受け付ける。
ソースコード表示部１４４は、指示受付部１４２によりコード閲覧指示を受け付けた画面１２２または遷移（遷移メソッド１２４および自画面遷移メソッド１２６）のソースコードを、検出部１０４により検出された、実行済み部分と、それ以外の部分とに区別して表示する。
【００６６】
図９は、本実施形態のアプリケーション開発支援装置１４０によるカバレッジ情報表示画面１３０の一例を示す図である。図１０は、本実施形態のアプリケーション開発支援装置１４０によるソースコード画面１５０の一例を示す図である。
図９に示すように、カバレッジ情報表示画面１３０において、各カバレッジ情報１３２には、リンクが貼られている。カバレッジ情報表示画面１３０でユーザがリンクを選択することで、選択されたカバレッジ情報１３２に対応する画面１２２、遷移メソッド１２４、または自画面遷移メソッド１２６のソースコード１１２を表示するソースコード画面１５０（図１０）が開かれる。ソースコード画面１５０は、たとえば、カバレッジ情報表示画面１３０とは別のウインドウに表示されてもよい。
【００６７】
図１０に示すように、ソースコード画面１５０は、たとえば、テスト動作により実行された実行済み部分（図では、実線で示す）と、実行されていない未実行部分（図では、破線で示す。）と、を色分け等により区別して表示する。
【００６８】
これにより、ユーザは各カバレッジに対応するソースコード１１２を簡単に閲覧でき、実行済みの部分と未実行の部分を区別して確認できる。
なお、本実施形態では、カバレッジ情報１３２にリンクが貼られている例を示したが、ソースコード１１２の閲覧の指示を受け付ける方法は、これに限定されるものではない。カバレッジ情報表示画面１３０上の各画面１２２、各遷移メソッド１２４、および各自画面遷移メソッド１２６を閲覧対象として選択すること（たとえば、右クリックでメニューを開いてコード閲覧を選択する等）で、対応するソースコード１１２の閲覧指示を受け付けてもよい。あるいは、リスト表示（不図示）等の中からコード閲覧対象を選択できる構成としてもよい。
【００６９】
（第２の実施の形態）
次に、本発明の第２の実施の形態に係るアプリケーション開発支援装置およびそのデータ処理方法について、以下説明する。なお、本実施形態のプログラムは、上記実施形態と同様に、アプリケーション開発支援装置のデータ処理方法を少なくとも１つのコンピュータに実行させるものであり、本実施形態での詳細な説明は省略する。
図１１は、本発明の実施の形態に係るアプリケーション開発支援装置２００の論理的な構成を示す機能ブロック図である。
本実施形態のアプリケーション開発支援装置２００は、上記実施形態のアプリケーション開発支援装置１００とは、さらに、アプリケーションのテストを、テストシナリオに基づいて行う点で相違する。そして、本実施形態では、さらに、テストのカバレッジ情報に基づいて、未実行部分をテストするためのテストシナリオを自動生成する。
【００７０】
なお、図１１のアプリケーション開発支援装置２００は、図１のアプリケーション開発支援装置１００の構成は図示されてないが、アプリケーション開発支援装置１００の構成を含んでもよいし、あるいは、各装置は、異なるコンピュータで実現されてもよい。アプリケーション開発支援装置１００の検出部１０４は、本実施形態のアプリケーション開発支援装置２００により生成されるテストシナリオを用いて、アプリケーションをテスト動作させ、アプリケーションを実現するソースコードの中の実行された部分を検出する。そして、本実施形態のアプリケーション開発支援装置２００は、アプリケーション開発支援装置１００で検出された実行済み部分以外のソースコード１１２の未実行部分について、テストシナリオの生成を行う。
【００７１】
本実施形態のアプリケーション開発支援装置２００において、画面設計情報１１０は、アプリケーションの各画面１２２に含まれる、入力操作対象となる入力画面部品に関する設計情報を含む。
アプリケーション開発支援装置２００は、アプリケーションのテストに使用するテストシナリオ２１０を画面設計情報１１０を元に生成するテストシナリオ生成部２０２と、テストシナリオ２１０を用いたテスト動作により検出部１０４が検出した、実行済み部分以外のソースコード１１２の未実行部分を特定する未実行部特定部２０４と、画面１２２毎または遷移（遷移メソッド１２４および自画面遷移メソッド１２６）毎のソースコード１１２の未実行部分において、画面１２２の入力画面部品（テキストボックス、操作ボタン等）の識別情報を抽出して、画面１２２の入力画面部品のうち、テスト未実行のものを特定する画面部品特定部２０６と、を備える。
テストシナリオ生成部２０２は、テスト未実行であると特定された入力画面部品への入力操作を示す入力操作命令（type, clickAndWait等）を少なくとも含むテストシナリオを生成する。
【００７２】
ここで、テストシナリオとは、アプリケーションの動作をテストするために、アプリケーションを利用する際のユーザによる一連の画面操作等をシミュレーションし、その一連の画面操作を定義するものである。テストシナリオとは、具体的なテストデータを伴わない、アプリケーションの動きや画面の遷移の１つの動作パスである。テストシナリオにある１つのテストデータセットに基づいたテストを行うことでテストケースとなる。１つのテストシナリオには、複数のテストケースが存在する。
【００７３】
また、テストケースとは、あるテストシナリオに対し、ある１つのテストデータセットを利用したテストを指す。テストケース毎に具体的な入力テストデータをテストシナリオにインプットすることで得られるべき出力テストデータがそれぞれ存在する。アプリケーションのテストでは、入力テストデータをテストシナリオにインプットして得られた出力がテスト結果を示す。このテスト結果は、テストケースの出力テストデータに基づき、その正否が判定できる。
【００７４】
図１２は、本実施形態のアプリケーション開発支援装置２００がテストするアプリケーションのメイン画面の一例を示す図である。
メイン画面２２０は、図３（ａ）のメイン画面（Ｓ＿０１）に対応し、検索キーとして文字列の入力を受け付けるテキストボックス２２２と、検索の実行指示を受け付ける検索ボタン２２４と、を含む。
【００７５】
この例では、テストシナリオ生成部２０２は、画面設計情報１１０から、メイン画面２２０の入力画面部品として、テキストボックス２２２と、検索ボタン２２４との情報を取得する。テストシナリオ生成部２０２は、各画面１２２の入力画面部品への入力操作を示す入力操作命令が少なくとも含まれるように、テストシナリオ２１０を生成する。テキストボックス２２２への文字入力操作を示す入力操作命令（type）と、検索ボタン２２４の押下操作を示す入力操作命令（clickAndWait）とがテストシナリオ２１０に少なくとも含まれる。
【００７６】
このようにして生成されたテストシナリオ２１０を使用したテスト動作を行った際、未実行部特定部２０４は、検出部１０４により検出された実行済み部分以外のソースコード１１２の未実行部分を特定する。
そして、画面部品特定部２０６が、画面１２２毎または遷移（遷移メソッド１２４および自画面遷移メソッド１２６）毎のソースコード１１２の未実行部分において、画面１２２の入力画面部品（テキストボックス、操作ボタン等）の識別情報を抽出する。そして画面部品特定部２０６が、抽出された画面１２２の入力画面部品のうち、テスト未実行のものを特定する。
テストシナリオ生成部２０２は、テスト未実行であると特定された入力画面部品への入力操作を示す入力操作命令（type, clickAndWait等）を少なくとも含むテストシナリオ２１０を生成する。
【００７７】
このように構成された本実施形態のアプリケーション開発支援装置２００のデータ処理方法について、以下説明する。
図１３は、本発明の実施の形態に係るアプリケーション開発支援装置２００のデータ処理方法における処理手順を示すフローチャートである。
本発明の実施の形態に係るアプリケーション開発支援装置２００のデータ処理方法は、アプリケーション開発支援装置２００が、アプリケーションのテストに使用するテストシナリオ２１０を画面設計情報１１０を元に生成し（ステップＳ２０１）、テストシナリオ２１０を用いたテスト動作により検出部１０４が検出した、実行済み部分以外のソースコード１１２の未実行部分を特定し（ステップＳ２０３）、画面１２２毎または遷移（遷移メソッド１２４および自画面遷移メソッド１２６）毎のソースコード１１２の未実行部分において、画面１２２の入力画面部品（テキストボックス、操作ボタン等）の識別情報を抽出して、画面１２２の入力画面部品のうち、テスト未実行のものを特定する（ステップＳ２０５）。
そして、アプリケーション開発支援装置２００が、テスト未実行であると特定された入力画面部品への入力操作を示す入力操作命令（type, clickAndWait等）を少なくとも含むテストシナリオ２１０を生成する（ステップＳ２０７）。
【００７８】
テストシナリオ生成部２０２は、画面設計情報１１０を元にテストシナリオ２１０を生成しているので、通常は、各画面１２２の入力画面部品への入力操作を示す入力操作命令を少なくとも含むようにテストシナリオ２１０が生成される筈である。しかしながら、テスト途中で画面１２２の仕様が変更になった場合などには、テストシナリオ２１０も仕様変更に応じて変更する必要がある。テストシナリオ生成部２０２は、新たな仕様に基づいて、新たにテストシナリオ２１０を作り直してもよいし、変更箇所に対応する部分のみ追加してテストシナリオ２１０を更新してもよい。あるいは、変更箇所に対応する部分だけをテストするためのテストシナリオ２１０を新たに生成してもよい。
【００７９】
上述したように、テストシナリオ生成部２０２は、テストシナリオ２１０を自動的に生成してもよいが、自動生成する替わりに、入力操作命令をテストシナリオ２１０に手動で追加してもよい。たとえば、テストシナリオ生成部２０２は、テストシナリオ２１０に不足している入力操作命令として、テスト未実行であると特定された入力画面部品への入力操作を示す入力操作命令（type, clickAndWait等）をユーザに提示してもよい。そして、ユーザが、提示された入力操作命令をテストシナリオ２１０に手動で追加してもよい。
【００８０】
このようにして生成されたテストシナリオ２１０を用いてアプリケーションのテストを行うことで、カバレッジを拡げることが可能になる。
【００８１】
以上説明したように、本実施形態のアプリケーション開発支援装置２００において、テストシナリオ生成部２０２が、テストシナリオ２１０を画面設計情報１１０を元に生成する。そして、未実行部特定部２０４が、テストシナリオ２１０を用いたテスト動作により検出部１０４が検出した、実行済み部分以外のソースコード１１２の未実行部分を特定する。そして、画面部品特定部２０６が、画面１２２毎または遷移（遷移メソッド１２４および自画面遷移メソッド１２６）毎のソースコード１１２の未実行部分において、画面１２２の入力画面部品の識別情報を抽出する。さらに、画面部品特定部２０６が、抽出された画面１２２の入力画面部品のうち、テスト未実行のものを特定する。そして、テストシナリオ生成部２０２が、テスト未実行であると特定された入力画面部品への入力操作を示す入力操作命令（type, clickAndWait等）を少なくとも含むテストシナリオ２１０を生成する。
【００８２】
このように、本発明の実施の形態のアプリケーション開発支援装置２００によれば、上記実施形態と同様な効果を奏するとともに、さらに、テスト動作により実行されなかった部分に含まれる、画面１２２の入力画面部品への入力操作を示す入力操作命令を含むようにテストシナリオ２１０を生成できる。これにより、アプリケーション開発支援装置では、生成されたテストシナリオ２１０を用いてテストを行うことで、未実行部分を実行させてテストすることが可能になる。これにより、カバレッジを拡げることができる。
本実施形態では、テストで未実行だった部分について、自動的にテストシナリオ２１０を生成することができるので、テストを効率よく行えるとともに、テストの精度を向上でき、ひいては、アプリケーションの品質と信頼性も向上することができる。
【００８３】
（第２の実施の形態の変形態様１）
次に、本発明の第２の実施の形態の変形態様１について説明する。
本実施形態のアプリケーション開発支援装置は、上述したアプリケーション開発支援装置２００とは、テストで実行されなかった部分を特定し、カバレッジを拡げるために、テストシナリオまたはテストケースの追加をサジェストする機能を有する点で相違する。
図１４は、本発明の実施の形態に係るアプリケーション開発支援装置２３０の論理的な構成を示す機能ブロック図である。
本実施形態のアプリケーション開発支援装置２３０は、図１１のアプリケーション開発支援装置２００と同様な構成を有するとともに、さらに、分岐処理抽出部２３２と、未実行処理特定部２３４と、提示部２３６と、を備える。
【００８４】
アプリケーション開発支援装置２３０において、分岐処理抽出部２３２は、画面１２２毎または遷移（遷移メソッド１２４および自画面遷移メソッド１２６）毎のソースコード１１２において、画面１２２の入力画面部品への入力操作内容に応じた分岐条件に従い実行される各分岐処理を抽出する。
未実行処理特定部２３４は、抽出された分岐条件に従い実行される各分岐処理のうち、未実行部分に対応する、テスト未実行の分岐処理を特定する。
提示部２３６は、画面１２２毎または遷移（遷移メソッド１２４および自画面遷移メソッド１２６）毎のソースコード１１２において、特定されたテスト未実行の分岐処理に対応する、未実行部分を提示する。
【００８５】
具体的には、分岐処理抽出部２３２は、画面１２２毎または遷移（遷移メソッド１２４および自画面遷移メソッド１２６）毎のソースコード１１２の中で、入力画面部品の識別情報が関連するＩＦ文を抽出する。
未実行処理特定部２３４は、抽出されたＩＦ文の分岐条件に従い実行される各分岐処理のうち、未実行部分に対応する、テストが行われていない分岐処理を特定する。
提示部２３６は、各画面１２２、各遷移メソッド１２４、または各自画面遷移メソッド１２６のソースコード１１２について、テストが未実行であると特定された分岐処理に対応する未実行部分を提示する。提示部２３６は、未実行部分だけでなく、未実行部分の前後を含めて提示してもよい。また、提示方法は、未実行部分（またはその前後を含んでもよい）のみを抜粋して表示してもよいし、ソースコード１１２全体を表示させて未実行部分（またはその前後を含んでもよい）のみを強調表示してもよい。未実行部分の提示方法は、これらに限定されない。たとえば、実行部分を折りたたんで非表示にしてもよい。
【００８６】
ユーザは、提示された未実行部分のソースコードを見て、テストシナリオ２１０やテストケースの追加を検討することができる。
このように、本実施形態のアプリケーション開発支援装置２３０は、ユーザに、未実行部分のソースコードを提示して、テストシナリオ２１０やテストケースの不足を認識させ、追加の検討を促すことができる。
【００８７】
本実施形態のアプリケーション開発支援装置２３０において、さらに、テストシナリオ生成部２０２は、ユーザによる入力画面部品への入力操作を示す入力操作命令のテストシナリオ２１０への追加の指示を受け付けてもよい。そして、テストシナリオ生成部２０２は、追加の指示を受け付けた入力操作命令をテストシナリオ２１０に追加する。
【００８８】
テストシナリオ２１０への入力操作命令の追加は、たとえば、オープンソースプログラムのＳｅｌｅｎｉｕｍの機能を用いて行うことができる。
【００８９】
たとえば、ＩＦ文による分岐処理で未実行のものがあった場合には、未実行の分岐処理を実行する分岐条件を満たすデータを入力テストデータとするテストケースを追加すればよい。あるいは、ＩＦ文の全ての分岐処理が未実行であった場合には、そのＩＦ文に関連する入力画面部品への入力操作を示す入力操作命令をテストシナリオ２１０に追加するとともに、各分岐処理を実行する分岐条件を満たすデータを入力テストデータとするテストケースをそれぞれ追加すればよい。
【００９０】
また、提示部２３６は、さらに、未実行部分に対応する、画面設計情報１１０を提示してもよい。
ユーザは、画面設計情報１１０を見ながら、テストシナリオ２１０またはテストケースを追加することができる。
さらに、提示部２３６は、未実行部分のソースコードの中で、入力画面部品に関連するコード部分を強調表示して、ユーザに教えてもよい。
【００９１】
以上説明したように、本実施形態のアプリケーション開発支援装置２３０において、分岐処理抽出部２３２が、画面１２２毎、遷移メソッド１２４毎、および自画面遷移メソッド１２６毎のソースコード１１２において、画面１２２の入力画面部品への入力操作内容に応じた分岐条件に従い実行される各分岐処理を抽出する。そして、未実行処理特定部２３４が、抽出された分岐条件に従い実行される各分岐処理のうち、未実行部分に対応する、テスト未実行の分岐処理を特定する。そして、提示部２３６が、画面１２２毎、遷移メソッド１２４毎、および自画面遷移メソッド１２６毎のソースコード１１２において、特定されたテスト未実行の分岐処理に対応する、未実行部分を提示する。
【００９２】
これにより、本実施形態のアプリケーション開発支援装置２３０によれば、上記実施形態と同様な効果を奏するとともに、さらに、テスト未実行部分のソースコードを抜粋する等して、提示できるので、ユーザは未実行部分に対応するテストシナリオやテストケースの追加を検討することができる。
【００９３】
（第２の実施の形態の変形態様２）
次に、本発明の第２の実施の形態の変形態様２について説明する。
本実施形態のアプリケーション開発支援装置は、図１４のアプリケーション開発支援装置２３０とは、設計情報に基づいてテストケースを自動生成する点で相違する。
図１５は、本発明の実施の形態に係るアプリケーション開発支援装置２５０の論理的な構成を示す機能ブロック図である。
本実施形態のアプリケーション開発支援装置２５０は、図１４のアプリケーション開発支援装置２３０の構成に加え、さらに、属性情報取得部２５２と、テストケース生成部２５４と、を備える。
【００９４】
本実施形態のアプリケーション開発支援装置２５０において、属性情報取得部２５２は、アプリケーションの画面設計情報１１０を元に、テスト未実行であると特定された分岐処理に関連する、入力画面部品に対応する入力項目に関する属性情報を取得する。
テストケース生成部２５４は、取得した入力項目に関する属性情報に基づいて、テスト未実行の分岐処理を実行させる分岐条件を満たすように、アプリケーションのテストシナリオ２１０に基づくテストケース２６０に設定される入力画面部品への入力操作内容を変化させた、テストケース２６０のバリエーションを生成する。
【００９５】
入力項目とは、入力画面部品に割り当てられているデータ項目を指し、たとえば、テキストボックスに紐付けされているデータフィールドに相当する。入力画面部品に対応する入力項目に関する属性情報は、入力画面部品の種類、名称、データフィールドに関する属性情報（データフィールド名（位置）、データ名、データ形式、データ型、データ長、データ範囲（有効または無効）、データ桁数、データ入力が必須か否か等）等を含む。
図１６は、本発明の実施の形態に係るアプリケーション開発支援装置２５０におけるテストシナリオおよびテストケースを説明するための図である。
【００９６】
以下、図１２のメイン画面２２０のテストを例に説明する。メイン画面２２０については、たとえば、検索キーとなる店舗名の一部をテキストボックス２２２に入力し、検索ボタン２２４を押下すると、検索キーを元に検索が行われて、検索結果が表示されることがテストされる。
【００９７】
ここで、たとえば、テキストボックス２２２に入力される文字列について、複数のテストケースで異なる文字列を入力テストデータとして準備することができる。アプリケーションでは、テキストボックス２２２に入力された文字列に応じて、異なる動作が行われるようにプログラムされている。たとえば、テキストボックス２２２に入力される文字列が全角文字でなければならない場合には、入力が全角文字か否かの判定処理が含まれる。そして、全角文字でなかった場合に、入力のやり直しを求める動作が行われるか否かをテストする必要がある。このようなテストを実行するためのテストケースが作成されていないと、この入力が全角文字か否かの判定処理に対応するソースコードはテストで実行されない。
【００９８】
そこで、本実施形態では、ソースコードのテスト未実行の分岐処理を実行させる分岐条件を満たすように、入力テストデータを決めたテストケースを追加する。上記例では、テキストボックス２２２に半角文字を入力するテストケースを追加する。
【００９９】
具体的には、属性情報取得部２５２が、アプリケーションのメイン画面２２０上で、入力操作対象となる入力画面部品（たとえば、テキストボックス２２２）に対応する入力項目に関する属性情報を、アプリケーションの画面設計情報１１０を元に取得する。
【０１００】
ここでは、たとえば、メイン画面２２０のテキストボックス２２２には、検索しようとする店舗名の少なくとも一部が入力される。テキストボックス２２２に対応する入力項目は、店舗情報の店舗名フィールドデータに紐付けられている。店舗名フィールドデータの属性情報として、データ型が文字列型、文字数が全角文字で１〜６文字であることが定義されているとする。また、テキストボックス２２２の属性情報として、受け付け可能な文字列は全角文字で、その文字数が１〜６文字と定義されていてもよい。
属性情報取得部２５２は、この「店舗名」の入力項目の属性情報（データ型が文字列型、文字数が全角文字１〜６文字）を取得する。
【０１０１】
図１６の例では、１列目の各行が、上から順に実行される一連のテスト命令を含んでいる。これがテストシナリオ２１０に相当する。そして、２列目は、各テスト命令の２つのパラメータを上下２つのセルに含んでいて、これが、テストシナリオ２１０のある１つの基準テストケース２６２となっている。
ここで、入力操作命令の入力操作内容は、少なくとも２つのパラメータを含む。たとえば、パラメータ１は、操作対象を示し、画面のどのテキストボックスかを示す。パラメータ２は入力内容を示し、たとえば、何を入力したかを示す。
【０１０２】
そして、テストケース生成部２５４が、入力項目や入力画面部品の属性情報に基づいて、基準テストケース２６２から、テキストボックス２２２への入力操作内容を変換させたバリエーションの派生テストケース２６４を複数生成する。
【０１０３】
ここで、テストケース生成部２５４は、上述したように、テスト未実行の分岐処理を実行させる分岐条件を満たすようなテストケース２６４を生成する。たとえば、テキストボックス２２２への入力内容のチェックを行う分岐処理のうち、文字数オーバー時の処理が未実行であることが未実行処理特定部２３４により特定されたとする。そこで、テストケース生成部２５４は、テキストボックス２２２の入力が文字数オーバーとなるテストケースをさらに追加する。
【０１０４】
具体的には、テストケース生成部２５４は、まず、基準テストケース２６２の列を複製してテストケース２６４を増やす。次に、テストケース生成部２５４は、テスト命令のパラメータをテストケース２６４毎に変更することで、テストケースのバリエーションを簡単に増やすことができる。ここでは、追加したテストケースにおいて、テキストボックス２２２への入力を行う命令（Type）のパラメータ２に、文字数がテキストボックス２２２の許容範囲（６文字）を超える文字列（図では、「東京都新宿３丁目」）を指定する。
【０１０５】
これにより、未実行処理特定部２３４で未実行と特定された分岐処理をテストで実行できるテストケース（Test-1-3）が追加される。
【０１０６】
以上説明したように、本実施形態のアプリケーション開発支援装置２５０において、属性情報取得部２５２が、アプリケーションの画面設計情報１１０を元に、テスト未実行であると特定された分岐処理に関連する、入力画面部品に対応する入力項目に関する属性情報を取得する。そして、テストケース生成部２５４が、取得した入力項目に関する属性情報に基づいて、テスト未実行の分岐処理を実行させる分岐条件を満たすように、アプリケーションのテストシナリオ２１０に基づくテストケース２６０に設定される入力画面部品への入力操作内容を変化させた、テストケース２６０のバリエーションを生成する。
【０１０７】
これにより、本実施形態のアプリケーション開発支援装置２５０によれば、上記実施形態と同様な効果を奏するとともに、さらに、テストできなかった分岐処理に対応する分岐条件を満たすように、入力画面部品に対する入力テストデータを設定したテストケースを自動的に追加することができる。したがって、アプリケーション開発支援装置２５０によれば、テストの効率および精度が向上し、アプリケーションの品質と信頼性も向上することができる。
【０１０８】
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
たとえば、図１１のアプリケーション開発支援装置２００において、画面遷移図１２０上の画面１２２毎または遷移（遷移メソッド１２４および自画面遷移メソッド１２６）毎に、コードカバレッジが閾値以下を示すものを対象として抽出する対象抽出部（不図示）をさらに備えてもよい。
【０１０９】
対象として抽出された画面１２２、遷移メソッド１２４、または自画面遷移メソッド１２６について、未実行部特定部２０４により特定されたソースコード１１２の未実行部分について、テストシナリオ生成部２０２が、アプリケーションのテストシナリオ２１０を自動生成する。
【０１１０】
なお、この対象抽出部は、図１４のアプリケーション開発支援装置２３０、および図１５のアプリケーション開発支援装置２５０の少なくともいずれかの構成と組み合わせてもよい。
【０１１１】
なお、本実施形態の閾値は、第１の実施の形態の変形態様１の表示分けに使用する閾値とは別に設定できてもよいし、同じ閾値を用いてもよい。
また、閾値は、画面１２２、遷移メソッド１２４、自画面遷移メソッド１２６で、それぞれ異なる値を設定できてよい。また、閾値は、図１８の設計情報リポジトリ２２に格納されている、アプリケーションの設計書やプロジェクト計画書等から取得してもよい。
【０１１２】
この構成によれば、カバレッジが閾値以下のものについて、不足している入力操作命令をテストシナリオ２１０に追加して自動生成できるので、テストの効率および精度を向上できる。
【０１１３】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
なお、本発明において利用者に関する情報を取得、利用する場合は、これを適法に行うものとする。
【０１１４】
以下、参考形態の例を付記する。
１．  アプリケーション開発支援装置が、
アプリケーションの各画面の表示情報および前記画面間の遷移情報を含む画面設計情報に基づいて、そのアプリケーションの画面遷移図を表示し、
前記アプリケーションを動作させて、前記アプリケーションを実現するプログラムのソースコードの中の実行された部分を検出し、
前記画面設計情報および前記実行された部分の検出結果に基づいて、前記アプリケーションの画面毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報、および前記アプリケーションの遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成し、
前記画面遷移図上の各画面および各遷移の少なくともいずれか一方に、前記生成された各コードカバレッジ情報をそれぞれ対応付けて表示する、
アプリケーション開発支援装置のデータ処理方法。
２．  前記画面設計情報の前記アプリケーションの前記画面間の遷移情報は、自画面遷移の遷移情報をさらに含み、
前記アプリケーション開発支援装置が、
前記画面設計情報および前記ソースコードの実行部分の検出結果に基づいて、前記アプリケーションの各画面の前記自画面遷移を含む遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報をさらに生成する、
１．に記載のアプリケーション開発支援装置のデータ処理方法。
３．  前記アプリケーション開発支援装置が、
前記画面毎または前記遷移毎の前記コードカバレッジ情報について、閾値に基づいて、区別可能に前記画面遷移図上に表示する、
１．または２．に記載のアプリケーション開発支援装置のデータ処理方法。
４．  前記アプリケーション開発支援装置が、
個別に設定された、前記アプリケーションの前記画面毎の前記コードカバレッジ情報の表示分けに使用する閾値と、前記アプリケーションの前記遷移毎の前記コードカバレッジ情報の表示分けに使用する閾値を用いる、
３．に記載のアプリケーション開発支援装置のデータ処理方法。
５．  前記アプリケーション開発支援装置が、
前記画面遷移図上で、前記画面毎または前記遷移毎に前記ソースコードの閲覧の指示を受け付け、
コード閲覧指示を受け付けた前記画面または前記遷移の前記ソースコードを、検出された、実行済み部分と、それ以外の部分とに区別して表示する、
１．乃至４．いずれか１つに記載のアプリケーション開発支援装置のデータ処理方法。
６．  前記画面設計情報は、前記アプリケーションの各画面に含まれる、入力操作対象となる入力画面部品に関する設計情報を含み、
前記アプリケーション開発支援装置が、
前記アプリケーションのテストに使用するテストシナリオを、前記画面設計情報を元に生成し、
前記テストシナリオを用いたテスト動作により検出した、実行済み部分以外のソースコードの未実行部分を特定し、
前記画面毎または前記遷移毎の前記ソースコードの前記未実行部分において、前記画面の前記入力画面部品の識別情報を抽出して、前記画面の前記入力画面部品のうち、テスト未実行のものを特定し、
前記テスト未実行であると特定された前記入力画面部品への入力操作を示す入力操作命令を少なくとも含むテストシナリオを生成する、
１．乃至５．いずれか一つに記載のアプリケーション開発支援装置のデータ処理方法。
７．  前記アプリケーション開発支援装置が、
前記画面毎または前記遷移毎の前記ソースコードにおいて、前記画面の前記入力画面部品への入力操作内容に応じた分岐条件に従い実行される各分岐処理を抽出し、
抽出された前記分岐条件に従い実行される各分岐処理のうち、前記未実行部分に対応する、テスト未実行の分岐処理を特定し、
前記画面毎または前記遷移毎の前記ソースコードにおいて、特定された前記テスト未実行の分岐処理に対応する、前記未実行部分を提示する、
６．に記載のアプリケーション開発支援装置のデータ処理方法。
８．  前記アプリケーション開発支援装置が、
ユーザによる前記入力画面部品への入力操作を示す入力操作命令の前記テストシナリオへの追加の指示を受け付け、前記追加の指示を受け付けた前記入力操作命令を前記テストシナリオに追加する、
７．に記載のアプリケーション開発支援装置のデータ処理方法。
９．  前記アプリケーション開発支援装置が、
前記アプリケーションの画面設計情報を元に、前記テスト未実行であると特定された分岐処理に関連する、前記入力画面部品に対応する入力項目に関する属性情報を取得し、
取得した前記入力項目に関する属性情報に基づいて、前記テスト未実行の前記分岐処理を実行させる分岐条件を満たすように、前記アプリケーションの前記テストシナリオに基づくテストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストケースのバリエーションを生成する、
７．または８．に記載のアプリケーション開発支援装置のデータ処理方法。
１０．  前記アプリケーション開発支援装置が、
前記画面遷移図上の前記画面毎または前記遷移毎に、前記コードカバレッジが閾値以下を示すものを対象として抽出し、
前記対象として抽出された前記画面または前記遷移について、
特定された前記ソースコードの前記未実行部分に関し、前記アプリケーションのテストシナリオを生成する、
６．乃至９．いずれか一つに記載のアプリケーション開発支援装置のデータ処理方法。
【０１１５】
１１．  コンピュータに、
アプリケーションの各画面の表示情報および前記画面間の遷移情報を含む画面設計情報に基づいて、そのアプリケーションの画面遷移図を表示する手順、
前記アプリケーションを動作させて、前記アプリケーションを実現するプログラムのソースコードの中の実行された部分を検出する手順、
前記画面設計情報および前記検出する手順による検出結果に基づいて、前記アプリケーションの画面毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報、および前記アプリケーションの遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成する手順、
前記画面遷移図を表示する手順により表示される前記画面遷移図上の各画面および各遷移の少なくともいずれか一方に、前記生成された各コードカバレッジ情報をそれぞれ対応付けて表示する手順、を実行させるためのプログラム。
１２．  前記画面設計情報の前記アプリケーションの前記画面間の遷移情報は、自画面遷移の遷移情報をさらに含み、
前記画面設計情報および前記検出する手順による検出結果に基づいて、前記アプリケーションの各画面の前記自画面遷移を含む遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報をさらに生成する手順、
をコンピュータに実行させるための１１．に記載のプログラム。
１３．  前記画面毎または前記遷移毎の前記コードカバレッジ情報について、閾値に基づいて、区別可能に前記画面遷移図上に表示する手順、
をコンピュータに実行させるための１１．または１２．に記載のプログラム。
１４．  個別に設定された、前記アプリケーションの前記画面毎の前記コードカバレッジ情報の表示分けに使用する閾値と、前記アプリケーションの前記遷移毎の前記コードカバレッジ情報の表示分けに使用する閾値を用いて、前記コードカバレッジ情報を表示する手順、
をコンピュータに実行させるための１３．に記載のプログラム。
１５．  前記画面遷移図上で、前記画面毎または前記遷移毎に前記ソースコードの閲覧の指示を受け付ける手順、
コード閲覧指示を受け付けた前記画面または前記遷移の前記ソースコードを、前記検出する手順により検出された、実行済み部分と、それ以外の部分とに区別して表示する手順、
をコンピュータに実行させるための１１．乃至１４．いずれか１つに記載のプログラム。
１６．  前記画面設計情報は、前記アプリケーションの各画面に含まれる、入力操作対象となる入力画面部品に関する設計情報を含み、
前記アプリケーションのテストに使用するテストシナリオを、前記画面設計情報を元に生成する手順、
前記テストシナリオを用いたテスト動作により検出した、実行済み部分以外のソースコードの未実行部分を特定する手順、
前記画面毎または前記遷移毎の前記ソースコードの前記未実行部分において、前記画面の前記入力画面部品の識別情報を抽出して、前記画面の前記入力画面部品のうち、テスト未実行のものを特定する手順、
前記テスト未実行であると特定された前記入力画面部品への入力操作を示す入力操作命令を少なくとも含むテストシナリオを生成する手順、
をコンピュータに実行させるための１１．乃至１５．いずれか一つに記載のプログラム。
１７．  前記画面毎または前記遷移毎の前記ソースコードにおいて、前記画面の前記入力画面部品への入力操作内容に応じた分岐条件に従い実行される各分岐処理を抽出する手順、
抽出された前記分岐条件に従い実行される各分岐処理のうち、前記未実行部分に対応する、テスト未実行の分岐処理を特定する手順、
前記画面毎または前記遷移毎の前記ソースコードにおいて、特定された前記テスト未実行の分岐処理に対応する、前記未実行部分を提示する手順、
をコンピュータに実行させるための１６．に記載のプログラム。
１８．  前記テストシナリオを生成する手順において、
ユーザによる前記入力画面部品への入力操作を示す入力操作命令の前記テストシナリオへの追加の指示を受け付け、前記追加の指示を受け付けた前記入力操作命令を前記テストシナリオに追加する手順、
をコンピュータに実行させるための１７．に記載のプログラム。
１９．  前記アプリケーションの画面設計情報を元に、前記テスト未実行であると特定された分岐処理に関連する、前記入力画面部品に対応する入力項目に関する属性情報を取得する手順、
取得した前記入力項目に関する属性情報に基づいて、前記テスト未実行の前記分岐処理を実行させる分岐条件を満たすように、前記アプリケーションの前記テストシナリオに基づくテストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストケースのバリエーションを生成する手順、
をコンピュータに実行させるための１７．または１８に記載のプログラム。
２０．  前記画面遷移図上の前記画面毎または前記遷移毎に、前記コードカバレッジが閾値以下を示すものを対象として抽出する手順、
前記対象として抽出された前記画面または前記遷移について、
特定された前記ソースコードの前記未実行部分に関し、前記アプリケーションのテストシナリオを生成する手順、
をコンピュータに実行させるための１６．乃至１９．いずれか一つに記載のプログラム。
【符号の説明】
【０１１６】
１  アプリケーション開発システム
３  ネットワーク
２０  開発装置
２２  設計情報リポジトリ
３０  ウェブサーバ
３２  ウェブアプリケーション
４０、４０ａ、４０ｂ  端末
４２  ブラウザ
６０  コンピュータ
６２  ＣＰＵ
６４  メモリ
６６  ストレージ
６９  バス
７０  通信Ｉ／Ｆ
７２  入力装置
７４  表示装置
８０  プログラム
１００  アプリケーション開発支援装置
１０２  画面遷移図表示部
１０４  検出部
１０６  カバレッジ生成部
１０８  カバレッジ表示部
１１０  画面設計情報
１１２  ソースコード
１２０  画面遷移図
１２２  画面
１２４  遷移メソッド
１２６  自画面遷移メソッド
１３０  カバレッジ情報表示画面
１３２  カバレッジ情報
１４０  アプリケーション開発支援装置
１４２  指示受付部
１４４  ソースコード表示部
１５０  ソースコード画面
２００  アプリケーション開発支援装置
２０２  テストシナリオ生成部
２０４  未実行部特定部
２０６  画面部品特定部
２１０  テストシナリオ
２２０  メイン画面
２２２  テキストボックス
２２４  検索ボタン
２３０  アプリケーション開発支援装置
２３２  分岐処理抽出部
２３４  未実行処理特定部
２３６  提示部
２５０  アプリケーション開発支援装置
２５２  属性情報取得部
２５４  テストケース生成部
２６０  テストケース
２６２  基準テストケース
２６４  派生テストケース
【図１】
0006354457.tif 000002
【図２】
0006354457.tif 000003
【図３】
0006354457.tif 000004
【図４】
0006354457.tif 000005
【図５】
0006354457.tif 000006
【図６】
0006354457.tif 000007
【図７】
0006354457.tif 000008
【図８】
0006354457.tif 000009
【図９】
0006354457.tif 000010
【図１０】
0006354457.tif 000011
【図１１】
0006354457.tif 000012
【図１２】
0006354457.tif 000013
【図１３】
0006354457.tif 000014
【図１４】
0006354457.tif 000015
【図１５】
0006354457.tif 000016
【図１６】
0006354457.tif 000017
【図１７】
0006354457.tif 000018
【図１８】
0006354457.tif 000019