JP2016048471A - アプリケーション開発支援装置、そのデータ処理方法、およびプログラム - Google Patents

アプリケーション開発支援装置、そのデータ処理方法、およびプログラム Download PDF

Info

Publication number
JP2016048471A
JP2016048471A JP2014173227A JP2014173227A JP2016048471A JP 2016048471 A JP2016048471 A JP 2016048471A JP 2014173227 A JP2014173227 A JP 2014173227A JP 2014173227 A JP2014173227 A JP 2014173227A JP 2016048471 A JP2016048471 A JP 2016048471A
Authority
JP
Japan
Prior art keywords
screen
application
transition
information
coverage
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.)
Granted
Application number
JP2014173227A
Other languages
English (en)
Other versions
JP6354457B2 (ja
Inventor
亨 青柳
Toru Aoyanagi
亨 青柳
隆幸 開
Takayuki Kai
隆幸 開
良太 橋本
Ryota Hashimoto
良太 橋本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP2014173227A priority Critical patent/JP6354457B2/ja
Publication of JP2016048471A publication Critical patent/JP2016048471A/ja
Application granted granted Critical
Publication of JP6354457B2 publication Critical patent/JP6354457B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】アプリケーションの開発を支援する技術を提供する。
【解決手段】アプリケーション開発支援装置100は、アプリケーションの各画面の表示情報および画面間の遷移情報を含む画面設計情報110に基づいて、そのアプリケーションの画面遷移図120を表示する画面遷移図表示部102と、アプリケーションを動作させて、アプリケーションを実現するプログラムのソースコード112の中の実行された部分を検出する検出部104と、画面設計情報110および検出部104による検出結果に基づいて、画面毎および遷移毎の少なくともいずれか一方に、ソースコード112に対する実行済み部分の網羅範囲を示すコードカバレッジ情報を生成するカバレッジ生成部106と、画面遷移図表示部102により表示される画面遷移図上の各画面または各遷移に、生成された各コードカバレッジ情報をそれぞれ対応付けて表示するカバレッジ表示部108と、を備える。
【選択図】図1

Description

本発明は、アプリケーション開発支援装置、そのデータ処理方法、およびプログラムに関する。
ウェブアプリケーションに関するテストケースおよびテストデータを自動的に生成する技術の一例が特許文献1に記載されている。このテストケース生成装置は、画面遷移定義情報からテストケース生成の対象画面を取得し、画面構成情報からテスト対象カラムを取得し、データ定義情報からテスト対象カラムに対する制約を取得し、テスト対象カラムに対する制約とテストケーステンプレートをマッチングさせ、テストケースとテストデータを生成する。
特開2006−260390号公報
特許文献1に記載の技術では、自動で生成されたテストケースが適切な範囲で設定されているか、漏れがないか、等が、直感的には分かりにくく、精査に時間がかかるといった問題点があった。テストケースの網羅性の確認を疎かにしてしまうと、テストの精度が低くなり、アプリケーションの信頼性を維持することができない。
一般的に、テスト動作によって、ソースコードのどの部分が実行されたかを検査し、その結果から網羅範囲を示すカバレッジが取得される。このカバレッジ情報は、テストの完成度やテスト結果の信頼度の指標の一部に用いられている。テストケースを適切な範囲で漏れなく作成することで、コードカバレッジを拡げ、効率的なテストを実施でき、テスト結果の信頼度を向上できる。高い信頼性を確保できるテストを効率よく実施することは、アプリケーション開発の全体工数を削減することにも繋がる。
本発明は上記事情に鑑みてなされたものであり、その目的とするところは、アプリケーションの開発を支援するアプリケーション開発支援装置、そのデータ処理方法、およびプログラムを提供することにある。
本発明の各側面では、上述した課題を解決するために、それぞれ以下の構成を採用する。
第一の側面は、アプリケーション開発支援装置に関する。
第一の側面に係るアプリケーション開発支援装置は、
アプリケーションの各画面の表示情報および前記画面間の遷移情報を含む画面設計情報に基づいて、そのアプリケーションの画面遷移図を表示する画面遷移図表示手段と、
前記アプリケーションを動作させて、前記アプリケーションを実現するプログラムのソースコードの中の実行された部分を検出する検出手段と、
前記画面設計情報および前記検出手段による検出結果に基づいて、前記アプリケーションの画面毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報、および前記アプリケーションの遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成するカバレッジ生成手段と、
前記画面遷移図表示手段により表示される前記画面遷移図上の各画面および各遷移の少なくともいずれか一方に、前記生成された各コードカバレッジ情報をそれぞれ対応付けて表示するカバレッジ表示手段と、を有する。
第二の側面は、少なくとも1つのコンピュータにより実行されるアプリケーション開発支援装置のデータ処理方法に関する。
第二の側面に係るアプリケーション開発支援装置のデータ処理方法は、
アプリケーション開発支援装置が、
アプリケーションの各画面の表示情報および前記画面間の遷移情報を含む画面設計情報に基づいて、そのアプリケーションの画面遷移図を表示し、
前記アプリケーションを動作させて、前記アプリケーションを実現するプログラムのソースコードの中の実行された部分を検出し、
前記画面設計情報および前記実行部分の検出結果に基づいて、前記アプリケーションの画面毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報、および前記アプリケーションの遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成し、
前記画面遷移図上の各画面および各遷移の少なくともいずれか一方に、前記生成された各コードカバレッジ情報をそれぞれ対応付けて表示する、ことを含む。
なお、本発明の他の側面としては、上記第二の側面の方法を少なくとも1つのコンピュータに実行させるプログラムであってもよいし、このようなプログラムを記録したコンピュータが読み取り可能な記録媒体であってもよい。この記録媒体は、非一時的な有形の媒体を含む。
このコンピュータプログラムは、コンピュータにより実行されたとき、コンピュータに、アプリケーション開発支援装置上で、そのデータ処理方法を実施させるコンピュータプログラムコードを含む。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施するときには、その複数の手順の順番は内容的に支障のない範囲で変更することができる。
さらに、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
上記各側面によれば、アプリケーションの開発を支援する技術を提供することができる。
本発明の実施の形態に係るアプリケーション開発支援装置の構成を論理的に示す機能ブロック図である。 本実施形態のアプリケーション開発支援装置の開発支援対象のアプリケーションの画面遷移図の例を示す図である。 本実施形態のアプリケーション開発支援装置の開発支援対象のアプリケーションの画面遷移図の例を示す図である。 本実施形態のアプリケーション開発支援装置の開発支援対象のアプリケーションの画面毎および遷移毎のソースコードを説明するための図である。 本発明の実施の形態に係るアプリケーション開発支援装置を実現するコンピュータのハードウェア構成を示すブロック図である。 本発明の実施の形態に係るアプリケーション開発支援装置のデータ処理方法における処理手順を示すフローチャートである。 本実施形態のアプリケーション開発支援装置の開発支援対象のアプリケーションのテスト時のカバレッジ情報表示画面の表示例を示す図である。 本発明の実施の形態に係るアプリケーション開発支援装置の構成を論理的に示す機能ブロック図である。 本実施形態のアプリケーション開発支援装置によるカバレッジ情報表示画面の一例を示す図である。 本実施形態のアプリケーション開発支援装置によるソースコード画面の一例を示す図である。 本発明の実施の形態に係るアプリケーション開発支援装置の構成を論理的に示す機能ブロック図である。 本実施形態のアプリケーション開発支援装置がテストするアプリケーションのメイン画面の一例を示す図である。 本発明の実施の形態に係るアプリケーション開発支援装置のデータ処理方法における処理手順を示すフローチャートである。 本発明の実施の形態に係るアプリケーション開発支援装置の構成を論理的に示す機能ブロック図である。 本発明の実施の形態に係るアプリケーション開発支援装置の構成を論理的に示す機能ブロック図である。 本発明の実施の形態に係るアプリケーション開発支援装置におけるテストシナリオおよびテストケースを説明するための図である。 本発明の実施の形態に係るアプリケーション開発支援装置を利用するアプリケーション開発システムの構成の一例を示すブロック図である。 本実施形態のアプリケーション開発支援装置を含む開発システムにより開発されたアプリケーションを利用したシステムの構成の一例を示すブロック図である。
以下、本発明の実施の形態について、図面を用いて説明する。尚、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
(第1の実施の形態)
本発明の第1の実施の形態に係るアプリケーション開発支援装置、そのデータ処理方法およびプログラムについて、以下説明する。
図1は、本発明の実施の形態に係るアプリケーション開発支援装置100の構成を論理的に示す機能ブロック図である。
本発明の実施の形態に係るアプリケーション開発支援装置100は、アプリケーションの各画面の表示情報および画面間の遷移情報を含む画面設計情報110に基づいて、そのアプリケーションの画面遷移図120を表示する画面遷移図表示部102と、アプリケーションを動作させて、アプリケーションを実現するプログラムのソースコード112の中の実行された部分を検出する検出部104と、画面設計情報110および検出部104による検出結果に基づいて、アプリケーションの画面毎のソースコード112に対する実行済み部分の網羅範囲を示すコードカバレッジ情報、およびアプリケーションの遷移毎のソースコード112に対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成するカバレッジ生成部106と、画面遷移図表示部102により表示される画面遷移図上の各画面および各遷移の少なくともいずれか一方に、生成された各コードカバレッジ情報をそれぞれ対応付けて表示するカバレッジ表示部108と、を備える。
本発明のアプリケーション開発支援装置は、アプリケーションの開発を支援する装置である。本実施形態では、アプリケーション開発支援装置100が開発するアプリケーションとして、ウェブアプリケーションを例に説明する。
本発明の開発対象となるアプリケーションは、ウェブアプリケーションに限定されるものではない。たとえば、サーバ、データベース、および端末の全てがユーザ側に含まれる、企業内のシステム等も開発対象となり得る。
また、本実施形態のアプリケーション開発支援装置100は、図17に示すような、アプリケーション開発システム1において、開発装置20の一部の機能として組み込むことができる。
図17は、本発明の実施の形態に係るアプリケーション開発支援装置100を利用するアプリケーション開発システム1の構成の一例を示すブロック図である。
本発明の実施の形態に係るアプリケーション開発システム1において、開発装置20は、ウェブサーバ30で動作するウェブアプリケーション32の開発を行う装置である。ウェブアプリケーション32は、端末40によりブラウザ42を経由してインターネット等のネットワーク3を介して利用される。
ウェブアプリケーション32は、たとえば、端末40のブラウザ42上に画面を表示させ、画面上での入力および操作を受け付ける。そして、ウェブアプリケーション32が、入力操作に基づく処理を実行し、必要に応じてデータベース(DB:DataBase)24を参照し、結果得られたデータに基づき形成される画面を端末40のブラウザ42上に表示させる。
開発装置20は、画面設計情報110と、プログラムのソースコード112等を設計情報リポジトリ22に記憶する。そして、開発装置20は、これらの情報を元に、仕様書や設計書を作成し、プログラムを生成し、テストを行い、ウェブアプリケーション32を完成させる。
図18は、本実施形態のアプリケーション開発支援装置100を含む開発システムにより開発されたアプリケーションを利用したシステムの構成の一例を示すブロック図である。
生成されたウェブアプリケーション32は、たとえば、図18に示すように、ウェブサーバ30上で動作する。そして、ウェブアプリケーション32は、ネットワーク3を介して端末40(図では、複数の端末40a、40bを示す。特に、区別する必要がない場合は、端末40と呼ぶ。)にてブラウザ42経由で利用される。
なお、ブラウザ42の種類は、特に限定されず、端末40毎に異なる種類のブラウザ42を用いてもよい。また、端末40の種類、たとえば、OS(Operating System)等の種類も限定されず、異なる種類のOSで動作する端末40が混在してもよい。
なお、図では、ウェブアプリケーション32は、ウェブサーバ30上にのみ存在するように示されているが、端末40とウェブサーバ30とが協働してウェブアプリケーション32を動作させる。
具体的には、端末40のブラウザ42からインターネット等のネットワーク3を介してウェブサーバ30のウェブページを表示させた時、ウェブアプリケーション32に含まれる一部のプログラムが端末40にダウンロードされる。この一部のプログラムは、ブラウザ42上で動作する、Java(登録商標)言語等のプログラミング言語で記述される。そして、その一部のプログラムが、端末40のブラウザ42上で、ウェブサーバ30上のウェブアプリケーション32と協働して動作する。
端末40からブラウザ42経由で利用されるウェブアプリケーション32のウェブサーバ30上で動作等は公知であり、本発明の本質に関わらないので詳細な説明は省略する。
開発装置20で開発されたウェブアプリケーション32は、テストされた後、実機のウェブサーバ30に配備され、利用することができる。
本発明において、ウェブアプリケーション32は、業務用アプリケーションを含むことができる。業務アプリケーションとは、企業の情報システムにおいて、企業活動の業務内容と直接関連のある販売、在庫管理、受注、流通、経費管理、資金管理、人財管理、書類管理などの情報処理やサービスを扱うシステムを実現するアプリケーションプログラムである。
図1に戻り、画面設計情報110とは、アプリケーション開発を行う際に、アプリケーションの画面構成、画面遷移、および各画面の部品(画面構成要素)配置、そのレイアウト、各画面構成要素の属性などを定義した情報を含む。また、各画面構成要素の属性は、画面構成要素に対するチェック機能に関する情報、たとえば、入力必須や英文字のみ入力可、および電話番号形式入力のみ許可等の情報を含む。
画面遷移図表示部102により表示される画面遷移図120は、画面122および画面122間の遷移(遷移メソッド124)の情報が含まれる。
図2は、本実施形態のアプリケーション開発支援装置100の開発支援対象のアプリケーションの画面遷移図の例を示す図である。
図2(a)の画面遷移図120では、アプリケーションが、3つの画面122を有することが示されている。さらに、たとえば、メイン画面(S_01)では、選択ボタンの押下による遷移メソッド124により、情報画面(S_02)へ遷移することが示されている。画面遷移図120において、画面122間の遷移メソッド124は、遷移のトリガとなる操作ボタンの名称(bt_02)と、遷移方向を示す矢印で示されている。
同様に、情報画面(S_02)では、詳細ボタンの押下による遷移メソッド124により、詳細画面(S_03)に遷移することと、戻るボタンの押下による遷移メソッド124により、メイン画面(S_01)に戻ることが示されている。
そして、図2(b)に示すように、カバレッジ情報表示画面130上には、各画面122および各遷移メソッド124についてカバレッジ情報132が対応付けて表示される。なお、図2(b)では、各画面122と各遷移メソッド124の両方についてカバレッジ情報132が対応付けて表示されているが、画面122および遷移メソッド124の少なくともいずれか一方のカバレッジ情報132が表示されてもよい。
また、アプリケーションの各画面122の遷移メソッド124が、自画面遷移を含んでもよい。
本実施形態のアプリケーション開発支援装置100において、画面設計情報110のアプリケーションの画面122間の遷移情報は、自画面遷移の遷移情報をさらに含む。
カバレッジ生成部106は、画面設計情報110および検出部104による検出結果に基づいて、アプリケーションの各画面122の自画面遷移を含む遷移毎のソースコード112に対する実行済み部分の網羅範囲を示すコードカバレッジ情報をさらに生成する。
そして、カバレッジ表示部108が、自画面遷移メソッド126についてもカバレッジ情報132を対応付けて表示する。
図3は、本実施形態のアプリケーション開発支援装置100の開発支援対象のアプリケーションの画面遷移図の例を示す図である。
図3(a)に示すように、画面遷移図120では、たとえば、メイン画面(S_01)で、検索ボタンの押下による遷移(自画面遷移メソッド126)により、検索処理を行い、その結果を表示する自画面(メイン画面)(S_01)へ遷移することが示されている。
そして、図3(b)に示すように、カバレッジ情報表示画面130上には、自画面遷移メソッド126についても、カバレッジ情報132が対応付けて表示される。
本実施形態において、上述した図17のアプリケーション開発システム1の開発装置20では、たとえば、図2(a)または図3(a)のような画面遷移図120を作成する機能を有する。さらに、開発装置20で、各画面122および各遷移メソッド124(自画面遷移メソッド126を含む)の詳細設計情報を入力することで、画面設計情報110が設計情報リポジトリ22に記憶される。そして、アプリケーション開発システム1では、これらの情報を元に、アプリケーションのソースコードの生成、実行モジュールの生成、テスト、そして実機への移行までの処理を行うことができる。さらに、各工程に関連するドキュメントの作成も、これらの情報を元に行うことができる。つまり、設計時に作成された画面遷移図120に関する情報を含む画面設計情報110は、そのまま、アプリケーションの設計書になるとともに、さらに、ソースコードの生成、実行モジュールの生成、テストシナリオの作成、テスト仕様書の作成、テストの実行、および、テスト結果報告書の作成に使用される。したがって、アプリケーションの設計とテスト結果と実機プログラムの間での内容の乖離を防ぐことができる。
本実施形態において、画面遷移図表示部102は、開発装置20により作成されて設計情報リポジトリ22に記憶された画面設計情報110を元に画面遷移図120を表示する。
画面遷移図120に含まれる画面122や遷移メソッド124に関する情報は、上述したように、設計時に画面遷移図120を生成する際に、詳細情報が決められ、画面設計情報110として設計情報リポジトリ22に記憶される。
画面122に関する表示情報は、たとえば、各画面122のID、名称、種類(たとえば、ページ、またはポップアップ等)と、画面のデザイン(背景の属性情報、レイアウト、テキストコンテンツの内容、文字の属性情報(サイズ、フォント、色等)、画像ファイルの属性情報(ファイルのパス、表示サイズ等)等)、入力画面部品等の属性情報を含む。
入力画面部品とは、入力または選択される内容または操作指示を受け付けるためのGUI(Graphical User Interface)コンポーネントや、データを出力するコンポーネントを含む各種の画面構成要素のうち、入力(または選択)に関する部品を指す。たとえば、入力画面部品としては、テキストボックス、コンボボックス、リストボックス、プルダウンメニュー(ドロップダウンメニュー)、コンテキストメニュー、チェックボタン、ラジオボタン等が例示される。入力画面部品にて入力または選択される入力内容は、文字列、数値、および配列データ等を含む。
また、遷移メソッド124に関する遷移情報は、画面122間の関係に関する情報が含まれる。遷移情報は、たとえば、遷移のトリガとなる遷移元の画面内の画面部品の情報(IDまたは名称)、遷移元の画面と遷移先の画面のIDまたは名称、遷移後の画面の種類(たとえば、ページ、またはポップアップ等)、遷移分岐の条件等の属性情報を含む。
本発明において、検出部104は、アプリケーションをテスト動作させて、アプリケーションを実現するプログラムのソースコード112の中の実行された部分を検出する。テストでは、たとえば、画面122の表示内容、操作に応じた動作、エラー時の処理等について確認する。
カバレッジ生成部106は、画面設計情報110および検出部104による検出結果に基づいて、アプリケーションの画面122毎のソースコード112の実行済み部分の網羅範囲を示すコードカバレッジ情報を生成する。さらに、カバレッジ生成部106は、アプリケーションの遷移メソッド124毎のソースコード112の実行済み部分の網羅範囲を示すコードカバレッジ情報を生成する。
ここで、本実施形態において、画面122毎のコードカバレッジ情報は、例として、画面122毎に、各画面122に対応するソースコード112のライン総数に対する、実行済み部分のライン数の百分率を算出した値を含む。本実施形態では、各画面122のソースコード112とは、その画面122内で閉じている処理を実現する際に実行されるプログラムのソースコードである。たとえば、アプリケーションにおける、画面122を表示する処理と、画面122上での操作(入力)受付処理とを含む。そのソースコード112は、たとえば、JSP(JavaServer Pages)で記述されるが、これに限定されない。たとえば、画面122上での入力内容について誤入力があった時、新たな画面122への遷移を行なわずに、再入力を求める表示を同じ画面122上で行うような処理は、画面122に対応するソースコード112で実現される。
また、遷移メソッド124毎のコードカバレッジ情報は、例として、遷移メソッド124毎に、各遷移メソッド124を実現するためのソースコード112のライン総数に対する、実行済み部分のライン数の百分率を算出した値を含む。本実施形態では、各遷移メソッド124のソースコード112とは、画面122間の遷移を伴う処理を実現する際に実行されるプログラムのソースコードである。たとえば、条件成立または操作ボタンの押下受け付け等により画面遷移を行う条件分岐処理を含む。そのソースコード112は、たとえば、Javaサーブレット、またはBean(Java Bean)により記述されるが、これらに限定されない。
図4に示すように、ウェブアプリケーション32は、たとえば、各画面122を実現するJSPのソースコード112、および各遷移メソッド124(自画面遷移メソッド126を含む)を実現するJavaサーブレットのソースコード112から生成される実行モジュールを呼び出して動作する。
ここで、各画面122または各遷移メソッド124(自画面遷移メソッド126を含む)に対応する実行モジュール(プログラム)は、それぞれ個別のプログラムで構成されてもよい。あるいは、複数画面122または複数遷移メソッド124(自画面遷移メソッド126を含む)に対応する実行モジュール(プログラム)をまとめて1つのプログラムとして構成されてもよい。また、各画面122または各遷移メソッド124(自画面遷移メソッド126を含む)に対応する実行モジュール(プログラム)が、複数の関数、クラス、サブルーチン等のプログラムモジュールを組み合わせてそれぞれ含んでいてもよい。
なお、検出部104およびカバレッジ生成部106によるソースコード112の実行部分の検出方法およびソースコード112の実行済み部分の網羅範囲を示すコードカバレッジ情報の生成方法は、本発明の本質には関わらず、また当業者にとって自明であるので、ここでは詳細な説明は省略する。
カバレッジ表示部108は、図2(b)または図3(b)に示すように、各画面122および各遷移メソッド124(または自画面遷移メソッド126を含む)に、生成された各コードカバレッジ情報132をそれぞれ対応付けたカバレッジ情報表示画面130を表示する。図2(b)または図3(b)では、各画面122および各遷移メソッド124(または自画面遷移メソッド126を含む)に、それぞれ吹き出しイメージが対応付けて表示され、その吹き出しの中にカバレッジ情報132が表示されている。この例では、カバレッジ情報132は全ての画面122および遷移メソッド124(または自画面遷移メソッド126を含む)について常に表示されているが、これに限定されない。たとえば、カバレッジ情報表示画面130上で、通常はカバレッジ情報132が表示されなくてもよい。ユーザにより各画面122または各遷移メソッド124(または自画面遷移メソッド126を含む)が選択された場合や、マウスオーバーされた時に、カバレッジ情報132が表示されるようにしてもよい。
図5は、本発明の実施の形態に係るアプリケーション開発支援装置100を実現するコンピュータ60のハードウェア構成を示すブロック図である。
本実施形態において、図1のアプリケーション開発支援装置100の各構成要素は、図5に示される任意のコンピュータ60のハードウェアとソフトウェアの任意の組合せによって実現される。コンピュータ60は、CPU(Central Processing Unit)62、メモリ64、メモリ64にロードされた本図の構成要素を実現するプログラム80、そのプログラム80を格納するハードディスクなどの記憶ユニット(ストレージ66:補助記憶装置)、I/O(Input/Output)68、ネットワーク接続用インタフェース(通信I/F(InterFace:インタフェース)70)を備える。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。以下に説明する各機能ブロック図は、ハードウェア単位の構成ではなく、機能単位の論理的なブロックを示している。
また、以下の各図において、本発明の本質に関わらない部分の構成については省略してあり、図示されていない。
本実施形態において、アプリケーション開発支援装置100は、たとえば、サーバコンピュータ、パーソナルコンピュータ、またはそれらに相当するコンピュータにより実現することができる。アプリケーション開発支援装置100を実現するコンピュータ60は、たとえば、キーボードやマウス等の入力装置72、ディスプレイ等の表示装置74、入力装置72と表示装置74が一体となったタッチパネル(不図示)、マイクやスピーカ等の音声入出力装置(不図示)、または、プリンタ等の出力装置(不図示)と接続される。
なお、図17の開発装置20も、図3で示したコンピュータ60と同様な構成を有する、サーバコンピュータ、パーソナルコンピュータ、またはそれらに相当するコンピュータにより実現することができる。
コンピュータ60の各要素は、バス69を介して互いに接続され、CPU62により各要素とともにアプリケーション開発支援装置100全体が制御される。コンピュータ60のCPU62が、ストレージ66に記憶されるプログラム80をメモリ64に読み出して実行することにより、アプリケーション開発支援装置100の図1の各ユニットの各機能を実現することができる。なお、以下の各実施形態においても同様であり、各実施形態のアプリケーション開発支援装置の各ユニットの各機能は、コンピュータ60のCPU62が各実施形態に対応するプログラム80を実行することにより実現される。
本実施形態のコンピュータプログラム80は、アプリケーション開発支援装置100を実現させるためのコンピュータ60に、アプリケーションの各画面122の表示情報および画面122間の遷移情報を含む画面設計情報110に基づいて、そのアプリケーションの画面遷移図120を表示する手順、アプリケーションを動作させて、アプリケーションを実現するプログラムのソースコード112の中の実行された部分を検出する手順、画面設計情報110および検出する手順による検出結果に基づいて、アプリケーションの画面122毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報132、およびアプリケーションの遷移(遷移メソッド124または自画面遷移メソッド126)毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報132の少なくともいずれか一方を生成する手順、画面遷移図120を表示する手順により表示される画面遷移図120上の各画面122および各遷移(遷移メソッド124または自画面遷移メソッド126)の少なくともいずれか一方に、生成された各コードカバレッジ情報132をそれぞれ対応付けて表示する手順、を実行させるように記述されている。
本実施形態のコンピュータプログラム80は、コンピュータ60で読み取り可能な記録媒体に記録されてもよい。記録媒体は特に限定されず、様々な形態のものが考えられる。また、プログラム80は、記録媒体からコンピュータ60のメモリ64にロードされてもよいし、ネットワーク3を通じてコンピュータ60にダウンロードされ、メモリ64にロードされてもよい。または、プログラム80は、記録媒体からコンピュータ60のストレージ66に読み込まれて格納された後、メモリ64にロードされてもよい。
コンピュータプログラム80を記録する記録媒体は、非一時的な有形のコンピュータ60が使用可能な媒体を含み、その媒体に、コンピュータ60が読み取り可能なプログラムコードが埋め込まれる。コンピュータプログラム80が、コンピュータ60上で実行されたとき、コンピュータ60に、アプリケーション開発支援装置100を実現する以下の制御方法を実行させる。
このように構成された本実施形態のアプリケーション開発支援装置100のデータ処理方法について、以下説明する。
図6は、本発明の実施の形態に係るアプリケーション開発支援装置100のデータ処理方法における処理手順を示すフローチャートである。
本発明の実施の形態に係るアプリケーション開発支援装置100のデータ処理方法は、アプリケーション開発支援装置100が、アプリケーションの各画面122の表示情報および画面122間の遷移情報を含む画面設計情報110に基づいて、そのアプリケーションの画面遷移図120を表示し(ステップS101)、アプリケーションを動作させて(ステップS103)、アプリケーションを実現するプログラムのソースコード112の中の実行された部分を検出し(ステップS105)、画面設計情報110および実行部分の検出結果に基づいて、アプリケーションの画面122毎のソースコード112に対する実行済み部分の網羅範囲を示すコードカバレッジ情報132、およびアプリケーションの遷移(遷移メソッド124または自画面遷移メソッド126)毎のソースコード112に対する実行済み部分の網羅範囲を示すコードカバレッジ情報132の少なくともいずれか一方を生成し(ステップS107)、画面遷移図120上の各画面122および各遷移(遷移メソッド124または自画面遷移メソッド126)の少なくともいずれか一方に、生成された各コードカバレッジ情報132をそれぞれ対応付けて表示する(ステップS109)。
以上説明したように、本実施形態のアプリケーション開発支援装置100において、検出部104がアプリケーションを動作させて、アプリケーションを実現するプログラムのソースコード112の中の実行された部分を検出する。そして、カバレッジ生成部106が、アプリケーションの画面122毎のソースコード112に対する実行済み部分の網羅範囲を示すコードカバレッジ情報、およびアプリケーションの遷移メソッド124(および自画面遷移メソッド126)毎のソースコード112に対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成する。そして、カバレッジ表示部108が、画面遷移図120上の各画面122および各遷移メソッド124(または自画面遷移メソッド126)の少なくともいずれか一方に、生成された各コードカバレッジ情報132をそれぞれ対応付けて表示する。
これにより、本発明の実施の形態のアプリケーション開発支援装置100によれば、画面設計情報110に基づく画面遷移図120上の各画面122および各遷移メソッド124(または自画面遷移メソッド126)の少なくともいずれか一方について、テストのカバレッジ情報132をそれぞれ表示できる。したがって、具体的にアプリケーションのどの画面122またはどの遷移メソッド124(または自画面遷移メソッド126)についてどの程度テストが終了しているのかが視覚的に表示され、直感的に分かりやすい。
(第1の実施の形態の変形態様1)
次に、本発明の第1の実施の形態の変形態様1について説明する。
本実施形態のアプリケーション開発支援装置は、上述したアプリケーション開発支援装置100とは、カバレッジ情報132を閾値に基づいて、区別可能に表示する点で相違する。
本実施形態のアプリケーション開発支援装置は、図1のアプリケーション開発支援装置100と同様な構成を有するので、本実施形態では図1を用いて説明する。
本実施形態のアプリケーション開発支援装置100において、カバレッジ表示部108は、画面122毎または遷移(遷移メソッド124および自画面遷移メソッド126)毎のコードカバレッジ情報132について、閾値に基づいて、区別可能に画面遷移図120上に表示させる。
また、アプリケーション開発支援装置100において、カバレッジ表示部108は、個別に設定された、アプリケーションの画面122毎のコードカバレッジ情報132の表示分けに使用する閾値と、アプリケーションの遷移(遷移メソッド124および自画面遷移メソッド126)毎のコードカバレッジ情報132の表示分けに使用する閾値を用いる。
本実施形態では、カバレッジ情報132の表示分けに使用される閾値は、98%と70%の2つの値が設定されるものとする。このように、閾値は複数設定できる。たとえば、テスト完了の目安となるカバレッジの閾値(この例では98%)と、それ以下のカバレッジの達成度合いを段階的に視覚的に区別できるように、少なくとも1つ閾値(この例では70%)を設定できてもよい。
図7に示すように、カバレッジ情報表示画面130では、たとえば、カバレッジが所定の閾値98%以上で、カバレッジ情報132が緑色で表示され(図では破線で示す)、カバレッジが閾値98%未満で、カバレッジ情報132が赤色で表示される(図では実線で示す)。
本実施形態では、色替えにより、表示を区別しているが、これら限定されない。強調表示、網掛け表示、点滅表示、または、3D(3-Dimensional)表示等、様々な表示手法を用いて区別することができる。
さらに、詳細ボタンの押下による遷移メソッド124のカバレッジ情報132のように、カバレッジが所定の閾値70%未満で、カバレッジ情報132を強調表示(図では、太線および二重線で示す)してもよい。
また、図では、カバレッジ情報132の表示と、各画面122、各遷移メソッド124、各自画面遷移メソッド126の表示の両方を同じように区別して表示しているが、これに限定されない。少なくともいずれか一方の表示を区別できればよい。たとえば、各画面122、各遷移メソッド124、各自画面遷移メソッド126の表示を閾値で区別して表示してもよい。あるいは、カバレッジ情報132の表示を閾値で区別して表示してもよい。
さらに、画面122のカバレッジ情報132と、遷移メソッド124のカバレッジ情報132と、自画面遷移メソッド126のカバレッジの閾値としてそれぞれ異なる値を設定できてもよい。これは、上述したように、画面122と、遷移メソッド124(または自画面遷移メソッド126)を実現するソースコードが、異なるプログラム言語で記述されていることや、プログラムの性質が異なること等から、生成されるカバレッジ情報の内容や精度等が異なることが想定されるためである。
また、閾値は、図18の設計情報リポジトリ22に格納されている、アプリケーションの設計書やプロジェクト計画書内で予め指定されていてもよい。カバレッジ表示部108が閾値を設計情報リポジトリ22から取得してもよい。
このように、本実施形態のアプリケーション開発支援装置100によれば、上記実施形態と同様な効果を奏するとともに、さらに、カバレッジ情報表示画面130で、閾値に基づいて、カバレッジ情報132を区別可能に表示できるので、視覚的に直感的にテストの達成度合いが分かりやすい。
(第1の実施の形態の変形態様2)
次に、本発明の第1の実施の形態の変形態様2について説明する。
本実施形態のアプリケーション開発支援装置は、上述したアプリケーション開発支援装置100とは、カバレッジ情報表示画面130からソースコードを表示できる点で相違する。
図8は、本発明の実施の形態に係るアプリケーション開発支援装置140の論理的な構成を示す機能ブロック図である。
アプリケーション開発支援装置140は、図1のアプリケーション開発支援装置100と同様な構成を有するとともに、さらに、指示受付部142と、ソースコード表示部144と、を備える。
本実施形態のアプリケーション開発支援装置140において、指示受付部142は、画面遷移図(カバレッジ情報表示画面130)上で、画面122毎または遷移(遷移メソッド124および自画面遷移メソッド126)毎にソースコードの閲覧の指示を受け付ける。
ソースコード表示部144は、指示受付部142によりコード閲覧指示を受け付けた画面122または遷移(遷移メソッド124および自画面遷移メソッド126)のソースコードを、検出部104により検出された、実行済み部分と、それ以外の部分とに区別して表示する。
図9は、本実施形態のアプリケーション開発支援装置140によるカバレッジ情報表示画面130の一例を示す図である。図10は、本実施形態のアプリケーション開発支援装置140によるソースコード画面150の一例を示す図である。
図9に示すように、カバレッジ情報表示画面130において、各カバレッジ情報132には、リンクが貼られている。カバレッジ情報表示画面130でユーザがリンクを選択することで、選択されたカバレッジ情報132に対応する画面122、遷移メソッド124、または自画面遷移メソッド126のソースコード112を表示するソースコード画面150(図10)が開かれる。ソースコード画面150は、たとえば、カバレッジ情報表示画面130とは別のウインドウに表示されてもよい。
図10に示すように、ソースコード画面150は、たとえば、テスト動作により実行された実行済み部分(図では、実線で示す)と、実行されていない未実行部分(図では、破線で示す。)と、を色分け等により区別して表示する。
これにより、ユーザは各カバレッジに対応するソースコード112を簡単に閲覧でき、実行済みの部分と未実行の部分を区別して確認できる。
なお、本実施形態では、カバレッジ情報132にリンクが貼られている例を示したが、ソースコード112の閲覧の指示を受け付ける方法は、これに限定されるものではない。カバレッジ情報表示画面130上の各画面122、各遷移メソッド124、および各自画面遷移メソッド126を閲覧対象として選択すること(たとえば、右クリックでメニューを開いてコード閲覧を選択する等)で、対応するソースコード112の閲覧指示を受け付けてもよい。あるいは、リスト表示(不図示)等の中からコード閲覧対象を選択できる構成としてもよい。
(第2の実施の形態)
次に、本発明の第2の実施の形態に係るアプリケーション開発支援装置およびそのデータ処理方法について、以下説明する。なお、本実施形態のプログラムは、上記実施形態と同様に、アプリケーション開発支援装置のデータ処理方法を少なくとも1つのコンピュータに実行させるものであり、本実施形態での詳細な説明は省略する。
図11は、本発明の実施の形態に係るアプリケーション開発支援装置200の論理的な構成を示す機能ブロック図である。
本実施形態のアプリケーション開発支援装置200は、上記実施形態のアプリケーション開発支援装置100とは、さらに、アプリケーションのテストを、テストシナリオに基づいて行う点で相違する。そして、本実施形態では、さらに、テストのカバレッジ情報に基づいて、未実行部分をテストするためのテストシナリオを自動生成する。
なお、図11のアプリケーション開発支援装置200は、図1のアプリケーション開発支援装置100の構成は図示されてないが、アプリケーション開発支援装置100の構成を含んでもよいし、あるいは、各装置は、異なるコンピュータで実現されてもよい。アプリケーション開発支援装置100の検出部104は、本実施形態のアプリケーション開発支援装置200により生成されるテストシナリオを用いて、アプリケーションをテスト動作させ、アプリケーションを実現するソースコードの中の実行された部分を検出する。そして、本実施形態のアプリケーション開発支援装置200は、アプリケーション開発支援装置100で検出された実行済み部分以外のソースコード112の未実行部分について、テストシナリオの生成を行う。
本実施形態のアプリケーション開発支援装置200において、画面設計情報110は、アプリケーションの各画面122に含まれる、入力操作対象となる入力画面部品に関する設計情報を含む。
アプリケーション開発支援装置200は、アプリケーションのテストに使用するテストシナリオ210を画面設計情報110を元に生成するテストシナリオ生成部202と、テストシナリオ210を用いたテスト動作により検出部104が検出した、実行済み部分以外のソースコード112の未実行部分を特定する未実行部特定部204と、画面122毎または遷移(遷移メソッド124および自画面遷移メソッド126)毎のソースコード112の未実行部分において、画面122の入力画面部品(テキストボックス、操作ボタン等)の識別情報を抽出して、画面122の入力画面部品のうち、テスト未実行のものを特定する画面部品特定部206と、を備える。
テストシナリオ生成部202は、テスト未実行であると特定された入力画面部品への入力操作を示す入力操作命令(type, clickAndWait等)を少なくとも含むテストシナリオを生成する。
ここで、テストシナリオとは、アプリケーションの動作をテストするために、アプリケーションを利用する際のユーザによる一連の画面操作等をシミュレーションし、その一連の画面操作を定義するものである。テストシナリオとは、具体的なテストデータを伴わない、アプリケーションの動きや画面の遷移の1つの動作パスである。テストシナリオにある1つのテストデータセットに基づいたテストを行うことでテストケースとなる。1つのテストシナリオには、複数のテストケースが存在する。
また、テストケースとは、あるテストシナリオに対し、ある1つのテストデータセットを利用したテストを指す。テストケース毎に具体的な入力テストデータをテストシナリオにインプットすることで得られるべき出力テストデータがそれぞれ存在する。アプリケーションのテストでは、入力テストデータをテストシナリオにインプットして得られた出力がテスト結果を示す。このテスト結果は、テストケースの出力テストデータに基づき、その正否が判定できる。
図12は、本実施形態のアプリケーション開発支援装置200がテストするアプリケーションのメイン画面の一例を示す図である。
メイン画面220は、図3(a)のメイン画面(S_01)に対応し、検索キーとして文字列の入力を受け付けるテキストボックス222と、検索の実行指示を受け付ける検索ボタン224と、を含む。
この例では、テストシナリオ生成部202は、画面設計情報110から、メイン画面220の入力画面部品として、テキストボックス222と、検索ボタン224との情報を取得する。テストシナリオ生成部202は、各画面122の入力画面部品への入力操作を示す入力操作命令が少なくとも含まれるように、テストシナリオ210を生成する。テキストボックス222への文字入力操作を示す入力操作命令(type)と、検索ボタン224の押下操作を示す入力操作命令(clickAndWait)とがテストシナリオ210に少なくとも含まれる。
このようにして生成されたテストシナリオ210を使用したテスト動作を行った際、未実行部特定部204は、検出部104により検出された実行済み部分以外のソースコード112の未実行部分を特定する。
そして、画面部品特定部206が、画面122毎または遷移(遷移メソッド124および自画面遷移メソッド126)毎のソースコード112の未実行部分において、画面122の入力画面部品(テキストボックス、操作ボタン等)の識別情報を抽出する。そして画面部品特定部206が、抽出された画面122の入力画面部品のうち、テスト未実行のものを特定する。
テストシナリオ生成部202は、テスト未実行であると特定された入力画面部品への入力操作を示す入力操作命令(type, clickAndWait等)を少なくとも含むテストシナリオ210を生成する。
このように構成された本実施形態のアプリケーション開発支援装置200のデータ処理方法について、以下説明する。
図13は、本発明の実施の形態に係るアプリケーション開発支援装置200のデータ処理方法における処理手順を示すフローチャートである。
本発明の実施の形態に係るアプリケーション開発支援装置200のデータ処理方法は、アプリケーション開発支援装置200が、アプリケーションのテストに使用するテストシナリオ210を画面設計情報110を元に生成し(ステップS201)、テストシナリオ210を用いたテスト動作により検出部104が検出した、実行済み部分以外のソースコード112の未実行部分を特定し(ステップS203)、画面122毎または遷移(遷移メソッド124および自画面遷移メソッド126)毎のソースコード112の未実行部分において、画面122の入力画面部品(テキストボックス、操作ボタン等)の識別情報を抽出して、画面122の入力画面部品のうち、テスト未実行のものを特定する(ステップS205)。
そして、アプリケーション開発支援装置200が、テスト未実行であると特定された入力画面部品への入力操作を示す入力操作命令(type, clickAndWait等)を少なくとも含むテストシナリオ210を生成する(ステップS207)。
テストシナリオ生成部202は、画面設計情報110を元にテストシナリオ210を生成しているので、通常は、各画面122の入力画面部品への入力操作を示す入力操作命令を少なくとも含むようにテストシナリオ210が生成される筈である。しかしながら、テスト途中で画面122の仕様が変更になった場合などには、テストシナリオ210も仕様変更に応じて変更する必要がある。テストシナリオ生成部202は、新たな仕様に基づいて、新たにテストシナリオ210を作り直してもよいし、変更箇所に対応する部分のみ追加してテストシナリオ210を更新してもよい。あるいは、変更箇所に対応する部分だけをテストするためのテストシナリオ210を新たに生成してもよい。
上述したように、テストシナリオ生成部202は、テストシナリオ210を自動的に生成してもよいが、自動生成する替わりに、入力操作命令をテストシナリオ210に手動で追加してもよい。たとえば、テストシナリオ生成部202は、テストシナリオ210に不足している入力操作命令として、テスト未実行であると特定された入力画面部品への入力操作を示す入力操作命令(type, clickAndWait等)をユーザに提示してもよい。そして、ユーザが、提示された入力操作命令をテストシナリオ210に手動で追加してもよい。
このようにして生成されたテストシナリオ210を用いてアプリケーションのテストを行うことで、カバレッジを拡げることが可能になる。
以上説明したように、本実施形態のアプリケーション開発支援装置200において、テストシナリオ生成部202が、テストシナリオ210を画面設計情報110を元に生成する。そして、未実行部特定部204が、テストシナリオ210を用いたテスト動作により検出部104が検出した、実行済み部分以外のソースコード112の未実行部分を特定する。そして、画面部品特定部206が、画面122毎または遷移(遷移メソッド124および自画面遷移メソッド126)毎のソースコード112の未実行部分において、画面122の入力画面部品の識別情報を抽出する。さらに、画面部品特定部206が、抽出された画面122の入力画面部品のうち、テスト未実行のものを特定する。そして、テストシナリオ生成部202が、テスト未実行であると特定された入力画面部品への入力操作を示す入力操作命令(type, clickAndWait等)を少なくとも含むテストシナリオ210を生成する。
このように、本発明の実施の形態のアプリケーション開発支援装置200によれば、上記実施形態と同様な効果を奏するとともに、さらに、テスト動作により実行されなかった部分に含まれる、画面122の入力画面部品への入力操作を示す入力操作命令を含むようにテストシナリオ210を生成できる。これにより、アプリケーション開発支援装置では、生成されたテストシナリオ210を用いてテストを行うことで、未実行部分を実行させてテストすることが可能になる。これにより、カバレッジを拡げることができる。
本実施形態では、テストで未実行だった部分について、自動的にテストシナリオ210を生成することができるので、テストを効率よく行えるとともに、テストの精度を向上でき、ひいては、アプリケーションの品質と信頼性も向上することができる。
(第2の実施の形態の変形態様1)
次に、本発明の第2の実施の形態の変形態様1について説明する。
本実施形態のアプリケーション開発支援装置は、上述したアプリケーション開発支援装置200とは、テストで実行されなかった部分を特定し、カバレッジを拡げるために、テストシナリオまたはテストケースの追加をサジェストする機能を有する点で相違する。
図14は、本発明の実施の形態に係るアプリケーション開発支援装置230の論理的な構成を示す機能ブロック図である。
本実施形態のアプリケーション開発支援装置230は、図11のアプリケーション開発支援装置200と同様な構成を有するとともに、さらに、分岐処理抽出部232と、未実行処理特定部234と、提示部236と、を備える。
アプリケーション開発支援装置230において、分岐処理抽出部232は、画面122毎または遷移(遷移メソッド124および自画面遷移メソッド126)毎のソースコード112において、画面122の入力画面部品への入力操作内容に応じた分岐条件に従い実行される各分岐処理を抽出する。
未実行処理特定部234は、抽出された分岐条件に従い実行される各分岐処理のうち、未実行部分に対応する、テスト未実行の分岐処理を特定する。
提示部236は、画面122毎または遷移(遷移メソッド124および自画面遷移メソッド126)毎のソースコード112において、特定されたテスト未実行の分岐処理に対応する、未実行部分を提示する。
具体的には、分岐処理抽出部232は、画面122毎または遷移(遷移メソッド124および自画面遷移メソッド126)毎のソースコード112の中で、入力画面部品の識別情報が関連するIF文を抽出する。
未実行処理特定部234は、抽出されたIF文の分岐条件に従い実行される各分岐処理のうち、未実行部分に対応する、テストが行われていない分岐処理を特定する。
提示部236は、各画面122、各遷移メソッド124、または各自画面遷移メソッド126のソースコード112について、テストが未実行であると特定された分岐処理に対応する未実行部分を提示する。提示部236は、未実行部分だけでなく、未実行部分の前後を含めて提示してもよい。また、提示方法は、未実行部分(またはその前後を含んでもよい)のみを抜粋して表示してもよいし、ソースコード112全体を表示させて未実行部分(またはその前後を含んでもよい)のみを強調表示してもよい。未実行部分の提示方法は、これらに限定されない。たとえば、実行部分を折りたたんで非表示にしてもよい。
ユーザは、提示された未実行部分のソースコードを見て、テストシナリオ210やテストケースの追加を検討することができる。
このように、本実施形態のアプリケーション開発支援装置230は、ユーザに、未実行部分のソースコードを提示して、テストシナリオ210やテストケースの不足を認識させ、追加の検討を促すことができる。
本実施形態のアプリケーション開発支援装置230において、さらに、テストシナリオ生成部202は、ユーザによる入力画面部品への入力操作を示す入力操作命令のテストシナリオ210への追加の指示を受け付けてもよい。そして、テストシナリオ生成部202は、追加の指示を受け付けた入力操作命令をテストシナリオ210に追加する。
テストシナリオ210への入力操作命令の追加は、たとえば、オープンソースプログラムのSeleniumの機能を用いて行うことができる。
たとえば、IF文による分岐処理で未実行のものがあった場合には、未実行の分岐処理を実行する分岐条件を満たすデータを入力テストデータとするテストケースを追加すればよい。あるいは、IF文の全ての分岐処理が未実行であった場合には、そのIF文に関連する入力画面部品への入力操作を示す入力操作命令をテストシナリオ210に追加するとともに、各分岐処理を実行する分岐条件を満たすデータを入力テストデータとするテストケースをそれぞれ追加すればよい。
また、提示部236は、さらに、未実行部分に対応する、画面設計情報110を提示してもよい。
ユーザは、画面設計情報110を見ながら、テストシナリオ210またはテストケースを追加することができる。
さらに、提示部236は、未実行部分のソースコードの中で、入力画面部品に関連するコード部分を強調表示して、ユーザに教えてもよい。
以上説明したように、本実施形態のアプリケーション開発支援装置230において、分岐処理抽出部232が、画面122毎、遷移メソッド124毎、および自画面遷移メソッド126毎のソースコード112において、画面122の入力画面部品への入力操作内容に応じた分岐条件に従い実行される各分岐処理を抽出する。そして、未実行処理特定部234が、抽出された分岐条件に従い実行される各分岐処理のうち、未実行部分に対応する、テスト未実行の分岐処理を特定する。そして、提示部236が、画面122毎、遷移メソッド124毎、および自画面遷移メソッド126毎のソースコード112において、特定されたテスト未実行の分岐処理に対応する、未実行部分を提示する。
これにより、本実施形態のアプリケーション開発支援装置230によれば、上記実施形態と同様な効果を奏するとともに、さらに、テスト未実行部分のソースコードを抜粋する等して、提示できるので、ユーザは未実行部分に対応するテストシナリオやテストケースの追加を検討することができる。
(第2の実施の形態の変形態様2)
次に、本発明の第2の実施の形態の変形態様2について説明する。
本実施形態のアプリケーション開発支援装置は、図14のアプリケーション開発支援装置230とは、設計情報に基づいてテストケースを自動生成する点で相違する。
図15は、本発明の実施の形態に係るアプリケーション開発支援装置250の論理的な構成を示す機能ブロック図である。
本実施形態のアプリケーション開発支援装置250は、図14のアプリケーション開発支援装置230の構成に加え、さらに、属性情報取得部252と、テストケース生成部254と、を備える。
本実施形態のアプリケーション開発支援装置250において、属性情報取得部252は、アプリケーションの画面設計情報110を元に、テスト未実行であると特定された分岐処理に関連する、入力画面部品に対応する入力項目に関する属性情報を取得する。
テストケース生成部254は、取得した入力項目に関する属性情報に基づいて、テスト未実行の分岐処理を実行させる分岐条件を満たすように、アプリケーションのテストシナリオ210に基づくテストケース260に設定される入力画面部品への入力操作内容を変化させた、テストケース260のバリエーションを生成する。
入力項目とは、入力画面部品に割り当てられているデータ項目を指し、たとえば、テキストボックスに紐付けされているデータフィールドに相当する。入力画面部品に対応する入力項目に関する属性情報は、入力画面部品の種類、名称、データフィールドに関する属性情報(データフィールド名(位置)、データ名、データ形式、データ型、データ長、データ範囲(有効または無効)、データ桁数、データ入力が必須か否か等)等を含む。
図16は、本発明の実施の形態に係るアプリケーション開発支援装置250におけるテストシナリオおよびテストケースを説明するための図である。
以下、図12のメイン画面220のテストを例に説明する。メイン画面220については、たとえば、検索キーとなる店舗名の一部をテキストボックス222に入力し、検索ボタン224を押下すると、検索キーを元に検索が行われて、検索結果が表示されることがテストされる。
ここで、たとえば、テキストボックス222に入力される文字列について、複数のテストケースで異なる文字列を入力テストデータとして準備することができる。アプリケーションでは、テキストボックス222に入力された文字列に応じて、異なる動作が行われるようにプログラムされている。たとえば、テキストボックス222に入力される文字列が全角文字でなければならない場合には、入力が全角文字か否かの判定処理が含まれる。そして、全角文字でなかった場合に、入力のやり直しを求める動作が行われるか否かをテストする必要がある。このようなテストを実行するためのテストケースが作成されていないと、この入力が全角文字か否かの判定処理に対応するソースコードはテストで実行されない。
そこで、本実施形態では、ソースコードのテスト未実行の分岐処理を実行させる分岐条件を満たすように、入力テストデータを決めたテストケースを追加する。上記例では、テキストボックス222に半角文字を入力するテストケースを追加する。
具体的には、属性情報取得部252が、アプリケーションのメイン画面220上で、入力操作対象となる入力画面部品(たとえば、テキストボックス222)に対応する入力項目に関する属性情報を、アプリケーションの画面設計情報110を元に取得する。
ここでは、たとえば、メイン画面220のテキストボックス222には、検索しようとする店舗名の少なくとも一部が入力される。テキストボックス222に対応する入力項目は、店舗情報の店舗名フィールドデータに紐付けられている。店舗名フィールドデータの属性情報として、データ型が文字列型、文字数が全角文字で1〜6文字であることが定義されているとする。また、テキストボックス222の属性情報として、受け付け可能な文字列は全角文字で、その文字数が1〜6文字と定義されていてもよい。
属性情報取得部252は、この「店舗名」の入力項目の属性情報(データ型が文字列型、文字数が全角文字1〜6文字)を取得する。
図16の例では、1列目の各行が、上から順に実行される一連のテスト命令を含んでいる。これがテストシナリオ210に相当する。そして、2列目は、各テスト命令の2つのパラメータを上下2つのセルに含んでいて、これが、テストシナリオ210のある1つの基準テストケース262となっている。
ここで、入力操作命令の入力操作内容は、少なくとも2つのパラメータを含む。たとえば、パラメータ1は、操作対象を示し、画面のどのテキストボックスかを示す。パラメータ2は入力内容を示し、たとえば、何を入力したかを示す。
そして、テストケース生成部254が、入力項目や入力画面部品の属性情報に基づいて、基準テストケース262から、テキストボックス222への入力操作内容を変換させたバリエーションの派生テストケース264を複数生成する。
ここで、テストケース生成部254は、上述したように、テスト未実行の分岐処理を実行させる分岐条件を満たすようなテストケース264を生成する。たとえば、テキストボックス222への入力内容のチェックを行う分岐処理のうち、文字数オーバー時の処理が未実行であることが未実行処理特定部234により特定されたとする。そこで、テストケース生成部254は、テキストボックス222の入力が文字数オーバーとなるテストケースをさらに追加する。
具体的には、テストケース生成部254は、まず、基準テストケース262の列を複製してテストケース264を増やす。次に、テストケース生成部254は、テスト命令のパラメータをテストケース264毎に変更することで、テストケースのバリエーションを簡単に増やすことができる。ここでは、追加したテストケースにおいて、テキストボックス222への入力を行う命令(Type)のパラメータ2に、文字数がテキストボックス222の許容範囲(6文字)を超える文字列(図では、「東京都新宿3丁目」)を指定する。
これにより、未実行処理特定部234で未実行と特定された分岐処理をテストで実行できるテストケース(Test-1-3)が追加される。
以上説明したように、本実施形態のアプリケーション開発支援装置250において、属性情報取得部252が、アプリケーションの画面設計情報110を元に、テスト未実行であると特定された分岐処理に関連する、入力画面部品に対応する入力項目に関する属性情報を取得する。そして、テストケース生成部254が、取得した入力項目に関する属性情報に基づいて、テスト未実行の分岐処理を実行させる分岐条件を満たすように、アプリケーションのテストシナリオ210に基づくテストケース260に設定される入力画面部品への入力操作内容を変化させた、テストケース260のバリエーションを生成する。
これにより、本実施形態のアプリケーション開発支援装置250によれば、上記実施形態と同様な効果を奏するとともに、さらに、テストできなかった分岐処理に対応する分岐条件を満たすように、入力画面部品に対する入力テストデータを設定したテストケースを自動的に追加することができる。したがって、アプリケーション開発支援装置250によれば、テストの効率および精度が向上し、アプリケーションの品質と信頼性も向上することができる。
以上、図面を参照して本発明の実施形態について述べたが、これらは本発明の例示であり、上記以外の様々な構成を採用することもできる。
たとえば、図11のアプリケーション開発支援装置200において、画面遷移図120上の画面122毎または遷移(遷移メソッド124および自画面遷移メソッド126)毎に、コードカバレッジが閾値以下を示すものを対象として抽出する対象抽出部(不図示)をさらに備えてもよい。
対象として抽出された画面122、遷移メソッド124、または自画面遷移メソッド126について、未実行部特定部204により特定されたソースコード112の未実行部分について、テストシナリオ生成部202が、アプリケーションのテストシナリオ210を自動生成する。
なお、この対象抽出部は、図14のアプリケーション開発支援装置230、および図15のアプリケーション開発支援装置250の少なくともいずれかの構成と組み合わせてもよい。
なお、本実施形態の閾値は、第1の実施の形態の変形態様1の表示分けに使用する閾値とは別に設定できてもよいし、同じ閾値を用いてもよい。
また、閾値は、画面122、遷移メソッド124、自画面遷移メソッド126で、それぞれ異なる値を設定できてよい。また、閾値は、図18の設計情報リポジトリ22に格納されている、アプリケーションの設計書やプロジェクト計画書等から取得してもよい。
この構成によれば、カバレッジが閾値以下のものについて、不足している入力操作命令をテストシナリオ210に追加して自動生成できるので、テストの効率および精度を向上できる。
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
なお、本発明において利用者に関する情報を取得、利用する場合は、これを適法に行うものとする。
以下、参考形態の例を付記する。
1. アプリケーション開発支援装置が、
アプリケーションの各画面の表示情報および前記画面間の遷移情報を含む画面設計情報に基づいて、そのアプリケーションの画面遷移図を表示し、
前記アプリケーションを動作させて、前記アプリケーションを実現するプログラムのソースコードの中の実行された部分を検出し、
前記画面設計情報および前記実行された部分の検出結果に基づいて、前記アプリケーションの画面毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報、および前記アプリケーションの遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成し、
前記画面遷移図上の各画面および各遷移の少なくともいずれか一方に、前記生成された各コードカバレッジ情報をそれぞれ対応付けて表示する、
アプリケーション開発支援装置のデータ処理方法。
2. 前記画面設計情報の前記アプリケーションの前記画面間の遷移情報は、自画面遷移の遷移情報をさらに含み、
前記アプリケーション開発支援装置が、
前記画面設計情報および前記ソースコードの実行部分の検出結果に基づいて、前記アプリケーションの各画面の前記自画面遷移を含む遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報をさらに生成する、
1.に記載のアプリケーション開発支援装置のデータ処理方法。
3. 前記アプリケーション開発支援装置が、
前記画面毎または前記遷移毎の前記コードカバレッジ情報について、閾値に基づいて、区別可能に前記画面遷移図上に表示する、
1.または2.に記載のアプリケーション開発支援装置のデータ処理方法。
4. 前記アプリケーション開発支援装置が、
個別に設定された、前記アプリケーションの前記画面毎の前記コードカバレッジ情報の表示分けに使用する閾値と、前記アプリケーションの前記遷移毎の前記コードカバレッジ情報の表示分けに使用する閾値を用いる、
3.に記載のアプリケーション開発支援装置のデータ処理方法。
5. 前記アプリケーション開発支援装置が、
前記画面遷移図上で、前記画面毎または前記遷移毎に前記ソースコードの閲覧の指示を受け付け、
コード閲覧指示を受け付けた前記画面または前記遷移の前記ソースコードを、検出された、実行済み部分と、それ以外の部分とに区別して表示する、
1.乃至4.いずれか1つに記載のアプリケーション開発支援装置のデータ処理方法。
6. 前記画面設計情報は、前記アプリケーションの各画面に含まれる、入力操作対象となる入力画面部品に関する設計情報を含み、
前記アプリケーション開発支援装置が、
前記アプリケーションのテストに使用するテストシナリオを、前記画面設計情報を元に生成し、
前記テストシナリオを用いたテスト動作により検出した、実行済み部分以外のソースコードの未実行部分を特定し、
前記画面毎または前記遷移毎の前記ソースコードの前記未実行部分において、前記画面の前記入力画面部品の識別情報を抽出して、前記画面の前記入力画面部品のうち、テスト未実行のものを特定し、
前記テスト未実行であると特定された前記入力画面部品への入力操作を示す入力操作命令を少なくとも含むテストシナリオを生成する、
1.乃至5.いずれか一つに記載のアプリケーション開発支援装置のデータ処理方法。
7. 前記アプリケーション開発支援装置が、
前記画面毎または前記遷移毎の前記ソースコードにおいて、前記画面の前記入力画面部品への入力操作内容に応じた分岐条件に従い実行される各分岐処理を抽出し、
抽出された前記分岐条件に従い実行される各分岐処理のうち、前記未実行部分に対応する、テスト未実行の分岐処理を特定し、
前記画面毎または前記遷移毎の前記ソースコードにおいて、特定された前記テスト未実行の分岐処理に対応する、前記未実行部分を提示する、
6.に記載のアプリケーション開発支援装置のデータ処理方法。
8. 前記アプリケーション開発支援装置が、
ユーザによる前記入力画面部品への入力操作を示す入力操作命令の前記テストシナリオへの追加の指示を受け付け、前記追加の指示を受け付けた前記入力操作命令を前記テストシナリオに追加する、
7.に記載のアプリケーション開発支援装置のデータ処理方法。
9. 前記アプリケーション開発支援装置が、
前記アプリケーションの画面設計情報を元に、前記テスト未実行であると特定された分岐処理に関連する、前記入力画面部品に対応する入力項目に関する属性情報を取得し、
取得した前記入力項目に関する属性情報に基づいて、前記テスト未実行の前記分岐処理を実行させる分岐条件を満たすように、前記アプリケーションの前記テストシナリオに基づくテストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストケースのバリエーションを生成する、
7.または8.に記載のアプリケーション開発支援装置のデータ処理方法。
10. 前記アプリケーション開発支援装置が、
前記画面遷移図上の前記画面毎または前記遷移毎に、前記コードカバレッジが閾値以下を示すものを対象として抽出し、
前記対象として抽出された前記画面または前記遷移について、
特定された前記ソースコードの前記未実行部分に関し、前記アプリケーションのテストシナリオを生成する、
6.乃至9.いずれか一つに記載のアプリケーション開発支援装置のデータ処理方法。
11. コンピュータに、
アプリケーションの各画面の表示情報および前記画面間の遷移情報を含む画面設計情報に基づいて、そのアプリケーションの画面遷移図を表示する手順、
前記アプリケーションを動作させて、前記アプリケーションを実現するプログラムのソースコードの中の実行された部分を検出する手順、
前記画面設計情報および前記検出する手順による検出結果に基づいて、前記アプリケーションの画面毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報、および前記アプリケーションの遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成する手順、
前記画面遷移図を表示する手順により表示される前記画面遷移図上の各画面および各遷移の少なくともいずれか一方に、前記生成された各コードカバレッジ情報をそれぞれ対応付けて表示する手順、を実行させるためのプログラム。
12. 前記画面設計情報の前記アプリケーションの前記画面間の遷移情報は、自画面遷移の遷移情報をさらに含み、
前記画面設計情報および前記検出する手順による検出結果に基づいて、前記アプリケーションの各画面の前記自画面遷移を含む遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報をさらに生成する手順、
をコンピュータに実行させるための11.に記載のプログラム。
13. 前記画面毎または前記遷移毎の前記コードカバレッジ情報について、閾値に基づいて、区別可能に前記画面遷移図上に表示する手順、
をコンピュータに実行させるための11.または12.に記載のプログラム。
14. 個別に設定された、前記アプリケーションの前記画面毎の前記コードカバレッジ情報の表示分けに使用する閾値と、前記アプリケーションの前記遷移毎の前記コードカバレッジ情報の表示分けに使用する閾値を用いて、前記コードカバレッジ情報を表示する手順、
をコンピュータに実行させるための13.に記載のプログラム。
15. 前記画面遷移図上で、前記画面毎または前記遷移毎に前記ソースコードの閲覧の指示を受け付ける手順、
コード閲覧指示を受け付けた前記画面または前記遷移の前記ソースコードを、前記検出する手順により検出された、実行済み部分と、それ以外の部分とに区別して表示する手順、
をコンピュータに実行させるための11.乃至14.いずれか1つに記載のプログラム。
16. 前記画面設計情報は、前記アプリケーションの各画面に含まれる、入力操作対象となる入力画面部品に関する設計情報を含み、
前記アプリケーションのテストに使用するテストシナリオを、前記画面設計情報を元に生成する手順、
前記テストシナリオを用いたテスト動作により検出した、実行済み部分以外のソースコードの未実行部分を特定する手順、
前記画面毎または前記遷移毎の前記ソースコードの前記未実行部分において、前記画面の前記入力画面部品の識別情報を抽出して、前記画面の前記入力画面部品のうち、テスト未実行のものを特定する手順、
前記テスト未実行であると特定された前記入力画面部品への入力操作を示す入力操作命令を少なくとも含むテストシナリオを生成する手順、
をコンピュータに実行させるための11.乃至15.いずれか一つに記載のプログラム。
17. 前記画面毎または前記遷移毎の前記ソースコードにおいて、前記画面の前記入力画面部品への入力操作内容に応じた分岐条件に従い実行される各分岐処理を抽出する手順、
抽出された前記分岐条件に従い実行される各分岐処理のうち、前記未実行部分に対応する、テスト未実行の分岐処理を特定する手順、
前記画面毎または前記遷移毎の前記ソースコードにおいて、特定された前記テスト未実行の分岐処理に対応する、前記未実行部分を提示する手順、
をコンピュータに実行させるための16.に記載のプログラム。
18. 前記テストシナリオを生成する手順において、
ユーザによる前記入力画面部品への入力操作を示す入力操作命令の前記テストシナリオへの追加の指示を受け付け、前記追加の指示を受け付けた前記入力操作命令を前記テストシナリオに追加する手順、
をコンピュータに実行させるための17.に記載のプログラム。
19. 前記アプリケーションの画面設計情報を元に、前記テスト未実行であると特定された分岐処理に関連する、前記入力画面部品に対応する入力項目に関する属性情報を取得する手順、
取得した前記入力項目に関する属性情報に基づいて、前記テスト未実行の前記分岐処理を実行させる分岐条件を満たすように、前記アプリケーションの前記テストシナリオに基づくテストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストケースのバリエーションを生成する手順、
をコンピュータに実行させるための17.または18に記載のプログラム。
20. 前記画面遷移図上の前記画面毎または前記遷移毎に、前記コードカバレッジが閾値以下を示すものを対象として抽出する手順、
前記対象として抽出された前記画面または前記遷移について、
特定された前記ソースコードの前記未実行部分に関し、前記アプリケーションのテストシナリオを生成する手順、
をコンピュータに実行させるための16.乃至19.いずれか一つに記載のプログラム。
1 アプリケーション開発システム
3 ネットワーク
20 開発装置
22 設計情報リポジトリ
30 ウェブサーバ
32 ウェブアプリケーション
40、40a、40b 端末
42 ブラウザ
60 コンピュータ
62 CPU
64 メモリ
66 ストレージ
69 バス
70 通信I/F
72 入力装置
74 表示装置
80 プログラム
100 アプリケーション開発支援装置
102 画面遷移図表示部
104 検出部
106 カバレッジ生成部
108 カバレッジ表示部
110 画面設計情報
112 ソースコード
120 画面遷移図
122 画面
124 遷移メソッド
126 自画面遷移メソッド
130 カバレッジ情報表示画面
132 カバレッジ情報
140 アプリケーション開発支援装置
142 指示受付部
144 ソースコード表示部
150 ソースコード画面
200 アプリケーション開発支援装置
202 テストシナリオ生成部
204 未実行部特定部
206 画面部品特定部
210 テストシナリオ
220 メイン画面
222 テキストボックス
224 検索ボタン
230 アプリケーション開発支援装置
232 分岐処理抽出部
234 未実行処理特定部
236 提示部
250 アプリケーション開発支援装置
252 属性情報取得部
254 テストケース生成部
260 テストケース
262 基準テストケース
264 派生テストケース

Claims (12)

  1. アプリケーションの各画面の表示情報および前記画面間の遷移情報を含む画面設計情報に基づいて、そのアプリケーションの画面遷移図を表示する画面遷移図表示手段と、
    前記アプリケーションを動作させて、前記アプリケーションを実現するプログラムのソースコードの中の実行された部分を検出する検出手段と、
    前記画面設計情報および前記検出手段による検出結果に基づいて、前記アプリケーションの画面毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報、および前記アプリケーションの遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成するカバレッジ生成手段と、
    前記画面遷移図表示手段により表示される前記画面遷移図上の各画面および各遷移の少なくともいずれか一方に、前記生成された各コードカバレッジ情報をそれぞれ対応付けて表示するカバレッジ表示手段と、
    を備えるアプリケーション開発支援装置。
  2. 前記画面設計情報の前記アプリケーションの前記画面間の遷移情報は、自画面遷移の遷移情報をさらに含み、
    前記カバレッジ生成手段は、前記画面設計情報および前記検出手段による検出結果に基づいて、前記アプリケーションの各画面の前記自画面遷移を含む遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報をさらに生成する、
    請求項1に記載のアプリケーション開発支援装置。
  3. 前記カバレッジ表示手段は、前記画面毎または前記遷移毎の前記コードカバレッジ情報について、閾値に基づいて、区別可能に前記画面遷移図上に表示させる、
    請求項1または2に記載のアプリケーション開発支援装置。
  4. 前記カバレッジ表示手段は、個別に設定された、前記アプリケーションの前記画面毎の前記コードカバレッジ情報の表示分けに使用する閾値と、前記アプリケーションの前記遷移毎の前記コードカバレッジ情報の表示分けに使用する閾値を用いる、
    請求項3に記載のアプリケーション開発支援装置。
  5. 前記画面遷移図上で、前記画面毎または前記遷移毎に前記ソースコードの閲覧の指示を受け付ける受付手段と、
    前記受付手段によりコード閲覧指示を受け付けた前記画面または前記遷移の前記ソースコードを、前記検出手段により検出された、実行済み部分と、それ以外の部分とに区別して表示するソースコード表示手段と、
    をさらに備える、
    請求項1乃至4いずれか1項に記載のアプリケーション開発支援装置。
  6. 前記画面設計情報は、前記アプリケーションの各画面に含まれる、入力操作対象となる入力画面部品に関する設計情報を含み、
    前記アプリケーションのテストに使用するテストシナリオを、前記画面設計情報を元に生成するテストシナリオ生成手段と、
    前記テストシナリオを用いたテスト動作により前記検出手段が検出した、実行済み部分以外のソースコードの未実行部分を特定する未実行部特定手段と、
    前記画面毎または前記遷移毎の前記ソースコードの前記未実行部分において、前記画面の前記入力画面部品の識別情報を抽出して、前記画面の前記入力画面部品のうち、テスト未実行のものを特定する画面部品特定手段と、を備え、
    前記テストシナリオ生成手段は、
    前記テスト未実行であると特定された前記入力画面部品への入力操作を示す入力操作命令を少なくとも含むテストシナリオを生成する、
    請求項1乃至5いずれか一項に記載のアプリケーション開発支援装置。
  7. 前記画面毎または前記遷移毎の前記ソースコードにおいて、前記画面の前記入力画面部品への入力操作内容に応じた分岐条件に従い実行される各分岐処理を抽出する分岐処理抽出手段と、
    抽出された前記分岐条件に従い実行される各分岐処理のうち、前記未実行部分に対応する、テスト未実行の分岐処理を特定する未実行処理特定手段と、
    前記画面毎または前記遷移毎の前記ソースコードにおいて、特定された前記テスト未実行の分岐処理に対応する、前記未実行部分を提示する提示手段と、をさらに備える、
    請求項6に記載のアプリケーション開発支援装置。
  8. 前記テストシナリオ生成手段は、
    ユーザによる前記入力画面部品への入力操作を示す入力操作命令の前記テストシナリオへの追加の指示を受け付け、前記追加の指示を受け付けた前記入力操作命令を前記テストシナリオに追加する、
    請求項7に記載のアプリケーション開発支援装置。
  9. 前記アプリケーションの画面設計情報を元に、前記テスト未実行であると特定された分岐処理に関連する、前記入力画面部品に対応する入力項目に関する属性情報を取得する属性情報取得手段と、
    取得した前記入力項目に関する属性情報に基づいて、前記テスト未実行の前記分岐処理を実行させる分岐条件を満たすように、前記アプリケーションの前記テストシナリオに基づくテストケースに設定される前記入力画面部品への入力操作内容を変化させた、前記テストケースのバリエーションを生成するテストケース生成手段と、
    をさらに備える、
    請求項7または8に記載のアプリケーション開発支援装置。
  10. 前記画面遷移図上の前記画面毎または前記遷移毎に、前記コードカバレッジが閾値以下を示すものを対象として抽出する対象抽出手段をさらに備え、
    前記対象として抽出された前記画面または前記遷移について、
    前記未実行部特定手段により特定された前記ソースコードの前記未実行部分について、前記テストシナリオ生成手段が、前記アプリケーションのテストシナリオを生成する、
    請求項6乃至9いずれか一項に記載のアプリケーション開発支援装置。
  11. アプリケーション開発支援装置が、
    アプリケーションの各画面の表示情報および前記画面間の遷移情報を含む画面設計情報に基づいて、そのアプリケーションの画面遷移図を表示し、
    前記アプリケーションを動作させて、前記アプリケーションを実現するプログラムのソースコードの中の実行された部分を検出し、
    前記画面設計情報および前記実行された部分の検出結果に基づいて、前記アプリケーションの画面毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報、および前記アプリケーションの遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成し、
    前記画面遷移図上の各画面および各遷移の少なくともいずれか一方に、前記生成された各コードカバレッジ情報をそれぞれ対応付けて表示する、
    アプリケーション開発支援装置のデータ処理方法。
  12. コンピュータに、
    アプリケーションの各画面の表示情報および前記画面間の遷移情報を含む画面設計情報に基づいて、そのアプリケーションの画面遷移図を表示する手順、
    前記アプリケーションを動作させて、前記アプリケーションを実現するプログラムのソースコードの中の実行された部分を検出する手順、
    前記画面設計情報および前記検出する手順による検出結果に基づいて、前記アプリケーションの画面毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報、および前記アプリケーションの遷移毎のソースコードに対する実行済み部分の網羅範囲を示すコードカバレッジ情報の少なくともいずれか一方を生成する手順、
    前記画面遷移図を表示する手順により表示される前記画面遷移図上の各画面および各遷移の少なくともいずれか一方に、前記生成された各コードカバレッジ情報をそれぞれ対応付けて表示する手順、を実行させるためのプログラム。
JP2014173227A 2014-08-27 2014-08-27 アプリケーション開発支援装置、そのデータ処理方法、およびプログラム Active JP6354457B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014173227A JP6354457B2 (ja) 2014-08-27 2014-08-27 アプリケーション開発支援装置、そのデータ処理方法、およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014173227A JP6354457B2 (ja) 2014-08-27 2014-08-27 アプリケーション開発支援装置、そのデータ処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2016048471A true JP2016048471A (ja) 2016-04-07
JP6354457B2 JP6354457B2 (ja) 2018-07-11

Family

ID=55649339

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014173227A Active JP6354457B2 (ja) 2014-08-27 2014-08-27 アプリケーション開発支援装置、そのデータ処理方法、およびプログラム

Country Status (1)

Country Link
JP (1) JP6354457B2 (ja)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017188047A (ja) * 2016-04-08 2017-10-12 ダイキン工業株式会社 プログラム作成支援システム
JP2018116496A (ja) * 2017-01-18 2018-07-26 日本電信電話株式会社 差異検出装置及びプログラム
KR20180131784A (ko) * 2017-06-01 2018-12-11 슈어소프트테크주식회사 탐침을 이용하지 않는 코드 커버리지 측정 방법 및 장치, 그리고 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
WO2019077738A1 (ja) * 2017-10-20 2019-04-25 三菱電機株式会社 データ検証装置、データ検証方法及びデータ検証プログラム
JP2020046897A (ja) * 2018-09-19 2020-03-26 みずほ情報総研株式会社 テスト支援システム、テスト支援方法及びテスト支援プログラム
CN110959165A (zh) * 2017-07-28 2020-04-03 英迈国际有限公司 用于自动验证云服务代理***中的要约的功能的技术
WO2020213371A1 (ja) * 2019-04-16 2020-10-22 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置
WO2021010069A1 (ja) * 2019-07-12 2021-01-21 日本ノーベル株式会社 画面遷移情報生成装置、画面遷移情報生成方法、画面遷移情報生成用プログラム、画面遷移情報生成システム
WO2023229086A1 (ko) * 2022-05-27 2023-11-30 쿠팡 주식회사 코드 커버리지 정보 제공 방법 및 이를 위한 전자 장치
US12049015B2 (en) 2019-07-12 2024-07-30 Japan Novel Corporation Screen image transition information generation device, screen image transition information generation method, screen image transition information generation program, and screen image transition information generation system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03245243A (ja) * 1990-02-23 1991-10-31 Hitachi Ltd プログラムテスト方式
JPH07210424A (ja) * 1994-01-14 1995-08-11 Toshiba Corp ソフトウェアテスト支援システム
JPH07319730A (ja) * 1994-05-23 1995-12-08 Hitachi Ltd テスト・デバッグ方法
JP2004348473A (ja) * 2003-05-22 2004-12-09 Hitachi Ltd 状態遷移検証方法及び検証装置
JP2011180705A (ja) * 2010-02-26 2011-09-15 Nomura Research Institute Ltd 障害対応画面設計支援システム
JP2012133721A (ja) * 2010-12-24 2012-07-12 Internatl Business Mach Corp <Ibm> テストの網羅性を評価する装置及び方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03245243A (ja) * 1990-02-23 1991-10-31 Hitachi Ltd プログラムテスト方式
JPH07210424A (ja) * 1994-01-14 1995-08-11 Toshiba Corp ソフトウェアテスト支援システム
JPH07319730A (ja) * 1994-05-23 1995-12-08 Hitachi Ltd テスト・デバッグ方法
JP2004348473A (ja) * 2003-05-22 2004-12-09 Hitachi Ltd 状態遷移検証方法及び検証装置
JP2011180705A (ja) * 2010-02-26 2011-09-15 Nomura Research Institute Ltd 障害対応画面設計支援システム
JP2012133721A (ja) * 2010-12-24 2012-07-12 Internatl Business Mach Corp <Ibm> テストの網羅性を評価する装置及び方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
坂本一憲 ほか: "Webアプリの動的部分に着目したグレーボックス統合テストの提案", 情報処理学会研究報告 2012(平成24)年度▲1▼ [CD−ROM], JPN6018017426, 15 June 2012 (2012-06-15), JP, pages 1 - 8, ISSN: 0003795928 *
式町健 ほか: "Webアプリケーションの構造に基づくテスト基準", レクチャーノート/ソフトウェア学30 ソフトウェア工学の基礎XI, JPN6018017424, 30 November 2004 (2004-11-30), JP, pages 213 - 223, ISSN: 0003795927 *

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017188047A (ja) * 2016-04-08 2017-10-12 ダイキン工業株式会社 プログラム作成支援システム
JP2018116496A (ja) * 2017-01-18 2018-07-26 日本電信電話株式会社 差異検出装置及びプログラム
KR20180131784A (ko) * 2017-06-01 2018-12-11 슈어소프트테크주식회사 탐침을 이용하지 않는 코드 커버리지 측정 방법 및 장치, 그리고 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
KR102042996B1 (ko) * 2017-06-01 2019-12-02 슈어소프트테크주식회사 탐침을 이용하지 않는 코드 커버리지 측정 방법 및 장치, 그리고 이를 실행하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체
CN110959165A (zh) * 2017-07-28 2020-04-03 英迈国际有限公司 用于自动验证云服务代理***中的要约的功能的技术
JP2020529066A (ja) * 2017-07-28 2020-10-01 イングラム マイクロ インコーポレーテッド クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術
JP7105298B2 (ja) 2017-07-28 2022-07-22 クラウドブルー エルエルシー クラウドサービスブローカーシステムにおいてオファーの機能を自動的に検証する技術
US11288171B2 (en) 2017-10-20 2022-03-29 Mitsubishi Electric Corporation Data verification apparatus, method and medium for determining whether referring parts of source code are executed
WO2019077738A1 (ja) * 2017-10-20 2019-04-25 三菱電機株式会社 データ検証装置、データ検証方法及びデータ検証プログラム
JPWO2019077738A1 (ja) * 2017-10-20 2020-04-02 三菱電機株式会社 データ検証装置、データ検証方法及びデータ検証プログラム
GB2580830A (en) * 2017-10-20 2020-07-29 Mitsubishi Electric Corp Data verification device, data verification method, and data verification program
GB2580830B (en) * 2017-10-20 2022-04-13 Mitsubishi Electric Corp Data verification apparatus, data verification method, and data verification program
JP2020046897A (ja) * 2018-09-19 2020-03-26 みずほ情報総研株式会社 テスト支援システム、テスト支援方法及びテスト支援プログラム
JPWO2020213371A1 (ja) * 2019-04-16 2021-11-04 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置
WO2020213371A1 (ja) * 2019-04-16 2020-10-22 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置
JP2021015476A (ja) * 2019-07-12 2021-02-12 日本ノーベル株式会社 画面遷移情報生成装置、画面遷移情報生成方法、画面遷移情報生成用プログラム、画面遷移情報生成システム
WO2021010069A1 (ja) * 2019-07-12 2021-01-21 日本ノーベル株式会社 画面遷移情報生成装置、画面遷移情報生成方法、画面遷移情報生成用プログラム、画面遷移情報生成システム
JP7202571B2 (ja) 2019-07-12 2023-01-12 日本ノーベル株式会社 画面遷移情報生成装置、画面遷移情報生成方法、画面遷移情報生成用プログラム、画面遷移情報生成システム
US12049015B2 (en) 2019-07-12 2024-07-30 Japan Novel Corporation Screen image transition information generation device, screen image transition information generation method, screen image transition information generation program, and screen image transition information generation system
WO2023229086A1 (ko) * 2022-05-27 2023-11-30 쿠팡 주식회사 코드 커버리지 정보 제공 방법 및 이를 위한 전자 장치

Also Published As

Publication number Publication date
JP6354457B2 (ja) 2018-07-11

Similar Documents

Publication Publication Date Title
JP6354457B2 (ja) アプリケーション開発支援装置、そのデータ処理方法、およびプログラム
US11099972B2 (en) Testing user interfaces using machine vision
JP6417791B2 (ja) アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム
US9189377B1 (en) Automation testing using descriptive maps
US11449348B2 (en) Pre/post deployment customization
JP4395761B2 (ja) プログラムテスト支援装置およびその方法
JP6514084B2 (ja) 操作支援システム、操作支援方法、および、操作支援プログラム
JP2019021341A (ja) アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム
US11074162B2 (en) System and a method for automated script generation for application testing
US8745521B2 (en) System and method for annotating graphical user interface
CN107092589B (zh) Web服务器***、画面控件显示方法以及演示应用生成方法
US11100278B2 (en) Systems and methods for presentation of a terminal application screen
US11714625B2 (en) Generating applications for versatile platform deployment
US10951486B2 (en) Terminal device, UI expansion method, and UI expansion program
Stocco et al. PESTO: A tool for migrating DOM-based to visual web tests
US20160292067A1 (en) System and method for keyword based testing of custom components
US20220214963A1 (en) Analysis apparatus, analysis method and program
US9274688B2 (en) Interfacing systems and methods
US20210382810A1 (en) Test data generation apparatus, test data generation method and program
CN115469849B (zh) 一种业务处理***、方法、电子设备和存储介质
US9501264B2 (en) User corrections in translation
JP7029557B1 (ja) 判定装置、判定方法および判定プログラム
JP6097231B2 (ja) プログラム生成装置および方法
JP5971399B2 (ja) 実行フロー作成支援プログラム
WO2020225791A1 (en) Method and system for transforming wireframes to as-is screens with responsive behaviour

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180418

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180515

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180528

R150 Certificate of patent or registration of utility model

Ref document number: 6354457

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150