JP2016212633A - プログラム試験優先順位決定システム - Google Patents

プログラム試験優先順位決定システム Download PDF

Info

Publication number
JP2016212633A
JP2016212633A JP2015095923A JP2015095923A JP2016212633A JP 2016212633 A JP2016212633 A JP 2016212633A JP 2015095923 A JP2015095923 A JP 2015095923A JP 2015095923 A JP2015095923 A JP 2015095923A JP 2016212633 A JP2016212633 A JP 2016212633A
Authority
JP
Japan
Prior art keywords
item
test
heading
similarity
priority
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
JP2015095923A
Other languages
English (en)
Other versions
JP6497199B2 (ja
Inventor
原大 附田
Gendai Fuda
原大 附田
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2015095923A priority Critical patent/JP6497199B2/ja
Publication of JP2016212633A publication Critical patent/JP2016212633A/ja
Application granted granted Critical
Publication of JP6497199B2 publication Critical patent/JP6497199B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

【課題】修正版のプログラムに対する試験に係わるテスト項目の優先順位を自動的に決定して提示する。
【解決手段】キーワード選定部12は、修正箇所情報2からキーワードを抽出する。類似度判定部13は、このキーワードを用いて開発文書1の仕様書等を検索して、該仕様書等の各項目のプログラム修正内容に関する類似度を求める。各テスト項目は、それぞれ、仕様書等における任意の項目に関連しており、これより上記類似度に基づいて各テスト項目の優先順位を決定する。
【選択図】図1

Description

本発明は、ソフトウェア開発においてプログラムを変更・修正した後、再度試験を行う際のテスト項目の優先順位の決定方法、及び装置に関する。
一般的に、プログラムの不具合を発見するために、パソコン上でのソフトウェア単体での動作確認や、実際の基板を使用した動作確認などが行われている。また、発見した不具合を修正した後にも、再度動作確認を実施し、不具合がしっかりと修正されたか、修正することで他の箇所に不具合が発生していないか等を確認しており、同じ試験項目が繰り返し試験される形となっていた。
しかしながら、ソフトウェアの規模は年々増加傾向にあるため、現実には、変更や修正を行う毎に全ての試験項目を実施する事は困難となっている。
そこで、従来は、開発した内容の相互関係を整理するためのトレーサビリティマトリクスを使用し、変更したことによる影響範囲の特定やチェック作業(レビューや動作確認)の優先順位を決定することが行われている。これにより、確認項目(試験項目)の絞り込みを行い、状況に応じた量の確認項目を選定することが可能である。しかし、トレーサビリティマトリクスを作成するためには、仕様の理解や仕様書、設計書などの文書同士の関連付けが必要であり、膨大な作業時間が必要である。
上記問題に対して、例えば特許文献1の発明で、過去の試験結果やプログラムのソースコード、依存関係を元に、ソフトウェアのコードに含まれる“Statement(命令文)”を元に、修正した部分に関連する試験項目の抽出や優先順位の決定を行い、試験を繰り返し実施する方法が、提案されている。
尚、図14に、トレーサビリティマトリクスの具体例を示すが、これについては特に説明しない。トレーサビリティマトリクスは、例えば後述する図6に示すテスト項目に、更に各テスト項目が関係する章番号(仕様書等における関連箇所の章番号など)が、対応付けられている。
特許第4939973号公報(特開2008−204405号公報)
上記特許文献1の発明によれば、ソースコードで追跡できる影響範囲(ソフトウェア単体での試験)であれば、トレーサビリティマトリクスを使わずにソフトウェアの試験項目を絞り込むことが可能である。
しかしながら、組み込み機器などのようにソフトウェアとハードウェアが組み合わさっているようなシステムを試験の対象とした場合、ソースコードでは追跡できない範囲となるソフトウェアのアルゴリズムやロジックに関わらない試験(例えば、システムとしての性能やノイズ耐性に関する試験)が含まれるため、特許文献1の発明では対応できなかった。
上述したように、トレーサビリティマトリクスを作成するためには、仕様の理解や仕様書、設計書などの文書同士の関連付けが重要であるため、作業に膨大な時間が必要である。また、トレーサビリティマトリクスを使用しない上記特許文献1の技術では、ソフトウェアのソースコードで追跡できない範囲の試験(システムとしての性能やノイズ耐性に関する試験)には対応できなかった。
本発明の課題は、修正版のプログラムに対する試験に係わるテスト項目の優先順位を自動的に決定して提示することができるプログラム試験優先順位決定システム等を提供することである。
本発明のプログラム試験優先順位決定システムは、任意のソフトウェアの修正版に対する試験に係わる各テスト項目の優先順位を決定するシステムであって、下記の各構成を有する。
・前記ソフトウェアに関する開発文書と前記各テスト項目が、予め記憶されている第1記憶手段;
・前記ソフトウェアの修正情報を入力し、該修正情報からキーワードを抽出するキーワード選定手段;
・前記開発文書の各項目の文章における前記各キーワードの出現数を求めることで、前記ソフトウェアの修正内容に関する該各項目の類似度を求める類似度判定手段;
・該求めた類似度に基づいて、前記各テスト項目の優先順位を決定する優先順位決定手段。
本発明のプログラム試験優先順位決定システム等によれば、修正版のプログラムに対する試験に係わるテスト項目の優先順位を自動的に決定して提示することができる。
本例のプログラム試験優先順位決定システムの構成例を示す図である。 プログラム試験優先順位決定装置の処理フローチャート図である。 修正箇所情報2の具体例である。 仕様書の目次部分の具体例を示す図である。 仕様書の本編の一部の具体例を示す図である。 テスト項目の具体例を示す図である。 準キーワード、キーワードの抽出結果の具体例である。 類似度判定部の処理結果の具体例を示す図である。 図6に示すテスト項目に関する優先順位決定結果の一例を示す図である。 類似度判定処理のフローチャート図である。 ステップS21の処理に用いる正規表現の一例を示す図である。 見出しのフォーマット例を示す図である。 仕様書の目次部分の具体例(その2)を示す図である。 トレーサビリティマトリクスの具体例である。
以下、図面を参照して本発明の実施の形態について説明する。
図1は、本例のプログラム試験優先順位決定システムの構成例を示す図である。
図示のプログラム試験優先順位決定システムは、開発文書1や修正箇所情報2等を記憶する情報記憶装置3と、プログラム試験優先順位決定装置10等を有する。但し、情報記憶装置3は、プログラム試験優先順位決定装置10に備えられていても良い。
プログラム試験優先順位決定装置10は、入力部11、キーワード選定部12、類似度判定部13、優先順位決定部14、出力部15の各種処理機能部を有する。尚、上記情報記憶装置3は、優先順位決定装置10に備えられるものであってもよいし、外部に備えられるものであっても構わない。
プログラム試験優先順位決定システムは、ソフトウェア試験(特に修正版のソフトウェアの試験)に係わる各テスト項目の優先順位を決定するシステムである。
プログラム試験優先順位決定システムは、例えば、まず、ソフトウェアの修正箇所や修正内容等を示す文章(一例が修正箇所情報2)から、特徴となる単語(キーワード)を抽出する。続いて、開発文書1(仕様書など)に記載されている文章に対して上記キーワードを用いた検索を行うことで、開発文書1の各記載項目の類似度を求める。これは、例えば、上記修正箇所や修正内容等と関連性が高い記載項目は、類似度が高くなるようにする方法を用いている。
そして、プログラム試験優先順位決定システムは、上記各記載項目の類似度に基づいて、上記修正版のソフトウェアの試験に係わる各テスト項目の優先順位を決定する。各テスト項目は、予め作成されている。つまり、上記ソフトウェア(プログラム)を新規作成した際等に、各テスト項目が作成されて、この各テスト項目による試験が行われている。そして、この試験結果に基づいて、開発者等がソフトウェアの修正を行っている。
この様なことから、本手法が係わる修正版プログラムの試験の際には、各テスト項目は既に作成済みの状態となっている。また、各テスト項目は、基本的に、開発文書1(仕様書など)における任意の記載項目に関係するものとなっている場合が多い。本手法では、これを利用して、各テスト項目の優先順位を決定する。詳しくは後述する。
尚、プログラム試験優先順位決定装置10は、例えばパソコン等の汎用のコンピュータ装置により実現されるものである。これより、プログラム試験優先順位決定装置10は、特に図示しないが、一般的なパソコンのハードウェア構成を有しており、例えばCPU、ハードディスク、メモリ等の記憶部、入出力インタフェース、キーボード、マウス等の操作部、液晶ディスプレイ等の表示部、通信機能部等(何れも不図示)を備えている。
上記不図示の記憶部には、予め所定のアプリケーションプログラムが記憶されている。上記不図示のCPUが、このアプリケーションプログラムを実行することで、上記各種処理機能部11〜15の処理が実現される。
上記開発文書1や修正箇所情報2等は、任意のプログラムに関して予め開発者/プログラマ等によって任意に作成されて情報記憶装置3に記憶されている。開発文書1は、例えば、上記任意のプログラム開発に伴って開発者等により任意に作成されている、仕様書や設計書等である。更に、作成されたプログラムの試験の為のテスト項目も、上記の通り、予め開発者等によって任意に作成されている。
尚、図では、テスト項目も開発文書1の一部として示されているが、この例に限らず、テスト項目は開発文書1とは別扱いとしてもよい。この場合でも、テスト項目は、予め作成されて情報記憶装置3に記憶されている。
新規作成された任意のプログラムに関して、上記テスト項目に応じた試験が行われて、この試験結果に応じて開発者等がプログラムを修正することで、修正版プログラムが作成される。
上記修正箇所情報2は、上記修正版プログラムに係わる各修正箇所や修正内容などが記述された文章等である。例えば、上記プログラム修正を行った開発者等が、修正箇所情報2の作成を行うが、この例に限らない。
上記開発文書1(上記仕様書や試験項目)や上記修正箇所情報2の一例は、後に示し、後に説明するものとする。
ここで、図2に、プログラム試験優先順位決定装置10の処理フローチャート図を示す。
以下、図2も参照して、図1に示すプログラム試験優先順位決定装置10の各種機能部の処理について説明する。
プログラム試験優先順位決定装置10は、上記入力部11を介して、上記開発文書1(仕様書や設計書、試験項目など)や修正箇所情報2を入力する(ステップS11)。
キーワード選定部12は、修正箇所情報2からキーワードを抽出する(ステップS12)。基本的には、複数のキーワードが抽出される。
類似度判定部13は、抽出されたキーワードを用いて開発文書1の仕様書等を検索して、仕様書等の各項目の類似度を決定する(ステップS13)。これは、例えば、キーワードの出現回数が多い項目ほど、類似度が高いものとなるように決定するが、この例に限らない。尚、“類似度”とは、修正内容や修正箇所との類似度などを意味するものと見做してもよいが、この例に限らない。
また、仕様書等における各項目は、それぞれ、例えば後述する「見出し+本文」から成る文章であり、換言すれば1つの章(章/節/項)の文章である。尚、ここでは、“章”
は、“章”だけでなく、“節”や“項”も意味するものとする。類似度判定部13は、各項目毎に特に上記本文の文章に対してキーワード検索する。詳しくは後述する。
優先順位決定部14は、上記類似度判定部13によって決定された仕様書等の各項目の類似度に基づいて、各テスト項目の優先順位を決定する(ステップS14)。これは、例えば、類似度が高い項目に関連しているテスト項目は、優先順位が高くなるようにして、優先順位を決定するが、この例に限らない。
出力部15は、優先順位決定部14による処理結果(各テスト項目の優先順位など)を、ファイル(優先順位ファイル4)に出力するか、若しくはディスプレイに表示する(ステップS15)。
上記テスト項目は、例えば、開発文書1における各項目(章など)の中の任意の項目に関連する任意の試験方法が、文章として記述されたものである。優先順位決定部14は、例えば、類似度が高い項目(章など)に関連するテスト項目の優先順位が高くなるように、各テスト項目の優先順位を決定する。
また、プログラム試験優先順位決定装置10には、例えば、特に図示していないが、開発文書における各項目の見出しのフォーマットに応じた正規表現が、予め記憶されているものであってもよい。この正規表現の一例を図11に示し後に説明する。
本例のプログラム試験優先順位決定装置10は、特に組み込み機器などのソフトウェアとハードウェアが組み合わさっているシステムに係わるプログラムの各種試験項目に関して、修正した不具合に関連性が高いテスト項目が、優先度が高いものとなるようにする。
その為に、上述したように、まず、修正した不具合の情報(修正箇所情報2)からキーワードを抽出する。続いて、試験の対象となるシステムの仕様書や設計書の記述内容に対してキーワード検索を掛けて、仕様書に書かれた仕様項目や、設計書に書かれた設計項目に含まれるキーワードの割合や数などを、類似度として算出する。そして、この類似度に基づいて、各テスト項目の優先順位を決定する。優先順位は、例えば、(ハードやソフト、システムの)各テスト項目が、修正した不具合にどの程度関連するかを示すものと見做してもよい。
以下、上記プログラム試験優先順位決定システムについて、具体例も参照して、更に詳細に説明する。
図3は、上記修正箇所情報2の具体例である。
図示の例の修正箇所情報2は、修正した順序を示す修正番号21と、修正した箇所や修正内容が記載される内容22から成る。尚、修正番号21は、単に各内容22に対して任意に付したシリアル番号であってもよい。つまり、修正した順序は本手法では特に関係ない。
内容22には、例えば上記開発者等によって、プログラムの修正箇所や修正内容などが記述されており、例えば図示の「機能Aの制御動作にある不具合を修正」等の文章より成る。これは、基本的には開発者等が任意に自由に記述してよいものである。
尚、図3に示す例では、全ての修正内容(内容22)には、修正に係わる項目名(機能A、機能C等の機能名)が含まれているが、実際には、項目名等は記述されていない場合も少なくない。この為、修正箇所情報2を参照しても、各修正内容に対応するテスト項目は分からない場合が少なくない。
また、図4、図5に、仕様書(要件定義書)の具体例を示す。
仕様書には、例えば、システムの前提条件やシステム要件等に係わる記述が含まれ、その中にテストの対象となる機能等が含まれている。
図4には、仕様書の目次部分の具体例を示す。
図5には、仕様書の本編(本文などが記述されている)の一部の具体例を示す。
図4に示すように、目次部分には、各見出し(章番号を含む)等が記載されている。例えば一例としては、図示の「3−1 機能要求」、「(1) 機能A」などの各見出しが記載されている。これらの一例において、“3−1”や“(1)”が、章番号である。尚、ここでは、“章”とは、“章”だけでなく、“節”や“項”等も含まれるものとする。これより、章番号には、章の番号だけでなく、節の番号や項の番号等も含まれるものとする。これより、見出しとは、章タイトル、節タイトル、項タイトル等である。
図5には、図4に示す目次における見出し「(1) 機能A」に係わる本編の記載(本文)の具体例を示す。
図示のように、本編においては、見出しと本文が記述されている。逆に、目次部分には、見出しの一覧が記載されているものと見做しても良い。
図5に示す例では、本編においては、任意の見出しの次に、その見出しに係わる本文が記載されており、次の見出しの直前までが当該本文となる。つまり、任意の見出しと次の見出しとの間に、この任意の見出しの本文が記載されていることになる。本文は、例えば図示のように、機能名、概要、入力、出力、処理等に関して任意の記述がある。
図6に、テスト項目の具体例を示す。
図示の例のテスト項目は、試験番号31、対象項目32、試験内容33等から成る。
試験番号31は単なるシリアル番号等である。
試験内容33には、対応する対象項目32に係わるテスト内容が記述される。例えば、機能Aに関して「信号を変動させ、出力が追従すること」等の試験内容33が記述される。
上記の通り、テスト項目は、開発者等が予め任意に記述するものであり、試験内容33は自由に記述されるものであってよいが、対象項目32は例えば上記仕様書の見出しに準じたものとすることが望ましい。
上記具体例等を参照して、上記各種処理機能について説明する。
まず、キーワード選定部12による上記キーワード抽出処理について、具体例を説明する。キーワード選定部12は、例えば、修正箇所情報2に含まれる文章から、助詞を探索し、各助詞の間にある用語(一般的に名詞や動詞等となる)を、準キーワードとして抽出する。
例えば上記図3の例の場合、例えば「機能Eの入力監視の不具合を修正」という文章に関しては、助詞として“の”と“の”と“を”が検出されるので、これらの助詞と助詞との間の用語、または文章の先頭と最初の助詞の間の用語、最後の助詞と文章の最後の間の用語を、準キーワードとして抽出する。この例では、図7に示すように、“機能E”、“入力監視”、“不具合”、“修正”が、準キーワードとして抽出されることになる。
ここで、修正箇所情報2は、基本的に、どの様な不具合箇所をどの様に修正したのかが、記述されているので、「不具合」や「修正」という用語は、多くの文章で用いられている可能性が高い。この為、開発者等は、この様な多用されている用語を、キーワードから除外する用語(除外用語)として、予め登録しておくようにしてもよい。
これより、上記準キーワードから上記除外用語を除外することで、上記一例では図7に示すように、“機能E”と“入力監視”がキーワードとして抽出されることになる。
尚、図7は、準キーワード、キーワードの抽出結果の具体例である。この例では、抽出結果は、修正番号41、準キーワード42、キーワード43から成る。修正番号41は、処理対象文章の修正内容22に応じた修正番号21である。この処理対象の内容22の文章から抽出された準キーワードが、準キーワード42に示す各用語である。
類似度判定部13は、上記の通り、上記抽出されたキーワードと開発文書1等に基づいて、開発文書1等の各項目の類似度を決定する。上記具体例に応じた類似度判定部13の処理結果の具体例を、図8に示す。
図示の例では、類似度判定部13の処理結果として、各項目名51毎に、その項目の主に本文におけるキーワード出現回数52が得られており、各キーワードの出現回数を合計したものが、類似度53となる。図示の例では、キーワード出現回数52として、キーワード“機能E”の出現回数と、キーワード“入力監視”の出現回数とが得られているので、これらを合計したものが類似度53となる。
各項目名51は、例えば開発文書1(仕様書など)から各見出しを抽出したものである。仕様書等からの見出しの抽出処理の具体例については、後に図10、図11等を参照して説明するものとする。尚、図10等で説明するように、本例では、仕様書等における全ての見出しを項目名51とするのではなく、その中で所定の複数の見出しを項目名51とする。
尚、各テスト項目は、基本的に、例えば上記仕様書における各項目(見出し)の中の任意の項目に係わるものとなる。それ故、図6に示すように、各テスト項目が係わる項目名(見出し)が、対象項目32の欄に格納されている。図4に示す例の場合、“3−1機能要求”に関する各項目(機能A、機能B、機能C、機能D、機能E)や、“3−2機能外要求”に関する各項目(保守性、拡張性、移植性)が、テスト項目が係わる項目となる場合が多い。これより、図6に示す例では、対象項目32にこれらの各項目名(仕様書等における見出し;機能A、機能C、保守性など)を例示している。
また、図8には、類似度判定部13の処理結果の全てではなく、一部は省略して示している。つまり、項目名51には更に“保守性”、“拡張性”、“移植性”等があることになる。
また、キーワード出現数52は、上記キーワード選定部12によって抽出された上記各キーワードが、仕様書等における各項目名51の本文において出現する回数である。
尚、図では、上記図7の例に応じた2つのキーワード(機能E、入力監視)のみを示すが、これは省略して示しているだけであり、実際にはより多くのキーワードがキーワード出現数52の欄にあることになる。つまり、図7では、修正番号=‘8’の修正内容に応じたキーワードの抽出例を示したが、実際には図3に示す修正番号=‘1’や‘2’等の他の修正内容(内容22)からも同様にしてキーワードを抽出することになる。そして、抽出された全てのキーワードがキーワード出現数52の欄にあることになる。そして、これら全てのキーワードについて、それぞれ、上記出現数が求められることになり、その合計値(総計)が類似度53となることになる。
そして、類似度判定部13は、仕様書において各項目名51に応じた検索対象箇所を探索して、この検索対象箇所に対してキーワード出現数52の欄の各キーワードによる検索を掛けて、ヒット数を求める。例えば、仕様書の本編は、図5で説明したように、見出しと本文から成り、各項目名51は任意の見出し(見出しの文字列部分)であると言える。これより、仕様書の本編において、項目名51の見出しがある箇所を探索して、この見出しの本文(この見出しと次の見出しとの間の部分)を、上記検索対象箇所とする。尚、見出し自体も、検索対象箇所に含めても良い。
例えば、図8における項目名51=“機能A”を例にすると、図5に示す見出し“(1)機能A”の本文が、検索対象箇所となる。そして、この検索対象箇所(機能Aの本文)に対して、例えば、キーワード“機能E”を用いた検索を行うと、図8の例ではヒット数は‘0’である。つまり、機能Aの本文中には、「機能E」という用語は、1つも存在しないことになる。同様にして、上記検索対象箇所(機能Aの本文)に対して、例えば、キーワード“入力監視”を用いた検索を行うと、図8の例ではヒット数は‘0’である。つまり、機能Aの本文中には、「入力監視」という用語は、1つも存在しないことになる。
そして、類似度判定部13は、各項目名51毎に、上記各キーワードのヒット数(出現数)を合計値と算出して、これを類似度53とする。
優先順位決定部14は、類似度判定部13によって求められた、上記各項目51に応じた類似度53に基づいて、各テスト項目の優先順位を決定する。
これは、例えば、図8に示す各項目名51のなかで最も類似度53が高い項目を、最も優先順位が高い(優先度=‘1’)項目とする。同様にして、2番目に類似度が高い項目を、2番目に優先順位が高い(優先度=‘2’)項目とする。他の項目も同様にして、その項目の優先順位(優先度)を決定する。
図8の例の場合、“機能E”が最も優先順位が高い(優先度=‘1’)項目となり、“機能D”が2番目に優先順位が高い(優先度=‘2’)項目となる。
そして、例えば図6に示す各テスト項目の優先順位(優先度)は、その対象項目32の項目の上記優先順位によって決定する。本例では、その対象項目32の項目の上記優先順位を、そのまま、そのテスト項目の優先順位とする。これより、この例の場合、図6に示すテスト項目に関する優先順位決定結果は、例えば図9に示すようになる。
例えば、図6における試験内容33=「入力αを変化させ、警告が出ること」のテスト項目は、その対象項目32が“機能E”であるので、上記のように機能Eの優先度=‘1’であることから、図9に示すように、このテスト項目の優先順位は最も高いものとなる(優先度=‘1’)。
上記のように、本例では、開発文書1(仕様書など)における任意の項目(章など)と紐付いているテスト項目の優先度は、その項目(章など)の優先度に応じて決定される。
上述したように本手法では、仕様書や設計書の文章を元にすることで、試験で対象としているシステムの情報を、ソースコードに頼ること無く追跡する事が可能となる。これより、トレーサビリティマトリクスを作成せずに、修正後のソフトウェアに対するテスト項目の優先順位を決定することができ、テスト項目の優先順位の決定に関する作業を短縮することが可能である。
また、ソフトウェア、ハードウェア、システムに共通して作成される仕様書や設計書などの文書に書かれた文章データを、試験の追跡を行うための情報として使用するため、どのようなシステムに対する試験に対しても優先順位を決定することが可能である。
ここで、上記のように類似度判定処理の際には、開発文書1(仕様書など)における上記各検索対象箇所に対して、上記キーワード検索を行う。この各検索対象箇所の探索方法について、以下、説明する。
図10は、類似度判定処理のフローチャート図である。
図示の処理では、まず、仕様書等の文書(本編)内から全ての見出しを取得する(ステップS21)。そして、この見出し一覧から、対象とする見出しを特定する(ステップS22)。更に、対象とする見出しに従属する見出しも特定する(ステップS23)。ステップS22、S23で特定した各見出しとその本文を、上記検索対象箇所として、これらを抜き出して、上記優先度判定処理に使用する(ステップS24)。
但し、ステップS23の処理は、必ずしも必要ない。ステップS22の処理に係わる条件指定の内容によっては、ステップS23の処理が必要になる場合もある。
一般的に、仕様書等のような文書は、通常、図5に示したように、見出し(章番号+任意の文字列)と本文があり、本文は見出しに挟まれる形で存在する(文書の最後は例外)。よって、対象とする章の本文を取得したい場合、文書に含まれる文字列の中から対象となる章の見出しを発見することが重要となる。その為の処理が、上記ステップS21,S22,S23である。
以下、上記ステップS21〜S24の処理について、図11、図12等も参照して、更に詳細に説明する。
まず、図11には、上記ステップS21の処理に用いる正規表現の一例を示す。
尚、この様な正規表現は、予め開発者などが任意に作成して、プログラム試験優先順位決定装置10等に登録しておく。プログラム試験優先順位決定装置10等は、この様な正規表現等を用いて、例えば上記ステップS21の処理を実行する。
図11に示す正規表現は、「行の先頭指定」、「見出しの章番号部分」、「見出し文字列部分」、「行の最後指定」の図示の各正規表現である。このうち、「行の先頭指定」及び「行の最後指定」の正規表現によって、対象文書(仕様書など)から、この文書に含まれる各段落(改行で区切られている文字列)を抜き出すことになる。そして、抜き出した各段落のなかで「見出しの章番号部分」及び「見出し文字列部分」の正規表現と一致する段落を、見出しとして取得する。これが上記ステップS21の処理の具体例となる。
ここで、図示の「見出し文字列部分」の正規表現は、単に複数の文字列があることを意味するので、基本的には「見出しの章番号部分」の正規表現と一致するか否かによって、見出しであるか否かが判定されることになる。
図示の「見出しの章番号部分」の正規表現は、まず最初に開き括弧“(”が0文字または1文字入り、その後に数字またはハイフンが複数入り、その後に閉じ括弧“)”が0文字または1文字入ることを意味している。これは、図4、図5に示す例のように、章番号が、例えば“3−1”や“3−2−1”のようなハイフンが含まれているものや、章番号が(1)や(2)等である例に対応する例である。よって、章番号が、例えば“3.1.3”のような表現となっている場合には、これに合わせた正規表現を、開発者等が作成すればよい。
見出しは、章の番号(図4、図5の例では”3”や”3-1”、”(1)”など)と、任意の文字列(図4の例では“システム要件”や”機能要求”、”機能A”など)で構成されることが一般的である。これより、その法則から見出しを抜き出すことが可能であり、その一例が上記図11に示す正規表現である。
ここで、図12に、見出しの一般的なフォーマット例を示す。
図12に示すように、一般的に、見出しは、“見出し番号”と“見出し文字列”から成る。例えば、図示の見出し「3−1 機能要求」は、見出し番号である“3−1”と、見出し文字列である“機能要求”とから成る。
“見出し文字列”自体は任意の内容となる。一方、“見出し番号”は、図12に示すように、‘3’のように数字のみの見出し番号、‘3−1’のように「数字+文字(本例ではハイフン)+数字」の見出し番号、「文字(本例では開き括弧)+数字+文字(本例では閉じ括弧)」の見出し番号等がある。この様な“見出し番号”の法則性に応じて、正規表現を作成すればよい。尚、上記のように、ここでは“文字”とは数字以外を意味するものとし、よって、(や−等の記号も、“文字”に含まれるものとする。
尚、上記各見出しを抜き出す際に、仕様書等において各見出しを抜き出した場所を示す情報(何頁の何行目など)を、抜き出した見出しに付随させるようにしてもよい。
上記ステップS21の処理によって、文書(仕様書など)の本編における各見出しの記載箇所と見出しの内容が分かるので、これら各見出しの中から上記優先度判定の処理に用いる見出し(処理対象見出し)を特定する。これが、上記ステップS22の処理である。
処理対象見出しの特定方法として、ここでは以下の2つの方法を提示するが、これらの方法に限るものではない。
(1)第1の方法
処理対象見出しとする各見出しの上記“見出し番号”(章の番号;3−1や(3)など)を、開発者等が事前に任意に設定しておく方法。通常、処理対象見出しは複数となるはずであるので、見出し番号群が登録されていることになる。
上記正規表現を用いる処理により、上記ステップS21で抽出した各見出しにおける“見出し番号”部分は分かる。よって、ステップS21で抽出した各見出し毎に、その“見出し番号”が上記事前に設定された見出し番号群の中にある場合には、その見出しが上記処理対象見出しとなる。
(2)第2の方法
処理対象見出しとする各見出しの上記“見出し文字列”(機能要求、保守性、機能Aなど)を、開発者等が事前に任意に設定しておく方法。通常、処理対象見出しは複数となるはずであるので、見出し文字列群が登録されていることになる。
上記正規表現を用いる処理により、上記ステップS21で抽出した各見出しにおける“見出し文字列”部分は分かる。よって、ステップS21で抽出した各見出し毎に、その“見出し文字列”が上記事前に設定された見出し文字列群の中にある場合には、その見出しが上記処理対象見出しとなる。
尚、上記第1、第2の何れの方法であっても、処理対象見出しとする各見出しは、開発者等が任意に決めてよいが、上述したように、テスト項目が関連する項目(対象項目32)を、処理対象見出しとすることが望ましい。最終的にはテスト項目の優先順位を決定するのであるから、テスト項目に関係しない見出しに関して優先度を判定しても、あまり意味がないからである。
また、処理対象見出しとする見出しの“見出し番号”または“見出し文字列”をダイレクトに指定する方法に限るのであれば、上記ステップS23の処理は特に必要ない。しかしながら、例えば図4に示す例において、図示の「3-2-1 保守性」、「3-2-2 拡張性」、「3-2-3 移植性」を処理対象見出しとしたい場合に、これらの上位の見出しである「3−2 機能外要求」を指定することで、これら3つの見出しを纏めて指定できるようにすることも考えられる。ここでは、この様なケースに対応して、上記ステップS23の処理を行う場合もあるものとする。
この様なケースの場合、ステップS22において処理対象見出しとする各見出しを特定した後、これら特定した各見出しに従属する見出しを特定し、それも処理対象とする
その為に例えば一例としては上記“見出し番号”を用いる。すなわち、上記一例の場合、指定された「3−2 機能外要求」の“見出し番号”は“3−2”である。そして、所定の法則性から、その従属章の“見出し番号”は、「“3−2”+ハイフン+数字」であると見做してよい。よって、ステップS21で抽出した各見出しの中から、その“見出し番号”が「“3−2”+ハイフン+数字」の条件を見たすものを探し出して、これらも処理対象見出しとすればよい。
この様に、章番号は、通常、文書の構造も表現しているため、対象とする章に従属する章についても特定することが可能である。但し、全てにおいて、この方法が適用できるとは限らない。
また、この例では見出し番号の階層識別の処理(見出し番号の中から数字とそれ以外を識別し、出現順番によって分類する)が、別途必要であるが、例えば図13に示すようなピリオドで階層を記述する章番号であれば、特に処理を必要とせずに階層を区別する事が可能である。
そして、ステップS24では、上述したステップS21、S22の処理(場合によっては更にステップS23の処理)によって特定された各処理対象見出しに係わる各本文を、文書(仕様書など)から抜き出す。そして、抜き出した本文に対して上記キーワードを用いた検索処理を行って、上記類似度を求めることになる。
上記のように、本手法では、新規作成されたプログラムに対して、予め作成された各テスト項目を用いて試験を行い、この試験結果に応じてプログラマ等が上記プログラムの修正を行った後に、特に効果を奏するものである。つまり、この様な修正版プログラムに対して、上記新規作成時と同じく全てのテスト項目について試験を行うことは、無駄が多く効率的ではない。修正箇所に関連するテスト項目、特に修正との関連性(類似度)が高いテスト項目について、優先的・重点的に試験を行うことが出来れば、効果的・効率的な再試験が行えることが期待できる。本手法では、上記優先度を求めて提示することで、これを実現させることができる。
1 開発文書
2 修正箇所情報
3 情報記憶装置
10 プログラム試験優先順位決定装置
11 入力部
12 キーワード選定部
13 類似度判定部
14 優先順位決定部
15 出力部
21 修正番号
22 内容
31 試験番号
32 対象項目
33 試験内容
41 修正番号
42 準キーワード
43 キーワード
51 項目名
52 キーワード出現回数
53 類似度
61 試験番号
62 対象項目
63 試験内容
64 優先度

Claims (7)

  1. 任意のソフトウェアの修正版に対する試験に係わる各テスト項目の優先順位を決定するシステムであって、
    前記ソフトウェアに関する開発文書と前記各テスト項目が、予め記憶されている第1記憶手段と、
    前記ソフトウェアの修正情報を入力し、該修正情報からキーワードを抽出するキーワード選定手段と、
    前記開発文書の各項目の文章における前記各キーワードの出現数を求めることで、前記ソフトウェアの修正内容に関する該各項目の類似度を求める類似度判定手段と、
    該求めた類似度に基づいて、前記各テスト項目の優先順位を決定する優先順位決定手段と、
    を有することを特徴とするプログラム試験優先順位決定システム。
  2. 前記各テスト項目は、各々、前記開発文書における各項目の中の任意の項目に関連する任意の試験方法であり、
    前記優先順位決定手段は、前記類似度が高い項目に関連するテスト項目の優先順位が高くなるように前記各テスト項目の優先順位を決定することを特徴とする請求項1記載のプログラム試験優先順位決定システム。
  3. 前記開発文書の各項目の文章は、見出しと本文とから成り、
    前記類似度判定手段は、任意の各項目毎に、その本文における前記各キーワードの出現数を求めることで、前記ソフトウェアの修正内容に対する該各項目の類似度を求めることを特徴とする請求項1記載のプログラム試験優先順位決定システム。
  4. 前記類似度判定手段は、任意に指定された項目または/及び該指定された項目に属する項目を処理対象項目として、該各処理対象項目に関して前記類似度を求めることを特徴とする請求項3記載のプログラム試験優先順位決定システム。
  5. 任意の項目の前記見出しに含まれる章番号または文字列が指定されることで、前記任意の項目の指定が行われることを特徴とする請求項4記載のプログラム試験優先順位決定システム。
  6. 前記見出しのフォーマットに応じた正規表現が、予め記憶されており、
    前記類似度判定手段は、前記開発文書における前記各見出しの記載箇所を前記正規表現を用いて求めて、任意の見出し間の文章を前記本文とすることを特徴とする請求項3記載のプログラム試験優先順位決定システム。
  7. 前記開発文書は、仕様書であることを特徴とする請求項1記載のプログラム試験優先順位決定システム。
JP2015095923A 2015-05-08 2015-05-08 プログラム試験優先順位決定システム Expired - Fee Related JP6497199B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015095923A JP6497199B2 (ja) 2015-05-08 2015-05-08 プログラム試験優先順位決定システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015095923A JP6497199B2 (ja) 2015-05-08 2015-05-08 プログラム試験優先順位決定システム

Publications (2)

Publication Number Publication Date
JP2016212633A true JP2016212633A (ja) 2016-12-15
JP6497199B2 JP6497199B2 (ja) 2019-04-10

Family

ID=57550506

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015095923A Expired - Fee Related JP6497199B2 (ja) 2015-05-08 2015-05-08 プログラム試験優先順位決定システム

Country Status (1)

Country Link
JP (1) JP6497199B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020087106A (ja) * 2018-11-28 2020-06-04 株式会社Jsol テスト支援方法、テスト実行方法、テスト支援装置及びコンピュータプログラム
WO2021234798A1 (ja) * 2020-05-18 2021-11-25 日本電信電話株式会社 生成装置、生成方法および生成プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002073373A (ja) * 2000-09-04 2002-03-12 Hitachi Ltd 修正確認検査項目を元に周辺・類似機能を確認する検査プログラムを抽出するプログラム検査装置
JP2008117066A (ja) * 2006-11-01 2008-05-22 Hitachi Ltd ソフトウェア開発支援方法、ソフトウェア開発支援装置、ソフトウェア開発支援プログラム、及び計算機システム
JP2013097450A (ja) * 2011-10-28 2013-05-20 Mizuho Information & Research Institute Inc 開発支援システム、開発支援方法及び開発支援プログラム
JP2013246644A (ja) * 2012-05-25 2013-12-09 Mitsubishi Electric Corp ソフトウェアオブジェクト修正支援装置、ソフトウェアオブジェクト修正支援方法、および、プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002073373A (ja) * 2000-09-04 2002-03-12 Hitachi Ltd 修正確認検査項目を元に周辺・類似機能を確認する検査プログラムを抽出するプログラム検査装置
JP2008117066A (ja) * 2006-11-01 2008-05-22 Hitachi Ltd ソフトウェア開発支援方法、ソフトウェア開発支援装置、ソフトウェア開発支援プログラム、及び計算機システム
JP2013097450A (ja) * 2011-10-28 2013-05-20 Mizuho Information & Research Institute Inc 開発支援システム、開発支援方法及び開発支援プログラム
JP2013246644A (ja) * 2012-05-25 2013-12-09 Mitsubishi Electric Corp ソフトウェアオブジェクト修正支援装置、ソフトウェアオブジェクト修正支援方法、および、プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020087106A (ja) * 2018-11-28 2020-06-04 株式会社Jsol テスト支援方法、テスト実行方法、テスト支援装置及びコンピュータプログラム
WO2021234798A1 (ja) * 2020-05-18 2021-11-25 日本電信電話株式会社 生成装置、生成方法および生成プログラム

Also Published As

Publication number Publication date
JP6497199B2 (ja) 2019-04-10

Similar Documents

Publication Publication Date Title
US9754176B2 (en) Method and system for data extraction from images of semi-structured documents
US9389852B2 (en) Technique for plagiarism detection in program source code files based on design pattern
JP6053131B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP6542612B2 (ja) テストシナリオ生成支援装置およびテストシナリオ生成支援方法
US9990268B2 (en) System and method for detection of duplicate bug reports
JP2007011604A (ja) 不具合診断システム及びプログラム
JP6497199B2 (ja) プログラム試験優先順位決定システム
Gąsior et al. The IPIPAN team participation in the check-worthiness task of the CLEF2019 CheckThat! Lab
JP2005301859A (ja) コード検索プログラム及びコード検索装置
JP5687312B2 (ja) デジタル情報分析システム、デジタル情報分析方法、及びデジタル情報分析プログラム
US20140189642A1 (en) Native Language IDE Code Assistance
US11532311B2 (en) System, method, program, and recording medium for improving accuracy of call data analysis
US8892951B2 (en) Fault localization for data-centric programs
KR102021383B1 (ko) 동적 분석과 정적 분석을 연계한 프로그램을 분석하기 위한 방법 및 장치
JP6305671B1 (ja) テンプレート生成装置、テンプレート生成プログラム及びテンプレート生成方法
JP2011175446A (ja) 要件・バグレポート処理システム及びその方法
JP2018185716A (ja) データ処理システム、データ処理方法、およびデータ構造
US9507855B2 (en) System and method for searching index content data using multiple proximity keyword searches
JP2016040707A (ja) ソフトウェア検証プログラム、ソフトウェア検証方法及びソフトウェア検証装置
JP6870454B2 (ja) 分析装置、分析プログラム及び分析方法
WO2023026409A1 (ja) 情報処理装置、プログラム及び情報処理方法
JP6281239B2 (ja) プログラム開発サポート装置および方法
JP2009059332A (ja) 文書情報表示システム
JPWO2018154784A1 (ja) 影響抽出装置、影響抽出プログラム及び影響抽出方法
JP5853090B2 (ja) デジタル情報分析システム、デジタル情報分析方法、及びデジタル情報分析プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180416

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190125

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: 20190212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190225

R150 Certificate of patent or registration of utility model

Ref document number: 6497199

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees