JP2012088874A - プログラムバグ管理システム - Google Patents

プログラムバグ管理システム Download PDF

Info

Publication number
JP2012088874A
JP2012088874A JP2010234122A JP2010234122A JP2012088874A JP 2012088874 A JP2012088874 A JP 2012088874A JP 2010234122 A JP2010234122 A JP 2010234122A JP 2010234122 A JP2010234122 A JP 2010234122A JP 2012088874 A JP2012088874 A JP 2012088874A
Authority
JP
Japan
Prior art keywords
bug
file
information
program
source code
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.)
Pending
Application number
JP2010234122A
Other languages
English (en)
Inventor
Tsuneo Kikuchi
恒男 菊池
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2010234122A priority Critical patent/JP2012088874A/ja
Publication of JP2012088874A publication Critical patent/JP2012088874A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】プログラムを開発する際に、複数のプログラム使用環境へ提供するため、もしくは異なる機能を追加で持たせるために、1つのプログラムを複写して平行開発を行うことがある。プログラム開発中にバグが発見され修正するときに、複写先のプログラムのソースコード行にも同様のバグ修正が必要な場合がある。発見されたバグを持つ行が、複写先や改訂先の行が存在し、同様のバグ修正を行わなければならないとき、その行を検索する手段、またその行の修正が完了したかを管理する手段が無い。
【解決手段】プログラムファイルの行毎に更新前のIDと更新後のIDを持ち、またバグ管理情報を持つファイル管理システムを利用して、バグが修正した行を複写、改訂した行を検索する機能を持ち、また検索したプログラムファイルの行に、バグ管理情報を付加する手段を持つ。
【選択図】図1

Description

発明は、プログラムファイルのバグを管理するシステムに関する。
プログラム上で発見されたバグが、その修正の完了を管理するバグ管理システムの従来技術文献としては特開2010−128650号(特許文献1)がある。
また、ソフトウェアのプログラムファイルの行毎にIDを採番し、行毎の履歴が検索できるプログラムファイル管理システムの従来技術文献としては非特許文献1がある。
特開2010−128650号
特許出願番号 特2010−080120号
プログラムを開発する際に、複数のプログラム使用環境へ提供するため、もしくは異なる機能を追加で持たせるために、1つのプログラムを複写して平行開発を行うことがある。プログラム開発中にバグが発見され修正するときに、複写先のプログラムファイルにも同様のバグ修正が必要な場合がある。
特許文献1のバグ管理システムでは、発見したバグ箇所の修正状況は管理できるが、そのバグ部分が複写された他のプログラムファイルの把握は、プログラムファイル内の文字列検索などを行う必要があり作業が煩雑である。また文字列による検索では、一部文字が変更されていた場合、摘出ができないため、修正漏れが発生する可能性がある。
非特許文献1のプログラムファイル管理システムでは、プログラムファイルの行毎に現IDと、複写前のIDを付与することによりプログラムを複写した状況が把握できるが、バグ修正完了したかを管理する手段はない。
本発明は、プログラムファイルのバグ修正時に、システム利用者が修正した部分の行にバグ管理番号情報を入力することにより、ソースコード行毎の情報としてバグ管理番号と修正済みのフラグが登録される。その情報を元に、行毎に持つIDの情報を追跡することにより、複写により同内容バグ修正が必要な可能性のあるソースコード行を検索し、表示することが出来る。同内容バグ修正が必要な場合には修正要情報を入力し、そのソースコード行の情報にバグ管理番号と修正未のフラグが登録される。これにより同内容バグを持つソースコード行が未修正であることを管理できる。次にそのソースコード行をバグ修正したときには、同様にバグ修正済みのフラグに変更することにより、バグ修正が完了したことを管理できる。
本発明のプログラムファイルバグ管理システムは、バグ修正した行と同内容のバグ修正が必要な箇所の摘出と、その摘出したプログラム行の修正が未完了か完了かを管理することができる。
プログラムバグ管理システムのブロック構成図。 プログラムバグ管理システムのハードウェア構成図。 リポジトリのファイルデータ構成図。 バグ管理ファイルのデータ構成図。 バグ修正情報入力処理の処理フロー図。 バグ修正情報入力時の画面表示例。 探索履歴IDテーブルの例。 関連行テーブルの例。 表示用関連行テーブルの例。 同内容バグ摘出、修正要情報入力処理の処理フロー図。 同内容バグ摘出、修正要情報入力処理におけるバグ元の複写、改訂元検出の処理フロー図。 同内容バグ摘出、修正要情報入力処理における同内容バグ行摘出の処理フロー図。 同内容バグ摘出、修正要情報入力処理における同内容バグ情報登録の処理フロー図。 同内容バグ情報登録時の画面表示例。 ソースコード情報一時テーブルの例。 ファイル・ソースコード情報テーブルの例。 バグ番号入力による修正状況表示時の処理フロー図。 指定バグ番号のバグ修正状況表示時の画面表示例。 ファイル情報一時テーブルの例。 ファイル名入力による修正状況表示時の処理フロー図。 指定ファイル名のバグ修正状況表示時の画面表示例。 ファイル名入力による修正状況表示時の処理フロー図。 指定ファイル名のバグ修正状況表示時の画面表示例。
以下、本発明を、図面に基づいて説明する。
図1は、本発明によるプログラムバグ管理システムの一実施例を示すブロック構成図である。プログラムファイルバグ管理システムは、図1に示すように、プログラムファイルにバグ管理情報などを付加しながら登録するバグ情報入力機能101、発見されたバグの同内容バグを検索するバグ行検索機能102、バグの修正状況を表示するバグ情報表示機能103、プログラムファイルを管理情報を付加して管理するリポジトリ104、バグ情報を管理するバグ管理ファイル105を備えるように構成される。
図2は、本発明によるプログラムバグ管理システムの一実施例を示すハードウェア構成図である。プログラムバグ管理システムは、図2に示すように、利用者がバグ情報入力機能に対する情報入力、バグ行検索機能やバグ情報表示機能の操作指示を行う入力装置201、利用者へプログラムソースの表示や、同内容バグ検索の結果を表示、バグ情報を表示する出力装置202、バグ情報入力機能やバグ行検索機能、バグ情報表示機能を処理する処理装置203、リポジトリやバグ管理ファイルが格納されるデータ保管装置204、から構成される。
図3は、リポジトリ104内容の一実地例を示すファイルデータ構成図である。リポジトリ104は、ファイルを個別に識別するファイル管理情報301と、各ファイルの内容を各行の情報を付加して保管するソースコード情報302を有する。
ファイル管理情報301は、ファイル名303、ファイルが再格納されたときに1づつ増えて履歴番号を示すRev.304、同ファイル名の中で一番最新である場合に1である最新フラグ305、ファイルとRev.毎に一意の番号を採番したファイルID306を有する。
ソースコード情報302は、ファイルのファイルID307、そのファイル内の行番号308、ファイル内容のコード309、履歴IDはファイル内容の行毎に番号が採番される。履歴ID[引継]310は、そのファイルの改訂前の履歴IDを引継いで格納される。履歴ID[改訂]311は、その行が改訂されたときに新たな履歴IDが採番されて格納される。その行がバグに関係していた場合、バグ毎に付けられた番号を格納するバグ番号312、そのバグへの対策が完了している場合に1である修正完了フラグ313を有する。
図4は、バグ管理ファイル105内容の一実施例を示すファイルデータ構造図である。バグ管理ファイル105は、バグの情報を管理するバグ管理情報401と、修正したバグの情報を登録する一次修正バグ情報402を有する。
バグ管理情報401は、バグ毎に一意に付けられたバグ番号403と、プログラム開発者がそのバグの内容を把握できるように記述されるバグ内容404から構成される。
一次修正バグ情報402は、発見されたバグを修正したバグ管理番号が格納される一次修正バグ番号405で構成される。
図5は、プログラム編集時にバグ情報を登録するフロー図である。まず利用者は編集するプログラムファイルを、リポジトリより読み込む(501)。次に読み込んだプログラムファイルを編集する(502)。編集が完了したらバグ情報追加するかどうかの選択肢入力が利用者に求められる(503)。利用者は編集にバグの修正を含む場合Y、バグの修正を含まない場合Nを入力する。バグ情報追加するかの選択時(503)にYが入力された場合、プログラムファイルの各行が表示され、利用者はプログラムソースコード各行に対応するバグ番号と修正完了かどうかのフラグ値を入力する(504)。次に入力されたバグの情報を付加しながらリポジトリ104にプログラムソースコードの情報を格納し、また修正されたバグの番号を一次修正バグ情報402へ格納する(505)。
図6は、バグ修正情報入力処理504において、プログラムソースコード各行に対応するバグ番号と修正完了かどうかのフラグ値を入力する画面の実施例である。利用者はバグを修正した行にそのバグの管理番号をバグ番号列へ入力し、修正が完了した場合に1を修正完了フラグ列に入力する。入力されたバグの情報はリポジトリ104と、一次修正バグ情報402へ格納される。一次修正バグ情報へ格納された情報より、バグが発生した箇所の修正が完了したことを把握できる。
次に同内容のバグが存在する可能性のあるソースコード行の検索と、そのバグ情報を管理する実施例を説明する。
図7はソースコード行を検索するときに探索したIDを格納する探索履歴IDテーブルの実施例である。
図8は検索したソースコード行の情報を格納する関連行テーブルの実施例である。
図9は検索したソースコード行を表示させる前に情報格納する表示用関連行テーブルの実施例である。
図10(a)はバグが発生した箇所の修正が完了したことから、同内容のバグ管理を行う処理フロー図である。まず一次修正バグ情報405からバグ管理番号を把握し、同内容バグを調べたいバグ番号を入力する(1001)。次に、ソースコード情報を1行読み出す(1003)。読み込んだソースコード情報と入力されたバグ番号が合致するか判断すする(1004)。合致した場合、ソースコード情報から履歴ID[引継]を取得する。1行読込んでからここまでの処理をソースコード情報が完了するまで繰り返す(1002)。これにより指定したバグ管理番号の修正行の履歴IDが把握できる。次に格納した履歴IDから、その行の複写、改訂元の履歴IDの検索を行い(1006)、次にその履歴IDが複写・改訂先の履歴を追跡し、同内容バグ行の摘出を行う(1007)。次に摘出した同内容バグ情報を表示し、同内容バグ情報を登録する(1008)。フロー図内のブロック1006〜1008の詳細処理フロー図を図10(b)〜(d)に示す。
図10(b)はバグ修正行の履歴IDから、その行の複写、改訂元の検索を行う処理1006の詳細処理フロー図である。バグ修正された行の履歴IDを探索履歴IDテーブルへ格納する(1009)。次にソースコード情報から1データ読み込み(1010)、読込んだデータの履歴ID[改訂]が探索履歴IDテーブルの履歴IDと合致するかを判断する(1012)。合致した場合は、読込んだデータの履歴ID[引継]にデータが存在するかを判断する(1013)。存在した場合はそのデータを、探索履歴IDテーブルへ書換えで格納する(1014)。次にソースコード情報の読み込み位置を初期化して(1015)、ソースコード情報を再度先頭から読み込み開始する。ここまでの処理をソースコード情報が終了するまで繰り返す(1010)。
図10(c)は検索した複写、改訂元の履歴IDの改訂後・複写後のソースデータ情報を検索する処理1007の詳細処理フロー図である。まず探索履歴IDテーブルから1データ読み込み(1017)、次にソースコード情報から1データ読込む(1019)。ここで探索履歴IDテーブルから読込んだ履歴IDと、ソースコード情報から読込んだ履歴ID[引継]が合致するか判断し(1020)、合致した場合は関連行テーブルに格納する(1021)。次に履歴ID[改訂]が存在するか判断し(1022)、存在した場合は探索履歴IDテーブルに追記で格納する(1023)。ソースコード情報を1データ読込んでから(1019)ここまでの処理をソースコード情報が終了するまで繰り返す(1018)。更に、探索履歴IDテーブル1データ読み込んでから(1017)ここまでの処理を探索履歴IDテーブルが終了するまで繰り返す(1016)。
図10(d)は同内容バグの行に情報を付加する処理1008の詳細処理フロー図である。まず関連行テーブルから1データ読込む(1025)。次にファイル管理情報から1データ読込む(1027)。関連行テーブルから読込んだデータのファイルIDとファイル管理情報から読込んだデータのファイルIDが一致するか判断する(1028)。更にファイル管理情報の最新フラグが1か判断する(1029)。1であった場合は表示用関連行テーブルに格納する(1030)。ファイル管理情報を1データ読み込んでから(1027)ここまでの処理をファイル管理情報が終わるまで繰り返す(1026)。更に追跡履歴テーブルを1データ読込んでから(1025)ここまでの処理を追跡履歴テーブルが終わるまで繰り返す(1024)。次に表示用関連行テーブルを表示する(1031)。システム使用者は表示されたソース行を見て、その行に同内容のバグを含んでいると判断した場合は、当該バグ番号と修正が完了していないことを示す0を入力する(1032)。次に入力されたバグ番号と修正が完了していないことを示す0の情報を、ソースコード情報302へ書き戻すことにより、リポジトリ104にバグ管理の情報が格納される(1033)。
図11は同内容バグが存在する可能性のあるソース行一覧を表示している画面の実施例である。利用者は修正必要と判断した行のバグ番号列にバグ管理番号を、修正完了フラグ列に0を入力する。
バグ修正の状況を把握する実施例を示す。
図12は、ソースコード情報を一時的に格納するソースコード情報一時テーブルの実施例である。
図13は、ファイル管理情報とソースコード情報を合わせたデータを格納するファイル・ソースコード情報テーブルの実施例である。
図14は、バグ番号を指定することにより、実施例1によりリポジトリ104に登録されている当該バグ番号が付加されたプログラムソース行を一覧表示し、バグ修正の状況を把握する実施例の処理フロー図である。
まずシステム利用者は調査したいバグ番号を入力する(1401)。次にソースコード情報から1データ読込む(1403)。次に入力されたバグ番号とソースコード情報データのバグ番号が一致するか判断する(1404)。一致した場合はソースコード情報一時テーブルに格納する(1405)。ソースコード情報から1データ読込んでから(1403)ここまでの処理をソースコード情報が終るまで繰り返す(1402)。
次にソースコード情報一時テーブルから1データ読込む(1407)。次にファイル管理情報から1データ読込む(1409)。ソースコード情報一時テーブルから読込んだデータのファイルIDと、ファイル管理情報から読込んだデータのファイルIDが一致するか判断する(1410)。一致した場合はファイル・ソースコード情報テーブルへ格納する(1411)。ファイル管理情報を1データ読込んでから(1409)ここまでの処理をファイル管理情報が終るまで繰り返す(1408)。更にソースコード情報一時テーブルを1データ読込んでから(1407)ここまでの処理をソースコード情報一時テーブルが終るまで繰り返す(1406)。
次にファイル・ソースコード情報テーブルへ格納したデータを表示し、当該バグ番号の修正状況が把握できる(1412)。
図15は、バグ修正情報を表示している画面の実施例である。
ファイルのバグ修正状況を把握する実施例を示す。
図16は、ファイル管理情報を一時的に格納するファイル情報一時テーブルの実施例である。
図17は、ファイル名を指定することにより、リポジトリ104に登録されている当該ファイルに、実施例1により付加されたバグ情報を一覧表示し、当該ファイルのバグ修正の状況を把握する実施例の処理フロー図である。
まずシステム利用者は調査したいファイル名を入力する(1701)。次にファイル管理情報から1データ読込む(1703)。次に入力されたファイル名とファイル管理情報データのファイル名が一致するか判断する(1704)。一致した場合はファイル管理情報データの最新フラグが1か判断する(1705)。最新フラグが1であった場合はファイル情報一時テーブルに格納する(1706)。ファイル管理情報から1データ読込んでから(1703)ここまでの処理をソースコード情報が終るまで繰り返す(1702)。
次にソースコード情報から1データ読込む(1708)。次にファイル情報一時テーブルに格納してあるデータのファイルIDと、ソースコード情報から読込んだデータのファイルIDが合致するか判断する(1709)。合致した場合はソースコード情報データにバグ番号が登録されているか判断する(1710)。バグ番号が登録されていた場合、ソースコード情報一時テーブルに格納する(1711)。ソースコード情報を1データ読込んでから(1708)ここまでの処理をソースコード管理情報が終るまで繰り返す(1707)。
次にソースコード情報一時テーブルへ格納したデータを表示し、当該ファイルのバグ修正状況が把握できる(1712)。
図18は、指定したファイル名のバグ修正情報を表示している画面の実施例である。
ソースコードにバグ情報を付加して表示することにより、バグ修正状況を把握する実施例を示す。
図19は、ファイル名を指定してリポジトリ104に登録されている当該ファイルを表示する際に、実施例1により付加されたバグ情報を同時に表示し、当該ファイルのバグ修正の状況を把握する実施例の処理フロー図である。
まずシステム利用者は調査したいファイル名を入力する(1901)。次にファイル管理情報から1データ読込む(1903)。次に入力されたファイル名とファイル管理情報データのファイル名が一致するか判断する(1904)。一致した場合はファイル管理情報データの最新フラグが1か判断する(1905)。最新フラグが1であった場合はファイル情報一時テーブルに格納する(1906)。ファイル管理情報から1データ読込んでから(1903)ここまでの処理をソースコード情報が終るまで繰り返す(1902)。
次にソースコード情報から1データ読込む(1908)。次にファイル情報一時テーブルに格納してあるデータのファイルIDと、ソースコード情報から読込んだデータのファイルIDが合致するか判断する(1909)。合致した場合はソースコード情報一時テーブルに格納する(1910)。ソースコード情報を1データ読込んでから(1908)ここまでの処理をソースコード管理情報が終るまで繰り返す(1907)。
次にソースコード情報一時テーブル内を、行番号でソートする(1911)。
次にソースコード情報一時テーブルへ格納したデータを表示し、当該ファイルを全体ソースの中でどの位置にバグが存在するかと、そのバグ修正状況が把握できる(1912)。
図20は、指定したファイル名のソースコードと、その各行のバグ修正情報を表示している画面の実施例である。
101…バグ情報入力機能部、102…バグ行検索機能部、103…バグ情報表示機能部、104…リポジトリ、105…バグ管理ファイル、201…入力装置、202…出力装置、203…処理装置、204…データ保管装置、301…ファイル管理情報部、302…ソースコード情報部、303…ファイル名、304…Rev、305…最新フラグ、306…ファイルID、307…ファイル名、308…行番号、309…コード、310…履歴ID[引継]、311…履歴ID[改訂]、312…バグ番号、313…修正完了フラグ、401…バグ管理情報、402…一次修正バグ情報、403…バグ番号、404…バグ内容、405…一次修正バグ番号。

Claims (5)

  1. プログラムファイルの行毎に更新前のIDと更新後のIDを持ち、またバグ管理情報を持つファイル管理システムを利用して、バグが修正した行を複写、改訂した行を検索する機能を持つことを特徴とするプログラムバグ管理システム。
  2. 請求項1で検索したプログラムファイルの行に、バグ管理情報を付加する手段を持つことを特徴とするプログラムバグ管理システム。
  3. 請求項2で付加したバグ管理情報を、バグ毎に検索してバグ修正の状況を表示する手段を持つことを特徴とするプログラムバグ管理システム。
  4. 請求項2で付加したバグ管理情報を、ファイル毎にバグ管理情報が入力された行のみを表示する手段を持つことを特徴とするプログラムバグ管理システム。
  5. プログラムファイルの内容を表示する際に、請求項2で付加したバグ管理情報を同時に表示する手段を持つことを特徴とするプログラムバグ管理システム。
JP2010234122A 2010-10-19 2010-10-19 プログラムバグ管理システム Pending JP2012088874A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010234122A JP2012088874A (ja) 2010-10-19 2010-10-19 プログラムバグ管理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010234122A JP2012088874A (ja) 2010-10-19 2010-10-19 プログラムバグ管理システム

Publications (1)

Publication Number Publication Date
JP2012088874A true JP2012088874A (ja) 2012-05-10

Family

ID=46260440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010234122A Pending JP2012088874A (ja) 2010-10-19 2010-10-19 プログラムバグ管理システム

Country Status (1)

Country Link
JP (1) JP2012088874A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020112800A1 (en) * 2018-11-26 2020-06-04 Markus brian Systems and methods for training systems to detect software bugs

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020112800A1 (en) * 2018-11-26 2020-06-04 Markus brian Systems and methods for training systems to detect software bugs

Similar Documents

Publication Publication Date Title
CN103984582B (zh) 一种热更新方法和装置
JP2021099819A (ja) データへの論理的妥当性検査規則の指定および適用
JP2016519385A (ja) ドライバをロードする方法及び組み込みデバイス
CN111143368B (zh) 一种关系型数据库数据对比方法及系统
US20160253157A1 (en) Software refactoring
KR20150080545A (ko) 시스템 구축 지원 장치
CN110990051A (zh) 软件包依赖关系的维护方法、装置、介质和设备
JP2012088874A (ja) プログラムバグ管理システム
JP5504212B2 (ja) テストケース自動生成システム、テストケース自動生成方法、およびテストケース自動生成プログラム
JP2017084074A (ja) データベース装置、作業者情報検索システム、及び作業者情報検索方法
JP5578625B2 (ja) プログラム分析装置、プログラム分析方法、及びプログラム
JP2010176594A (ja) ソースコードバージョン管理プログラム及びソースコードバージョン管理方法
JP2011175446A (ja) 要件・バグレポート処理システム及びその方法
JPH05313969A (ja) ファイル一覧表示方法
CN110688103A (zh) 代码编写方法、装置、电子设备及计算机可读存储介质
JP2009053767A (ja) プログラム解析装置、および、プログラム解析方法
JP2011215667A (ja) プログラムファイル管理システム
JP2009151727A (ja) 文書処理システム
JP5682452B2 (ja) 変更管理支援装置、変更管理支援方法及び変更管理支援プログラム
JP5502696B2 (ja) ソフトウェア開発支援システム、ソフトウェア開発支援プログラム、ソフトウェア開発支援方法
JP5481093B2 (ja) 規程文書管理装置及び規程文書管理プログラム
JP2007034782A (ja) 文書編集装置
JP6699433B2 (ja) データ管理プログラム、装置、及び方法
JP5067041B2 (ja) 文書処理装置及び文書処理プログラム
CN116521443A (zh) 数据修改方法、系统、终端设备及计算机可读存储介质

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120521