JP5046109B2 - ソースコード検証管理装置、方法、及びプログラム - Google Patents

ソースコード検証管理装置、方法、及びプログラム Download PDF

Info

Publication number
JP5046109B2
JP5046109B2 JP2007286727A JP2007286727A JP5046109B2 JP 5046109 B2 JP5046109 B2 JP 5046109B2 JP 2007286727 A JP2007286727 A JP 2007286727A JP 2007286727 A JP2007286727 A JP 2007286727A JP 5046109 B2 JP5046109 B2 JP 5046109B2
Authority
JP
Japan
Prior art keywords
verification
source code
time
order
scheduled
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.)
Expired - Fee Related
Application number
JP2007286727A
Other languages
English (en)
Other versions
JP2009116477A (ja
Inventor
克昌 榊原
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 JP2007286727A priority Critical patent/JP5046109B2/ja
Publication of JP2009116477A publication Critical patent/JP2009116477A/ja
Application granted granted Critical
Publication of JP5046109B2 publication Critical patent/JP5046109B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Description

本発明は、ソースコードの検証に関し、特に静的解析手法による検証に関する。
プログラムソースコード(以下、ソースコード)は、ソフトウェアの開発工程で加えられる追加や修正に対して、ソフトウェアの品質を確保するために検証が実行される。
ソースコードは、ソフトウェアの開発工程における要件の変更や機能の追加に伴って、追加、変更、削除といった修正が加えられる。ソースコードの検証は、ソースコードへの修正に対してソフトウェアの品質を確保するために行われ、ソースコードの修正に起因する不具合の発生の有無や、既存のソースコードへの悪影響の有無が確認される。
ソースコードの検証方法には、回帰テストと呼ばれる手法がある。回帰テストは、ソースコードを実行形式にし、あらかじめ用意した入力データをソースコードの修正前後で実行して、その出力結果を比較することによって検証を行う手法である。回帰テストは、ソースコードの修正前後で出力結果に変化が無いことを確認することで、ソースコードの修正による不具合の発生の有無や、既存部分への悪影響の有無を確認する。このような検査手法が、特許文献1や特許文献2に開示されている。
一方で、ソースコードの検証方法には、静的解析手法と呼ばれる手法がある。静的解析手法は、ソフトウェアを実行形式にはせずに、ソースコード対して直接的に検証を行う手法である。静的解析手法のうち、形式的手法の一つとしてモデル検査がある。モデル検査は、ソースコードから状態遷移モデルを作成し、その状態遷移モデル上において、初期状態から到達状態までの到達の可能性を証明することで、検証仕様を満たすか否かを検査する。モデル検査によって、実行時にしか検出できないエラー(バグ)を効率的に検出することが可能である。静的解析手法を利用することでソースコードの改修による既存部分への影響を確認することも可能である。このような検査手法が、特許文献3に開示されている。
静的解析手法においては、ソースコード毎の検証に要する時間を想定することが困難である。これは、静的解析手法では検証の実行に要する時間が、実行する検証の種類や方法などの特性によって、単純にプログラムソースコードの規模から決定することはできないためである。そのため、実際に検証を実行してみないことには検証に要する時間が想定できず、検証時間が長時間に及び制限時間内に検証項目が全て完了しない場合も発生する。モデル検査手法においても、検証対象のソースコードが取り得る状態数が爆発的に増加する状態爆発の問題により、検証時間はソースコードの検証項目数に応じて級数的に増加する。
しかし、ソースコードの検証は、ある一定時間内で実行する必要がある。例えば、ソースコードの検証は、ソースコードの修正が行われない夜間に一括して検証を行い、翌日に結果を確認する方法をとる。静的解析においては、検証に要する時間を想定することが困難であり、個々のソースコードに適正な検証時間を割り付けることができない。とは言え、個々のソースコードに必要十分な時間を割り付けしまうと、検証全体の時間が制限時間内に収められないという問題がある。
このような問題を解決するための従来技術として、特許文献4が開示されている。特許文献4の発明は、論理回路に対し検証対象部分の複雑性を計算し、複雑性の低い検証対象から検証を実行する。また、特許文献4の発明は、検証対象の複雑度に応じて検証時間を設定する。さらに検証対象部分の複雑度が一定以上の場合は検証時間を割り付けず、検証を行わないことで検証にかかる時間を短縮し、定められた時間内で検証が完了する。
この従来技術にはいくつかの課題点がある。まず、個々の検証対象の複雑性に応じて任意に検証時間を設定するとされているため、全ての検証対象の検証を、確実に検証実施者の要求する検証制限時間内に完了することができない可能性がある。これは、検証制限時間内で検証を完了させることができない場合に、ソフトウェア開発工程に影響を与える可能性となる。次に、複雑度が一定以上の検証対象の検証時間を割り付けないため、検証装置が検証制限時間を使い切らずに検証を完了させてしまう可能性がある。これは、検証制限時間を最大限利用して検証を実行いたならば、発見し得た問題箇所を見落とす可能性となる。
特開平8−212108号公報 特開2006−163519号公報 特開2004−005674号公報 特開2001−338008号公報
本発明の目的は、検証の対象であるソースコード毎に割り付ける検証予定時間の動的な再割り付けを可能にする検証管理装置を提供することである。
本発明の他の目的は、検証全体を実行する検証制限時間を超えずに検証の対象である全てのソースコードに対する検証の実行を可能にする検証管理装置を提供することである。
本発明の検証管理装置は、検証の対象である複数のソースコードの検証順番を決定する順番決定部と、複数のソースコードの各々に対して検証の実行にかける検証予定時間を割り付ける時間算出部と、検証順番に基づいて、複数のソースコードのうちから一つの選択ソースコードを順に選択し、当該選択ソースコードに割付けられた検証予定時間内で検証を実行する検証実行部と、選択ソースコードの検証が完了する毎に、当該選択ソースコードの検証に要した検証所要時間が当該選択ソースコードに割付けられた検証予定時間より短い場合には、残った余剰検証予定時間を、複数のソースコードのうちで当該選択ソースコードの検証順番より後で検証されるべき未実行ソースコードの各々に再割付けして、未実行ソースコードの各々の検証予定時間を増加させる結果受取部とを備える。
本発明の検証管理装置の結果受取部は、選択ソースコードの検証が完了する毎に、当該選択ソースコードの検証予定時間から検証所要時間を減算して余剰検証予定時間を算出し、余剰検証予定時間を未実行ソースコードの総数で除算した時間を、未実行ソースコードの各々の検証予定時間に加算することによって再割付けする。
本発明の検証管理装置の順番決定部は、複数のソースコードの各々の検証所要時間が短いと想定する順に検証順番を決定する。
本発明の検証管理装置の検証実行部は、選択ソースコードの検証が当該選択ソースコードに割付けられた検証予定時間内に完了しない場合には、当該選択ソースコードの検証の開始からの経過時間が当該選択ソースコードに割付けられた検証予定時間に到達した時点で検証を終了する。
本発明の検証管理装置の時間算出部は、複数のソースコードの全てに対して検証を実行するための検証制限時間の範囲内で、複数のソースコードの各々に検証予定時間を割り付ける。
本発明の検証管理装置の時間算出部は、検証制限時間を複数のソースコードの総数で除算することにより検証予定時間を算出して、複数のソースコードの各々に割り付ける。
本発明の検証管理装置の検証実行部は、選択ソースコードの検証を完了する毎に、当該選択ソースコードの検証所要時間と、当該選択ソースコード割付けられた検証予定時間内に検証が完了しなかったために検証を終了した場合には、検証において実行することができなかった検証項目の数である未完了検証項目数と、を記録した検証結果を出力し、結果受取部は、検証結果に記録された検証所要時間に基づいて余剰検証予定時間を算出する。
本発明の検証管理装置は、検証順番と、検証予定時間と、検証結果とを、それぞれ複数のソースコードの各々に対応させて保存する管理データベースをさらに備える。
本発明の検証管理装置の順番決定部は、複数のソースコードのうち、管理データベースに保存された検証結果に未完了検証項目が存在しないソースコードについて、管理データベースに保存された検証結果に記録されている検証所要時間の短いものから順に検証を実行するように、検証順番における未完了検証項目が存在しないソースコードの検証順番を決定する。
本発明の検証管理装置の順番決定部は、複数のソースコードのうち、管理データベースに保存された検証結果に未完了検証項目が存在するソースコードについて、管理データベースに保存された検証結果に記録されている未完了検証項目の少ない順に検証を実行するように、検証順番における未完了検証項目が存在するソースコードの検証順番を決定し、複数のソースコードに、検証結果に未完了検証項目が存在しないソースコードが含まれる場合には、未完了検証項目が存在しないソースコードの検証順番の後に、未完了検証項目が存在するソースコードの検証順番が配置されるように検証順番を決定する。
本発明の検証管理装置の順番決定部は、複数のソースコードのうち、管理データベースに検証結果が存在しないソースコードについて、当該ソースコードの規模が小さい順に検証を実行するように、検証順番における検証結果が存在しないソースコードの検証順番を決定し、複数のソースコードに、検証結果に未完了検証項目が存在するソースコードが含まれず、未完了検証項目が存在しないソースコードが含まれる場合には、未完了検証項目が存在しないソースコードの検証順番の後に、検証結果が存在しないソースコードの検証順番が配置されるように検証順番を決定し、複数のソースコードに、検証結果に未完了検証項目が存在するソースコードが含まれる場合には、未完了検証項目が存在するソースコードの検証順番の後に、検証結果が存在しないソースコードの検証順番が配置されるように検証順番を決定する。
本発明の検証管理装置の時間算出部は、複数のソースコードの各々に割り付けられた検証予定時間と、管理データベースに保存された複数のソースコードの各々に対応する検証結果に基づいて、複数のソースコードのうち、各々に割り付けられた検証予定時間では検証が完了しないと判定する完了不可ソースコードが存在する場合には、当該ソースコードは完了不可である旨の通知を出力する。
本発明の検証管理方法は、
(a)検証の対象である複数のソースコードの検証順番を決定するステップと、
(b)複数のソースコードの各々に対して検証の実行にかける検証予定時間を割り付けるステップと、
(c)検証順番に基づいて、複数のソースコードのうちから一つの選択ソースコードを順に選択し、当該選択ソースコードに割付けられた検証予定時間内で検証を実行するステップと、
(d)選択ソースコードの検証が完了する毎に、当該選択ソースコードの検証に要した検証所要時間が当該選択ソースコードに割付けられた検証予定時間より短い場合には、残った余剰検証予定時間を、複数のソースコードのうちで当該選択ソースコードの検証順番より後で検証されるべき未実行ソースコードの各々に再割付けして、未実行ソースコードの各々の検証予定時間を増加させるステップとを備える。
本発明の検証管理方法のステップ(d)は、
選択ソースコードの検証が完了する毎に、当該選択ソースコードの検証予定時間から検証所要時間を減算して余剰検証予定時間を算出するステップと、
余剰検証予定時間を未実行ソースコードの総数で除算した時間を、未実行ソースコードの各々の検証予定時間に加算することによって再割付けするステップとを含む。
本発明の検証管理方法のステップ(a)は、
検証順番を、複数のソースコードの各々の検証所要時間が短いと想定される順に決定するステップを含む。
本発明の検証管理方法のステップ(c)は、
選択ソースコードの検証が当該選択ソースコードに割付けられた検証予定時間内に完了しない場合には、当該選択ソースコードの検証の開始からの経過時間が当該選択ソースコードに割付けられた検証予定時間に到達した時点で検証を終了するステップを含む。
本発明の検証管理方法のステップ(b)は、
複数のソースコードの全てに対して検証を実行するための検証制限時間の範囲内で複数のソースコードの各々に検証予定時間を割り付けるステップを含む。
本発明の検証管理方法の検証制限時間の範囲内で複数のソースコードの各々に検証予定時間を割り付けるステップは、検証制限時間を複数のソースコードの総数で除算することにより検証予定時間を算出して、複数のソースコードの各々に割り付けるステップを含む。
本発明の検証管理方法のステップ(c)は、
検証実行部は、選択ソースコードの検証を完了する毎に、当該選択ソースコードの検証所要時間と、当該選択ソースコード割付けられた検証予定時間内に検証が完了しなかったために検証を終了した場合には、検証において実行することができなかった検証項目の数である未完了検証項目数と、を記録した検証結果を出力するステップと、
ステップ(d)は、結果受取部は、検証結果に記録された検証所要時間に基づいて余剰検証予定時間を算出するステップとをさらに備える。
本発明の検証管理方法のステップ(c)は、
検証順番と、検証予定時間と、検証結果とを、それぞれ複数のソースコードの各々に対応させて管理データベースへ保存するステップをさらに備える。
本発明の検証管理方法のステップ(a)は、
複数のソースコードのうち、管理データベースに保存された検証結果に未完了検証項目が存在しないソースコードについて、管理データベースに保存された検証結果に記録されている検証所要時間の短いものから順に検証を実行するように、検証順番における未完了検証項目が存在しないソースコードの検証順番を決定するステップを含む。
本発明の検証管理方法のステップ(a)は、
複数のソースコードのうち、管理データベースに保存された検証結果に未完了検証項目が存在するソースコードについて、管理データベースに保存された検証結果に記録されている未完了検証項目の少ない順に検証を実行するように、検証順番における未完了検証項目が存在するソースコードの検証順番を決定するステップと、
複数のソースコードに、検証結果に未完了検証項目が存在しないソースコードが含まれる場合には、未完了検証項目が存在しないソースコードの検証順番の後に、未完了検証項目が存在するソースコードの検証順番が配置されるように検証順番を決定するステップとを含む。
本発明の検証管理方法のステップ(a)は、
複数のソースコードのうち、管理データベースに検証結果が存在しないソースコードについて、当該ソースコードの規模が小さい順に検証を実行するように、検証順番における検証結果が存在しないソースコードの検証順番を決定するステップと、
複数のソースコードに、検証結果に未完了検証項目が存在するソースコードが含まれず、未完了検証項目が存在しないソースコードが含まれる場合には、未完了検証項目が存在しないソースコードの検証順番の後に、検証結果が存在しないソースコードの検証順番が配置されるように検証順番を決定するステップと、
複数のソースコードに、検証結果に未完了検証項目が存在するソースコードが含まれる場合には、未完了検証項目が存在するソースコードの検証順番の後に、検証結果が存在しないソースコードの検証順番が配置されるように検証順番を決定するステップとを含む。
本発明の検証管理方法のステップ(b)は、
複数のソースコードの各々に割り付けられた検証予定時間と、管理データベースに保存された複数のソースコードの各々に対応する検証結果に基づいて、複数のソースコードのうち、各々に割り付けられた検証予定時間では検証が完了しないと判定する完了不可ソースコードが存在する場合には、当該ソースコードは完了不可である旨の通知を出力するステップをさらに備える。
本発明のプログラムは、前述の検証管理方法をコンピュータによって実現する。
本発明によれば、検証の対象であるソースコード毎に割り付ける検証予定時間の動的な再割り付けが可能となるため、定められた検証制限時間内により多くの検証結果を得ることが可能となり、効率的に検証を実行できる。
さらに本発明によれば、検証全体を実行する検証制限時間を超えずに検証の対象である全てのソースコードに対して検証を実行することが可能となるため、定められた検証制限時間の枠を超えずに検証の対象となる全てのソースコードに対しての検証結果を得ることが可能となる。
添付図面を参照して、本発明によるソースコード検証管理装置を実施するための最良の形態としての一実施例を以下に説明する。
[構成の説明]
始めに本発明の構成について説明する。図1は、本発明のソースコード検証管理装置の構成図を示している。本発明のソースコード検証管理装置は、ソースコード管理装置100と、検証実行装置200と、表示装置300と、入力装置400と、検証管理装置500を備える。
図2は、本発明のソースコード管理装置100、検証実行装置200、検証管理装置500のそれぞれ構成を示している。ソースコード管理装置100、検証実行装置200、検証管理装置500は、それぞれ処理部1、記憶部2、出力部3、入力情報受付部4、通信部5を備える。処理部1、記憶部2、出力部3、入力情報受付部4、通信部5は、それぞれ電気的に接続される。処理部1はCPU(Central Processing Unit)やMPU(Micro Processing Unit)などで実現される。処理部1は本実施例の機能を実現する処理を行う。記憶部2は、RAM(Random Access Memory)やROM(Read Only Memory)などで実現される。記憶部2には本実施例の機能を実現するプログラムを含む、従来のプログラムが記憶されている。出力部3は、例えば液晶ディスプレイで構成され、入力情報受付部4は、例えばキーボードやマウスで構成される。図1において、検証管理装置500の出力部3は、表示装置300である。検証管理装置500の入力情報受付部4は、入力装置400である。ソースコード管理装置100と検証実行装置200の出力部3及び入力情報受付部4は、図1において図示を省略している。通信部5は、例えばLAN(Local Area Network)ポートで構成される。それぞれの装置間は従来技術により、有線通信や無線通信を利用して直接的に接続されているか、あるいはWAN(Wide Area Network)やインターネットのような通信ネットワークを介して接続されている。また、図1において、ソースコード管理装置100、検証実行装置200、検証管理装置500は、別々の装置で構成しているが、これを一つの装置内において実現してもよい。
次に、図3を使用して各装置を詳細に説明する。
まず、ソースコード管理装置100について説明する。
ソースコード管理装置100は、ソースコード管理データベース101(以下、ソースコード管理DB101)を備える。ソースコード管理DB101は、複数のソースコード10とソースコードの更新状態情報13を保存している。本発明のソースコード検証管理装置による検証対象のソースコード10は、ソースコード管理装置が保存している複数のソースコード10から、更新状態情報13に基づいて抽出される。本実施例において、検証対象となるソースコード10を検証対象ソースコード11と呼ぶ。
ソースコード10の開発者は、ソースコード10の新規追加、変更、削除等の作業を行い、更新後のソースコード10をソースコード管理装置に保存する。ソースコード10の更新状態を更新履歴として管理している。図4は、本実施例におけるソースコード管理DB101に記録された更新状態情報13の例を表している。更新状態情報13は、ソースコードID、ソースコードの規模(本実施例においてはラベル数)、更新日時を記録している。なお、更新状態情報13に記録されるデータはこの例に限定しない。
ソースコード管理DB101は、後述する検証管理装置500の選択部501からの命令により、ソースコード10のうちから更新状態情報13に基づいて検証対象のソースコードを抽出する。ソースコード管理DB101は、検証対象ソースコード11を検証対象ソースコード11の更新状態と共に、選択部501へ出力する。
次に検証実行装置200について説明する。
検証実行装置200は、検証実行部201を備える。検証実行部201は、検証対象ソースコード11の検証を実行する。本発明において、検証実行装置201が実行する検証は静的解析手法による検証である。静的解析手法による検証については従来技術を用いて行うため説明を省略する。また、本発明において、個々の検証対象ソースコード11に対する検証内容や、個々の検証対象ソースコード11が満たすべき検証仕様についても、特に限定するものではないので説明を省略する。
検証実行部201は、後述する検証管理装置500の実行命令部506からの検証実行命令により、順番決定部502の決定した検証順番で、時間算出部505が検証対象ソースコード11毎に割り付けた検証予定時間内に、当該検証対象ソースコード11の検証を実行する。図5は、実行命令部506からの検証実行命令のデータ内容の例を示している。
検証実行部201は、検証が完了すると検証結果20を生成する。図6Aと図6Bは、検証結果20に記録されているデータの例を示している。検証結果20には、検証を実行した検証対象ソースコード11に対する検証対象ソースコード11毎の検証所要時間と未完了検証項目数(データ項目上は未完了項目数と表記、以下同じ。)が含まれている。図6Aと図6Bに示す検証結果には、他に検証を実行した検証対象ソースコード11が検証仕様を満たしたか否かといった情報が含まれるが、前述のとおり、本発明において検証方法や検証仕様について限定するものではないので、明示していない。
検証所要時間は、検証対象ソースコード11毎の検証を開始してから完了するまでに要した時間である。未完了検証項目数は、検証対象ソースコード11毎に割り付けられた検証予定時間内に検証が実行完了できなかった場合の、検証予定時間内に実行することができなかった未完了検証項目の数である。検証実行部201は、生成した検証結果20を、検証管理装置500の結果受取部507へ出力する。なお、検証結果20の例は、これに限定しない。
検証実行部201は、検証対象ソースコード11毎に割付けられた検証予定時間内に、当該検証対象ソースコード11の検証が完了しない場合には、検証開始からの経過時間が検証予定時間に到達すると、その時点で当該検証を終了する。その場合にも、検証実行部201は、検証結果20を生成し、結果受取部507へ出力する。
次に表示装置300について説明する。
表示装置300は、前述のとおり、例えば液晶ディスプレイで構成され、検証管理装置500の情報表示部503から出力される情報を表示する。検証実施者は、表示装置300に表示される検証に関する情報を確認できる。
次に入力装置400について説明する。
入力装置400は、前述のとおり、例えばキーボードやマウスで構成される。検証実施者は、表示装置300へ表示される検証に関する情報を確認し、これに応じて入力装置400へ入力を行う。入力装置400は、検証実施者が入力する情報を検証管理装置500の入力受付部504へ出力する。
次に検証管理装置500について説明する。
検証管理装置500は、選択部501、順番決定部502、情報表示部503、入力受付部504、時間算出部505、実行命令部506、結果受取部507、管理データベース508を備える。選択部501、順番決定部502、情報表示部503、入力受付部504、時間算出部505、実行命令部506、結果受取部507の各機能は、検証管理装置500の記憶部2に記憶されたプログラムを処理部1が処理することによって実現する。
選択部501は、ソースコード管理装置100に保存されているソースコード10から検証対象ソースコード11を抽出する。選択部501は、入力受付部504から受けた検証対象ソースコード11の抽出命令を入力し、検証対象ソースコード11の抽出をソースコード管理装置100のソースコード管理DB101へ命令する。選択部501は、ソースコード管理装置100が保存するソースコード10毎の更新情報や、検証実行装置200で行われる検証の機能や種類に応じて、ソースコード管理DB101に検証対象ソースコード11の抽出を命令する。
選択部501は、ソースコード管理装置100が出力する検証対象ソースコード11を入力し、検証対象ソースコード11の一覧リスト(以下、一覧リスト1)を作成する。図7は、一覧リスト1の例を示している。「一覧リスト1」には、検証対象ソースコード11の識別番号(以下、ソースコードID)と、検証対象ソースコード11に対応するソースコードの規模(本実施例においては、ラベル数)が含まれる。選択部501は、作成した「一覧リスト1」を、順番決定部502へ出力する。
ソースコード10から検証対象ソースコード11を抽出する方法として、ソースコード10の更新状況に基づいて抽出する方法や、一つのソースコード10とプログラム上で関係性のある他のソースコード10の更新状況も考慮し抽出する方法などが存在する。検証対象ソースコード11を抽出する方法については、従来の技術によって実現するため説明を省略する。
順番決定部502は、検証対象ソースコード11の検証を実行する検証順番を決定する。順番決定部502は、管理データベース508に保存されている過去の検証結果である検証結果50に基づいて検証順番を決定する。図8は、後述する、管理データベース508に保存される検証結果50の例を示している。検証結果50は、検証実行部201が出力する検証結果20を、検証対象ソースコード毎に対応させて保存したものである。なお、検証結果50の管理データベース508へ保存方法はこれに限定しない。
本発明において、検証順番は重要な要素である。本発明は、検証対象ソースコード11毎に割り付けられる検証を実施するための予定時間である検証予定時間と、実際に検証実行装置200が当該検証対象ソースコード11の検証を実行した結果、検証の完了に要した時間である検証所要時間と、を比較して、検証予定時間より検証所要時間が短い場合には、検証予定時間と検証所要時間の差分であり、余りとなった検証予定時間である余剰検証予定時間を、当該検証対象ソースコード11よりも検証順番が後であり、これから検証を実行する検証対象ソースコード11である未実行検証対象ソースコード12へ再割り付けする。
定められた検証制限時間内でより多くの検証を実行するためには、より多くの余剰検証予定時間を生み出すことが必要となる。そのために検証順番は、検証の実行に必要な検証所要時間が短い順番で検証を実行していくように決定することが効果的である。
検証所要時間が短い順番に検証を実行することで、早い順番に検証順番が割り付けられた検証対象ソースコード11は、検証予定時間内に検証が完了できる可能性が高くなる。これにより、検証順番の早い段階で余剰検証予定時間を生み出すことができる。余剰検証予定時間を動的に未実行検証対象ソースコード12に割り付けることで、未実行検証対象ソースコード11の検証予定時間は増加する。これにより当初の検証予定時間では、全ての検証項目を完了できない可能性のあった検証対象ソースコード20も、増加した検証予定時間のにおいて検証項目を全て完了できる可能性が広がる。このように、検証予定時間内に検証が完了できない検証対象ソースコード11が、検証予定時間内に検証を完了できれば、さらに新たに余剰検証予定時間を生み出すことが可能であり、検証の効率化の連鎖を発生させることができる。
しかし、検証所要時間が短い順番に検証対象ソースコード11を順番決定するのは困難である。これは、静的解析により検証を実行する場合には、検証の内容により検証項目数に変動が発生する場合等があるためであり、実際に検証を実行しないことには、検証にどれだけの時間を要するのか判明しない。そこで、本発明では管理データベース508に保存されている検証結果50に基づいて検証順番を決定する方法を採用している。
図9Aから図9Cを使用して検証順番の決定方法の例を説明する。順番決定部502は、選択部501が出力する「一覧リスト1」を入力する。順番決定部502は、「一覧リスト1」に記載された検証対象ソースコード11毎に、管理データベースに保存されている検証結果50を対応させる。図9Aは、「一覧リスト1」に記載された検証対象ソースコード11に検証結果50を対応させた例を示している。
順番決定部502は、「一覧リスト1」に記載された検証対象ソースコード11を、管理データベースに保存されている検証結果50に基づいて分類する。第1の分類は、前回の検証結果50が存在して、前回の検証結果50に未完了検証項目数が存在しない検証対象ソースコード11である(以下、分類1)。第2の分類は、前回の検証結果50が存在して、前回の検証結果50に未完了検証項目数が存在する検証対象ソースコード11である(以下、分類2)。第3の分類は、前回の検証結果50が存在していない検証対象ソースコード11である(以下、分類3)。
次に、順番決定部502は、分類した検証対象ソースコード11のそれぞれの分類において、検証順番を決定する。図9Bは「一覧リスト1」に記載された検証対象ソースコード11の分類毎に検証順番を決定した例を示している。
まず、分類1の検証対象ソースコード11は、前回の検証結果50に含まれる検証に要した検証所要時間に基づいて、検証所要時間の最も短い検証対象ソースコード11を最先の検証順番とし、それから検証所要時間が短い順に検証順番を決定する。
分類2の検証対象ソースコード11は、前回の検証結果に含まれる未完了検証項目数に基づいて、未完了検証項目数が最も少ない検証対象ソースコード11を最先の検証順番とし、それから未完了検証項目数が少ない順に検証順番を決定する。
分類3の検証対象ソースコード12は、検証結果が存在しないため新規のソースコード10であることが考えられる。分類3の検証対象ソースコード11は、当該検証対象ソースコード11の規模に基づいて順番を決定する。本実施例においては、当該検証対象ソースコード11のラベル数に基づいて、最もラベル数が少ない検証対象ソースコード11を最先の検証順番とし、それからラベル数が少ない順に検証順番を決定する。
なお、いずれの分類においても、検証順番の決定方法はこれに限定しない。また、本実施例における、順番決定方法の例においては、検証対象ソースコード11を3分類に分類しているが、分類自体をより細分化することも可能である。
次に、順番決定部502は、各分類毎に検証順番の決定が完了すると、全体の検証順番を決定する。図9Cは、「一覧リスト1」に記載された検証対象ソースコードの全体の検証順番を決定した例を示している。
全体の検証順番の決定は、各分類毎の順番をつなぎ合わせることで行う。ここにおいても、検証所要時間が短い順に検証順番を決定できるよう考慮する。本発明においては、最初に分類1、次に分類2、最後に分類3の順に検証順番を決定する。つまり、最初に検証結果が存在して未完了検証項目数が存在しない検証対象ソースコード11、次に検証結果が存在して未完了検証項目数が存在する検証対象ソースコード11、最後に検証結果が存在していない検証対象ソースコード11の順に検証順番を決定する。
このように過去の検証結果に基づいて、分類1や分類2のように検証所用時間の目安が存在する検証対象ソースコード11を先の順番に決定し、分類3のように検証結果が存在せず検証所要時間の目安が存在しない検証対象ソースコード11を後に配置することで、検証所要時間が短い順番に検証順番を想定し決定する。
順番決定部502は、図9Cに示すように決定した全体の検証順番を、検証対象ソースコード11に対応させた一覧リスト(以下、一覧リスト2)として管理データベース508に保存する。
情報表示部503は、検証対象ソースコードの一覧を生成し、表示装置300へ出力する。情報表示部503は、管理データベース508から「一覧リスト2」を入力する。情報表示部503は、管理データベース508に保存されている検証結果20に基づいて、「一覧リスト2」の検証対象ソースコード11毎に検証結果の有無、検証所要時間、未完了検証項目数を、検証対象ソースコード11に対応付けた一覧リスト(以下、一覧リスト3)を生成する。情報表示部503は、検証対象ソースコード11に複数の検証結果が存在する場合には、検証所要時間が最大であった検証結果を選択し、未完了検証項目数はその際の未完了検証項目数を選択する。情報表示部503は、生成した「一覧リスト3」を表示装置300へ出力する。
さらに、情報表示部503は、全ての検証対象ソースコード11の検証に要すると思われる時間である総検証想定時間を算出する。情報表示部503は、算出した総検証想定時間を表示装置300へ出力する。検証実施者は、表示装置300に表示された総検証想定時間を確認した上で、当該検証において、全ての検証対象ソースコード11を検証するための制限時間である検証制限時間を入力装置400に入力する。
総検証想定時間は、個々の検証対象ソースコード11の検証に要すると思われる時間である検証想定時間の総和である。情報表示部503は、検証対象ソースコード11毎に検証想定時間を算出し、検証想定時間の総和をとることで総検証想定時間を算出する。
図10は、「一覧リスト3」と総検証想定時間を表示装置300へ出力した例を示している。図10を参照すると、本実施例における10個の検証対象ソースコード11と、総検証想定時間が表示されていることが確認できる。本実施例において情報表示部503は、総検証想定時間を12,326秒と算出している。
検証想定時間の算出方法の例を説明する。まず、情報表示部503は、検証順番の決定方法において説明した、検証対象ソースコード11の検証結果に基づく分類毎に検証想定時間算出する。次に、情報表示部503は、分類毎の検証想定時間の総和を算出して、総検証想定時間を算出する。
情報表示部503は、検証対象ソースコード11を、「一覧リスト3」に記載された検証結果に基づいて分類する。分類1は、検証結果が存在して、未完了検証項目数が存在しない検証対象ソースコード11である。分類2は、検証結果が存在して、未完了検証項目数が存在する検証対象ソースコード11である。分類3は、検証結果が存在していない検証対象ソースコード11である。
まず、分類1の検証対象ソースコード11については、未完了検証項目が存在しないため、検証結果に含まれる検証対象想定時間毎の過去の検証所要時間を、検証想定時間として使用する。情報表示部503は、管理データベース508に保存されている検証結果に基づいて、分類1の検証対象ソースコード11毎の検証所要時間を抽出する。情報表示部503は、分類1の検証対象ソースコード11毎に検証所要時間が複数存在する場合には、存在する検証所要時間のうちで最も長い時間を要したものを選択する。情報表示部503は、このようにして抽出した検証所要時間を分類1の検証対象ソースコード11毎の検証想定時間とする。情報表示部503は、分類1の検証対象ソースコード11毎の検証所要時間を合計する。情報表示部503は、検証所要時間の合計を、分類1の総検証所要時間として記憶する。
次に、分類2の検証対象ソースコード11について、情報表示部503は、管理データベース508に保存されている検証結果に基づいて、検証結果に含まれる未完了検証項目の項目数毎に、分類2の検証対象ソースコード11の数を算出する。情報表示部503は、未完了検証項目数毎に未完了検証項目数に基づく係数を算出する。情報表示部503は、分類2の検証対象ソースコード11毎に、未完了検証項目数に基づく係数を検証結果20に保存される検証所要時間に掛け合わせることによって検証想定時間を算出する。情報表示部503は、分類2の検証対象ソースコード11毎の検証想定時間を合計する。情報表示部503は、検証想定時間の合計が、分類2の総検証想定時間として記憶する。
この未完了検証項目数に基づく係数とは、分類2の検証対象ソースコード11毎の検証想定時間を算出するための係数である。先に述べたとおり、静的解析を用いる検証においては、分類2の検証対象ソースコード11のように未完了検証項目が存在するソースコード10の検証想定時間を算出するのは困難である。そのため、未完了検証項目数に応じて一定の手法を定め係数を算出し、分類2の検証対象ソースコード11毎に未完了検証項目数に対応する係数を、それぞれの過去の検証所要時間に掛け合わせて、分類2の検証対象ソースコード11毎の検証想定時間を算出する。この係数算出の手法については、検証内容に応じて定められるものであり、本発明においては限定はしない。
次に、分類3の検証対象ソースコード11について、まず、情報表示部503は、前述した分類2の検証対象ソースコード11毎に算出された検証想定時間のうちで最大値を選択する。情報表示部503は、分類3の検証対象ソースコード11の個数を求める。情報表示部503は、分類2の検証対象ソースコード11毎に算出された検証想定時間の最大値に、分類3の検証対象ソースコード11の個数を乗算し、分類3全体の検証想定時間を算出する。情報表示部503は、この乗算結果を分類3の総検証想定時間として記憶する。分類2の検証対象ソースコード11と同様に、静的解析を用いる検証においては、ソースコード10の検証想定時間を算出するのは困難であるため、分類3の検証想定時間は、分類2の検証想定時間を使用して算出する。
分類1から分類3毎の総検証想定時間を算出した後、情報表示部503は、記憶した分類1、分類2、分類3、それぞれの分類毎の総検証想定時間を合計し、検証対象ソースコード11全体の総検証想定時間を算出する。なお、総検証想定時間の算出方法はこれに限定しない。
入力受付部504は、入力装置400が出力した検証実施者が入力装置400に入力する情報を入力する。検証実施者が入力する情報とは、例えば、検証対象ソースコード11の抽出命令や、検証の実行時間を定める検証制限時間入力である。また、後述する時間算出部505からの通知を受けて、検証実施者が検証対象ソースコード11のうちのいくつかを検証対象から外す操作の入力や、検証実施者が今回の検証内容を承諾して検証の実行を命令する入力である。入力受付部504は、各入力に応じて、選択部501、時間算出部505、実行命令部506へ出力する。
時間算出部505は、検証対処ソースコード11毎の検証予定時間を算出する。検証予定時間とは、検証対象ソースコード11毎の検証の実行にかける時間である。時間算出部505は、入力受付部504が出力した検証制限時間を入力する。検証実施者が入力する検証制限時間とは、検証実施者が全ての検証対象ソースコード11に対する検証を完了したいと考える制限時間である。本発明の本実施例において、時間算出部505は、検証制限時間を検証対象ソースコード11の数で除算して検証予定時間を算出する。この検証予定時間の算出方法はこれに限定しない、管理データベース508に保存されている検証対象ソースコード11の検証結果20に基づいて、検証対象ソースコード11毎に重み付けをする方法等も考えられる。
時間算出部505は、管理データベース508から「一覧リスト2」を入力する。「一覧リスト2」には、図9Cに示すとおり、ソースコードIDと、検証対象ソースコード毎の規模、検証順番が記録されている。時間算出部505は、「一覧リスト2」の検証対象ソースコード11の総数を算出する。時間算出部505は、検証制限時間を検証対象ソースコード11の総数で除算して検証対象ソースコード11毎の検証予定時間を算出する。
本実施例において、検証実施者は、検証制限時間を14,000秒と設定したものする。検証対象ソースコードは、図9Cに示すとおり10個であるので検証対象ごとの検証予定時間は1,400秒ずつとなる。時間算出部505は、算出した検証予定時間を、一覧「一覧リスト2」の検証対象ソースコード11毎に割り付ける。時間算出部505は、算出した検証予定時間を割り付けた、検証対象ソースコード11の一覧リスト(以下、一覧リスト4)を作成する。図11は、「一覧リスト4」の例を示している。図11を参照すると10個の検証対象ソースコード毎に1,400秒の検証予定時間が割付けられていることが確認できる。時間算出部505は、「一覧リスト4」を管理データベース508に保存する。
次に、時間算出部505は、割り付けられた検証予定時間では検証が完了しない可能性のある検証対象ソースコードを抽出する。この処理は、「一覧リスト4」の検証対象ソースコード11の検証順番に従って、検証対象ソースコード11毎に行われる。
時間算出部505は、検証対象ソースコード11毎に未完了検証項目が存在するか判定する。時間算出部505は、未完了検証項目が存在する検証対象ソースコード11について、検証結果に保存されている検証所要時間が最長であった検証の際に記録された未完了検証項目数と、当該検証対象ソースコード11のその他検証結果として保存されている未完了検証項目数を比較する。その結果、検証所要時間が最長であった際に記録された未完了検証項目数が、同一であるか、もしくは最大である場合には、時間算出部505は、検証所要時間が最長であった際に記録された検証所要時間と、今回の検証において割り付けられた検証予定時間をさらに比較する。さらにその結果、今回の検証において割り付けられた検証予定時間が、検証所要時間が最長であった際に記録された検証所要時間より短い場合には、時間算出部505は、今回の検証において割付けられた検証予定時間内では、当該検証対象ソースコード11の検証は、完了しない可能性が高いと判定する。
時間算出部505は、このようにして、割付けられた検証予定時間内では検証が完了しない可能性が高いと判定した検証対象ソースコード11について、今回の検証の対象外としたほうがよい旨の通知(以下、完了不可通知)を、情報表示部503を介して表示装置300へ出力する。図12は、検証対象ソースコード11に対応させて完了不可通知を表示装置300へ出力した例を示している。図12を参照すると、検証対象ソースコード11の一覧リストにおいて、2個の検証対象ソースコード11に対して完了不可通知を示すようにフラグを立っていることが確認できる。なお、完了不可通知の表示方法は、これに限定しない。検証実施者は、表示装置300において、当該検証対象ソースコード11の完了不可通知を確認する。検証実施者は、必要に応じて、検証対象から外すか、または外さないかを入力装置400へ入力する。本実施例において検証実施者は、図12に示される完了不可通知を示された2個の検証対象ソースコードを検証対象から外すこととする。
検証実施者が、当該2個の検証対象ソースコード11を検証対象から外す操作を行うと、検証対象ソースコード11の数量が変化する。これに伴って時間算出部505は、再度、検証予定時間を算出する。さらに時間算出部505は、再度、前述の方法により、新たに割付けられた検証予定時間に基づいて、割付けられた検証予定時間内では検証が完了しない可能性のある検証対象ソースコード11を抽出する。時間算出部505は、本判定動作を、全ての検証対象ソースコード11に行い、全ての検証対象ソースコード11に対して、本判定動作が完了すると検証対象ソースコード11が確定する。時間算出部505は、最終的に確定した検証対象ソースコード11と、検証対象ソースコード11の検証順番と、検証対象ソースコード11毎の検証予定時間を記載した一覧リスト「一覧リスト5」を管理データベース508へ保存する。
図13は、「一覧リスト5」の例を示している。本実施例において、検証実施者は、図12において完了不可通知が示されていた2個の検証対象ソースコード11を検証対象から外した。検証対象ソースコードの数が8個へ減少したため、時間算出部505が検証予定時間を再計算し、検証制限時間の14,000秒を残る8個の検証対象ソースコードへ割り付ける。図13を参照すると、時間算出部505は、8個の検証対象ソースコードへ、新たに1,750秒の検証予定時間を割り付けていることが確認できる。
実行命令部506は、検証実行部201へ検証の実行を命令する。管理データベース508に保存された「一覧リスト5」を入力する。実行命令部506は、「一覧リスト5」に記録されている検証順番で、ソースコード管理DB101から検証対象ソースコード11を取得する。実行命令部506は、「一覧リスト5」に記録されている当該検証対象ソースコード11に対応する検証予定時間内で、当該ソースコード11の検証を実行するように検証実行部201へ命令を出力する。
前述のとおり、図5は、実行命令部506から検証実行部201への検証実行命令のデータ内容を示している。図5の命令によれば、実行命令部506は、検証実行部201へ、検証順番が3番目に位置するソースコードID42を、検証予定時間1,750秒で検証を実行するように命令している。検証実行部201は、検証実行命令を受けて、当該検証対象ソースコード11の検証を実行する。
結果受取部507は、検証実行部201が出力する検証結果20を入力し、検証予定時間の再割付けを実行し、検証結果20を管理データベース508へ保存し、実行命令部506へ当該検証対象ソースコード11の検証完了を通知する。
当該実行命令部506は、結果受取部507が出力する当該検証対象ソースコード11の検証完了の通知を入力する。実行命令部506は、通知を受けて当該検証対象ソースコード11の次の検証順番に位置する検証対象ソースコード11をソースコード管理DB101から取得し、検証の実行を検証実行部201へ命令する。
結果受取部507は、検証実行部201が検証対象ソースコード11の検証を実行した結果として出力する検証結果20を入力する。結果受取部507は、管理データベース508に保存されている「一覧リスト5」を読み込む。結果受取部507は、「一覧リスト5」に記録された当該検証対象ソースコード11の検証予定時間を抽出する。結果受取部507は、検証結果20に記録された検証所要時間が、当該検証対象ソースコード11の検証予定時間より短いか否かを判定する。なお、検証予定時間は、検証結果20に記録されている時間を使用してもよい。
判定の結果、検証所要時間が検証予定時間より短い場合、結果受取部507は、検証予定時間と検証所要時間との差分を算出する。算出された差分は、余剰検証予定時間となる。余剰検証予定時間は、検証全体の制限時間である検証制限時間内における余りの時間を意味する。
結果受取部507は、「一覧リスト5」において、当該検証対象ソースコード11より検証順番が後ろに位置し、これから検証が実行される検証対象ソースコード11である未実行検証対象ソースコード12の数を算出する。結果受取部507は、算出した余剰検証予定時間を、未実行検証対象ソースコード12の数で除算して、再割り付け用の余剰検証予定時間を算出する。結果受取部507は、再割り付け用の余剰検証予定時間を、「一覧リスト5」の未実行検証対象ソースコード12に対応して記録されている検証予定時間に加算して再割付けする。結果受取部507は、検証予定時間の再割付け後の「一覧リスト5」を管理データベース508に保存する。
添付の図を用いて説明する。前述のとおり図6Aは、検証実行部201が出力する検証結果20を示している。図6Aを参照すると、ソースコードID20の検証は、検証予定時間1,750秒に対して、検証所要時間750秒で完了している。検証予定時間と検証所要時間の差分は1,000秒であり、結果受取部507は、余剰検証予定時間を1,000秒と算出する。また、図13を参照すると、「一覧リスト5」において、ソースコードID42の検証順番は3番である。未実行検証対象ソースコード12は、検証順番4番から検証順番8番までの検証対象ソースコード11となる。そのため、結果受取部507は、未実行検証対象ソースコード12を5個と算出する。
ソースコードID42の検証対象ソースコード11の検証が完了した時点で、余剰検証時間は1,000秒発生し、未実行検証対象ソースコード12は5個であるので、結果受取部507は、未実行検証対象ソースコード12毎に200秒の検証予定時間を追加で割り付ける。 図14は、余剰検証予定時間を再割付けした後の「一覧リスト5」を示している。図14を参照すると、結果受取部507が、5個の身実行検証対象ソースコード12へ検証予定時間を200秒ずつ加算したため、検証順番4番から検証順番8番までの各検証対象ソースコード11毎の検証予定時間が、1,750秒から1,950秒に増加しているのが確認できる。このようにして、検証の実行後に発生した余り時間を他の検証対象ソースコード11に割付けることができる。
次に、結果受取部507は、検証実行装置から入力した検証結果20を、管理データベース508に保存する。結果受取部507は、検証対象ソースコード11の検証の結果によって、余剰検証予定時間が発生しない場合には、当該検証対象ソースコード11の検証結果20の保存処理のみを行う。
前述のとおり、図6Bは、検証予定時間内に検証が完了しない場合の検証結果20を示している。図6Bによれば、ソースコードID406の検証は、検証予定時間1,750秒で検証が完了せず、未完了検証項目が22個残っていることが確認できる。結果受取部は507は、この場合には余剰検証予定時間は発生しないため、図6Bの当該検証結果を管理データベース508に保存する処理のみを行う。
結果受取部507は、「一覧リスト5」への余剰検証予定時間の再割付け処理と、検証結果の保存処理が完了した後、実行命令部506へ当該検証対象ソースコード11の検証が完了したことを通知する。実行命令部506は、結果受取部507からの通知を受けて、次の順番に位置する検証対象ソースコード11の検証処理へ移行する。
管理データベース508は、検証に関するデータを保存する。検証に関するデータとは、順番決定部502が決定する検証対象ソースコード11の検証順番を記録した「一覧リスト2」や、時間算出部505が算出する検証対象ソースコード11毎の検証予定時間を記録した「一覧リスト4」、最終的に検証対象として確定した検証対象ソースコード11を記録した「一覧リスト5」、検証実行装置200が出力する検証結果20である。管理データベース508は、結果受取部507が、検証対象ソースコード11毎の検証が完了する度に出力する、検証結果20を保存する。管理データベース508は、各部位からの情報抽出命令に基づき、データを抽出して応答出力を行う。前述のとおり、図8は、本発明による管理データベース508に保存される検証結果20の例を示している。図8を参照すると、ソースコードIDに検証所要時間と未完了検証項目数が対応して保存されていることが確認できる。検証IDは、当該検証結果20が記録された検証毎に割り振られたIDである。なお、管理データベース508に保存する検証結果20のデータ形式はこの例に限定しない。
以上が、本発明の本実施例における構成の説明である。
時間算出部505は、検証制限時間内で全ての検証対象ソースコード11に検証予定時間を割付けるため、全ての検証対象ソースコード11に対して検証が実行される。
また、検証実行部201は、検証を実行している検証対象ソースコード11に対する検証が検証予定時間内で完了しない場合には、検証開始からの経過時間が検証予定時間に達した時点で当該検証対象ソースコード11に対する検証を終了するため、全ての検証対象ソースコード11に対する検証が検証制限時間を超えることは無い。
さらに、結果受取部507が、検証対象ソースコード11毎の検証が完了する度に、余剰検証時間を算出して未実行検証対象ソースコード12へ再割付けするため、限られた検証制限時間内で検証予定時間を動的に配分することができ、検証制限時間の効率利用が可能である。
加えて、順番決定部502は、検証所要時間が短いと想定する順番に検証対象ソースコード11の検証順番を決定するため、順番の早い段階で余剰検証予定時間を生み出しやすい検証順番で検証を実行していくことができる。
[動作方法の説明]
次に、本発明の本実施例における動作方法の説明を行う。図15から図17は本実施例における本発明の動作方法を表している。
始めに、図15は、ソースコード管理装置100から検証対象ソースコード11を抽出し、検証順番を決定し、総検証想定時間を算出し、検証順番に並べられた検証対象ソースコード11の一覧リストと総検証想定時間を表示装置へ表示するまでの動作方法である。
(ステップA01)
まず、検証実施者が、入力装置400へ、検証対象ソースコード11の抽出命令を入力する。入力装置400は、検証対象ソースコード11の抽出命令を検知し、入力受付部504へ検証対象ソースコード11の抽出命令を出力する。入力受付部504は、入力装置400が出力する検証対象ソースコード11の抽出命令を入力し、選択部501へ検証対象ソースコード11の抽出命令を出力する。
(ステップA02)
選択部501は、入力受付部504が出力した検証対象ソースコード11の抽出命令を入力する。選択部501は、ソースコード管理装置100へ、ソースコード10から検証対象ソースコード11の抽出を命令する。ソースコード管理装置100は、ソースコード10の更新状態情報13に基づいて検証対象ソースコード11を抽出する。ソースコード管理装置100は、抽出した検証対象ソースコード11を選択部501へ出力する。選択部501は、ソースコード管理装置100が出力する検証対象ソースコード11を入力する。選択部501は、検証対象ソースコード11の「一覧リスト1」を作成する。選択部501は、作成した「一覧リスト1」を順番決定部502へ出力する。
(ステップA03)
順番決定部502は、選択部501が出力する「一覧リスト1」を入力する。順番決定部502は、「一覧リスト1」の検証対象ソースコード11を、管理データベース508に保存されている検証結果に基づいて分類(前述の分類1、分類2、分類3)する。
(ステップA04)
順番決定部503は、各分類毎に検証対象ソースコード11の検証順番を決定する。
(ステップA05)
順番決定部502は、各分類毎の検証順番を結合して、検証対象ソースコード11全体の検証順番を決定する。
(ステップA06)
順番決定部502は、検証対象ソースコード11全体の検証順番を、「一覧リスト2」として、管理データベース508へ保存する。
(ステップA07)
情報表示部503は、管理データベース508から「一覧リスト2」を読み込む。情報表示部503は、「一覧リスト2」の検証対象ソースコード11毎に、管理データベース508に保存された検証結果から、検証結果の有無、検証所要時間、未完了検証項目数を抽出し、検証対象ソースコード11に対応させた「一覧リスト3」を作成する。情報表示部503は、「一覧リスト3」を表示装置300へ出力する。表示装置300は、「一覧リスト3」を表示する。
(ステップA08)
情報表示部503は、「一覧リスト2」の検証対象ソースコード11を分類(前述の分類1、分類2、分類3)毎に、検証対象ソースコード11毎の検証想定時間の算出する。
(ステップA09)
情報表示部503は、各分類毎の検証想定時間を合計し、検証対象ソースコード11全体の総検証想定時間を算出する。
(ステップA10)
情報表示部503は、総検証想定時間を表示装置300へ出力する。表示装置300は、総検証想定時間を表示する。
以上の動作方法により、検証管理装置500は、ソースコード管理装置100から検証対象ソースコード11を抽出して、管理データベース508に保存されている検証結果に基づいて検証順番を決定し、同様に管理データベース508に保存されている検証結果に基づいて総検証想定時間を算出して、検証順番に並べられた検証対象ソースコード11に過去の検証結果を対応させた「一覧リスト3」と共に総検証想定時間を、表示装置300へ出力する。
過去の検証結果に基づいて、検証に要する時間が短いと思われる順番に、検証対象ソースコード11の検証順番が決定されるため、検証において余剰検証予定時間を生み出し易くなる。また、過去の検証結果に基づいて、検証想定時間を算出するため、検証実施者は検証全体に要する時間を容易に把握することができる。
次に、図16A、図16Bは、検証制限時間を受け付け、検証予定時間を割り付け、検証予定時間内で検証が完了しない可能性のある検証対象ソースコード11を抽出し、当該検証対象ソースコードについて検証対象外としたほうがよい旨の通知を出力し、検証対象ソースコード11と検証対象ソースコード11の検証順番と、検証対象ソースコード11の検証予定時間を確定するまでの動作方法を示している。
(ステップB01)
検証実施者は、表示装置300に表示された「一覧リスト3」と総検証想定時間を確認し、入力装置400へ検証制限時間を入力する。入力装置400は、検証制限時間の入力を検知し、入力受付部504へ検証制限時間を出力する。入力受付部504は、入力装置400が出力する検証制限時間を入力し、時間算出部505へ検証制限時間を出力する。
(ステップB02)
時間算出部505は、入力受付部504が出力する検証制限時間を入力する。時間算出部505は、管理データベース508から「一覧リスト2」を読み込む。時間算出部505は、「一覧リスト2」に記載された検証対象ソースコード11の個数を算出する。時間算出部505は、検証制限時間を、「一覧リスト2」に記載された検証対象ソースコード11の個数で除算して、検証対象ソースコード11毎の検証予定時間を算出する。
(ステップB03)
時間算出部505は、検証予定時間を、「一覧リスト2」の検証対象ソースコード11毎に割り付ける。時間算出部505は、検証対象ソースコード11毎に検証予定時間を割り付けた「一覧リスト4」を作成する。
(ステップB04)
時間算出部505は、「一覧リスト4」を管理データベース508に保存する。
(ステップB05)
時間算出部505は、検証対象ソースコード11毎に割り付けられた検証予定時間内では検証が完了しない可能性のある検証対象ソースコード11を抽出する。この処理は、「一覧リスト4」の検証対象ソースコード11の検証順番に従って、検証対象ソースコード11毎に行われる。時間算出部505は、検証順番n=n+1(初期状態では、n=0)として、処理対象となる検証順番nの検証対象ソースコード11が存在するかを判定する。時間算出部505は、処理対象となる検証順番nの検証対象ソースコード11が存在する場合は、検証順番nの検証対象ソースコード11を処理対象として選択してステップB06へ進む。処理対象となる検証順番nの検証対象ソースコードが存在しない場合は、処理は終了となりステップB14へ進む。
(ステップB06)
時間算出部505は、検証順番nの検証対象ソースコード11に、過去の検証結果20が管理データベース508に存在するか否かを確認する処理を行う。時間算出部505は、処理の結果、検証結果20が存在する場合には、ステップB07へ進む。時間算出部505は、処理の結果、検証結果20が存在しない場合には、次の検証順番に位置する検証対象ソースコード11の処理に移るため、ステップB05へ戻る。
(ステップB07)
時間算出部505は、検証順番nの検証対象ソースコード11に検証結果20が存在する場合、検証順番nの検証結果20に未完了検証項目が存在するか否かを確認する処理を行う。時間算出部505は、処理の結果、未完了検証項目が存在する場合は、ステップB08へ進む。時間算出部505は、処理の結果、未完了検証項目が存在しない場合には、次の検証順番に位置する検証対象ソースコード11の処理に移るため、ステップB05へ戻る。
(ステップB08)
時間算出部505は、検証順番nの検証対象ソースコード11に、検証結果20が存在し、かつ検証結果20に未完了検証項目が存在する場合、当該検証順番nの検証対象ソースコード11の検証結果20のうちで、検証に要した検証所要時間が最長である検証結果20を抽出する。
(ステップB09)
時間算出部505は、検証順番nの検証対象ソースコード11について、管理データベース508から抽出した検証所要時間が最長である検証結果20に記録された未完了検証項目数と、その他の検証結果20に記録された未完了検証項目数を比較する。
時間算出部505は、比較の結果、検証所要時間が最長である検証結果20に記録された未完了検証項目数が、その他の検証結果に記録された未完了検証項目数のうち、最大の項目数と同一であるか、最大の項目数以上である場合、ステップB10へ進む。時間算出部505は、比較の結果が、それ以外の場合、次の検証順番に位置する検証対象ソースコード11の処理に移るため、ステップB05へ戻る。
(ステップB10)
時間算出部505は、検証所要時間が最長である検証結果に記録された未完了検証項目数が、検証結果nの検証対象ソースコード11についてのその他の検証結果に記録された未完了検証項目数と比較し、最大であるか、もしくは最大であるものと同一である検証順番nの検証対象ソースコードについて、検証所要時間が最長である検証結果に記録された検証所要時間と、「一覧リスト4」に記録された今回の検証において割り付けられた検証予定時間を比較する。
時間算出部505は、検証順番nの検証対象ソースコード11について、比較の結果、「一覧リスト4」に記録されている今回の検証において割り付けられた検証予定時間が、検証所要時間が最長であった際に検証結果に記録された検証所要時間より短い場合、検証順番nの検証対象ソースコード11の検証は、今回の検証において割付けられた検証予定時間内では当該検証対象ソースコード11の検証は完了しない可能性が高いと判定し、ステップB11へ進む。時間算出部505は、比較の結果が、それ以外の場合、次の検証順番に位置する検証対象ソースコード11の処理に移るため、ステップB05へ戻る。
(ステップB11)
時間算出部505は、検証順番nの検証対象ソースコード11について、今回においても検証は検証予定時間内に完了しない可能性が高いと判定した場合、検証順番nの検証対象ソースコード11を今回の検証の対象外にしたほうがよい旨の通知として、完了不可通知を、情報表示部503へ出力する。情報表示部503は、時間算出部505が出力する完了不可通知を入力し、表示装置300へ出力する。表示装置300は、情報表示部503が出力する完了不可通知を入力して表示する。
(ステップB12)
検証実施者は、表示装置300に表示された、検証順番nの検証対象ソースコード11の完了不可通知を確認する。検証実施者は、必要に応じて検証順番nの検証対象ソースコード11を検証対象から外す命令か、検証対象から外さない命令(あるいは、検証対象について特に変更は行わない旨の命令)を入力装置400へ入力する。検証順番nの検証対象ソースコード11を検証対象から外す命令が入力された場合、ステップB13へ進む。検証順番nの検証対象ソースコード11を検証対象から外さない命令(あるいは、検証対象について特に変更は行わない旨の命令)が入力された場合、次の検証順番に位置する検証対象ソースコード11の処理に移るため、ステップB05へ戻る。
(ステップB13)
検証実施者が、検証順番nの検証対象ソースコード11を検証対象から外す命令(以下、削除命令)を、入力装置400へ入力した場合、入力装置400は、検証順番nの検証対象ソースコード11の削除命令を検知し、入力受付部504へ検証順番nの検証対象ソースコード11の削除命令を出力する。入力受付部504は、入力装置400が出力する検証順番nの検証対象ソースコード11の削除命令を入力し、時間算出部504へ検証順番nの検証対象ソースコード11の削除命令を出力する。時間算出部504は、入力受付部504が出力する検証順番nの検証対象ソースコード11の削除命令を入力する。時間算出部504は、管理データベース508から「一覧リスト4」を読み込む。時間算出部504は、「一覧リスト4」から検証順番nの検証対象ソースコード11を削除する。時間算出部504は、検証順番nの検証対象ソースコード11を削除した「一覧リスト4」を管理データベース508に保存する。これにより、管理データベース508上の「一覧リスト4」は、検証順番nの検証対象ソースコード11が削除された状態で更新される。時間算出部504は、検証順番nの検証対象ソースコード11を「一覧リスト4」が削除されたことにより、検証対象ソースコード11の総数が変化するので、再度検証予定時間を算出するために、ステップB02に戻る。
(ステップB14)
時間算出部505は、検証順番に沿って全ての検証対象ソースコード11に対してステップB05からステップB013を繰り返す。ステップB05において、処理対象となる検証対象ソースコード11が無くなった時点で、全ての検証対象ソースコード11への処理が完了したことを意味する。これによって、最終的に検証対象となる検証対象ソースコード11の総数と、検証対象ソースコード11の検証順番と、検証対象ソースコード11毎の検証予定時間が確定する。時間算出部505は、最終的に確定した、検証対象ソースコード11と、検証対象ソースコード11の検証順番と、検証対象ソースコード11毎の検証予定時間を記載した「一覧リスト5」を、管理データベース508に保存する。
以上の動作方法によって、検証管理装置500は、検証実施者より検証制限時間を受け付け、検証対象ソースコード11に検証予定時間を割り付け、検証予定時間内で検証が完了しない可能性のある検証対象ソースコード11を検証対象から削除し、最終的に検証対象となる検証対象ソースコード11の総数と、検証対象ソースコード11の検証順番と、検証対象ソースコード11毎の検証予定時間を確定する。
過去の検証結果に基づいて、検証対象ソースコード11毎に割り付けられた検証予定時間では検証が完了しないことを予測することで、当該検証対象ソースコード11はあらかじめ検証対象外とすることも選択できるため、検証制限時間が有効に利用できる。
次に、図17は、確定した検証対象ソースコード11を検証順番に従って検証予定時間内で検証を行い、検証に要した検証所要時間が検証予定時間より短い場合には、その差分であり余りとなった余剰検証予定時間を、当該検証対象ソースコード11より検証順番が後ろに位置し、これから検証が実行する未実行検証対象ソースコード11に再割り付けを行うまでの動作方法を表している。
(ステップC01)
検証実施者は、入力装置400へ、検証対象ソースコード11の検証実行命令を入力する。入力装置400は、検証実行命令の入力を検知し、入力受付部504へ検証実行命令を出力する。入力受付部504は、入力装置400が出力する検証実行命令を入力し、実行命令部506へ検証実行命令を出力する。
(ステップC02)
実行命令部506は、入力受付部504が出力する検証実行命令を入力する。実行命令部506は、管理データベース508から「一覧リスト5」を読み込む。実行命令部506は、検証順番n=n+1(初期状態では、n=0)として、処理対象となる検証対象ソースコード11が「一覧リスト5」に存在するかを判定する。実行命令部506は、処理対象となる検証順番nに位置する検証対象ソースコード11が、「一覧リスト5」に存在する場合には、ソースコード管理装置100から検証順番nに位置する検証対象ソースコード11を読み込む。実行命令部506は、検証順番nに位置する検証対象ソースコード11の検証を、「一覧リスト5」に記録されている検証予定時間内で実行するように検証実行部201へ命令し、ステップC03へ進む。実行命令部506は、次の検証順番nに位置する検証対象ソースコード11が存在しない場合、検証は完了となるため、ステップC11へ進む。
(ステップC03)
検証実行部201は、実行命令部506の命令に基づいて、検証順番nの検証対象ソースコード11に検証を、検証順番nの該検証対象ソースコード11に割付けられた検証予定時間内で実行する。検証実行部201は、検証順番nの検証対象ソースコード11の検証を開始してからの経過時間が、検証順番nの該検証対象ソースコード11に割付けられた検証予定時間に到達した時点で、検証を打ち切って終了する。
(ステップC04)
検証実行部201は、検証順番nの検証対象ソースコード11の検証が完了すると(あるいは検証予定時間に到達して検証を打ち切って終了すると)、検証順番nの検証対象ソースコード11の検証結果20を作成する。検証実行部201は、結果受取部507へ、作成した検証順番nの検証対象ソースコード11の検証結果20を出力する。
(ステップC05)
結果受取部507は、検証実行装置200が出力する検証順番nの検証対象ソースコード11の検証結果20を入力する。結果受取部507は、「一覧リスト5」を読み込む。結果受取部507は、検証順番nの検証対象ソースコード11の検証結果20に記録された検証に要した検証所要時間と、「一覧リスト5」に記録された当該検証対象ソースコード11に割付けられた検証予定時間とを比較する。結果受取部507は、比較の結果、検証所要時間が検証予定時間より短い場合には、余りとなった検証予定時間の再割付け処理のために、ステップC06へ進む。結果受取部507は、それ以外の場合は、検証結果20を記録するため、ステップC09へ進む。
(ステップC06)
結果受取部507は、検証順番nの検証対象ソースコード11の検証結果20に記録された検証に要した検証所要時間が、「一覧リスト5」に記録された当該検証対象ソースコード11に割付けられた検証予定時間より短い場合、検証予定時間と検証所要時間との差分を算出する。検証予定時間と検証所要時間との差分は、検証順番nの検証対象ソースコード11に割り付けられた検証予定時間の余りである余剰検証予定時間を表す。結果受取部507は、「一覧リスト5」に記録された検証対象ソースコード11のうち、検証順番nの検証対象ソースコード11よりも検証順番が後ろに位置し、これから検証を実行する検証対象ソースコード11である未実行検証対象ソースコード12の数を算出する。結果受取部507は、余剰検証予定時間を、未実行検証対象ソースコード12の数で除算して、再割り付け用の余剰検証予定時間を算出する。
(ステップC07)
結果受取部507は、再割り付け用の余剰検証予定時間を、未実行検証対象ソースコード12毎に、現在「一覧リスト5」に記録されている未実行検証対象ソースコード12の検証予定時間に加算して割り付ける。
(ステップC08)
結果受取部507は、検証予定時間を再割り付けた後の「一覧リスト5」を管理データベース508に保存する。
(ステップC09)
結果受取部507は、検証順番nの検証対象ソースコード11の検証結果を管理データベース508保存する。
(ステップC10)
結果受取部507は、実行命令部506へ検証順番nの検証対象ソースコード11の検証完了通知を出力する。実行命令部506は、結果受取部507が出力する検証順番nの検証対象ソースコード11の検証完了通知を入力する。実行命令部506は、次の検証順番に位置する検証対象ソースコード11の処理に移るため、ステップC02へ戻る。
(ステップC11)
実行命令部506は、全ての検証対象ソースコード11の検証が完了すると検証完了する。
以上の動作方法により、確定した検証対象ソースコード11を検証順番に従って検証予定時間内で検証を行い、検証に要した検証所要時間が検証予定時間より短い場合には、その差分であり余りとなった余剰検証予定時間を、当該検証対象ソースコード11より検証順番が後ろに位置し、これから検証を実行する未実行検証対象ソースコード11に再割り付けを行う。
検証順番は、前述のとおり順番が後になるに従って検証に要する時間が長くなるように決定されている。余剰検証予定時間の再割付を行うことによって、検証予定時間が延長されるため、実行することが可能な検証項目を増やすことができる。これによって、当初割り当てられた検証予定時間内では検証が完了しない可能性のあった検証対象ソースコード11が、余剰検証予定時間によって延長された検証予定時間内において検証を完了させることが可能になる可能性が増加する。
また、検証実行部201は、検証を実行している検証対象ソースコード11に割り付けられた検証予定時間内に、当該検証対象ソースコード11の検証が完了しない場合には、検証開始からの経過時間が検証予定時間に到達した時点で当該検証対象ソースコード11の検証を完了させる。そのため、本発明の検証管理装置が検証対象ソースコード11全体として検証制限時間を超えて、検証を実行することはなく、検証制限時間内で検証対象ソースコードの検証を完了させることができる。
以上が、本発明の本実施例における動作方法の説明である。
なお、本実施例においては、管理データベース508に保存する検証対象ソースコード11データについて、一覧リストを作成する形式で保存しているが、管理データベース508に保存するデータはこの方法に限定しない。検証対象ソースコード11に関する管理データベース508へのデータの保存形式、保存方法、受渡し動作や、管理データベース508からのデータの抽出手段等は従来の技術で実現するものである。
本発明により、全ての検証対象ソースコード11に対する検証を、定められた検証制限時間を超えることなく、限られた検証制限時間を効率的に利用しながら検証を実行することが可能となるのである。
本発明によるソースコード検証管理装置の構成図である。 本発明によるソースコード検証管理装置の各構成装置の構成図である。 本発明によるソースコード検証管理装置の機能ブロック図である。 本発明によるソースコード管理DBに記録された更新状態情報の例を示す図である。 本発明による実行命令部506からの検証実行命令のデータ内容の例を示す図である。 本発明による検証結果に記録されているデータの例を示す図である。 本発明による検証結果に記録されているデータの例を示す図である。 本発明による「一覧リスト1」の例を示す図である。 本発明による管理データベースに保存される検証結果の例を示す図である。 本発明による「一覧リスト1」に記載された検証対象ソースコードに検証結果を対応させた例を示す図である。 本発明による「一覧リスト1」に記載された検証対象ソースコードの分類毎に検証順番を決定した例を示す図である。 本発明による検証対象ソースコードの全体の検証順番を決定した「一覧リスト2」の例を示す図である。 本発明による「一覧リスト3」と総検証想定時間を表示装置へ出力した例を示す図である。 本発明による「一覧リスト4」の例を示す図である。 本発明による「一覧リスト3」に対応して完了不可通知を表示装置へ表示した例を示す図である。 本発明による「一覧リスト5」の例を示す図である。 本発明による余剰検証予定時間を再割付けした後の「一覧リスト5」の例を示した図である。 本発明による動作方法のフローチャートである。 本発明による動作方法のフローチャートである。 本発明による動作方法のフローチャートである。 本発明による動作方法のフローチャートである。
符号の説明
1 処理部
2 記憶部
3 入力情報受付部
4 出力部
5 通信部
10 ソースコード
11 検証対象ソースコード
12 未実行検証対象ソースコード
13 更新状態情報
20 検証結果
50 検証結果
51 検証対象ソースコード
100 ソースコード管理装置
101 ソースコード管理データベース
200 検証実行装置
201 検証実行部
300 表示装置
400 入力装置
500 検証完了装置
501 選択部
502 順番決定部
503 入力情報受付部
504 情報表示部
505 時間算出部
506 実行命令部
507 結果受取部
508 管理データベース

Claims (25)

  1. 検証の対象である複数のソースコードの検証順番を決定する順番決定部と、
    前記複数のソースコードの各々に対して前記検証の実行にかける検証予定時間を割り付ける時間算出部と、
    前記検証順番に基づいて、前記複数のソースコードのうちから一つの選択ソースコードを順に選択し、当該選択ソースコードに割り付けられた前記検証予定時間内で前記検証を実行する検証実行部と、
    前記選択ソースコードの前記検証が完了する毎に、当該選択ソースコードの前記検証に要した検証所要時間が当該選択ソースコードに割り付けられた前記検証予定時間より短い場合には、残った余剰検証予定時間を、前記複数のソースコードのうちで当該選択ソースコードの前記検証順番より後で検証されるべき未実行ソースコードの各々に再割付けして、前記未実行ソースコードの各々の前記検証予定時間を増加させる結果受取部と
    を備える
    検証管理装置。
  2. 請求項1に記載の検証管理装置であって、
    前記結果受取部は、前記選択ソースコードの前記検証が完了する毎に、当該選択ソースコードの前記検証予定時間から前記検証所要時間を減算して前記余剰検証予定時間を算出し、前記余剰検証予定時間を前記未実行ソースコードの総数で除算した時間を、前記未実行ソースコードの各々の前記検証予定時間に加算することによって再割付けする
    検証管理装置。
  3. 請求項1または請求項2に記載の検証管理装置であって、
    前記順番決定部は、前記複数のソースコードの各々の前記検証所要時間が短いと想定する順に前記検証順番を決定する
    検証管理装置。
  4. 請求項1から請求項3までのいずれかに記載の検証管理装置であって、
    前記検証実行部は、前記選択ソースコードの前記検証が当該選択ソースコードに割り付けられた前記検証予定時間内に完了しない場合には、当該選択ソースコードの前記検証の開始からの経過時間が当該選択ソースコードに割り付けられた前記検証予定時間に到達した時点で前記検証を終了する
    検証管理装置。
  5. 請求項1から請求項4までのいずれかに記載の検証管理装置であって、
    前記時間算出部は、前記複数のソースコードの全てに対して前記検証を実行するための検証制限時間の範囲内で、前記複数のソースコードの各々に前記検証予定時間を割り付ける
    検証管理装置。
  6. 請求項5に記載の検証管理装置であって、
    前記時間算出部は、前記検証制限時間を前記複数のソースコードの総数で除算することにより前記検証予定時間を算出して、前記複数のソースコードの各々に割り付ける
    検証管理装置。
  7. 請求項1から請求項6までのいずれかに記載の検証管理装置であって、
    前記検証実行部は、前記選択ソースコードの前記検証を完了する毎に、当該選択ソースコードの前記検証所要時間と、当該選択ソースコードに割り付けられた前記検証予定時間内に前記検証が完了しなかったために前記検証を終了した場合には、前記検証において実行することができなかった検証項目の数である未完了検証項目数と、を記録した検証結果を出力し、
    前記結果受取部は、前記検証結果に記録された前記検証所要時間に基づいて前記余剰検証予定時間を算出する
    検証管理装置。
  8. 請求項7に記載の検証管理装置であって、
    前記検証順番と、前記検証予定時間と、前記検証結果とを、それぞれ前記複数のソースコードの各々に対応させて保存する管理データベース
    をさらに備える
    検証管理装置。
  9. 請求項8に記載の検証管理装置であって、
    前記順番決定部は、前記複数のソースコードのうち、前記管理データベースに保存された前記検証結果に前記未完了検証項目が存在しないソースコードについて、前記管理データベースに保存された前記検証結果に記録されている前記検証所要時間の短いものから順に前記検証を実行するように、前記検証順番における前記未完了検証項目が存在しないソースコードの検証順番を決定する
    検証管理装置。
  10. 請求項8または請求項9に記載の検証管理装置であって、
    前記順番決定部は、前記複数のソースコードのうち、前記管理データベースに保存された前記検証結果に前記未完了検証項目が存在するソースコードについて、前記管理データベースに保存された前記検証結果に記録されている前記未完了検証項目の少ない順に前記検証を実行するように、前記検証順番における前記未完了検証項目が存在するソースコードの検証順番を決定し、
    前記複数のソースコードに、前記検証結果に前記未完了検証項目が存在しないソースコードが含まれる場合には、前記未完了検証項目が存在しないソースコードの検証順番の後に、前記未完了検証項目が存在するソースコードの検証順番が配置されるように前記検証順番を決定する
    検証管理装置。
  11. 請求項8から請求項10までのいずれかに記載の検証管理装置であって、
    前記順番決定部は、前記複数のソースコードのうち、前記管理データベースに前記検証結果が存在しないソースコードについて、当該ソースコードの規模が小さい順に前記検証を実行するように、前記検証順番における前記検証結果が存在しないソースコードの検証順番を決定し、
    前記複数のソースコードに、前記検証結果に前記未完了検証項目が存在するソースコードが含まれず、前記未完了検証項目が存在しないソースコードが含まれる場合には、前記未完了検証項目が存在しないソースコードの検証順番の後に、前記検証結果が存在しないソースコードの検証順番が配置されるように前記検証順番を決定し、
    前記複数のソースコードに、前記検証結果に前記未完了検証項目が存在するソースコードが含まれる場合には、前記未完了検証項目が存在するソースコードの検証順番の後に、前記検証結果が存在しないソースコードの検証順番が配置されるように前記検証順番を決定する
    検証管理装置。
  12. 請求項8から請求項11までのいずれかに記載の検証管理装置であって、
    前記時間算出部は、前記複数のソースコードの各々に割り付けられた前記検証予定時間と、前記管理データベースに保存された前記複数のソースコードの各々に対応する前記検証結果に基づいて、前記複数のソースコードのうち、各々に割り付けられた前記検証予定時間では前記検証が完了しないと判定する完了不可ソースコードが存在する場合には、当該ソースコードは完了不可である旨の通知を出力する
    検証管理装置。
  13. コンピュータにより実施される検証管理方法であって、
    (a)検証の対象である複数のソースコードの検証順番を決定するステップと、
    (b)前記複数のソースコードの各々に対して前記検証の実行にかける検証予定時間を割り付けるステップと、
    (c)前記検証順番に基づいて、前記複数のソースコードのうちから一つの選択ソースコードを順に選択し、当該選択ソースコードに割り付けられた前記検証予定時間内で前記検証を実行するステップと、
    (d)前記選択ソースコードの前記検証が完了する毎に、当該選択ソースコードの前記検証に要した検証所要時間が当該選択ソースコードに割り付けられた前記検証予定時間より短い場合には、残った余剰検証予定時間を、前記複数のソースコードのうちで当該選択ソースコードの前記検証順番より後で検証されるべき未実行ソースコードの各々に再割付けして、前記未実行ソースコードの各々の前記検証予定時間を増加させるステップと
    を備える
    検証管理方法。
  14. 請求項13に記載の検証管理方法であって、
    前記ステップ(d)は、
    前記選択ソースコードの前記検証が完了する毎に、当該選択ソースコードの前記検証予定時間から前記検証所要時間を減算して前記余剰検証予定時間を算出するステップと、
    前記余剰検証予定時間を前記未実行ソースコードの総数で除算した時間を、前記未実行ソースコードの各々の前記検証予定時間に加算することによって再割付けするステップと
    を含む
    検証管理方法。
  15. 請求項13または請求項14に記載の検証管理方法であって、
    前記ステップ(a)は、
    前記検証順番を、前記複数のソースコードの各々の前記検証所要時間が短いと想定される順に決定するステップ
    を含む
    検証管理方法。
  16. 請求項13から請求項15までのいずれかに記載の検証管理方法であって、
    前記ステップ(c)は、
    前記選択ソースコードの前記検証が当該選択ソースコードに割り付けられた前記検証予定時間内に完了しない場合には、当該選択ソースコードの前記検証の開始からの経過時間が当該選択ソースコードに割り付けられた前記検証予定時間に到達した時点で前記検証を終了するステップ
    を含む
    検証管理方法。
  17. 請求項13から請求項16までのいずれかに記載の検証管理方法であって、
    前記ステップ(b)は、
    前記複数のソースコードの全てに対して前記検証を実行するための検証制限時間の範囲内で前記複数のソースコードの各々に前記検証予定時間を割り付けるステップ
    を含む
    検証管理方法。
  18. 請求項17に記載の検証管理方法であって、
    検証制限時間の範囲内で前記複数のソースコードの各々に前記検証予定時間を割り付けるステップは、
    前記検証制限時間を前記複数のソースコードの総数で除算することにより前記検証予定時間を算出して、前記複数のソースコードの各々に割り付けるステップ
    を含む
    検証管理方法。
  19. 請求項13から請求項18までのいずれかに記載の検証管理方法であって、
    前記ステップ(c)は、
    前記検証実行部は、前記選択ソースコードの前記検証を完了する毎に、当該選択ソースコードの前記検証所要時間と、当該選択ソースコードに割り付けられた前記検証予定時間内に前記検証が完了しなかったために前記検証を終了した場合には、前記検証において実行することができなかった検証項目の数である未完了検証項目数と、を記録した検証結果を出力するステップと、
    前記ステップ(d)は、
    前記結果受取部は、前記検証結果に記録された前記検証所要時間に基づいて前記余剰検証予定時間を算出するステップと
    をさらに備える
    検証管理方法。
  20. 請求項19に記載の検証管理方法であって、
    前記ステップ(c)は、
    前記検証順番と、前記検証予定時間と、前記検証結果とを、それぞれ前記複数のソースコードの各々に対応させて管理データベースへ保存するステップ
    をさらに備える
    検証管理方法。
  21. 請求項20に記載の検証管理方法であって、
    前記ステップ(a)は、
    前記複数のソースコードのうち、前記管理データベースに保存された前記検証結果に前記未完了検証項目が存在しないソースコードについて、前記管理データベースに保存された前記検証結果に記録されている前記検証所要時間の短いものから順に前記検証を実行するように、前記検証順番における前記未完了検証項目が存在しないソースコードの検証順番を決定するステップ
    を含む
    検証管理方法。
  22. 請求項20または請求項21に記載の検証管理方法であって、
    前記ステップ(a)は、
    前記複数のソースコードのうち、前記管理データベースに保存された前記検証結果に前記未完了検証項目が存在するソースコードについて、前記管理データベースに保存された前記検証結果に記録されている前記未完了検証項目の少ない順に前記検証を実行するように、前記検証順番における前記未完了検証項目が存在するソースコードの検証順番を決定するステップと、
    前記複数のソースコードに、前記検証結果に前記未完了検証項目が存在しないソースコードが含まれる場合には、前記未完了検証項目が存在しないソースコードの検証順番の後に、前記未完了検証項目が存在するソースコードの検証順番が配置されるように前記検証順番を決定するステップと
    を含む
    検証管理方法。
  23. 請求項20から請求項22までのいずれかに記載の検証管理方法であって、
    前記ステップ(a)は、
    前記複数のソースコードのうち、前記管理データベースに前記検証結果が存在しないソースコードについて、当該ソースコードの規模が小さい順に前記検証を実行するように、前記検証順番における前記検証結果が存在しないソースコードの検証順番を決定するステップと、
    前記複数のソースコードに、前記検証結果に前記未完了検証項目が存在するソースコードが含まれず、前記未完了検証項目が存在しないソースコードが含まれる場合には、前記未完了検証項目が存在しないソースコードの検証順番の後に、前記検証結果が存在しないソースコードの検証順番が配置されるように前記検証順番を決定するステップと、
    前記複数のソースコードに、前記検証結果に前記未完了検証項目が存在するソースコードが含まれる場合には、前記未完了検証項目が存在するソースコードの検証順番の後に、前記検証結果が存在しないソースコードの検証順番が配置されるように前記検証順番を決定するステップと
    を含む
    検証管理方法。
  24. 請求項13から請求項23までのいずれかに記載の検証管理方法であって、
    前記ステップ(b)は、
    前記複数のソースコードの各々に割り付けられた前記検証予定時間と、前記管理データベースに保存された前記複数のソースコードの各々に対応する前記検証結果に基づいて、前記複数のソースコードのうち、各々に割り付けられた前記検証予定時間では前記検証が完了しないと判定する完了不可ソースコードが存在する場合には、当該ソースコードは完了不可である旨の通知を出力するステップ
    をさらに備える
    検証管理方法。
  25. 請求項13から請求項24までのいずれかに記載された検証管理方法をコンピュータに実行させるためのプログラム。
JP2007286727A 2007-11-02 2007-11-02 ソースコード検証管理装置、方法、及びプログラム Expired - Fee Related JP5046109B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007286727A JP5046109B2 (ja) 2007-11-02 2007-11-02 ソースコード検証管理装置、方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007286727A JP5046109B2 (ja) 2007-11-02 2007-11-02 ソースコード検証管理装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2009116477A JP2009116477A (ja) 2009-05-28
JP5046109B2 true JP5046109B2 (ja) 2012-10-10

Family

ID=40783582

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007286727A Expired - Fee Related JP5046109B2 (ja) 2007-11-02 2007-11-02 ソースコード検証管理装置、方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5046109B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446056B (zh) * 2018-09-11 2023-03-21 平安科技(深圳)有限公司 代码验证方法、装置、电子设备及介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265805A (ja) * 1992-03-23 1993-10-15 Nec Corp プログラム検査装置
JPH08212108A (ja) * 1995-02-08 1996-08-20 Kokusai Electric Co Ltd ソフトウェアのテスト方法及び装置
JPH11259280A (ja) * 1998-03-13 1999-09-24 Matsushita Electric Ind Co Ltd プログラム開発支援装置及びコンピュータシステムに適用されるプログラムを記録した記録媒体
JP3623697B2 (ja) * 1999-07-29 2005-02-23 富士通株式会社 ディスク・タイムシェアリング装置及び方法
JP2001338008A (ja) * 2000-05-26 2001-12-07 Nec Microsystems Ltd 論理等価検証方法及びその方法を実施する装置
US7711525B2 (en) * 2002-05-30 2010-05-04 Nec Corporation Efficient approaches for bounded model checking
JP4217174B2 (ja) * 2004-02-13 2009-01-28 パナソニック株式会社 動画符号化装置および動画符号化方法
JP2006163519A (ja) * 2004-12-02 2006-06-22 Sharp Corp 試験選択方法および試験選択装置

Also Published As

Publication number Publication date
JP2009116477A (ja) 2009-05-28

Similar Documents

Publication Publication Date Title
US10372593B2 (en) System and method for resource modeling and simulation in test planning
US8996452B2 (en) Generating a predictive model from multiple data sources
US8589884B2 (en) Method and system for identifying regression test cases for a software
US20120137291A1 (en) Placing a virtual machine on a target hypervisor
CN111381970B (zh) 集群任务的资源分配方法及装置、计算机装置及存储介质
US8869149B2 (en) Concurrency identification for processing of multistage workflows
US20180260433A1 (en) Information processing apparatus and control method for information processing apparatus
JP6666555B2 (ja) 情報処理装置、ジョブ投入方法、およびジョブ投入プログラム
CN113052696A (zh) 金融业务任务处理方法、装置、计算机设备和存储介质
US20200143369A1 (en) Device for contracting smart contract and method thereof
US20170364352A1 (en) Release cycle optimization based on significant features values simulation
JP6102477B2 (ja) スケジュール管理プログラム、スケジュール管理方法、及びスケジュール管理装置
CN113204376A (zh) 文件解析方法、装置、计算机设备以及存储介质
JP5046109B2 (ja) ソースコード検証管理装置、方法、及びプログラム
JP2011257947A (ja) テスト計画作成方法、テスト計画作成装置、およびテスト計画作成プログラム
US20200402008A1 (en) System and Method for Electronic Mail Approval Paths
CN111639025A (zh) 一种软件测试方法、装置、电子设备及存储介质
US20080103752A1 (en) Apparatus, method, and program for conversion of application program
US20110296442A1 (en) Generating a web service
JP2007179446A (ja) 情報処理装置及びその制御方法、並びにプログラム
JP2017151594A (ja) 支援装置、支援方法及びプログラム
JP6753521B2 (ja) 計算資源管理装置、計算資源管理方法、及びプログラム
CN109189370B (zh) 软件组件的生成方法、装置、设备及计算机可读存储介质
JP2009506396A (ja) スケジューリング装置、スケジューリング方法及び記録媒体
JP7487135B2 (ja) 工数算出支援装置及び工数算出支援方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101013

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120420

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120525

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120705

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees