JP7296502B1 - バグ検出率閾値更新システム、バグ検出率閾値更新方法、及びバグ検出率閾値更新プログラム - Google Patents

バグ検出率閾値更新システム、バグ検出率閾値更新方法、及びバグ検出率閾値更新プログラム Download PDF

Info

Publication number
JP7296502B1
JP7296502B1 JP2022051390A JP2022051390A JP7296502B1 JP 7296502 B1 JP7296502 B1 JP 7296502B1 JP 2022051390 A JP2022051390 A JP 2022051390A JP 2022051390 A JP2022051390 A JP 2022051390A JP 7296502 B1 JP7296502 B1 JP 7296502B1
Authority
JP
Japan
Prior art keywords
threshold
detection rate
candidate
test
bug
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.)
Active
Application number
JP2022051390A
Other languages
English (en)
Other versions
JP2023144423A (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.)
Rakuten Group Inc
Original Assignee
Rakuten Group Inc
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 Rakuten Group Inc filed Critical Rakuten Group Inc
Priority to JP2022051390A priority Critical patent/JP7296502B1/ja
Application granted granted Critical
Publication of JP7296502B1 publication Critical patent/JP7296502B1/ja
Publication of JP2023144423A publication Critical patent/JP2023144423A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】ソフトウェアテストにおけるバグの検出率の閾値を適切に更新するバグ検出率閾値更新システム、バグ検出率閾値更新方法及びバグ検出率閾値更新プログラムを提供する。【解決手段】バグ検出率閾値更新システムにおいて、センターサーバは、ソフトウェアのテストにおけるバグの検出率の閾値を取得し、過去にテストされた複数のテスト対象それぞれのバグの検出率を取得する。さらに、検出率に基づいて、閾値の候補を決定し、検出率に基づいて、検出率の外れ値と外れ値以外の値との境となる値と、検出率の代表値と、の基準差を決定し、閾値と候補との差が基準差未満である場合、閾値を候補で更新する。【選択図】図1

Description

本発明は、ソフトウェアのテストで検出されたバグの検出率を用いて、テストに関連する決定を行う方法に関する。
従来、開発されたソフトウェアの品質を確保するために、ソフトウェアのテストを実施することが知られている。例えば、テストエンジニア等が、テストの内容や手順等を示すテスト項目又はテストケースを予め作成する。テスト実施者は、作成されたテスト項目又はテストケースに従って、テストを実施する。テストの結果、ソフトウェアのバグが検出された場合、開発者はそのソフトウェアを修正して、バグを取り除く。また、ソフトウェアのテストとして、所謂追加テストが行われる場合がある。追加テストは、例えば予定されたテストの結果に基づき、必要と判断された場合に実施される追加的なテストである。例えば、テストで検出されたバグが比較的に多く、ソフトウェアの品質を押し上げる必要であると判断される場合に、追加テストが実施されることもある。バグの多さを示す情報として、バグ検出率がある。バグ検出率は、例えば、テストで検出されたバグ数を、実施されたテストの件数で除算することで計算されてもよい。このバグ検出率を、予め設定された閾値と比較することで、テストされたソフトウェアに関連して何らかの対応の必要性を判断することも知られている。
例えば、特許文献1には、システムに発生するバグの収束を判定するためのソフトウェア品質判定装置が開示されている。この判定装置のデータベースには、テスト観点ごとに、そのテスト観点のテストで発生したバグの検出率の基準となる特定値として、ユーザにより設定された特定値が保持される。そして、或るテスト観点のテスト実施量がテスト実施基準量に到達した後、バグ検出率が特定値以下になるまで、追加テスト実施基準量分の追加テストが繰り返し実施される。判定装置は、テストの実施が終了するたびに、その時点のバグ検出率が特定値以下であるか否かに応じて、その観点のテストのバグが収束しているか否かを判定する。
特開2019-101581号公報
バグの検出率が閾値以上となったことのみを理由として、必ずしも追加テストを実施すべきであると判断されるとは限らない。しかしながら、バグの検出率が閾値以上となることは、追加テストの実施の判断材料の一つとなったり、ソフトウェア開発体制又は開発環境等の見直しのきっかけになったりする場合がある。そのような判断を的確に下すためには、閾値が適切に設定されることが望ましいと考えられる。
本発明は以上の点に鑑みてなされたものであり、その課題の一例は、ソフトウェアテストにおけるバグの検出率の閾値を適切に更新可能なバグ検出率閾値更新システム、バグ検出率閾値更新方法、及びバグ検出率閾値更新プログラムを提供することにある。
上記課題を解決するために、請求項1に記載の発明は、ソフトウェアのテストにおけるバグの検出率の閾値を取得する閾値取得手段と、過去にテストされた複数のテスト対象それぞれのバグの検出率を取得するバグ検出率取得手段と、前記取得された検出率に基づいて、前記閾値の候補を決定する候補決定手段と、前記取得された検出率に基づいて、前記検出率の外れ値と該外れ値以外の値との境となる値と、前記検出率の代表値と、の基準差を決定する基準差決定手段と、前記取得された閾値と前記決定された候補との差が、前記決定された基準差未満である場合、前記閾値を前記候補で更新する更新手段と、を備えることを特徴とする。
この発明によれば、閾値の候補と閾値との差が、基準差未満である場合、閾値が閾値候補で更新される。この基準差は、外れ値とならないバグの検出率の範囲に対応する。閾値の候補及び閾値の基となるバグの検出率が期間によって変化する場合、その期間について、ソフトウェアの開発体制や開発環境に何らかの変化があった可能性がある。この変化を反映して、閾値が更新される。その一方で、変化した状態は一時的なものであり、まもなく元の状態に戻る可能性がある。或いは、開発体制や開発環境に変化があったのではなく、偶然にも閾値の第1候補と閾値との間に差が生じたのかもしれない。そこで、閾値が大きく変更される場合の影響を鑑みて、閾値の候補と閾値との差が基準差未満である場合に、閾値が更新される。一方、閾値の候補と閾値との差が基準差以上である場合、閾値は直ちに更新されないか、または他の条件に基づいて、閾値の更新の要否が決定されてもよい。従って、フトウェアテストにおけるバグの検出率の閾値を適切に更新することができる
請求項2に記載の発明は、前記基準差決定手段は、前記取得された検出率の標準偏差に基づいて、前記基準差を決定することを特徴とする。
この発明によれば、バグの検出率の標準偏差を用いることで、基準差を適切に決定することができる。
請求項3に記載の発明は、前記複数のテスト対象のそれぞれは、予定されたテストの結果に基づいて、追加テストの実施の要否が決定されたテスト対象のうち、前記追加テストを実施することが決定されたテスト対象であることを特徴とする。
この発明によれば、追加テストが実施されたテスト対象についてのバグの検出率を用いて、基準差が決定される。従って、その基準差を用いた比較の結果、更新された閾値又は更新されなかった閾値を用いて、所与のテスト対象の追加テストの可能性を適切に判定することができる。
請求項4に記載の発明は、前記バグ検出率取得手段は、前記検出率として、前記予定されたテストで検出されたバグの検出率を取得することを特徴とする。
この発明によれば、追加テストが実施されたテスト対象について、予定されたテストで検出されたバグの検出率を用いて、基準差が決定される。追加テストの実施の要否の決定に影響する可能性があるバグの検出率を用いることで、基準差を適切に決定することができる。
請求項5に記載の発明は、前記代表値は、前記取得された検出率の平均値及び中央値の何れか一方であることを特徴とする。
請求項6に記載の発明は、前記候補決定手段は、前記閾値の候補として、前記検出率の代表値を計算することを特徴とする。
請求項7に記載の発明は、コンピュータにより実行されるバグ検出率閾値更新方法において、ソフトウェアのテストにおけるバグの検出率の閾値を取得する閾値取得ステップと、過去にテストされた複数のテスト対象それぞれのバグの検出率を取得するバグ検出率取得ステップと、前記取得された検出率に基づいて、前記閾値の候補を決定する候補決定ステップと、前記取得された検出率に基づいて、前記検出率の外れ値と該外れ値以外の値との境となる値と、前記検出率の代表値と、の基準差を決定する基準差決定ステップと、前記取得された閾値と前記決定された候補との差が、前記決定された基準差未満である場合、前記閾値を前記候補で更新する更新ステップと、を含むことを特徴とする。
請求項8に記載の発明は、コンピュータを、ソフトウェアのテストにおけるバグの検出率の閾値を取得する閾値取得手段と、過去にテストされた複数のテスト対象それぞれのバグの検出率を取得するバグ検出率取得手段と、前記取得された検出率に基づいて、前記閾値の候補を決定する候補決定手段と、前記取得された検出率に基づいて、前記検出率の外れ値と該外れ値以外の値との境となる値と、前記検出率の代表値と、の基準差を決定する基準差決定手段と、前記取得された閾値と前記決定された候補との差が、前記決定された基準差未満である場合、前記閾値を前記候補で更新する更新手段、として機能させることを特徴とする。
本発明によれば、ソフトウェアテストにおけるバグの検出率の閾値を適切に更新することができる。
一実施形態に係るテスト管理システムSの概要構成の一例を示す図である。 一実施形態に係るセンターサーバ1の概要構成の一例を示すブロック図である。 データベースに記憶される情報の例を示す図である。 一実施形態に係るセンターサーバ1におけるシステム制御部11の機能ブロックの一例を示す図である。 閾値の更新例を示す図である。 閾値の更新例を示す図である。 バグ検出率の分布の一例を示すグラフである。 一実施形態に係るセンターサーバ1のシステム制御部11による閾値更新制御処理の一例を示すフローチャートである。
以下、図面を参照して本発明の実施形態について詳細に説明する。実施形態においては、開発されるソフトウェアのテストが、テスト対象単位で行われる。テスト対象は、特定の一又は複数のソフトウェアであってもよい。例えば、テスト対象は、特定のソフトウェア開発プロジェクトで開発されるソフトウェアであってもよい。以降、ソフトウェア開発プロジェクトを、単に「プロジェクト」と称する。或いは、テスト対象は、開発されるソフトウェアによって実現される機能又はサービス等であってもよい。或いは、テスト対象は、モジュール、関数、オブジェクト、ルーチン、スクリプト又はライブラリ等であってもよい。テスト対象単位でテストを行うとは、対象となるソフトウェアに対して複数のテストを実施して、それらのテストの結果が集計されることを意味してもよい。
ソフトウェアのテストとして、予定されたテストと、追加テストとがあってもよい。予定されたテストは、ソフトウェアの開発スケジュールに当初から組み込まれていたテストであってもよい。以降、予定されたテストを、「本テスト」と称する。追加テストは、開発スケジュールに当初は組み込まれていなかったテストであってもよい。また、追加テストは、ソフトウェアの開発の参加者の誰か(例えば責任者等)が、本テストの結果に基づいて、実施するか否を決定するテストであってもよい。追加テストが実施される場合、ソフトウェアの完成が予定よりも遅延することがあってもよい。追加テストは、本テストで実施されたテストのうち、バグが検出されたテストの再実施であってもよい。すなわち、追加テストは再テストであってもよい。或いは、追加テストは、本テストの観点、項目又はケースとは異なる観点、項目又はケースで実施されるテストであってもよい。追加テストを実施した結果、更なる追加テストが実施されてもよい。
追加テストの実施の可能性又は必要性に影響し得る要素の一つとして、バグ検出率がある。バグ検出率は、テストで検出されたバグの数を、実施されたテストの件数で除算することで、計算されてもよい。テストの件数は、例えばテスト項目数であってもよいし、テストケース数であってもよい。一のテストケースで、一又は複数のテスト項目が確認されてもよい。バグ検出率は、テスト対象ごとに計算されてもよい。例えば、プロジェクトごとにバグ検出率が計算されてもよい。一般的に、バグ検出率が高いほど、追加テストの実施の可能性は高くなってもよい。
以下においては、テスト対象として、複数のプロジェクトそれぞれで開発されるソフトウェアのテストを管理するためのシステムに対して、本発明が適用された場合について説明する。
[1.テスト管理システムの構成]
先ず、本実施形態に係るテスト管理システムSの構成及び機能概要について、図1を用いて説明する。図1は、本実施形態に係るテスト管理システムSの概要構成の一例を示す図である。
図1に示すように、テスト管理システムSは、センターサーバ1と、複数の開発端末2と、を含んで構成される。センターサーバ1と各開発端末2とは、ネットワークNWを介して互いに接続される。ネットワークNWの例として、インターネット、LAN(Local Area Network)、VPN(Virtual Private Network)等が挙げられる。
センターサーバ1は、ソフトウェアのテストを管理するためのサーバ装置である。センターサーバ1は、実際には複数のサーバ装置で構成されるサーバシステムであってもよい。センターサーバ1は、例えばプロジェクトごとに、テストの実施状況やテストの結果を示す情報を記憶してもよい。テストの結果は、本テスト又は追加テストにおける全テストが終了した後の最終的な結果であってもよい。テストの実施状況は、テストの途中結果を含んでもよい。センターサーバ1は、更に各プロジェクトの進捗状況を管理してもよい。例えば、センターサーバ1は、各プロジェクトについて、そのプロジェクトが現在何れの段階にあるかを管理してもよい。センターサーバ1は、プロジェクトの参加者により開発端末2に入力された情報に基づいて、テスト実施状況、テスト結果、プロジェクト進捗状況を更新してもよい。センターサーバ1は、センターサーバ1が記憶しているテストに関する情報を、開発端末2からの要求に応じて送信する。
センターサーバ1は、テストの途中結果又は最終結果の一つとして、バグ検出率を計算する。そして、センターサーバ1は、本テストにおけるバグ検出率に基づいて、そのバグ検出率に関連付けられたプロジェクトについて、追加テストの実施の可能性を示すリスク情報を、開発端末2へ提供してもよい。リスク情報は、そのプロジェクトのリスクを示す情報であるということができる。具体的に、センターサーバ1は、バグ検出率が、予め設定された閾値未満である場合、追加テストの可能性が比較的に低いことを示すリスク情報を提供してもよい。その一方で、センターサーバ1は、バグ検出率が閾値以上である場合、追加テストの可能性が比較的に高いことを示すリスク情報を提供してもよい。本テストの途中結果としてリスク情報が提供される場合、プロジェクトの責任者等は、そのリスク情報を参考にして、ソフトウェアの開発体制や開発環境の見直しを行ってもよい。開発体制の見直しの例として、プロジェクトに参加するメンバー、グループ若しくは企業の見直し、プロジェクトの参加者に対する指導若しくは教育、ソフトウェア開発に適用されるルールの見直し等を含んでもよい。開発環境の見直しは、ソフトウェアの開発に用いられる装置やシステムの見直し、開発が行われる場所の見直し等を含んでもよい。こうした見直しによって、そのプロジェクトは、追加テストを実施しなくても、開発されるソフトウェアの品質を一定品質以上に保つことを目指すことになる。一般的には、バグ検出率が閾値以上である場合、バグ検出率が閾値未満である場合よりも、前述の見直しの必要性が明確に高いと考えられる。
本テストが完了し、若しくは本テストの完了が近くなると、プロジェクトの責任者等は、追加テストを実施するか否かを決定する。例えば、責任者等は、バグ検出率、バグの内容、検出されたバグと類似する未検出のバグが残存している可能性、バグが検出された部分と同じ部分に未検出のバグが残存している可能性等に基づいて、追加テストを実施するか否かを決定してもよい。バグ検出率が閾値以上となったからという理由のみで、追加テストが実施されるとは限らず、またバグ検出率が閾値未満となったからという理由のみで、追加テストが実施されないとも限らない。しかしながら、バグ検出率が閾値以上である場合、バグ検出率が閾値未満である場合よりも、追加テストが実施される可能性は高い。
センターサーバ1は、前述のバグの検出率の閾値を、自動的に設定及び更新してもよい。例えば、センターサーバ1は、プロジェクトが分類されるカテゴリごとに、またはプロジェクトで開発されるソフトウェアが分類されるカテゴリごとに、閾値を更新してもよい。カテゴリは、例えば、バグの傾向に共通性又は類似性があると推定されるプロジェクト又はソフトウェアが同一のカテゴリに分類されるように、カテゴリが定められてもよい。バグの傾向の例として、バグの多さ(またはバグ検出率)の傾向、バグの内容の傾向等がある。例えば、それぞれのプロジェクトで開発されるソフトウェアが、同一のサービスに関連するソフトウェアである場合、それらのプロジェクトは、同一のカテゴリに分類されてもよい。例えば、テスト管理システムSを利用するソフトウェア開発企業が、インターネットを通じて提供される様々なサービスのソフトウェアを開発しているとする。インターネットを通じて提供されるサービスの例として、オンラインショッピング、フリーマーケット、宿泊施設の予約、美容施設の予約、スポーツ施設の予約、宅配料理の注文の受け付け、チケット販売、公営競技の投票券の販売、ウェブ検索、動画配信、音楽配信等が挙げられる。これらのサービスは、ウェブサイトのサーバソフトウェアで提供されてもよいし、サービスの利用者が利用する端末装置上で動作するアプリケーションソフトウェアで提供されてもよい。各サービスについて、複数のプロジェクトが進められる。こうした場合、閾値は、サービスごとに設定されてもよい。或いは、プロジェクトに参加するメンバー、グループ若しくは企業の同一性に基づいて、プロジェクトがカテゴリ分けされてもよい。
各開発端末2は、ソフトウェア開発の参加者が利用する端末装置である。各開発端末2は、例えば仕様書の作成、設計書の作成、プログラムの作成、テスト項目若しくはテストケースの作成及び閲覧、テストの実施、テストの実施結果の報告及び閲覧、テストの実施状況の閲覧等に用いられてもよい。各開発端末2には、テスト管理システムSを利用するためのアプリケーションがインストールされてもよい。或いは、各開発端末2にインストールされているウエブブラウザを介して、テスト管理システムSの利用が可能であってもよい。開発端末2の例として、パーソナルコンピュータ、タブレット式コンピュータ等が挙げられる。
[2.センターサーバの構成]
次に、センターサーバ1の構成について、図2及び図3を用いて説明する。図2は、本実施形態に係るセンターサーバ1の概要構成の一例を示すブロック図である。図2に示すように、センターサーバ1は、システム制御部11と、システムバス12と、入出力インターフェース13と、記憶部14と、通信部15と、を備えている。システム制御部11と入出力インターフェース13とは、システムバス12を介して接続されている。
システム制御部11は、CPU(Central Processing Unit)11a、ROM(Read Only Memory)11b、RAM(Random Access Memory)11c等により構成されている。
入出力インターフェース13は、記憶部14及び通信部15とシステム制御部11との間のインターフェース処理を行う。
記憶部14は、例えば、ハードディスクドライブ等により構成されている。この記憶部14には、例えば、プロジェクトDB14a、テスト報告書DB14b、サービス閾値DB14c、閾値候補DB14d、プロジェクト閾値DB14e等のデータベースが記憶されてもよい。「DB」は、データベースの略語である。図3は、データベースに記憶される情報の例を示す図である。
図3に示すように、プロジェクトDB14aには、プロジェクトに関するプロジェクト情報が、プロジェクトごとに記憶される。プロジェクト情報は、例えばプロジェクトの責任者等により設定されてもよい。例えば、プロジェクトDB14aには、プロジェクト情報として、プロジェクトID、サービスID、本テスト件数、本テスト完了日、追加テストフラグ、追加テスト件数等が、互いに関連付けて記憶されてもよい。プロジェクトIDは、プロジェクトを識別するための識別情報である。サービスIDは、そのプロジェクトが属するサービスを識別する識別情報である。本テスト件数は、そのプロジェクトの本テストで実施されるべきテストの件数を示す。本テスト完了フラグは、そのプロジェクトの本テストが完了したか否かを示す。本テスト完了日は、そのプロジェクトの本テストが完了した日付を示す。本テスト完了フラグ及び本テスト完了日は、プロジェクトの責任者等により設定されてもよいし、センターサーバ1が自動的に設定してもよい。例えば、センターサーバ1は、後述するテスト報書DB14bに基づいて、そのプロジェクトで実施された本テストの件数を計算してもよい。センターサーバ1は、実施されたテストの件数が、プロジェクトDB14aに記憶されている本テスト件数と一致する場合、本テスト完了フラグを、本テスト完了に設定してもよい。このとき、センターサーバ1は、テスト報書DB14bに基づいて、本テストのうち最後に実施されたテストの実施日を、本テスト完了日として決定してもよい。追加テストフラグは、そのプロジェクトについて追加テストが実施の決定状況を示す。例えば、追加テストフラグは、「未確定」、「非実施」、及び「要実施」の何れかに設定されてもよい。「未確定」は、追加テストを実施するか否かがまだ決定されていない状態を示す。「非実施」は、追加テストを実施しないことが決定されたことを示す。「要実施」は、追加テストを実施することが決定されたことを示す。追加テスト件数は、そのプロジェクトの追加テストで実施されるべきテストの件数を示す。
テスト報書DB14bには、テストの実施結果の報告を示す報告情報が、テストが実施されるごとに記憶される。報告情報は、例えばテストの実施者により登録されてもよい。例えば、テスト報書DB14bには、報告情報として、テスト番号、プロジェクトID、テスト種別、実施日、バグ数等が、互いに関連付けて記憶されてもよい。テスト番号は、実施されたテストのテスト項目若しくはテストケースを識別するための番号である。プロジェクトIDは、如何なるプロジェクトについてそのテストが実施されたかを示す。テスト種別は、実施されたテストが、本テスト及び追加テストの何れであるかを示す。実施日は、そのテストが実施された日付を示す。バグ数は、そのテストで検出されたバグの数を示す。
サービス閾値DB14cには、バグ検出率の閾値が、サービスごとに記憶される。例えば、サービス閾値DB14cには、サービスID及び現閾値が、互いに関連付けて記憶されてもよい。サービスIDは、その閾値が設定されたサービスを示す。現閾値は、現在の閾値を示す。現閾値は、センターサーバ1により定期的に更新されてもよい。
閾値候補DB14dには、これまでにバグ検出率の閾値の候補となった値に関する候補情報が、サービスごとに記憶される。例えば、閾値候補DB14dには、サービスIDが少なくとも記憶されてもよい。サービスIDは、閾値の候補が決定されたサービスを示す。閾値候補DB14dには、更に1又は複数の候補情報が、サービスIDと関連付けて記憶されてもよい。例えば、閾値候補が新しく決定されるごとに、候補情報が閾値候補DB14dに追加されてもよい。各候補情報は、インデックス値、当時閾値、及び閾値候補を含んでもよい。インデックス値は、その候補情報が、サービスIDと関連付けて記憶されている1又は複数の候補情報のうち、何番目に記憶された候補情報であるかを示す。当時閾値は、その当時閾値に関連付けられた閾値候補が決定された当時における現閾値である。なお、サービス閾値DB14cに記憶されている現閾値が更新されると、閾値候補DB14dに記憶されている同一サービスの候補情報は全て削除される。そのため、閾値候補DB14dに記憶される当時閾値は、サービス閾値DB14cに記憶される現閾値と一致する。
プロジェクト閾値DB14eは、バグ検出率の閾値が、プロジェクトごとに記憶される。例えば、プロジェクト閾値DB14eには、プロジェクトID及び閾値が、互いに関連付けて記憶されてもよい。プロジェクトIDは、その閾値が設定されたプロジェクトを示す。例えば、各プロジェクトの進捗状況を示す図示せぬデータベースが記憶部14に記憶されてもよい。このデータベースにおいて、或るプロジェクトが、例えば実装若しくはスモークテストから本テストに進むと、センターサーバ1は、そのプロジェクトが属するサービスについて、そのときにサービス閾値DB14cに記憶されている現閾値を、そのプロジェクトの閾値として、プロジェクト閾値DB14eに記憶させてもよい。
記憶部14には、更に、オペレーティングシステム、DBMS(Database Management System)、サーバプログラム等の各種プログラムが記憶されている。サーバプログラムは、テストを管理するための処理、プロジェクトの進捗を管理するための処理、バグ検出率の閾値を設定するための処理等をシステム制御部11に実行させるプログラムである。サーバプログラムは、例えば、他の装置からネットワークNWを介して取得されるようにしてもよいし、磁気テープ、光ディスク、メモリカード等の記録媒体に記録されてドライブ装置を介して読み込まれるようにしてもよい。
通信部15は、例えばネットワークインターフェースコントローラ等により構成されている。通信部15は、ネットワークNWを介して開発端末2等の装置と接続し、接続された装置との通信状態を制御する。
[3.システム制御部の機能概要]
次に、センターサーバ1におけるシステム制御部11の機能概要について、図4乃至図7を用いて説明する。図4は、本実施形態に係るセンターサーバ1におけるシステム制御部11の機能ブロックの一例を示す図である。システム制御部11は、CPU11aが、サーバプログラムに含まれる各種プログラムコードを読み出し実行することにより、図4に示すように、バグ検出率取得部111、閾値候補決定部112、閾値取得部113、閾値更新部114、基準差決定部115、情報出力部116等として機能する。
[3-1.閾値の更新]
システム制御部11は、バグ検出率の閾値の更新制御を行う。更新制御とは、閾値を更新するか否かの判定、及び、閾値を更新すると判定した場合における実際の閾値の更新を含む。例えば、システム制御部11は、全サービスそれぞれについて定期的に(例えば、1ヶ月ごと、3ヶ月ごと、6ヶ月ごと、1年ごと等)、更新制御を実行してもよい。或いは、システム制御部11は、センターサーバ1の管理者等からの指示があったタイミングで、特定のサービス又は全サービスそれぞれについて、更新制御を実行してもよい。
更新制御を実施するタイミングにおいて、バグ検出率取得部111は、過去の期間中にテストの結果が得られたテスト対象のバグ検出率を取得する。本実施形態において、テスト対象は、特定のプロジェクトで開発されるソフトウェアである。バグ検出率が取得される過去の期間を、「参照期間」と称する。参照期間は、例えば更新制御の実施日(すなわち今日)から特定される所定長の期間であってもよい。例えば、参照期間は、今日の所定月数前(例えば、1ヶ月前、3ヶ月前、6ヶ月前等)又は所定年数前(例えば、1年前、2年前、3年前等)の日から、現時点までの期間であってもよい。或いは、参照期間は、先月の初日の所定月数前又は所定年数前の日から先月の末日までの期間であってもよい。参照期間の長さと更新制御の実施間隔とは、一致してもよいし、一致しなくてもよい。参照期間は、前回の更新制御の実施日よりも後の日を含んでもよい。参照期間中にテストの結果が得られたテスト対象とは、例えば、その参照期間中に本テストが完了したプロジェクトであってもよい。本テストが開始された日が参照期間中に含まれている必要はない。バグ検出率取得部111は、プロジェクトDB14aに記憶された本テスト完了日に基づいて、その参照期間中に本テストが完了したか否かを判定してもよい。或いは、バグ検出率取得部111は、テスト報告書DB14bを参照することにより、そのプロジェクトの本テストについて完了したテストの件数を計算し、その件数と、プロジェクトDB14aに記憶された本テスト件数とを比較することにより、本テストが完了したか否かを判定してもよい。そして、バグ検出率取得部111は、その本テストにおける最後のテストの実施日に基づいて、その参照期間中に本テストが完了したか否かを判定してもよい。テストで得られる結果は、例えば本テストにおける最終的なバグ検出率を含んでもよい。
バグ検出率取得部111は、特定されたプロジェクトごとに、バグ検出率を取得してもよい。例えば、バグ検出率取得部111は、テスト報告書DB14bを参照して、本テストで検出されたバグの数の合計を計算してもよい。そして、バグ検出率取得部111は、バグ数の合計を本テスト件数で除算することにより、バグ検出率を計算してもよい。バグ検出率の取得対象となるテスト対象は、参照期間中に本テストが完了したプロジェクトのうち、閾値の更新制御の対象となるサービスに属するプロジェクトに限定されてもよい。更に、バグ検出率の取得対象となるテスト対象は、追加テストを実施することが決定されたプロジェクトに限定されてもよい。
閾値候補決定部112は、バグ検出率取得部111により取得されたバグ検出率に基づいて、閾値の候補を決定する。例えば、閾値の候補は、取得されたバグ検出率の代表値であってもよい。バグ検出率の代表値は、例えば平均値又は中央値であってもよい。追加テストが実施されるプロジェクトの本テストでのバグ検出率は、比較的に高くなる。その一方で、追加テストが実施されるプロジェクトであっても、本テストのバグ検出率が極端に高くなることは比較的に少ない。また、追加テストが実施される以上、バグ検出率が極端に低くなることも比較的に少ない。更に、同一又は極めて近いバグ検出率が取得された複数のプロジェクトが、追加テストを実施するプロジェクトと実施しないプロジェクトとに分けられる場合がある。その一方で、バグ検出率が高いほど追加テストが実施される可能性は高い。これらの事情を考慮すると、閾値を、バグ検出率の平均値又は中央値等の代表値に設定することに妥当性があると考えられる。
このタイミングで特定された参照期間を、便宜上、「第1参照期間」と称する。また、このタイミングで取得されたバグ検出率を、「第1バグ検出率」と称する。また、このタイミングで決定された閾値候補を、「第1閾値候補」と称する。
閾値取得部113は、バグ検出率の現閾値を取得する。例えば、閾値取得部113は、閾値の更新制御の対象となるサービスについてサービス閾値DB14cに記憶されている現閾値を取得してもよい。
閾値更新部114は、閾値候補決定部112により決定された第1閾値候補と閾値取得部113により取得された閾値との差が、所定の基準差未満である場合、その閾値をその第1閾値候補で更新する。基準差は、例えばセンターサーバ1の管理者等により予め設定されてもよいし、後述するように、センターサーバ1が決定してもよい。一方、閾値更新部114は、第1閾値候補と閾値との差が基準差以上である場合、その閾値を第1閾値候補で更新しない。より一般化して述べると、閾値候補と閾値との差が基準差以上である場合、閾値を更新する場合と、更新しない場合とがある。閾値を更新する場合については後述する。
図5は、閾値の更新例を示す図である。図5に示すように、或るサービスの現閾値は3.0%である。また、バグ検出率に基づいて計算された閾値候補は、2.8%である。基準差は、0.5%であると仮定する。従って、閾値候補と現閾値との差は基準差未満であるので、現閾値は2.8%に更新される。
第1閾値候補と閾値との差が基準差以上であることにより、閾値取得部113により閾値が第1閾値候補で更新されなかった後、バグ検出率取得部111は、更新制御を実施する次のタイミングにおいて、第1参照期間よりも後の日を含む過去の期間中にテストの結果が得られたテスト対象のバグ検出率を取得する。次の更新制御時における過去の期間を、「第2参照期間」と称する。第1参照期間と第2参照期間とに重複があってもよいし、重複がなくてもよい。第2参照期間は、第1参照期間よりも前の日を含まなくてもよい。第1参照期間の長さと第2参照期間の長さとは同一であってもよいし、異なってもよい。例えば、バグ検出率取得部111は、第1参照期間を特定する場合と同様に、次の更新制御の実施日から特定される所定長の期間を、第2参照期間としてもよい。参照期間が異なることを除き、バグ検出率の取得方法は、第1バグ検出率の取得方法と同一であってもよい。今回の更新制御時におけるバグ検出率を、「第2バグ検出率」と称する。
閾値候補決定部112は、バグ検出率取得部111により取得された第2バグ検出率に基づいて、閾値の候補を決定する。閾値候補の決定方法は、第1閾値候補の決定方法と同一であってもよい。今回の更新制御時における閾値候補を、「第2閾値候補」と称する。
閾値更新部114は、閾値候補決定部112により決定された第2閾値候補と閾値との差が基準差未満である場合、その閾値をその第2閾値候補で更新する。この点については、第1閾値候補を用いた更新と同一である。一方、第2閾値候補と閾値との差が基準差以上である場合、前回の更新制御時において、第1閾値候補と閾値との差が基準差以上であったので、閾値更新部114は、閾値を第2閾値候補で更新してもよい。換言すると、前回の更新制御時に閾値が更新されなかったので、閾値更新部114は、閾値を更新するということもできる。
バグ検出率の閾値及び閾値候補は、参照期間に結果が得られたテスト対象のバグ検出率の代表値である。参照期間が、第1参照期間から第2参照期間に変わることで、代表値により示されるバグ検出率の傾向に変化があるとき、開発体制や開発環境等に変化があった可能性がある。或いは、追加テストの実施の要否の判断の基準に変更があった可能性がある。開発体制、開発環境、追加テスト実施の判断基準等の変化を閾値に反映することで、閾値が適切に更新されるものと考えられる。しかしながら、変化した状況は一時的なものであり、しばらく日数が経過すれば、開発体制や開発環境等は元に戻るかもしれない。或いは、開発体制や開発環境等が変化したのではなく、又はその変化とは無関係に、その時期にのみ偶然にもバグ検出率の傾向が変化しただけであるかもしれない。そのようなとき、閾値を閾値候補で更新することは、必ずしも適切であるとは限らない。そこで、閾値更新部114は、バグ検出率の傾向を示す閾値候補と閾値との差が1回のみ基準差以上となったとしても、その時点では更新しない。閾値更新部114は、閾値候補と閾値との差が連続して基準差以上となった場合、バグ検出率の傾向の変化が偶然ではなく、変化した状態は継続的なものであるとして、閾値を閾値候補で更新する。一方、閾値候補と閾値との差が基準差未満である場合には、たとえバグ検出率の傾向の変化は偶然であるか、または変化した開発体制や開発環境等は一時的なものであったとしても、閾値更新による影響は比較的に小さい。そのため、閾値更新部114は、閾値候補と閾値との差が基準差未満である場合、その他の条件を考慮せずに閾値を更新してもよい。
閾値更新部114は、第1閾値候補と閾値との差が基準差以上であることにより、閾値を第1閾値候補で更新しなかった後、第2閾値候補と閾値との差が基準差以上である場合には、更なる条件に基づいて、閾値を第2閾値候補で更新するか否かを判定してもよい。例えば、閾値更新部114は、第1閾値候補と閾値との大小関係と、第2閾値候補と閾値との大小関係と、が一致する場合にのみ、閾値を第2閾値候補で更新してもよい。閾値候補と閾値との大小関係とは、閾値候補が閾値よりも高いか否かを示す関係である。具体的に、第1閾値候補が閾値より高く、且つ、第2閾値候補も閾値より高い場合、大小関係は一致する。また、第1閾値候補が閾値より低く、且つ、第2閾値候補も閾値より低い場合にも、大小関係は一致する。閾値候補と閾値との差が連続して基準差以上となったとしても、第1閾値候補及び第2閾値候補の何れか一方の閾値候補が閾値よりも高い一方で、他方の閾値候補が閾値よりも低い場合、変化した開発体制や開発環境等は継続しているということはできない。
これまでに説明した閾値の更新方法の一般化した例を述べる。今回の閾値候補と閾値との差が基準差未満である場合、閾値更新部114は、閾値をその閾値候補で更新してもよい。今回の閾値候補と閾値との差が基準差以上である場合、閾値更新部114は、前回の更新制御時に、閾値をその当時の閾値候補で更新したか否かを判定してもよい。前回の更新制御時に閾値が更新されていた場合、閾値更新部114は、閾値を今回の閾値候補では更新しなくてもよい。前回の更新制御時に閾値が更新されていなかった場合、閾値更新部114は、前回の閾値候補と閾値との大小関係と、今回の閾値候補と閾値との大小関係と、が一致するか否かを判定してもよい。大小関係が一致する場合、閾値更新部114は、閾値を今回の閾値候補で更新してもよい。大小関係が不一致である場合、閾値更新部114は、閾値を今回の閾値候補で更新しなくてもよい。
閾値の初期値は、例えばセンターサーバ1の管理者により予め設定されてもよいし、これまで説明したように、バグ検出率に基づいてセンターサーバ1により設定されてもよい。
図6は、閾値の更新例を示す図である。例えば、更新制御が1ヶ月ごとに行われるとする。また、基準差は0.5%であると仮定する。図6に示すように、4月に入ったときにおける現閾値は3.0%である。このときに計算された閾値候補は、3.8%である。従って、このときの閾値候補と現閾値との差は基準差以上である。3月には現閾値が更新されていた場合、現閾値は更新されない。5月に入ったときに計算された閾値候補は、3.7%である。この閾値候補と現閾値との差は基準差以上である。4月には現閾値は更新されていない。4月の閾値候補は現閾値よりも高く、且つ、5月の閾値候補も現閾値より高い。従って、現閾値は3.7に更新される。
[3-2.基準差の設定]
次に、基準差を自動的に設定する方法について説明する。基準差決定部115は、バグ検出率取得部111により取得されたバグ検出率に基づいて、そのバグ検出率の外れ値と外れ値以外の値との境目となる特定値と、バグ検出率の代表値と、の差を、基準差として決定してもよい。外れ値とならないバグ検出率の範囲を、「正常区間」と称する。例えば、基準差決定部115は、正常区間の下限値又は上限値が、代表値からどれだけ離れているかに基づいて、基準差を決定してもよい。閾値候補と閾値との差が、このように決定された基準差以上となった場合、閾値候補は外れ値である可能性がある。そこで、閾値候補が外れ値である可能性がある場合、閾値を閾値候補で更新することが適切ではない場合がある。前述したように、閾値候補と閾値との差が連続して基準差以上となった場合、閾値が更新される場合がある。
特定値は、正常区間の下限値及び上限値の少なくとも何れか一方であってもよい。バグ検出率の代表値は、平均値又は中央値であってもよい。この代表値は、閾値候補自身であってもよい。
基準差決定部115は、バグ検出率の標準偏差を用いて基準差を決定してもよい。この場合、基準差決定部115は、特定値を計算しなくてもよい。バグ検出率を確率変数とし、プロジェクト数を度数とした場合のバグ検出率の分布は、正規分布又は比較的に正規分布に近い分布になるかもしれない。基準差決定部115は、例えば標準偏差に、ゼロよりも大きい実数である所定の係数を乗算することにより、基準差を計算してもよい。例えば、正常区間が全バグ検出率の約95%を占めると仮定した場合、その係数は2.0であってもよい。なお、バグ検出率の分布が実際には正規分布ではなくても、基準差決定部115は標準偏差を用いて基準差を決定してもよい。
図7は、バグ検出率の分布の一例を示すグラフである。図7において、バグ検出率の分布は正規分布となっている。バグ検出率の平均値をμとし、標準偏差の所定係数倍の値を、基準差xとする。この場合の正常区間は、μ-x~μ+xの範囲である。μ-x以下であるバグ検出率、及び、μ+x以上であるバグ検出率は、外れ値となる。
基準差決定部115は、バグ検出率のパーセンタイル値を用いて基準差を決定してもよい。このパーセンタイル値は、中央値や平均値とは異なる値である。例えば、正常区間が全バグ検出率のN%を占めると仮定する。この場合、基準差決定部115は、正常区間の下限値としての((100-N)÷2)パーセンタイル値、及び、正常区間の上限値としての(100-(100-N)÷2)パーセンタイル値のうち、少なくとも何れか一方を計算してもよい。そして、基準差決定部115は、パーセンタイル値と代表値との差を、基準差として決定してもよい。バグ検出率の分布が正規分布ではない場合、正常区間の下限値と代表値との差と、正常区間の上限値と代表値との差と、が異なる場合がある。このとき、例えば閾値更新部114は、閾値候補が閾値よりも高い場合には、正常区間の下限値で計算した基準差を用い、閾値候補が閾値よりも低い場合には、正常区間の上限値で計算した基準差を用いてもよい。
[3-3.バグ検出率と閾値に基づく情報提供]
情報出力部116は、バグ検出率及び閾値に基づいて、情報出力を行う。例えば、テスト中である所与のテスト対象のそのテストで検出されたバグの検出率が、閾値以上であるとする。その場合、情報出力部116は、その所与のテスト対象について追加テストを実施する可能性が、バグの検出率が閾値未満である場合よりも高いことを示すリスク情報を出力してもよい。テスト中である状態とは、例えば本テストに含まれる全テストのうち、一部のテストは実施されているものの、残りのテストは未実施である状態であってもよい。所与のテスト対象は、例えば開発端末2の画面に情報が表示されるプロジェクト(で開発されるソフトウェア)であってもよい。例えば、開発端末2の画面に1又は複数のプロジェクトについて進捗状況が表示されているとき、本テスト中にある各プロジェクトについてリスク情報が表示されるように、情報出力部116はそのリスク情報を開発端末2に送信してもよい。情報出力部116は、そのプロジェクトのプロジェクトIDに関連付けてテスト報書DB14bに記憶された本テストの報告情報に基づいて、バグ検出率を計算してもよい。また、情報出力部116は、そのプロジェクトのプロジェクトIDに関連付けてプロジェクト閾値DB14eに記憶されている閾値を用いて判定を行ってもよい。
本テストが完了した段階の最終的なバグ検出率が閾値以上となった場合、追加テストの実施の可能性が高くなる。そこで、本テストの途中の段階でバグ検出率が閾値以上となっている場合には、リスク情報としてその旨を開発者に提示することで、追加テストの実施を回避するために開発体制や開発環境の見直しを検討するきっかけを、開発者に提供することができる。
リスク情報の表示方法としては様々考えられる。例えば、情報出力部116は、開発者に指定されたサービスに属する各プロジェクトの進捗状況を、開発端末2に表示させるとする。例えば、情報出力部116は、ウェブページで進捗状況を示す情報を表示してもよい。開発端末2の画面には、各プロジェクトを示すプロジェクト進捗情報が、そのプロジェクトの進捗状況と関連付けて表示される。プロジェクト進捗情報は、少なくともプロジェクト名を含んでもよい。プロジェクトがテスト段階にある場合、プロジェクト進捗情報は更にバグ検出率を含んでもよい。情報出力部116は、バグ検出率が閾値以上であるか否かに基づいて、テストの段階にあるプロジェクトのプロジェクト進捗情報の表示態様を異ならせてもよい。表示態様が異なるプロジェクト進捗情報が、リスク情報の一例である。表示態様の例として、プロジェクト進捗情報の色彩、形状、及び大きさ、プロジェクト進捗情報の輪郭の色彩、及び太さ、プロジェクト進捗情報内の文字の色彩、スタイル、大きさ、及び太さ等が挙げられる。既に追加テストが実施されているプロジェクト、または本テスト中ではあるものの、追加テストを実施することが既に決定されているプロジェクトについては、更に別の態様でプロジェクト進捗情報が表示されてもよい。或いは、情報出力部116は、プロジェクト進捗情報内に、追加テストの可能性が高いことを示すメッセージを、リスク情報として含ませてもよい。
[4.センターサーバの動作]
次に、センターサーバ1の動作について、図8を用いて説明する。図8は、本実施形態に係るセンターサーバ1のシステム制御部11による閾値更新制御処理の一例を示すフローチャートである。システム制御部11は、各サービスについて定期的に閾値更新制御処理を実行してもよいし、開発者による実施の要求を開発端末2から受信することに応じて、各サービスについて閾値更新制御処理を実行してもよい。
図8に示すように、バグ検出率取得部111は、処理の対象となるサービスについて、本テスト完了日が参照期間内であるプロジェクトのバグ検出率を取得する(ステップS101)。例えば、バグ検出率取得部111は、参照期間として、今日の所定月数前又は所定年数前から今日までの期間を設定してもよい。バグ検出率取得部111は、プロジェクトDB14aから、対象のサービスのサービスIDと「要実施」に設定された追加テストフラグとを含むプロジェクト情報のうち、本テスト完了日が参照期間に含まれるプロジェクト情報を検索してもよい。バグ検出率取得部111は、検索された各プロジェクト情報について、そのプロジェクト情報に含まれるプロジェクトIDと本テストを示すテスト種別との組み合わせを含む報告情報を検索してもよい。バグ検出率取得部111は、検索された報告情報の数を、テスト件数として計算してもよい。バグ検出率取得部111は、各報告情報からバグ数を取得し、バグ数の合計を計算してもよい。バグ検出率取得部111は、バグ数の合計をテスト件数で除算することにより、バグ検出率を計算してもよい。
次いで、基準差決定部115は、バグ検出率取得部111により取得されたバグ検出率の標準偏差を計算する(ステップS102)。次いで、基準差決定部115は、標準偏差に、予め設定された係数Kを乗算することにより、基準差を計算する(ステップS103)。次いで、閾値取得部113は、サービス閾値DB14cから、対象のサービスのサービスIDに関連付けられた現閾値を取得する(ステップS104)。次いで、閾値候補決定部112は、閾値候補として、バグ検出率取得部111により取得されたバグ検出率の代表値を計算する(ステップS105)。
次いで、閾値更新部114は、閾値候補から現閾値を減算することにより、今回偏差を計算する(ステップS106)。次いで、閾値更新部114は、今回偏差の絶対値が基準差未満であるか否かを判定する(ステップS107)。
今回偏差の絶対値が基準差未満である場合(ステップS107:YES)、閾値更新部114は、現閾値を閾値候補で更新する(ステップS108)。例えば、閾値更新部114は、対象のサービスのサービスIDに関連付けてサービス閾値DB14cに記憶されている現閾値を、閾値候補で書き換えてもよい(ステップS108)。次いで、閾値更新部114は、対象のサービスのサービスIDに関連付けて閾値候補DB14dに少なくとも一の候補情報が記憶されている場合、それらの候補情報を閾値候補DB14dから全て削除して(ステップS109)、閾値更新制御処理は終了する。
一方、今回偏差の絶対値が基準差以上である場合(ステップS107:NO)、閾値更新部114は、対象のサービスのサービスIDに関連付けて、候補情報をサービス閾値DB14cに追加して記憶させる(ステップS110)。このとき、閾値更新部114は、当時閾値としての現閾値及び閾値候補を、候補情報に含ませる。また、閾値更新部114は、対象のサービスのサービスIDに関連付けて既に記憶されている候補情報がない場合、追加する候補情報のインデックス値を1に設定する。一方、既に記憶されている候補情報がある場合、それらの候補情報に含まれるインデックス値のうち、最大のインデックス値に1を加算して、追加する候補情報のインデックス値を計算する。次いで、閾値更新部114は、サービス閾値DB14cに前回の候補情報が記憶されているか否かを判定する(ステップS111)。すなわち、閾値更新部114は、ステップS110よりも前の段階で、対象のサービスのサービスIDに関連付けて既に候補情報が記憶されているか否かを判定する。前回の候補情報は、今回追加された候補情報のインデックス値よりも1小さいインデックス値を有する候補情報である。前回の候補情報が記憶されていない場合(ステップS111:NO)、閾値更新部114は、現閾値を更新しないと決定して(ステップS114)、閾値更新制御処理は終了する。
一方、前回の候補情報が記憶されている場合(ステップS111:YES)、閾値更新部114は、前回の候補情報に含まれる前回の閾値候補から、前回の候補情報に含まれる当時閾値を減算することにより、前回偏差を計算する(ステップS112)。次いで、閾値更新部114は、今回偏差の符号と前回偏差の符号とが一致するか否かを判定する(ステップS113)。今回偏差が正の値であり、且つ、前回偏差も正の値である場合、符号が一致する。また、今回偏差が負の値であり、且つ、前回偏差も負の値である場合、符号が一致する。符号が一致する場合(ステップS113:YES)、閾値更新部114は、現閾値を閾値候補で更新する(ステップS108)。符号が一致しない場合(ステップS113:NO)、閾値更新部114は、現閾値を更新しないと決定する(ステップS114)。なお、閾値更新部114は、今回偏差の絶対値が基準差以上である場合(ステップS107:YES)、前回偏差の絶対値が、今回計算された基準差以上であるか否かを更に判定してもよい。そして、閾値更新部114は、前回偏差の絶対値が今回の基準差未満である場合には、現閾値を更新しなくてもよい。
以上説明したように、本実施形態において、センターサーバ1が、過去の第1参照期間中にテストの結果が得られたプロジェクトの第1バグ検出率を取得してもよい。また、センターサーバ1が、第1バグ検出率に基づいて、第1閾値候補を決定してもよい。また、センターサーバ1が、第1閾値候補と現閾値との差が基準差未満である場合、現閾値を第1閾値候補で更新してもよい。また、センターサーバ1が、現閾値が第1閾値候補で更新されなかった後、第1参照期間よりも後の日を含む過去の第2参照期間中にテストの結果が得られたプロジェクトの第2バグ検出率を取得してもよい。また、センターサーバ1が、第2バグ検出率に基づいて、第2閾値候補を決定してもよい。また、センターサーバ1が、第2閾値候補と現閾値との差が基準差以上である場合、現閾値を第2閾値候補で更新してもよい。この場合、第1閾値候補と現閾値との差が基準差以上であることで、現閾値が第1閾値候補で更新されなかった後、次のタイミングにおいても同様に、現閾値の第2閾値候補と現閾値との差が基準差以上である場合、現閾値が第2閾値候補で更新される。第1参照期間中にテストの結果が得られたプロジェクトのバグの第1バグ検出率に基づいて決定された現閾値の第1閾値候補と現閾値との間に差が生じた場合、その期間について、ソフトウェアの開発体制や開発環境に何らかの変化があった可能性がある。この変化を反映して、現閾値が更新される。その一方で、変化した状態は一時的なものであり、まもなく元の状態に戻る可能性がある。或いは、開発体制や開発環境に変化があったのではなく、偶然にも現閾値の第1閾値候補と現閾値との間に差が生じたのかもしれない。そこで、現閾値が大きく変更される場合の影響を鑑みて、現閾値は直ちには更新されない。その後、新たな第2参照期間中にテストの結果が得られたプロジェクトのバグの第2バグ検出率に基づいて決定された現閾値の第2閾値候補と現閾値との比較の結果、やはり差が大きいのであれば、変化した状態は或る程度継続されている可能性がある。そこで、現閾値が第2閾値候補で更新される。従って、ソフトウェアテストにおけるバグの検出率の閾値を適切に更新することができる。
ここで、バグ検出率が取得されるプロジェクトは、本テストの結果に基づいて、追加テストの実施の要否が決定されたプロジェクトのうち、追加テストの実施が決定されたプロジェクトであってもよい。この場合、追加テストが実施されたプロジェクトについてのバグの検出率を用いて、閾値候補が決定される。従って、更新された現閾値を用いて、所与のプロジェクトの追加テストの可能性を適切に判定することができる。
このとき、センターサーバ1がバグ検出率のそれぞれとして、本テストで検出されたバグの検出率を取得してもよい。この場合、追加テストが実施されたプロジェクトについて、本テストで検出されたバグの検出率を用いて、閾値候補が決定される。追加テストの実施の要否の決定に影響する可能性があるバグの検出率を用いることで、閾値候補を適切に決定することができる。
また、センターサーバ1が、第2閾値候補と現閾値との差が基準差以上であり、且つ、第1閾値候補と現閾値との差が基準差以上であるときにおいては、第2閾値候補と現閾値との間の大小関係と、第1閾値候補と現閾値との間の大小関係と、が一致する場合、現閾値を第2閾値候補で更新してもよい。この場合、変化した状態が継続している可能性を適切に現閾値に反映することができる。
また、センターサーバ1が、閾値候補として、バグの検出率の代表値を計算してもよい。また、バグ検出率の代表値は、平均値及び中央値のうち何れか一方であってもよい。
また、センターサーバ1が、テスト中である所与のプロジェクトのテストで検出されたバグ検出率が現閾値以上である場合、そのプロジェクトについて追加テストを実施する可能性が、バグ検出率が現閾値未満である場合よりも高いことを示すリスク情報を出力してもよい。この場合、リスク情報が出力されることで、追加テストの実施を回避するために開発体制や開発環境の見直しを行うきっかけを開発者に与えることができる。
また、センターサーバ1が、ソフトウェアのテストにおけるバグの検出率の現閾値を取得してもよい。また、センターサーバ1が、過去にテストされた複数のプロジェクトそれぞれのバグ検出率を取得してもよい。また、センターサーバ1が、バグ検出率に基づいて、閾値候補を決定してもよい。また、センターサーバ1が、バグ検出率に基づいて、バグ検出率の外れ値とその外れ値以外の値との境となる特定値と、バグ検出率の代表値と、の基準差を決定してもよい。また、センターサーバ1が、現閾値と閾値候補との差が基準差未満である場合、現閾値を閾値候補で更新してもよい。この場合、基準差は、外れ値とならないバグの検出率の範囲に対応する。前述の理由と同様の理由により、現閾値が大きく変更される場合の影響を鑑みて、閾値候補と現閾値との差が基準差未満である場合に、現閾値が更新される。一方、閾値候補と現閾値との差が基準差以上である場合、現閾値は直ちに更新されないか、または他の条件に基づいて、現閾値の更新の要否が決定されてもよい。従って、ソフトウェアテストにおけるバグの検出率の閾値を適切に更新することができる。
ここで、センターサーバ1が、バグ検出率の標準偏差に基づいて、基準差を決定してもよい。この場合、バグの検出率の標準偏差を用いることで、基準差を適切に決定することができる。
1 センターサーバ
2 開発端末
11 システム制御部
12 システムバス
13 入出力インターフェース
14 記憶部
14a プロジェクトDB
14b テスト報告書DB
14c サービス閾値DB
14d 閾値候補DB
14e プロジェクト閾値DB
NW ネットワーク
111 バグ検出率取得部
112 閾値候補決定部
113 閾値取得部
114 閾値更新部
115 基準差決定部
116 情報出力部

Claims (8)

  1. ソフトウェアのテストにおけるバグの検出率の閾値を取得する閾値取得手段と、
    過去にテストされた複数のテスト対象それぞれのバグの検出率を取得するバグ検出率取得手段と、
    前記取得された検出率に基づいて、前記閾値の候補を決定する候補決定手段と、
    前記取得された検出率に基づいて、前記検出率の外れ値と該外れ値以外の値との境となる値と、前記検出率の代表値と、の基準差を決定する基準差決定手段と、
    前記取得された閾値と前記決定された候補との差が、前記決定された基準差未満である場合、前記閾値を前記候補で更新する更新手段と、
    を備えることを特徴とするバグ検出率閾値更新システム。
  2. 前記基準差決定手段は、前記取得された検出率の標準偏差に基づいて、前記基準差を決定することを特徴とする請求項1に記載のバグ検出率閾値更新システム。
  3. 前記複数のテスト対象のそれぞれは、予定されたテストの結果に基づいて、追加テストの実施の要否が決定されたテスト対象のうち、前記追加テストを実施することが決定されたテスト対象であることを特徴とする請求項1又は2に記載のバグ検出率閾値更新システム。
  4. 前記バグ検出率取得手段は、前記検出率として、前記予定されたテストで検出されたバグの検出率を取得することを特徴とする請求項3に記載のバグ検出率閾値更新システム。
  5. 前記代表値は、前記取得された検出率の平均値及び中央値の何れか一方であることを特徴とする請求項1乃至4の何れか一項に記載のバグ検出率閾値更新システム。
  6. 前記候補決定手段は、前記閾値の候補として、前記検出率の代表値を計算することを特徴とする請求項1乃至5の何れか一項に記載のバグ検出率閾値更新システム。
  7. コンピュータにより実行されるバグ検出率閾値更新方法において、
    ソフトウェアのテストにおけるバグの検出率の閾値を取得する閾値取得ステップと、
    過去にテストされた複数のテスト対象それぞれのバグの検出率を取得するバグ検出率取得ステップと、
    前記取得された検出率に基づいて、前記閾値の候補を決定する候補決定ステップと、
    前記取得された検出率に基づいて、前記検出率の外れ値と該外れ値以外の値との境となる値と、前記検出率の代表値と、の基準差を決定する基準差決定ステップと、
    前記取得された閾値と前記決定された候補との差が、前記決定された基準差未満である場合、前記閾値を前記候補で更新する更新ステップと、
    を含むことを特徴とするバグ検出率閾値更新方法。
  8. コンピュータを、
    ソフトウェアのテストにおけるバグの検出率の閾値を取得する閾値取得手段と、
    過去にテストされた複数のテスト対象それぞれのバグの検出率を取得するバグ検出率取得手段と、
    前記取得された検出率に基づいて、前記閾値の候補を決定する候補決定手段と、
    前記取得された検出率に基づいて、前記検出率の外れ値と該外れ値以外の値との境となる値と、前記検出率の代表値と、の基準差を決定する基準差決定手段と、
    前記取得された閾値と前記決定された候補との差が、前記決定された基準差未満である場合、前記閾値を前記候補で更新する更新手段、
    として機能させることを特徴とするバグ検出率閾値更新プログラム。
JP2022051390A 2022-03-28 2022-03-28 バグ検出率閾値更新システム、バグ検出率閾値更新方法、及びバグ検出率閾値更新プログラム Active JP7296502B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022051390A JP7296502B1 (ja) 2022-03-28 2022-03-28 バグ検出率閾値更新システム、バグ検出率閾値更新方法、及びバグ検出率閾値更新プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022051390A JP7296502B1 (ja) 2022-03-28 2022-03-28 バグ検出率閾値更新システム、バグ検出率閾値更新方法、及びバグ検出率閾値更新プログラム

Publications (2)

Publication Number Publication Date
JP7296502B1 true JP7296502B1 (ja) 2023-06-22
JP2023144423A JP2023144423A (ja) 2023-10-11

Family

ID=86772818

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022051390A Active JP7296502B1 (ja) 2022-03-28 2022-03-28 バグ検出率閾値更新システム、バグ検出率閾値更新方法、及びバグ検出率閾値更新プログラム

Country Status (1)

Country Link
JP (1) JP7296502B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116561773A (zh) * 2023-07-12 2023-08-08 北京云科安信科技有限公司 一种智能漏洞检测及验证方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170153967A1 (en) 2014-02-06 2017-06-01 B. G. Negev Technologies And Applications Ltd., At Ben-Gurion University Using model-based diagnosis to improve software testing
JP2019101582A (ja) 2017-11-29 2019-06-24 トヨタ自動車株式会社 ソフトウェア品質判定装置、ソフトウェア品質判定方法、及びソフトウェア品質判定プログラム
JP2019101581A (ja) 2017-11-29 2019-06-24 トヨタ自動車株式会社 ソフトウェア品質判定装置、ソフトウェア品質判定方法、及びソフトウェア品質判定プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019003333A (ja) * 2017-06-13 2019-01-10 日本電信電話株式会社 バグ混入確率計算プログラム及びバグ混入確率計算方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170153967A1 (en) 2014-02-06 2017-06-01 B. G. Negev Technologies And Applications Ltd., At Ben-Gurion University Using model-based diagnosis to improve software testing
JP2019101582A (ja) 2017-11-29 2019-06-24 トヨタ自動車株式会社 ソフトウェア品質判定装置、ソフトウェア品質判定方法、及びソフトウェア品質判定プログラム
JP2019101581A (ja) 2017-11-29 2019-06-24 トヨタ自動車株式会社 ソフトウェア品質判定装置、ソフトウェア品質判定方法、及びソフトウェア品質判定プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116561773A (zh) * 2023-07-12 2023-08-08 北京云科安信科技有限公司 一种智能漏洞检测及验证方法
CN116561773B (zh) * 2023-07-12 2023-09-19 北京云科安信科技有限公司 一种智能漏洞检测及验证方法

Also Published As

Publication number Publication date
JP2023144423A (ja) 2023-10-11

Similar Documents

Publication Publication Date Title
US8255255B2 (en) System and methods of managing assignments
US20040215656A1 (en) Automated data mining runs
US20130275165A1 (en) Information providing apparatus, information providing method, information providing program, and recording medium
EP3070667A1 (en) Revenue management system and revenue management method
CN101339641A (zh) 对问题报告的响应行为进行优先级区分的装置和方法
US10504045B2 (en) Audit schedule determination
CN113435197B (zh) 数据推送方法、装置、推送服务器及存储介质
US20140236844A1 (en) Systems and Methods for Product Event Management
JP4913647B2 (ja) メンタルヘルス管理装置
JP7296502B1 (ja) バグ検出率閾値更新システム、バグ検出率閾値更新方法、及びバグ検出率閾値更新プログラム
US11695717B2 (en) Dynamic email content engine
US11487835B2 (en) Information processing system, information processing method, and program
US20140188554A1 (en) Priority-Weighted Selection to Match a Panelist to a Market Research Project
JP7296501B1 (ja) バグ検出率閾値更新システム、バグ検出率閾値更新方法、及びバグ検出率閾値更新プログラム
US9218370B2 (en) Processing data loads
Hutson et al. Volatility in stocks subject to takeover bids: Australian evidence using daily data
JP2008242703A (ja) メンタルヘルス管理装置
CN111190817A (zh) 软件缺陷的处理方法及装置
JP2006058974A (ja) 作業管理方式
CN115391655A (zh) 信息查询方法及装置、电子设备和计算机可读存储介质
US20210097459A1 (en) Worker assignment system and worker assignment device
CN108537654B (zh) 客户关系网络图的渲染方法、装置、终端设备及介质
CN112116427A (zh) 一种商品推荐方法、装置、电子设备及存储介质
US20140188553A1 (en) Quota Cell Priority Determination to Match a Panelist to a Market Research Project
US20230316422A1 (en) Reward engines

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220328

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230612

R150 Certificate of patent or registration of utility model

Ref document number: 7296502

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150