(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023120879
(43)【公開日】2023-08-30
(54)【発明の名称】テストケース作成支援装置および仕様書作成支援装置
(51)【国際特許分類】
G06F 11/36 20060101AFI20230823BHJP
【FI】
G06F11/36 176
G06F11/36 184
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022023995
(22)【出願日】2022-02-18
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001807
【氏名又は名称】弁理士法人磯野国際特許商標事務所
(72)【発明者】
【氏名】河江 晋寛
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042HH11
5B042HH17
5B042HH18
5B042HH19
5B042NN08
(57)【要約】
【課題】システム開発におけるテストケース作成の効率化および高品質化の支援を可能とする。
【解決手段】テストケース作成支援装置100は、情報システムの開発工程におけるテスト仕様書を基にテストケースである生成テストケースを生成する仕様ベーステストケース生成部112と、情報システムの開発工程におけるテストケースと生成テストケースとを比較して相違を出力するテストケース妥当性検証部115とを備える。またテストケース作成支援装置100は、情報システムの開発工程におけるテストケースを基に自然文のテスト仕様書である生成テスト仕様書を生成する自然文生成部113と、情報システムの開発工程におけるテスト仕様書と生成テスト仕様書とを比較して相違を出力するテスト仕様妥当性検証部114とを備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
情報システムの開発工程におけるテスト仕様書を基にテストケースである生成テストケースを生成する仕様ベーステストケース生成部と、
前記情報システムの開発工程におけるテストケースと前記生成テストケースとを比較して相違を出力するテストケース妥当性検証部とを備える
テストケース作成支援装置。
【請求項2】
情報システムの開発工程におけるテストケースを基に自然文のテスト仕様書である生成テスト仕様書を生成する自然文生成部と、
前記情報システムの開発工程におけるテスト仕様書と前記生成テスト仕様書とを比較して相違を出力するテスト仕様妥当性検証部とを備える
テストケース作成支援装置。
【請求項3】
前記情報システムの仕様書を基にテスト仕様書を生成するテスト仕様生成部をさらに備え、
前記情報システムの開発工程におけるテスト仕様書は、前記テスト仕様生成部が生成したテスト仕様書である
請求項1または2に記載のテストケース作成支援装置。
【請求項4】
前記情報システムの開発工程における既存のテストケースに、前記情報システムの開発工程におけるコードを基にテストケースを生成して加えるコードベーステストケース生成部をさらに備える
請求項1または2に記載のテストケース作成支援装置。
【請求項5】
前記コードベーステストケース生成部は、前記情報システムの開発工程における既存のテストケースに対してペアワイズ手法を適用してテストケースの数を削減する
請求項4に記載のテストケース作成支援装置。
【請求項6】
情報システムの開発工程における仕様書を基に前記仕様書に含まれる業務内容を生成する業務内容生成部と、
前記業務内容を基にテストケースである生成テストケースを生成する仕様ベーステストケース生成部と、
前記生成テストケースを基に自然文である文章を生成する自然文生成部と、
前記業務内容と前記文章とを比較して相違を出力するテスト仕様妥当性検証部とを備える
仕様書作成支援装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、システム開発におけるテストケース作成の支援を行うテストケース作成支援装置および仕様書作成支援装置に関する。
【背景技術】
【0002】
現在では、事業・業務全般に渡って幅広くシステム(情報システム、情報処理システム)が利用されており、事業・業務が変更になる度に仕様変更・テストの工程を繰り返すことになる。変更が行われる事業・業務に対して、テスト工程のみでシステムの品質を担保することは困難であり、開発工程も含めてシステム開発工程全体で品質を確保する必要がある。
【0003】
開発工程とテスト工程とを一体として品質確保を目指す手法として、テスト駆動開発(TDD、Test-Driven Development)がある。テスト駆動開発では、プログラム(コード)の実装前にテストケースを作成し(テストファースト)そのテストケースに適合するように実装とリファクタリングとを進める。このため、開発するシステムの仕様がまとまった段階、または仕様作成の段階でテストケースを作成することになる。なおリファクタリングとは、実装したコードを書き換えて、可読性や拡張性、一貫性などを確保することである。
【0004】
テストケース作成について特許文献1には、少ないテストケース数で信頼性向上ができるテストケース生成システムが記載されている。当該テストケース生成システムでは、開発対象のシステムのモデルを入力し、結線によるパスを同じくする因子を一つのグループとするようにグループ分けし、グループ分けしたグループ同士の重みを計算して因子グループ間重み表を求める。続いてテストケース生成システムは、因子のグループ定義と因子グループ間重み表から、テストケースに含まれる因子の集合に含まれる因子間の値の組合せに対して、因子グループ間重み表の重みの値に従って評価した値の総和を最大にするテストケースを生成する。なお因子とはシステムに影響を与える因子であり、一般にはシステムへの入力である。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載のテストケース生成システムでは、開発対象システムのモデルの他に、因子の集合とその値の集合である因子集合を入力する必要がある。これらの入力の作成は人手によるものである。このため、その妥当性の担保も人に依存しており、入力作成や妥当性確認の作業を効率化することが望ましい。
本発明は、このような背景を鑑みてなされたものであり、システム開発におけるテストケース作成の効率化および高品質化の支援を可能とするテストケース作成支援装置および仕様書作成支援装置を提供することを課題とする。
【課題を解決するための手段】
【0007】
上記した課題を解決するため、本発明に係るテストケース作成支援装置は、情報システムの開発工程におけるテスト仕様書を基にテストケースである生成テストケースを生成する仕様ベーステストケース生成部と、前記情報システムの開発工程におけるテストケースと前記生成テストケースとを比較して相違を出力するテストケース妥当性検証部とを備える。
【0008】
また本発明に係るテストケース作成支援装置は、情報システムの開発工程におけるテストケースを基に自然文のテスト仕様書である生成テスト仕様書を生成する自然文生成部と、前記情報システムの開発工程におけるテスト仕様書と前記生成テスト仕様書とを比較して相違を出力するテスト仕様妥当性検証部とを備える。
【発明の効果】
【0009】
本発明によれば、システム開発におけるテストケース作成の効率化および高品質化の支援を可能とするテストケース作成支援装置および仕様書作成支援装置を提供することができる。上記した以外の課題、構成および効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0010】
【
図1】本実施形態に係るテストケース作成支援装置の主たる処理を説明するための図である。
【
図2】本実施形態に係るテストケース作成支援装置の機能ブロック図である。
【
図3】本実施形態に係る仕様書の例を示す図である。
【
図4】本実施形態に係る業務内容の例を示す図である。
【
図5】本実施形態に係るテストケースの例を示す図である。
【
図6】本実施形態に係る不一致箇所表示画面の画面構成図である。
【
図7】本実施形態に係る修正箇所表示画面の画面構成図である。
【
図8】本実施形態に係る不一致箇所表示画面の画面構成図である。
【
図9】本実施形態に係るテスト仕様書の例を示す図である。
【
図10】本実施形態に係るテストケースの例を示す図である。
【
図11】本実施形態に係る追加テスト仕様表示画面の画面構成図である。
【
図12】本実施形態に係る不一致箇所表示画面の画面構成図である。
【
図13】本実施形態に係るテストケースの例を示す図である。
【
図14】本実施形態に係るテストケース差分表示画面の画面構成図である。
【
図15】本実施形態に係るテスト集計画面の画面構成図である。
【
図16】本実施形態に係る仕様書検証処理のフローチャートである。
【
図17】本実施形態に係るテストケース作成支援処理のフローチャートである。
【
図18】本実施形態に係るテスト実行処理のフローチャートである。
【
図19】本実施形態に係るワークフロー処理部が実行するワークフロー処理のフローチャートである。
【発明を実施するための形態】
【0011】
≪テストケース作成支援装置の概要≫
本発明を実施するための形態(実施形態)におけるテストケース作成支援装置について説明する。テストケース作成支援装置は、テスト仕様書を基にテストケース(生成テストケース)を生成する。次にテストケース作成支援装置は、テストケースと、生成テストケースとを比較して相違を表示する。テストケース作成支援装置の利用者である情報処理システムの開発者は、相違を参照してテスト仕様書を修正し、新たなテスト仕様書とする。また開発者は、相違を参照してテストケースを修正し、新たなテストケースとする。なお2つのテストケースの相違とは、テストデータの集合としてのテストケースの差(テストケースに含まれるテストデータの差)やテストデータに含まれる入出力の差である。
【0012】
なおテストデータとは、情報処理システムのコード(プログラム)を検査(テスト)するための入力データと出力データ(結果)のペアである。テストケースはテストデータの集合である。プログラムに入力データを入力して、プログラムの出力が出力データと一致すれば検査合格である。
【0013】
またテストケース作成支援装置は、テストケースから自然文であるテスト仕様書(生成テスト仕様書)を生成する。次にテストケース作成支援装置は、テスト仕様書と、生成テスト仕様書とを比較して相違を表示する。開発者は、相違を参照してテストケースを修正して、新たなテストケースとする。また開発者は、相違を参照してテスト仕様書を修正して、新たなテスト仕様書とする。なお2つのテスト仕様書の相違とは、自然文(文章)としての差であり、例えば語の違いや数値の違いなどがある。
【0014】
開発者がテスト仕様書およびテストケースの修正を反復することで、テスト仕様書の記載が明確になり、テスト仕様書およびテストケース間の矛盾がなくなり、テスト仕様書およびテストケースの品質が向上する。
【0015】
≪テストケース作成支援装置の処理概要≫
テストケース作成支援装置の構成を示す前に、テストケース作成支援装置の処理の概要を説明する。
図1は、本実施形態に係るテストケース作成支援装置100(後記する
図2参照)の主たる処理を説明するための図である。以下の仕様書検証処理810、テストケース作成支援処理820、およびテスト実行処理830の説明では、処理途中で生成されるデータや文章を説明し、処理自体(機能部)の説明は後記する。
【0016】
≪処理概要:仕様書検証処理≫
図1に示すように仕様書検証処理810においては、入力である情報処理システムの仕様書811から業務内容812が生成される。次に業務内容812に示される入出力を基にテストケース813が生成される。続いて、テストケース813からテストケース813の入出力の内容を示す自然文である文章814が生成される。仕様書検証処理810の最後の処理として、業務内容812と文章814とが比較され、相違を含む評価結果815(後記する
図6参照)が表示される。なお評価結果815は、業務内容812と後記する文章822,825との相違を含んでもよい。
【0017】
テストケース作成支援装置の利用者である開発者は、評価結果815を参照して仕様書811を修正する。修正された仕様書811は、次回の仕様書検証処理810の入力となる。仕様書検証処理810が反復されて仕様書811の修正が繰り返されることで、仕様書811に含まれる誤りや分かりづらい記載、曖昧な記載が修正されて仕様書811の品質が向上する。
【0018】
≪処理概要:テストケース作成支援処理≫
図1に示すようにテストケース作成支援処理820の入力は、テスト仕様書821およびテストケース824である。テスト仕様書821は仕様書811を基に生成されたテスト仕様書であってもよいし、人手で作成されたテスト仕様書であってもよい。テストケース824はコード831またはテスト結果833を基に生成されたテストケースであってもよいし、テスト仕様書821またはテスト結果833を参照して人手で生成されたテストケースであってもよい。
【0019】
テストケース作成支援処理820においては、テスト仕様書821を正規化した自然文である文章822が生成される。またテスト仕様書821に示される入出力を基にテストケース823(生成テストケース)が生成される。またテストケース824の入出力の内容を示す自然文である文章825(生成テスト仕様)が生成される。続いてテスト仕様書821と文章822,825とが比較されて相違を含む評価結果826(後記する
図8参照)が表示される。またテストケース824,823が比較されて相違を含む評価結果827(後記する
図12、
図14参照)が表示される。
【0020】
開発者は、評価結果826,827を参照してテスト仕様書821を修正する。修正されたテスト仕様書821は、次回のテストケース作成支援処理820の入力となる。また開発者は、評価結果826,827を参照してテストケース824を修正する。修正されたテストケース824は、次回のテストケース作成支援処理820の入力となる。テストケース作成支援処理820が反復実行されてテスト仕様書821およびテストケース824の修正が繰り返されることで、テスト仕様書821およびテストケース824に含まれる誤りが修正され、これらの品質が向上する。またテスト仕様書821の不明確または分かりづらい記載が修正され、テスト仕様書821の品質が向上する。
【0021】
≪処理概要:テスト実行処理≫
図1に示すようにテスト実行処理830においては、入力であるコード831(プログラム)からテストケース832が生成され、テストケース832を用いてテストが実行されてテスト結果833が得られる。テスト結果833とは、テストケース832にある入力に対する実行されたコード831の出力と、テストケース832にある出力との差である。差にはエラー出力も含まれる。
【0022】
続いて、テストケース832とテスト結果833とから評価結果834(後記する
図15参照)が表示される。なおテストケース832は、テストケース作成支援処理820の結果であり、また入力でもあるテストケース824であってもよい。開発者は、テスト結果833を参照してコード831やテストケース824を修正する。
【0023】
以上に説明したように、仕様書検証処理810、テストケース作成支援処理820、およびテスト実行処理830を反復しながら、開発者は仕様書811、テスト仕様書821、テストケース824、およびコード831を繰り返し修正する。このようにすることで、仕様書811、テスト仕様書821、テストケース824、コード831の間の矛盾がなくなり、誤記や抜け、分かりづらい記載がない高品質の文書やコードを作成することができるようになる。
【0024】
≪テストケース作成支援装置の全体構成≫
図2は、本実施形態に係るテストケース作成支援装置100の機能ブロック図である。テストケース作成支援装置100はコンピュータであり、制御部110、記憶部130、および入出力部180を備える。入出力部180には、ディスプレイやキーボード、マウスなどのユーザインターフェイス機器が接続される。入出力部180が通信デバイスを備え、他の装置とのデータ送受信が可能であってもよい。また入出力部180にメディアドライブが接続され、記録媒体を用いたデータのやり取りが可能であってもよい。
【0025】
≪テストケース作成支援装置:記憶部≫
記憶部130は、ROM(Read Only Memory)やRAM(Random Access Memory)、SSD(Solid State Drive)などの記憶機器を含んで構成される。記憶部130には、仕様書データベース210、テスト仕様書データベース220、テストケースデータベース230、テスト結果データベース240、コードデータベース250、評価結果データベース260、レビュー結果データベース270、およびプログラム138が記憶される。
【0026】
仕様書データベース210には、修正版を含む仕様書811が格納される。テスト仕様書データベース220には、修正版を含むテスト仕様書821が格納される。テストケースデータベース230には、修正版を含むテストケース824が格納される。テスト結果データベース240にはテスト実行ごとのテスト結果833が格納される。コードデータベース250には、修正版を含むコード831が格納される。
【0027】
評価結果データベース260には、評価結果815,826,827,834が格納される。格納される評価結果815には、当該評価結果815が出力された際の入力となる仕様書811や当該評価結果815を参照して修正された仕様書811が関連付けられている。評価結果826,827,834についても同様であって、当該評価結果826,827,834を参照して修正されたテスト仕様書821、テストケース824、コード831がそれぞれ関連付けられて格納される。また、修正前のテストケース作成支援処理820、テスト実行処理830の入力であるテスト仕様書821、テストケース824、コード831が関連付けられて評価結果データベース260に格納される。
【0028】
レビュー結果データベース270には、修正された、仕様書811、テスト仕様書821、テストケース824、およびコード831に係るレビューの結果(後記する
図19参照)が、格納される。なおレビュー結果は、レビュー対象である仕様書811、テスト仕様書821、テストケース824、およびコード831と関連付けられて格納される。
プログラム138は、仕様書検証処理810、テストケース作成支援処理820、およびテスト実行処理830(
図1、および後記する
図16~
図18参照)の手順の記述を含む。
【0029】
本実施形態では、仕様書データベース210、テスト仕様書データベース220、テストケースデータベース230、テスト結果データベース240、コードデータベース250、評価結果データベース260、およびレビュー結果データベース270は、テストケース作成支援装置100に記憶されるが、リポジトリに格納されてもよい。
【0030】
≪テストケース作成支援装置:制御部≫
制御部110は、CPU(Central Processing Unit)を含んで構成され、業務内容生成部111、仕様ベーステストケース生成部112、自然文生成部113、テスト仕様妥当性検証部114、テストケース妥当性検証部115、コードベーステストケース生成部116、テスト実行部117、テスト評価部118、およびワークフロー処理部119が備わる。ワークフロー処理部119の詳細は、後記する
図19を参照して説明する。以下、他の制御部110の構成を順に説明する。
【0031】
≪テストケース作成支援装置:業務内容生成部≫
仕様書検証処理810において業務内容生成部111は、仕様書811を入力として、業務内容812を生成する。
図3は、本実施形態に係る仕様書811の例を示す図である。仕様書811は、例えば開発対象である情報処理システムの「システム名称」や「背景と目的」、処理内容を含む「業務内容」などを含む。
図4は、本実施形態に係る業務内容812の例を示す図である。仕様書811が1つの文書であるとしても、業務内容812は1つとは限らず、業務や業務の細目などの情報処理システムの(業務)処理ごとに分割されて生成される。業務内容生成部111は、自然言語処理技術を用いて仕様書811を解析して、業務や業務の細目ごとに業務内容812を生成する。
【0032】
以上に説明したようにテストケース作成支援装置100(仕様書作成支援装置)は、情報システムの開発工程における仕様書811を基に仕様書811に含まれる業務内容812を生成する業務内容生成部111を備える。
【0033】
≪テストケース作成支援装置:仕様ベーステストケース生成部≫
図2に戻って制御部110の説明を続ける。仕様書検証処理810において仕様ベーステストケース生成部112は、業務内容812を入力としてテストケース813(後記する
図5参照)を生成する。またテストケース作成支援処理820において仕様ベーステストケース生成部112は、テスト仕様書821を入力としてテストケース823を生成する。
【0034】
図5は、本実施形態に係るテストケース813の例を示す図である。テストケース813は、
図4に記載の業務内容812にある一番の下の「製品Gは、…2個ごとに顧客に納品する。」という業務内容812を基に生成されたテストケース813である。
図5に記載のテストケースには、入力と出力の条件(ここでは値)の組み合わせに応じて8つのテストデータが含まれている。3番目のテストデータにおける入力の条件は、部品D、製品E、製品Fの在庫数がそれぞれ2個ずつである。結果の条件は、組み立てた結果としてそれぞれが1、0、0となり、製品Gが1つ、この内の納品数が0である。
【0035】
仕様ベーステストケース生成部112は、自然文である業務内容812やテスト仕様書821を解析してテストケース813,823を生成する。このような技術の例として「村上響一他, "自然言語で記載された仕様書からのテストケース自動生成アルゴリズムの構築," 情報処理学会研究報告, Vol.2019-SE-201, No.9, pp.1-8.」がある。
【0036】
以上に説明したようにテストケース作成支援装置100(仕様書作成支援装置)は、業務内容812を基にテストケースである生成テストケース(テストケース813)を生成する仕様ベーステストケース生成部112を備える。またテストケース作成支援装置100は、情報システムの開発工程におけるテスト仕様書821を基にテストケースである生成テストケース(テストケース823)を生成する仕様ベーステストケース生成部112を備える。
【0037】
≪テストケース作成支援装置:自然文生成部≫
図2に戻って制御部110の説明を続ける。仕様書検証処理810において自然文生成部113は、テストケース813を入力として自然文である文章814を生成する。文章814は、入力であるテストケース813の内容を示す業務内容812を雛形として所定の規則に従った自然文である。所定の規則とは、主語と述語を含む、目的語を含む、述語を統一する(例えば、「確かめる」「確認する」を「確認する」に統一)、単文にする、曖昧な係り受けを避ける、構文上の誤りがないなどの規則であり、文章を単純で分りやすくするための規則である。自然文生成部113が所定の規則に従って自然文を生成することで、自然文として望ましい文章814となる。自然文生成部113は、例えば文の基本構造(構文木)として業務内容812の基本構造を用い、テストケース813の内容となる入出力データを主語や目的語(単語、詞)とし、所定の規則に従った自然文である文章814を生成する。
【0038】
テストケース作成支援処理820において自然文生成部113は、テストケース824を入力として自然文である文章825を生成する。この場合、自然文生成部113は文の基本構造としてテスト仕様書821の基本構造を用いて文章825を生成してもよい。
また、テストケース作成支援処理820において自然文生成部113は、テスト仕様書821を入力として自然文である文章822を生成する。この場合、自然文生成部113は文の基本構造として入力であるテスト仕様書821の基本構造を用いて文章822を生成してもよい。自然文生成部113は、所定の規則に従うようにテスト仕様書821を変換することになる。
【0039】
以上に説明したようにテストケース作成支援装置100(仕様書作成支援装置)は、生成テストケース(テストケース813)を基に自然文である文章814を生成する自然文生成部113を備える。またテストケース作成支援装置100は、情報システムの開発工程におけるテストケース824を基に自然文のテスト仕様書である生成テスト仕様書(文章825)を生成する自然文生成部113を備える。
【0040】
≪テストケース作成支援装置:テスト仕様妥当性検証部≫
仕様書検証処理810においてテスト仕様妥当性検証部114は、業務内容812と文章814とを比較して、不一致箇所を検出して表示する。
図6は、本実施形態に係る不一致箇所表示画面510の画面構成図である。不一致箇所表示画面510は、業務内容812を表示する領域511と、文章814を表示する領域512と、表示されている業務内容812および文章814の位置を示す領域513とを含んで構成される。領域513において、全体の領域513のうちで上半分が強調されて(
図6ではハッチングされて)表示されており、業務内容812および文章814の前半部分が表示されていることを示している。
【0041】
業務内容812と文章814とが異なる箇所には、領域511,512に表示されたテキストにおいて下線が引かれている。1番目の異なる箇所として領域511の「指定するできるごとに」と領域512の「できるごとに」とに下線が引かれている。この違いは、業務内容812に含まれている「指定するできるごとに」が構文上の誤りを含んでおり、この誤りを除いた構文木を基に文章814が生成されて「できるごとに」となったことによる違いである。場合によっては「できるごとに」ではなく「指定するごとに」という結果にもなり得る。
【0042】
2番目の異なる箇所として領域511の「部品F」と領域512の「部品E」とに下線が引かれている。この違いは、構文木の単語(詞)としてテストケース813に含まれる「部品E」を当てはめて文章814が生成されて「部品E」となったことによる違いである。
領域512にある文章814の内容が正しいとは限らないが、構文上は正しく、単純で分かりやすい文章である。開発者は不一致箇所表示画面510を参照して、仕様書811を修正することで、内容が正しく、単純で分かりやすい仕様書811になることが期待できる。なお修正された仕様書811は、仕様書データベース210に格納される。
【0043】
テスト仕様妥当性検証部114は、業務内容812と文章814とを比較して、不一致箇所を修正箇所として表示してもよい。
図7は、本実施形態に係る修正箇所表示画面520の画面構成図である。修正箇所表示画面520は、業務内容812を表示する領域521と、文章814との違いを修正候補として表示する領域522と、表示されている業務内容812の位置を示す領域523とを含んで構成される。領域523において、全体の領域523のうちで上半分が強調されて(
図7ではハッチングされて)表示されており、業務内容812の前半部分が表示されていることを示している。
【0044】
テストケース作成支援処理820においてテスト仕様妥当性検証部114は、テスト仕様書821(後記する
図9参照)と文章822,825とを比較して、不一致箇所を検出して表示する。
図8は、本実施形態に係る不一致箇所表示画面510Aの画面構成図である。不一致箇所表示画面510Aは、テスト仕様書821を表示する領域516と、文章822を表示する領域517と、文章825を表示する領域518とを含んで構成される。
【0045】
図9は、本実施形態に係るテスト仕様書821の例を示す図である。テスト仕様書821は、不一致箇所表示画面510Aの領域516に表示される。
自然文生成部113は、テスト仕様書821を入力として自然文である文章822を生成する。文章822は、不一致箇所表示画面510Aの領域517に表示される。
図10は、本実施形態に係るテストケース824の例を示す図である。自然文生成部113はテストケース824を入力として自然文である文章825を生成する。文章825は、不一致箇所表示画面510Aの領域518に表示される。
【0046】
図8に戻って、不一致箇所表示画面510Aの説明を続ける。テスト仕様書821と文章822,825とが異なる箇所には、領域516,517,518に表示されたテキストにおいて下線が引かれている。1番目の異なる箇所として領域516の「評価A」と、領域517の「評価Aである」と、領域518の「評価Aである」とに下線が引かれている。この違いは、自然文生成部113がテスト仕様書821に含まれている「評価A」で終わっている文について述語がないと判断し、生成した自然文が「評価Aである」となったことによる違いである。
【0047】
2番目の異なる箇所は、3番目の文の違いである。領域518に表示された文章825に含まれる「検査Qによる弾力確認で数値が4~9である。」という文は、
図10に記載のテストケース824に含まれる5番目の条件の組み合わせ(「検査Q」が「9」となるテストデータ)に基づいて生成されたものである。
異なる箇所として領域516の「8」と、領域517の「8である」と、領域518の「9である」とに下線が引かれている。「である」については、1番目の異なる箇所と同様である。「8」と「9」の違いは、テスト仕様書821とテストケース824の内容との違いに由来するものである。
【0048】
またテストケース作成支援処理820においてテスト仕様妥当性検証部114は、文章822,825を比較して、不一致箇所を仕様の追加として表示してもよい。
図11は、本実施形態に係る追加テスト仕様表示画面530の画面構成図である。領域531にはテスト仕様書821が、領域532には文章825が表示されている。テスト仕様書821の内容に近いと考えられる文章822からみると文章825は、数値の範囲が「4~8」から「4~9」と拡大しており、仕様の追加となる。テスト仕様妥当性検証部114は、この仕様の追加に相当する箇所に下線を引いて強調して表示する。
【0049】
開発者は不一致箇所表示画面510Aや追加テスト仕様表示画面530を参照して、テスト仕様書821を修正することで、内容が正しく、単純で分りやすい仕様書811になることが期待できる。なお修正されたテスト仕様書821は、テスト仕様書データベース220に格納される。
開発者は不一致箇所表示画面510Aや追加テスト仕様表示画面530を参照して、テストケース824を修正してもよい。こうすることで、内容が正しいテストケース824になることが期待できる。なお修正されたテストケース824は、テストケースデータベース230に格納される。
【0050】
以上に説明したようにテストケース作成支援装置100(仕様書作成支援装置)は、業務内容812と文章814とを比較して相違を出力するテスト仕様妥当性検証部114を備える。なお相違とは、不一致箇所表示画面510や修正箇所表示画面520において表示される業務内容812と文章814との不一致である。
またテストケース作成支援装置100は、情報システムの開発工程におけるテスト仕様書821と生成テスト仕様書(文章825)とを比較して相違を出力するテスト仕様妥当性検証部114を備える。なお相違とは、不一致箇所表示画面510Aや追加テスト仕様表示画面530において表示されるテスト仕様書821と文章825との不一致である。
【0051】
≪テストケース作成支援装置:テストケース妥当性検証部≫
図2に戻って制御部110の説明を続ける。テストケース妥当性検証部115は、2つのテストケースを比較して、不一致箇所を検出して表示する。例えばテストケース作成支援処理820においてテストケース妥当性検証部115は、テストケース823,824を比較する。
【0052】
図12は、本実施形態に係る不一致箇所表示画面540の画面構成図である。
図13は、本実施形態に係るテストケース813Aの例を示す図である。不一致箇所表示画面540は、テストケース813(
図5参照)とテストケース813Aとの不一致箇所を表示する画面であって、不一致となっている3つの項目が強調されて(
図12ではハッチングされて)表示されている。不一致箇所表示画面540にはテストケース813Aの項目の値が表示されている。マウスポインタ542を不一致の項目にあわせると、テストケース813における値がポップアップされて表示される(符号541参照)。
【0053】
またテストケース妥当性検証部115は、2つのテストケースを比較して、テストケースに含まれるテストデータの差を検出して表示する。
図14は、本実施形態に係るテストケース差分表示画面550の画面構成図である。テストケース824(
図10参照)と比較すると、2番目のテストデータが強調されて表示されて(
図14ではハッチングされて記載)おり、このテストデータが追加(割り込むように挿入)されていることが分かる。
【0054】
開発者は不一致箇所表示画面540やテストケース差分表示画面550を参照して、テストケース824を修正することで、内容が正しいテストケース824になることが期待できる。またテストケース作成支援処理820において、テスト仕様書821とテストケース824とが並行して修正されることで、内容に矛盾のないテスト仕様書821およびテストケース824になることが期待できる。
【0055】
以上に説明したようにテストケース作成支援装置100は、情報システムの開発工程におけるテストケース824と生成テストケース(テストケース823)とを比較して相違を出力するテストケース妥当性検証部115を備える。なお相違とは、不一致箇所表示画面540やテストケース差分表示画面550において表示されるテストケース823,824の不一致やテストデータの差分である。
【0056】
≪テストケース作成支援装置:コードベーステストケース生成部≫
図2に戻って制御部110の説明を続ける。コードベーステストケース生成部116は、テスト実行処理830においてコード831を入力としてテストケース832を出力する。例えばコードベーステストケース生成部116は、コード831の入力パラメータの型や条件分岐を参照して、コード831内の様々な実行パスを通るテストケース832を生成して出力する。この際にコードベーステストケース生成部116は、カバレッジ分析を行い、所定のカバレッジを満たすようにテストケース832を生成する。またコードベーステストケース生成部116は、コード831に対応するテストケースがテストケースデータベース230にあれば、このテストケースと生成したテストケースとを合成してテストケース832として出力する。他にコードベーステストケース生成部116は、コード831に対応するテストケースがテストケースデータベース230にあれば、このテストケースをテストケース832として出力してもよい。
【0057】
コードベーステストケース生成部116は、既存のテストケースがある場合にペアワイズ法を用いて既存のテストケースに含まれるテストデータを削除してもよい。なおテストデータを削除したために所定のカバレッジを満たさなくなった場合にコードベーステストケース生成部116は、コード831に対してのカバレッジ分析を行い、テストデータを追加して所定のカバレッジを満たすようにする。
【0058】
以上に説明したようにテストケース作成支援装置100は、情報システムの開発工程における既存のテストケース(テストケースデータベース230にあるテストケース)に、情報システムの開発工程におけるコード831を基にテストケース832を生成して加えるコードベーステストケース生成部116を備える。またコードベーステストケース生成部116は、情報システムの開発工程における既存のテストケースに対してペアワイズ手法を適用してテストケースの数を削減する。
【0059】
≪テストケース作成支援装置:テスト実行部、テスト評価部≫
テスト実行部117は、コード831をコンパイルし、テストケース832を用いてテストを実行してテスト結果833を出力する。
テスト評価部118は、テスト結果833を集計して評価結果834を生成してテスト集計画面560(後記する
図15参照)に表示する。
図15は、本実施形態に係るテスト集計画面560の画面構成図である。テスト集計画面560には、評価結果834としてテストが実行されてテスト結果833が正しい(テストケースの出力と一致する)テストデータの割合、コード831を含むファイル全体およびファイルごとのカバレッジ、およびテストケース数とコードステップ数との比率が表示される。
【0060】
≪仕様書検証処理≫
図16は、本実施形態に係る仕様書検証処理810のフローチャートである。仕様書検証処理810は、開発者が仕様書811を検証するタイミングで開始される。
ステップS11において業務内容生成部111は、仕様書811を入力として業務内容812を生成する。入力となる仕様書811は、開発者が指定した仕様書、または仕様書データベース210にある最新版の仕様書である。
【0061】
ステップS12において業務内容生成部111は、ステップS11で生成された業務内容812(
図4参照)ごとにステップS13~S19を繰り返す処理を開始する。
ステップS13において仕様ベーステストケース生成部112は、業務内容812を入力としてテストケース813を生成する。
ステップS14において自然文生成部113は、ステップS13で生成されたテストケース813を入力として自然文である文章814を生成する。
【0062】
ステップS15においてテスト仕様妥当性検証部114は、業務内容812と、ステップS14で生成された文章814とを比較する。
ステップS16においてテスト仕様妥当性検証部114は、業務内容812と文章814とが一致していれば(ステップS16→YES)ステップS13に戻って、次の業務内容812に対して処理を繰り返す。テスト仕様妥当性検証部114は、業務内容812と文章814とが不一致ならば(ステップS16→NO)ステップS17に進む。
【0063】
ステップS17においてテスト仕様妥当性検証部114は、不一致箇所が修正可能であれば(ステップS17→YES)ステップS18に進み、修正不可であれば(ステップS17→NO)ステップS19に進む。修正可/不可の判断についてテスト仕様妥当性検証部114は、例えば日本語としての構文上の正しさや係り受けの分かりやすさなどを基準に判断する。
図6の第1の異なる箇所については、「指定するできるごとに」は日本語として誤りであり「できるごとに」が正しいので「できるごとに」修正される(
図7参照)。
【0064】
ステップS18においてテスト仕様妥当性検証部114は、修正前の箇所と修正後の箇所とをマーキングして記憶する。この箇所は、後記するステップS20において修正箇所表示画面520(
図7参照)に表示される。
ステップS19においてテスト仕様妥当性検証部114は、不一致箇所をマーキングして記憶する。この箇所は、後記するステップS20において不一致箇所表示画面510(
図6参照)に表示される。
ステップS20においてテスト仕様妥当性検証部114は、不一致箇所表示画面510および修正箇所表示画面520を入出力部180に接続されたディスプレイに出力する。開発者は、不一致箇所表示画面510および修正箇所表示画面520を参照して仕様書811を修正する。修正された仕様書811は、仕様書データベース210に格納される。
【0065】
≪テストケース作成支援処理≫
図17は、本実施形態に係るテストケース作成支援処理820のフローチャートである。テストケース作成支援処理820は、開発者がテスト仕様書821およびテストケース824を検証するタイミングで開始される。
【0066】
ステップS31において仕様ベーステストケース生成部112は、テスト仕様書821を入力としてテストケース823を生成する。入力となるテスト仕様書821は、開発者が指定したテスト仕様書、または開発者が指定した業務に係るテスト仕様書データベース220にある最新版のテスト仕様書である。
ステップS32において自然文生成部113は、テスト仕様書821を入力として自然文である文章822を生成する。この処理によりテスト仕様書821は、所定の規則に従った文章822に変換される。
【0067】
ステップS33において自然文生成部113は、テストケース824を入力として自然文である文章825を生成する。入力となるテストケース824は、開発者が指定したテストケース、または開発者が指定した業務に係るテストケースデータベース230にある最新版のテストケースである。
ステップS34においてテストケース妥当性検証部115は、テストケース823,824を比較して、不一致箇所とテストデータの差をマーキングして記憶する。不一致箇所は、後記するステップS36において不一致箇所表示画面540(
図12参照)に表示される。またテストデータの差は、後記するステップS36においてテストケース差分表示画面550(
図14参照)に表示される。
【0068】
ステップS35においてテスト仕様妥当性検証部114は、テスト仕様書821と文章822,825とを比較して不一致箇所と追加仕様とをマーキングして記憶する。この不一致箇所は、後記するステップS36において不一致箇所表示画面510A(
図8参照)に表示される。また追加仕様は、後記するステップS36において追加テスト仕様表示画面530(
図11参照)に表示される。
【0069】
ステップS36においてテスト仕様妥当性検証部114は、不一致箇所表示画面510A,540、追加テスト仕様表示画面530、およびテストケース差分表示画面550を入出力部180に接続されたディスプレイに出力する。開発者は、不一致箇所表示画面510A,540、追加テスト仕様表示画面530、およびテストケース差分表示画面550を参照してテスト仕様書821やテストケース824を修正する。修正されたテスト仕様書821はテスト仕様書データベース220に、テストケース824はテストケースデータベース230に格納される。
【0070】
≪テスト実行処理≫
図18は、本実施形態に係るテスト実行処理830のフローチャートである。テスト実行処理830は、開発者がコード831のテストを実行するタイミングで開始される。
ステップS51においてコードベーステストケース生成部116は、コード831を入力とし、カバレッジ分析してテストケース832を出力する。換言すれば、コードベーステストケース生成部116は、所定のカバレッジを満たすようにテストケース832を生成する。
【0071】
ステップS52においてコードベーステストケース生成部116は、コード831に対応するテストケースがテストケースデータベース230にあれば、当該テストケースとステップS51で生成したテストケースとを合成してテストケース832として出力する。合成されたテストケース832は、テストケースデータベース230に格納される。なおコード831に対応する既存のテストケースがテストケースデータベース230にある場合には、ステップS51でカバレッジ分析してテストケースを出力するのではなく、この既存のテストケースをテストケース832としてもよい。
【0072】
ステップS53においてテスト評価部118は、コード831が実行可能ならば(ステップS53→YES)ステップS54に進み、実行不可ならば(ステップS53→NO)テスト実行処理830を終了する。
ステップS54においてテスト実行部117は、テストケース832を用いてテストを実行し、テスト結果833を出力する。テスト結果833は、テスト結果データベース240に格納される。
【0073】
ステップS55においてテスト実行部117は、カバレッジや全体のテストケースのなかでテストした結果が正しい(テストの出力とテストケースの出力とが一致する)テストデータの割合などを算出する。
ステップS56においてテスト評価部118は、テスト集計画面560(
図15参照)やテスト結果833を入出力部180に接続されたディスプレイに出力する。開発者は、テスト結果833を参照してコード831やテストケースデータベース230に格納されているコード831に対応したテストケースを修正する。
【0074】
≪ワークフロー処理≫
図19は、本実施形態に係るワークフロー処理部119が実行するワークフロー処理のフローチャートである。ワークフロー処理部119は常時実行状態にあり、資料の編集状態を監視している。なお資料とは、仕様書811、テスト仕様書821、テストケース824、およびコード831の何れかである。
【0075】
ステップS71においてワークフロー処理部119は、資料の編集を検出すると(ステップS71→YES)ステップS72に進み、資料の編集が未検出ならば(ステップS71→NO)ステップS71に戻る。
ステップS72においてワークフロー処理部119は、ステップS71で編集が検出された資料について編集が終了すれば(ステップS72→YES)ステップS73に進み、編集が未了ならば(ステップS72→NO)ステップS72に戻る。
【0076】
ステップS73においてワークフロー処理部119は、他の資料の編集を検出すると(ステップS73→YES)ステップS72に戻り、他の資料の編集が未検出ならば(ステップS73→NO)ステップS74に進む。他の資料とは、ステップS71で編集が検出された資料とは異なる資料のことである。ステップS72に戻るとワークフロー処理部119は、ステップS73で編集を検出した資料について編集終了を監視することになる。開発者が複数の資料を同時に並行して編集する場合がある。ステップS74に進んだ時点で、これら複数の資料の編集が完了したことになる。
【0077】
ステップS74においてワークフロー処理部119は、開発者に問い合わせた結果、資料が確定された場合には(ステップS74→YES)ステップS76に進み、未確定ならば(ステップS74→NO)ステップS75に進む。
ステップS75においてワークフロー処理部119は、未確定の資料を廃棄する。
ステップS76においてワークフロー処理部119は、編集内容を確定し、新しい版の資料として、リポジトリや仕様書データベース210、テスト仕様書データベース220、テストケースデータベース230、コードデータベース250に格納する。なお一部の資料が確定で他の資料が未確定であるならば、未確定の資料は廃棄し、確定の資料は新しい版の資料として格納する。
【0078】
ステップS77においてワークフロー処理部119は、確定した資料それぞれについて、当該資料のレビュー担当者へレビューの依頼を通知する。
ステップS78においてワークフロー処理部119は、レビュー担当者がレビューを始めると、資料とその関連する資料を提示する。
ステップS79においてワークフロー処理部119は、レビュー担当者からレビュー結果としての承認可否を受信して、レビュー結果データベース270に格納する。
【0079】
ステップS80においてワークフロー処理部119は、レビュー結果が承認であれば(ステップS80→YES)ステップS81に進み、承認でなければ(ステップS80→NO)ステップS83に進む。
ステップS81においてワークフロー処理部119は、リポジトリや仕様書データベース210、テスト仕様書データベース220、テストケースデータベース230、コードデータベース250に格納されている資料にレビュー完をマークする。
ステップS82においてワークフロー処理部119は、関係者に資料の変更を通知する。
ステップS83においてワークフロー処理部119は、資料を編集した開発者に承認されず差し戻されたことを通知する。
【0080】
≪テストケース作成支援装置の特徴≫
テストケース作成支援装置100は、テスト仕様書821から文章822とテストケース823を、テストケース824から文章825を生成する。テストケース作成支援装置100は、テスト仕様書821と文章822,825との相違や、テストケース823,824の相違を表示する(
図8、
図11、
図12、
図14参照)。開発者は相違を参照して、テスト仕様書821とテストケース824とを修正する。
テストケース作成支援装置100は、仕様書811と所定の規則に従った文章814との相違を表示する(
図6、
図7参照)。開発者は相違を参照して、仕様書811を修正する。
【0081】
テストケース作成支援装置100は、テスト結果833を表示する。開発者は、テスト結果833を参照してコード831やテストケースデータベース230に格納されているテストケースを修正する。
テストケース作成支援装置100の処理結果である相違を参照して、開発者が資料(仕様書811、テスト仕様書821、テストケース824、コード831)の修正を反復することで、資料の誤りや分かりづらい記載、資料間の矛盾などがなくなり、資料の品質が向上する。換言すればテストケース作成支援装置100は、テストケース824を含む資料の作成の効率化、高品質化を支援している。
【0082】
≪変形例:仕様書検証処理≫
上記した実施形態では仕様書811については、仕様書検証処理810内に閉じて修正が反復されている。テスト仕様書821(
図3参照)に含まれる業務内容には、テスト仕様書と同等の内容が含まれるとして、テスト仕様妥当性検証部114は、業務内容812とテスト仕様書821とを比較して、不一致箇所表示画面510および修正箇所表示画面520を表示するようにしてもよい。
【0083】
開発者はこれらの画面を参照して仕様書811やテスト仕様書821を修正する。このようにすることで、仕様書811とテスト仕様書821との間の矛盾を削減することができるようになる。
なおテスト仕様書821に含まれる業務内容には、仕様書811と同等の内容が含まれるとする場合に、業務内容812または文章814を最初の版のテスト仕様書821としてもよい。この場合、業務内容生成部111、または業務内容生成部111、仕様ベーステストケース生成部112、自然文生成部113の一連の処理を実行する機能部が、テスト仕様生成部と見なせる。
【0084】
以上に説明したようにテストケース作成支援装置100は、情報システムの仕様書811を基にテスト仕様書821を生成するテスト仕様生成部を備える。情報システムの開発工程におけるテスト仕様書821は、テスト仕様生成部が生成したテスト仕様書である。
【0085】
≪その他の変形例≫
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0086】
100 テストケース作成支援装置(仕様書作成支援装置)
111 業務内容生成部
112 仕様ベーステストケース生成部
113 自然文生成部
114 テスト仕様妥当性検証部
115 テストケース妥当性検証部
116 コードベーステストケース生成部
117 テスト実行部
118 テスト評価部
119 ワークフロー処理部
811 仕様書
812 業務内容
824,832 テストケース
821 テスト仕様書
813,823 テストケース(生成テストケース)
825 文章(生成テスト仕様書)