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