(57)【要約】【課題】テスト機器の上で動作するソフトウェアのバグを再現するシステムにおいて、ソフトウェアのバグを容易に再現させて、そのテスト機器のソフトウェアの開発促進に資するようにする。【解決手段】テスターがテストを実施した際のテスト機器に入力された全ての入力信号と、入力された時刻と、テスト機器で実行された時刻を含む操作内容を、テストＩＤ毎に、テストデータと、その管理テーブルと操作履歴として記録してバグ管理データベースとして管理する。また、テストの再現時には、テストＩＤを入力して、そのバグ管理データベースに保持されている情報を利用し、時系列的にテストデータによって再現される入力信号と、操作履歴の制御信号をテスト機器に入力することにより、発生したバグを再現させる。【選択図】図１
2009295082.tif 000002
【特許請求の範囲】
【請求項１】
テスト機器上で稼動するソフトウェアのバグを検出するバグ管理システムにおいて、
前記テスト機器より操作された時刻を含む操作履歴を収集する手段と、
前記テスト機器に入力された入力信号とその入力信号を入力された時刻とを収集して、テストデータと、そのテストデータの管理情報として出力する手段と、
テストを識別するテストＩＤを入力する手段と、
前記テストＩＤを、前記操作履歴と、前記テストデータと、前記テストデータの管理情報とに関連付けて保持するデータベースと、
前記テスト機器上で稼動するソフトウェアのバグを再現するために、前記テストＩＤを入力し、前記操作履歴に基づく操作内容の制御信号を前記テスト機器に送信し、かつ、前記テストデータと、前記テストデータの管理情報とに基づき、前記テスト機器に信号を入力して、前記操作履歴の時刻と前記入力信号の入力された時刻に従って、前記テスト機器上で稼動するソフトウェアのバグを再現させることを特徴とするバグ管理システム。
【請求項２】
さらに、テスト結果が正常であると入力されたときには、前記データベース上の前記テストデータを削除する手段とを有することを特徴とする請求項１記載のバグ管理システム。
【請求項３】
テスト機器上で稼動するソフトウェアのバグを検出するバグ管理方法において、
前記テスト機器より操作された時刻を含む操作履歴を収集するステップと、
前記テスト機器に入力された入力信号とその入力信号を入力された時刻とを収集して、テストデータと、そのテストデータの管理情報として出力するステップと、
テストを識別するテストＩＤを入力するステップと、
前記テストＩＤを、前記操作履歴と、前記テストデータと、前記テストデータの管理情報とに関連付けてデータベースに保持するステップと、
前記テスト機器上で稼動するソフトウェアのバグを再現するために、前記テストＩＤを入力し、前記操作履歴に基づく操作内容の制御信号を前記テスト機器に送信し、かつ、前記テストデータと、前記テストデータの管理情報とに基づき、前記テスト機器に信号を入力して、前記操作履歴の時刻と前記入力信号の入力された時刻に従って、前記テスト機器上で稼動するソフトウェアのバグを再現させるステップとを有することを特徴とするバグ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バグ管理システムおよび、バグ管理方法に係り、テスト機器の上で動作するソフトウェアのバグを再現するシステムであって、特に、テスト機器に対する操作と入力信号により、テスト機器の動作が一意的に定まるデジタル機器の制御ソフトウェアに用いて好適なバグ管理システム、および、バグ管理方法に関する。
【背景技術】
【０００２】
近年、ソフトウェアの開発は、その規模が大きく、複雑になっている。また、ソフトウェアが用いられる分野や状況も広がってきており、ミッションクリティカルな場面でソフトウェアが使用される機会が増えてきている。その様な経緯から、ソフトウェアの品質を向上させることが、重要になってきており、ある一つのソフトウェアバグがもたらす不具合の様子を記述したバグレポートを活用することで、問題修正の要否や、修正時期の決定をしている。また、ソフトウェア作成の現場においては、そのようなレポートを、コンピュータシステム上で作成、プロジェクトチーム等のグループ単位で管理し、分析してバグの傾向を把握するために活用している。
【０００３】
さらに、特許文献１に開示されているように、特許バグの発生時にテスト実行結果と、結果判定データを比較し、バグ票を自動生成することで、バグの計上漏れを防ぐテスト工程支援システムが提案されている。その他に、特許文献２には、バグ情報だけでなく、バグ原因も一括管理することによって、テスト担当者のバグ原因の調査にかかる負荷を軽減するようなバグ管理システムも提案されている。この特許文献２では、テストに使うテストプログラムと、テストプログラム実行時に使うテストデータと、テストプログラムの実行結果として予想出来るテスト結果期待値と、テスト実行手段とを予め保持しておく。そして、テスト実行手段によって実行されたテスト結果と、結果期待値を突き合わせ、不一致があった場合は、不一致状況をバグ情報として摘出し、バグ管理票を編集出力してバグ管理システムに登録する。
【０００４】
【特許文献１】特開昭６３−１２９４３３号公報
【特許文献２】特開平７−１７５６８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した様な従来のバグ管理システムでは、バグ原因の管理をする仕組みが提案されているが、例えば、特許文献２のシステムでは、予めテストデータと、結果の期待値を用意できる様なテスト環境でないと、バグ原因を一括管理することができない。しかしながら、ソフトウェア開発の現場では、予めテストデータや、結果の期待値を用意できないことも多い。
【０００６】
例えば、デジタルテレビの開発においては、テスト実施時に放送されているストリームを用いてテストを実施し、テストに使用したストリームが原因で障害が発生することがある。しかしながら、その障害を発生させようとする場合に、その際に使用された放送ストリームを、予め準備することはできないという問題点がある。また、放送ストリームは、時刻変動をするので、操作タイミングがずれると、バグが再現しないという問題点があった。さらに、テストデータ、テストプログラムを予めシステムが保持する場合において、ストリームなどをテストデータとする場合、テストデータのデータ量が膨大になり、システムの記憶装置の容量が膨大になるという問題点があった。
【０００７】
本発明は、上記問題点を解決するためになされたもので、その目的は、テスト機器の上で動作するソフトウェアのバグを再現するシステムにおいて、ソフトウェアのバグを容易に再現させて、そのテスト機器のソフトウェアの開発促進に資するバグ管理システムを提供することにある。
【０００８】
また、別の目的は、テストデータのデータ量を保持するための記憶装置の容量を増加させないバグ管理システムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明では、テスター（テスト実行者）がテストを実施した際のテスト機器に入力された全ての入力信号と、入力された時刻と、テスト機器で実行された時刻を含む操作内容を、テストＩＤ毎に、テストデータと、その管理テーブルと操作履歴として記録してバグ管理データベースとして管理する。また、テストの再現時には、テストＩＤを入力して、そのバグ管理データベースに保持されている情報を利用し、時系列的にテストデータによって再現される入力信号と、操作履歴の制御信号をテスト機器に入力することにより、発生したバグを再現させる。
【００１０】
また、バグ管理データベースが保持するテストデータの保存を、バグ発生時のみに実施し、バグ解決後に削除できるようにすることにより、効率的に記憶装置を使用する。
【００１１】
上記構成により、予めテスト情報が準備できない様な場合や、操作タイミングなどに依存する様なケースなど、従来、再現困難だったバグの再現性を高めることができる。
【００１２】
また上記により、従来では再現性が低く、バグの再現条件を発見するために用いていたむだな時間をかけることがなくなる。また、テストデータの量が膨大になる際においても、予め準備するストレージ量を減らすことができ、システムに掛かる設置コストを削減することができる。
【発明の効果】
【００１３】
本発明によれば、テスト機器の上で動作するソフトウェアのバグを再現するシステムにおいて、ソフトウェアのバグを容易に再現させて、そのテスト機器のソフトウェアの開発促進に資するバグ管理システムを提供することができる。
【００１４】
また、本発明によれば、テストデータのデータ量を保持するための記憶装置の容量を増加させないバグ管理システムを提供することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の一実施形態を、図１ないし図１７を用いて説明する。
【００１６】
先ず、図１を用いて本発明の一実施形態に係るバグ管理システムの概要と構成について説明する。
図１は、本発明の一実施形態に係るバグ管理システムの構成を示すブロック図である。
【００１７】
本実施形態のバグ管理システムは、図１に示されるように、入力信号分配器１と、入力信号収集部２と、テスト機器３と、テスト情報収集部４と、テストバグ管理用データベース５と、テスター用端末６と、開発者用端末７と、バグ再現支援処理部８からなり、各々がネットワークにより接続されている。
【００１８】
入力信号分配器１は、テスト実施時に、テスト対象となるテスト機器３に外部入力される入力信号を分離して、入力信号収集部２に入力するための機器である。
【００１９】
入力信号収集部２は、入力信号分配器１によって分配されて送られてくる信号を、テストデータとして、テスト情報収集部４から受け取ったテストＩＤとリンクさせて、バグ管理用データベース５に記録する部分である。また、テスト情報収集部４から受け取ったテストＩＤを、入力信号収集部２に渡す役割も有する。この入力信号収集部２は、専用のストリーマ（ストリーム記録装置）を用いてもよいし、汎用のＰＣ（パーソナルコンピュータ）を用いてもよい。
【００２０】
テスト機器３は、テスト対象となる機器である。本実施形態が対象とするテスト機器は、ユーザの操作と外部からの入力信号により動作状態が定まるデジタル機器を想定しており、例えば、デジタルテレビ、デジタルビデオカメラ、カーナビゲーションシステムなどが考えられる。以下、本実施形態では、デジタルテレビを例に採って説明するものとする。また、本システムのテスト機器３は、他のコンポーネントのためのインターフェイスのために、特別の機能を有している。これについての詳細は、後に説明する。
【００２１】
テスト情報収集部４は、テスト対象となるテスト機器３に対しておこなわれた操作履歴を受信して、その情報を編集してテストデータを管理するテストデータ管理テーブルとして、バグ管理用データベース５に、テストＩＤ単位で記録する部分である。
【００２２】
バグ管理用データベース５は、テストに関する情報を、蓄積、管理するデータベースであり、操作に関する履歴を表すテーブルである操作履歴テーブルと、テストデータを管理するテストデータ管理テーブルと、バグ情報を保持するバグ情報テーブルと、入力信号をデジタルデータに変換したテストデータを保持するデータベースである。
【００２３】
テスター用端末６は、ユーザがテストに関する情報を、テスト情報収集部４を経由して、バグ管理用データベース５から検索、参照し、また、テストに関するレポートを入力して、バグ管理用データベース５を更新する際に使用する端末である。
【００２４】
開発者用端末７は、ソフトウェア開発者が、ソフトウェアのバグ対策のために、バグに関する情報の取得、確認、ソフトウェアのバグの再現、バグの対策内容等を、入力する端末である。
【００２５】
この開発者用端末７によって、テスター（テスト実行者）が実施したテストＩＤにおいて、不具合があると判定され、バグ管理用データベースに登録された項目について、不具合の挙動確認や修正を実施する際に、バグ再現支援処理部８を経由して、バグ管理用データベース５から、情報を取得し、確認することができる。また、バグ管理用データベース５に蓄積されている情報に基づいて、バグ再現支援処理部８を経由して、テスト機器３に情報を入力させ、そのバグを再現させることができる。さらに、ソフトウェア開発者は、開発者用端末７によって、バグの対策内容等を、入力して、バグ管理用データベース５に登録する。
【００２６】
バグ再現支援処理部８は、開発者用端末７から入力された指示に応じて、不具合の挙動を再現させるために、バグ管理用データベースから、再現に必要な情報を検索、テスト機器３に送信し、テスト実施時の不具合の挙動を再現させる。また、開発者用端末７からの情報の入力や、情報の検索指示に対して、バグ管理用データベース５の更新や、バグ管理用データベース５に対する情報の検索と、開発者用端末７への情報の送信をおこなう。
【００２７】
次に、図２および図３を用いて入力信号収集部２の詳細について説明する。
【００２８】
先ず、図２を用いて入力信号収集部２の機能構成について説明する。
図２は、入力信号収集部２のブロック図である。
【００２９】
入力信号収集部２は、テストＩＤ受信部２１より、テスト情報収集部４から送信されてきたテストＩＤを受信する。また、信号入力部２３により、入力信号分配器１から送られてきた信号を入力する。
【００３０】
テストＩＤ受信部２１にて取得したテストＩＤと、信号入力部２３によって取得したテスト実施時の信号は、それぞれ入力信号登録部２２に送られる。そして、入力信号登録部２２は、テストＩＤ受信部２１から取得したテストＩＤをキーにして、バグ管理データベース５に入力された信号をテストデータとして登録する。
【００３１】
次に、図３を用いて入力信号収集部２のハードウェア構成について説明する。
図３は、入力信号収集部２のハードウェア構成図である。
【００３２】
上述のように、入力信号収集部２は、専用のストリーム収集装置を使ってもよいし、ＰＣを使ってもよいが、ここでは、ＰＣを使ったハードウェア構成について説明する。
【００３３】
入力信号収集部２のハードウェア構成を実現するＰＣ２０は、図３に示されるように、ＣＰＵ２０１、メモリ２０２、ネットワークＩ／Ｆ２０３、表示装置Ｉ／Ｆ２０４、記憶装置Ｉ／Ｆ２０５、入出力Ｉ／Ｆ２０６が、バス２００で接続された構成である。
【００３４】
ＣＰＵ２０１は、メモリ２０２上にロードされたプログラムの命令を実行するための処理装置であり、ＰＣの各部を制御する。
【００３５】
メモリ２０２は、半導体記憶装置であり、ＣＰＵ２０１によって実行されるプログラムと一時的なデータを格納する。
【００３６】
ネットワークＩ／Ｆ２０３は、ネットワークと接続するためのインターフェイスであり、例えば、Ethernetインターフェイス（Ethernetは、登録商標）である。
【００３７】
記憶装置Ｉ／Ｆ２０４は、例えば、ＥＩＤＥ、ＳＣＳＩ、ＵＳＢなどのインターフェイスであり、記憶装置２１２とデータをやり取りするためのインターフェイスである。
【００３８】
表示装置Ｉ／Ｆ２０４は、表示装置２１１を接続するためのインターフェイスである。
【００３９】
記憶装置Ｉ／Ｆ２０５には、記憶装置２１２が接続される。記憶装置２１２は、例えば、ＨＤＤ（ハードディスクドライブ）などの大容量の記憶装置である。記憶装置２１２には、入力信号収集プログラム２１３が格納されており、メモリ上２０２にロードされて、ＣＰＵ２０１により実行される。
【００４０】
表示装置Ｉ／Ｆ２０４は、表示装置２１１が接続される。表示装置２１１は、ＬＣＤなどの情報を表示する装置である。
【００４１】
入出力Ｉ／Ｆ２０６には、マウスやキーボードなどの入力装置やその他の入出力装置が接続される。
【００４２】
入力信号収集部２のハードウェア構成を実現するＰＣ２０は、テスト情報収集部４より、ネットワークを介して、テストＩＤを受信する。そして、入力信号収集プログラム２１３を実行することにより、バグ管理用データベース５に入力信号を、テストデータとして登録する。登録の仕方は、例えば、バグ管理用データベース５のデータベースサーバに、ＳＱＬなどのデータベースコマンドを発行することができる。
【００４３】
次に、図４を用いてテスト機器３の詳細について説明する。
図４は、テスト機器３のブロック図である。
【００４４】
テスト機器３は、テストの対象となる機器であり、テストの対象となるソフトウェアが稼動するデジタル機器である。テスト機器３は、ユーザの操作と入力信号によってソフトウェアの実行が一意的な定まることを前提とする。本実施形態では、デジタルテレビを想定した。テスト機器３は、本システムに適用するために、操作履歴収集部３１と、制御信号受信部３２と、機器制御実行部３３と、信号入力部３４を有する。
【００４５】
操作履歴収集部３１は、テスト機器３に対し、テスターがテスト実施時に操作した内容を、テスト機器から収集して、テスト情報収集部４に送信する。操作履歴は、デジタルテレビの場合は、ある時刻にリモコンの選局ボタン、再生ボタン、音量ボタンを押したなどの情報である。
【００４６】
また、操作履歴収集部３１は、ユーザの操作履歴のほかに、レジスタ情報、関数のトレース情報、メモリダンプなどソフトウェアのバグ解析に有用な情報を収集して、テスト情報収集部４に出力するようにしてもよい。
【００４７】
制御信号受信部３２は、開発者が、テスト機器３の不具合の挙動を再現させる際に、バグ再現支援処理部８から不具合の再現に必要な制御信号を受信し、機器制御実行部３３に伝える。
【００４８】
機器制御実行部３３は、制御信号受信部３２と、信号入力部３４から送信された、テスト機器の制御信号と入力信号を受信し解析して、テスト機器３の操作を実行する。
【００４９】
信号入力部３４は、テスト機器３に信号を入力する部分である。本実施形態では、バグ管理用データベース５に格納されているテストデータを、バグ再現支援処理部８から受信して、入力信号として機器制御実行部３３に伝える。
【００５０】
次に、図５ないし図１０を用いてテスト情報収集部４について説明する。
【００５１】
先ず、図５を用いてテスト情報収集部４の機能構成について説明する。
図５は、テスト情報収集部４のブロック図である。
【００５２】
テスト情報収集部４は、テスター用端末６からテストＩＤを受け取り、入力信号収集部２に伝えるとともに、テスト機器から操作履歴を受信して、操作履歴テーブル５１、テストデータ管理テーブル５３としてバグ管理データベースに出力する部分である。
【００５３】
なお、操作履歴テーブル５１、テストデータ管理テーブル５３については後述する。
【００５４】
テスト情報収集部４は、図５に示されるように、操作履歴受信部４１と、テストＩＤ送信部４２と、テスト操作制御部４３と、テスト操作受信部４４と、操作履歴登録部４５と、テスト記述登録部４６と、テスト内容検索部４７からなる。
【００５５】
操作履歴受信部４１は、テスト操作制御部４３からの指示を受けて、テスト機器３から操作履歴を受信し、操作履歴登録部４５に渡す。
【００５６】
テストＩＤ送信部４２は、テスト操作制御部４３からの指示を受けて、入力信号収集部２に対し、テストＩＤを送信する。
【００５７】
テスト操作制御部４３は、テスト操作受信部４４から、テスターの操作内容を受け取り、その内容を解析、内容に応じて処理を操作履歴受信部４１、テストＩＤ送信部４２、テスト記述登録部４６、テスト内容検索部４７に送信し、それぞれの処理の結果を表示内容送信部４８に渡す。テスト操作制御部４３の処理については、後に詳細に説明する。
【００５８】
テスト操作受信部４４は、テスター用端末６から、テスター操作内容を受信する。
【００５９】
操作履歴登録部４５は、操作履歴受信部４１から、テスト機器３の操作履歴と、実施中のテストＩＤの値を受けとり、テストＩＤの値をキーにして、バグ管理用データベース５の、操作履歴テーブル５１の内容を更新する。
【００６０】
テスト記述登録部４６は、テスト操作制御部４３から、テスターがテスター用端末６から入力したバグ情報を受けて、バグ管理用データベース５のバグ情報テーブル５２の内容を更新する。
【００６１】
なお、バグ情報テーブル５２については後述する。
【００６２】
テスト内容検索部４７は、テスト操作制御部４３から、テスターがテスター用端末６から入力した、テストＩＤを受け、該当するテストＩＤに関連するテストデータの管理情報を、バグ管理用データベース５の各テーブルから検索し、テスト操作制御部４３に返却する。
【００６３】
次に、図６を用いてテスト情報収集部４のハードウェア構成について説明する。
図６は、テスト情報収集部４のハードウェア構成図である。
【００６４】
テスト情報収集部４も、入力信号収集部２と同様に、ＰＣを使ったハードウェア構成により実現できる。
【００６５】
テスト情報収集部４のハードウェア構成を実現するＰＣ４０は、図６に示されるように、ＣＰＵ４０１、メモリ４０２、ネットワークＩ／Ｆ４０３、表示装置Ｉ／Ｆ４０４、記憶装置４０５、入出力装置４０６が、バス４００で接続された構成である。
【００６６】
各部の機能については、図４の入力信号収集部２のＰＣ２０と同様である。
【００６７】
記憶装置４１２には、バグ情報登録処理プログラム４２０、テスト実施処理プログラム４２１、内容検索処理プログラム４２２が格納されており、メモリ上４０２にロードされて、ＣＰＵ４０１により実行される。
【００６８】
次に、図７を用いてテスト操作制御部４３の処理について説明する。
図７は、テスト操作制御部４３の処理を示すフローチャートである。
【００６９】
テスト操作制御部４３は、テスト操作受信部４４から受け取った情報に基づき、テスターの希望操作内容を判定し、それに沿う処理を実施する。
【００７０】
先ず、テスト操作制御部４３は、バグ情報登録を実施するのか否かの判定をおこなう（Ｓ１１）。
【００７１】
バグ情報登録をしないと判定された場合には、テスト操作受信部４４から受け取った情報が、テスト実施を示しているか否かを判定する（Ｓ１２）。
【００７２】
テスト実施をしないと判定された場合には、テスト操作受信部４４から受け取った情報が、内容検索をするのか否かを判定する（Ｓ１３）。
【００７３】
Ｓ１１〜Ｓ１３のいずれにも該当にしないと判定されたときには、「該当処理が無い」というメッセージを表示内容送信部４８に送り（Ｓ１７）、表示内容送信部４８は、それをテスタ用端末６に送る。そして、テスタ用端末６は、そのメッセージをテスターに表示する。
【００７４】
Ｓ１１で、バグ情報登録をすると判定された場合には、バグ情報登録処理をおこない、その結果をメッセージとして、表示内容送信部４８に送り（Ｓ１７）、表示内容送信部４８は、それをテスタ用端末６に送る。そして、テスタ用端末６は、そのメッセージをテスターに表示する。バグ情報登録処理は、後に詳説する。
【００７５】
Ｓ１２で、テスト実施をすると判定された場合には、テスト実施処理をおこない、その結果をメッセージとして、表示内容送信部４８に送り（Ｓ１７）、表示内容送信部４８は、それをテスタ用端末６に送る。そして、テスタ用端末６は、そのメッセージをテスターに表示する。テスト実施処理は、後に詳説する。
【００７６】
Ｓ１３で、内容検索をすると判定された場合には、内容検索処理をおこない、その結果をメッセージとして、表示内容送信部４８に送り（Ｓ１７）、表示内容送信部４８は、それをテスタ用端末６に送る。そして、テスタ用端末６は、そのメッセージをテスターに表示する。内容検索処理は、後に詳説する。
【００７７】
次に、図８を用いてバグ情報登録処理Ｓ１４の詳細について説明する。
図８は、バグ情報登録処理Ｓ１４の詳細を示すフローチャートである。
【００７８】
バグ情報登録Ｓ１４では、先ず、登録するバグ情報が、新規のものであるか否かを判定する（Ｓ２１）。
【００７９】
新規の登録でない場合には、内容検索処理をおこなう（Ｓ２２）。Ｓ２２のステップの処理の詳細は、後述する。ここでは、新規の登録でないので、登録済みである情報を検索する。処理の実施後、差分検出処理をおこなう（Ｓ２３）。この差分検出処理では、Ｓ２２の内容検索処理の検索結果と、ユーザが入力した情報に基づき、差分を検出する。
【００８０】
次に、Ｓ２３の差分検出処理で検出された差分と、登録時のキーとなるテストＩＤを、テスト記述登録部４６に出力する（Ｓ２４）。
【００８１】
次に、テスト操作制御部４３は、テスト記述登録部４６からの結果を受信する（Ｓ２５）。
【００８２】
新規の登録の場合は、新規に登録する内容と、登録時のキーとなるテストＩＤを、テスト記述登録部４６に出力する（Ｓ２４）。
【００８３】
次に、テスト操作制御部４３は、テスト記述登録部４６からの結果を受信する（Ｓ２５）。
【００８４】
次に、図９を用いてテスト実施処理Ｓ１５の詳細について説明する。
図９は、テスト実施処理Ｓ１５の詳細を示すフローチャートである。
【００８５】
テスト実施処理Ｓ１５では、先ず、テスターが入力したテストＩＤをキーに、バグ管理用データベース５から、テストデータを取得し、テストに使用する各種の管理情報も取得する（Ｓ３１）。
【００８６】
次に、テスト操作制御部４３は、操作履歴受信部４１に対して、受信を開始するよう制御する処理を実施する（Ｓ３２）。
【００８７】
次に、入力信号収集部２に対して、バグ管理用データベース５に登録する際のキーとなるテストＩＤ値を送信し、入力信号分配器１から分配される信号をテストデータとして記録するよう制御を実施する（Ｓ３３）。
【００８８】
そして、テスト完了後、テストの結果が、正常だったか異常だったかを判定する（Ｓ３４）。
【００８９】
テストの結果が、正常だった場合には、入力信号削除処理をおこない、記録したテストデータを削除して終了する。
【００９０】
テストの結果が、異常だった場合には、そのままテストデータを登録し、終了する。
【００９１】
次に、図１０を用いて内容検索処理Ｓ１６を説明する。
図１０は、内容検索処理Ｓ１６の詳細を示すフローチャートである。
【００９２】
図８のＳ２２、図９のＳ３１の内容検索処理も同様である。
【００９３】
内容検索処理Ｓ１６では、先ず、検索のキーとなるテストＩＤを、テスト内容検索部４７に送信する（Ｓ４１）。そして、テスト内容検索部４７の検索結果を受け、テスト操作制御部４３は、検索結果を受信する（Ｓ４２）。
【００９４】
次に、図１１ないし図１４を用いてバグ管理用データベース５とそこに格納されるテーブルのデータベース構造について説明する。
図１１は、バグ管理用データベース５に格納されるテーブルを示す図である。
図１２は、操作履歴テーブル５１の一例を示す図である。
図１３は、テストデータ管理テーブル５２の一例を示す図である。
図１４は、バグ情報テーブル５４の一例を示す図である。
【００９５】
バグ管理用データベース５は、図１１に示されるように、操作履歴テーブル５１、テストデータ管理テーブル５２、テストデータ５３、バグ情報テーブル５４が格納されている。  バグ管理用データベース５にアクセスし、データの読取と更新をおこなうのは、図示しなかったが、ＰＣかデータベースサーバのデータベースプログラムである。
【００９６】
操作履歴テーブル５１は、テスト機器３にテスターがおこなった操作内容を時系列で保持するテーブルであり、図１２に示されるように、テストＩＤ、時刻、操作履歴の項目を有する。テストＩＤは、テストを識別するためのキーである。時刻は、操作内容の項目が実施された時刻を表す。操作内容は、テスト機器３になされた操作の内容を表している。
【００９７】
テストデータ管理テーブル５２は、テストデータを管理するためのテーブルであり、本実施形態のように、テスト機器３がデジタルテレビの場合は、図１３に示されるように、テストＩＤ、時刻、入力信号種別、使用Ｉ／Ｆ、入出力内容、データ名称を有する。
【００９８】
テストＩＤは、操作履歴テーブル５１と同様に、テストを識別するためのキーである。時刻は、入出力内容に示された項目が実施された時刻を表す。入力信号種別は、入力された信号の種類であり、例えば、デジタルテレビの場合は、ＲＦ信号、ＴＳ信号などである。使用Ｉ／Ｆは、入力信号を入力する際に使用したインタフェースを示している。入出力内容は、入力開始／停止など入力信号に対する操作を示す内容である。また、データ名称は、入力信号をテストデータとして、ファイルとして保存されたときの名称である。
【００９９】
このテストデータ管理テーブル５２は、テスト機器３に対する操作内容と、入力信号から生成される。例えば、地上波デジタル放送の０１１ＣＨをリモコンなどの選曲ボタンを操作して選局し、そのＴＳ信号を入力したときには、その時刻や使用Ｉ／Ｆなどのテストデータ管理テーブルの各種項目を求めることができる。
【０１００】
テストデータ５４は、図示しなかったが、各々についてテストデータ管理テーブル５２のデータ名称が付けられ、テストＩＤと関連付けられている。
【０１０１】
バグ情報テーブル５３は、発生したバグのレポート情報を管理するテーブルであり、図１４に示されるように、例えば、テストＩＤ、時刻、障害情報、判定の項目からなる。
【０１０２】
テストＩＤは、テストを識別するためのキーである。時刻は、不具合が発生したときの時刻である。障害情報は、障害の内容を簡単に表したものである。判定は、テスターが正常か異常か判定したものてある。
【０１０３】
このバグ情報テーブル５３は、テスター用端末から内容を入力してテスターが作成してもよいし、テスト機器３からソフトウェアのトレース情報を自動的に採取できるようにしてもよい。
【０１０４】
次に、図１５ないし図１７を用いてバグ再現支援処理部８について説明する。
【０１０５】
先ず、図１５を用いてバグ再現支援処理部８の機能構成について説明する。
図１５は、バグ再現支援処理部８のブロック図である。  バグ再現支援処理部８は、バグ管理用データベース５に蓄積されている操作履歴情報と、テストデータ管理テーブル５２と、テストデータ５４に基づき、適当な制御信号と入力信号をテスト機器３に送信して、バグを再現させる。
【０１０６】
バグ再現支援処理部８は、図１５に示されるように、操作履歴送受信部８１と、入力信号送信部８２と、バグ再現制御部８３と、開発者操作受信部８４と、操作内容検索部８５と、テストデータ検索部８６からなる。
【０１０７】
操作履歴送受信部８１は、バグ管理用データベース５に蓄積されている操作履歴テーブル５１の内容を、バグ再現制御部８３から受け取り、テスト機器３の制御信号受信部３２に操作履歴を再現させる制御信号として送信する。
【０１０８】
入力信号送信部８２と、バグ管理用データベース５に蓄積されているテストデータ５４を、バグ再現制御部８３から受け取り、テスト機器３の信号入力部３４に送信する。
【０１０９】
バグ再現制御部８３は、操作内容検索部８５と、テストデータ検索部８６に対して、開発者から指定されたテストＩＤに関して、バグを再現させるための操作内容とテストデータを検索することを依頼し、その結果を受信する。
【０１１０】
そして、操作履歴送信部８１と、入力信号送信部８２に対し、テスト再現開始からの経過時間に基づき、操作履歴に基づいたテスターの操作内容を、操作履歴送信部８１に対し入力するように制御し、テストデータ管理テーブル５２を参照してテスト実施時に使用されたテストデータ５４を、入力信号送信部８２に入力するように制御することによって、テスト機器３上のバグ再現の制御をおこなう。
【０１１１】
開発者操作受信部８４は、開発者が開発者用端末７において入力した情報を受信し、バグ再現制御部８３に入力する。
【０１１２】
操作内容検索部８５は、バグ再現制御部８３より入力され、開発者が再現要求をしたテストＩＤに基づき、そのテストＩＤに該当するバグ管理用データベース５に含まれる操作履歴テーブル５１に記録された操作内容を検索し、バグ再現制御部８３に送信する、
テストデータ検索部８６は、バグ再現制御部より入力され、開発者が再現要求をしたテストＩＤに基づき、バグ管理用データベース５に含まれるテストデータ管理テーブル５３に記録されたそのテストＩＤに該当するテストデータ管理テーブル５３のレコードとそのテストＩＤに該当するテストデータ５４を検索し、バグ再現制御部８３に送信する。
【０１１３】
次に、図１６を用いてバグ再現支援処理部８のハードウェア構成について説明する。
図１６は、バグ再現支援処理部８のハードウェア構成図である。
【０１１４】
バグ再現支援処理部８も、入力信号収集部２やテスト情報収集部４と同様に、ＰＣを使ったハードウェア構成により実現できる。
【０１１５】
バグ再現支援処理部のハードウェア構成を実現するＰＣ８０は、図１６に示されるように、ＣＰＵ８０１、メモリ８０２、ネットワークＩ／Ｆ８０３、表示装置Ｉ／Ｆ８０８、記憶装置８０５、入出力装置８０６が、バス８００で接続された構成である。
【０１１６】
各部の機能については、図４の入力信号収集部２のＰＣ２０や図６のテスト情報収集部４と同様である。
【０１１７】
記憶装置８１２には、バグ再現制御プログラム８２０が格納されており、メモリ上８０２にロードされて、ＣＰＵ８０１により実行される。
【０１１８】
次に、図１７を用いてバグ再現制御部８３の処理について説明する。
図１７は、バグ再現制御部８３の処理を示すフローチャートである。
【０１１９】
バグ再現制御部８３は、開発者操作受信部８４からの処理依頼を受け、先ず、テスト情報検索処理を実施する（Ｓ５１）。テスト情報検索処理では、テストＩＤ情報を抽出し、操作内容検索部８５、テストデータ検索部８６に対して、バグ管理用データベースの操作履歴テーブル５１と、テストデータ管理テーブル５２と、テストデータ５４から、目的のテストＩＤをキーにして、操作履歴情報と、テストデータ管理情報と、テストデータを検索する処理を依頼する。
【０１２０】
そして、テストＩＤ情報を抽出し、操作内容検索部８５、テストデータ検索部８６より依頼した検索処理の結果を受信する（Ｓ５２）。
【０１２１】
次に、Ｓ５２で受信した結果のうち、最初に実施された操作または信号入力を検索し、基準時刻として設定する。
【０１２２】
次に、制御する信号が、操作履歴に関するものか否かを判定する（Ｓ５４）。
【０１２３】
操作履歴に関するものである場合、操作履歴送信依頼をおこなう（Ｓ５５）。操作履歴送信依頼では、操作履歴送信部８１に対し、基準時刻からの時間差を計算し、送信時間になったら操作履歴を送信する。
【０１２４】
制御する信号が、操作履歴に関するものでない場合には、入力信号に関するものであるとして、信号送信依頼をおこなう（Ｓ５６）。信号送信依頼では、入力信号送信部８２に対し、基準時刻からの時間差を計算し、送信時間になったら、入力信号送信部８２に対し、テストに使用する信号を送信する。
【０１２５】
Ｓ５５またはＳ５６の処理が終わると、次に、受信した内容に基づき、制御が完了しているか否かの判定を実施し、制御が完了していなければ、次制御内容決定処理を実施する（Ｓ５７）。次制御内容決定処理では、Ｓ５１、Ｓ５２で検索した結果と、直前のＳ５５、Ｓ５６にて送信した時刻情報に基づき、次に制御すべき内容が何かを判定する。そして、判定終了後、Ｓ５４に戻り、以下ループを繰り返す。
【図面の簡単な説明】
【０１２６】
【図１】本発明の一実施形態に係るバグ管理システムの構成を示すブロック図である。
【図２】入力信号収集部２のブロック図である。
【図３】入力信号収集部２のハードウェア構成図である。
【図４】テスト機器３のブロック図である。
【図５】テスト情報収集部４のブロック図である。
【図６】テスト情報収集部４のハードウェア構成図である。
【図７】テスト操作制御部４３の処理を示すフローチャートである。
【図８】バグ情報登録処理Ｓ１４の詳細を示すフローチャートである。
【図９】テスト実施処理Ｓ１５の詳細を示すフローチャートである。
【図１０】内容検索処理Ｓ１６の詳細を示すフローチャートである。
【図１１】バグ管理用データベース５に格納されるテーブルを示す図である。
【図１２】操作履歴テーブル５１の一例を示す図である。
【図１３】テストデータ管理テーブル５２の一例を示す図である。
【図１４】バグ情報テーブル５４の一例を示す図である。
【図１５】バグ再現支援処理部８のブロック図である。
【図１６】バグ再現支援処理部８のハードウェア構成図である。
【図１７】バグ再現制御部８３の処理を示すフローチャートである。
【符号の説明】
【０１２７】
１…入力信号分配器、２…入力信号収集部、３…テスト機器、４…テスト情報収集部、５…バグ管理用データベース、６…テスター用端末、７…開発者用端末、８バグ再現支援処理部、
２１…テストＩＤ受信部、２２…入力信号登録部、２３…信号入力部、
３１…操作履歴収集部、３２…制御信号受信部、３３…機器制御実行部、３４…信号入力部、
４１…操作履歴受信部、４２…テストＩＤ送信部、４３…テスト操作制御部、４４…テスト操作受信部、４５…操作履歴登録部、４６…テスター記録登録部、４７…テスト内容検索部、４８…表示内容送信部、
５１…操作履歴テーブル、５２…バグ情報テーブル、５３…テストデータ管理テーブル、
８１…操作履歴送信部、８２…入力信号送信部、８３…バグ再現制御部、８４…開発者操作受信部、８５…操作内容検索部、８６…テストデータ検索部。
【図１】
2009295082.tif 000003
【図２】
2009295082.tif 000004
【図３】
2009295082.tif 000005
【図４】
2009295082.tif 000006
【図５】
2009295082.tif 000007
【図６】
2009295082.tif 000008
【図７】
2009295082.tif 000009
【図８】
2009295082.tif 000010
【図９】
2009295082.tif 000011
【図１０】
2009295082.tif 000012
【図１１】
2009295082.tif 000013
【図１２】
2009295082.tif 000014
【図１３】
2009295082.tif 000015
【図１４】
2009295082.tif 000016
【図１５】
2009295082.tif 000017
【図１６】
2009295082.tif 000018
【図１７】
2009295082.tif 000019