JP6873332B2 - 点数化装置、点数化プログラム及び点数化方法 - Google Patents

点数化装置、点数化プログラム及び点数化方法 Download PDF

Info

Publication number
JP6873332B2
JP6873332B2 JP2020531836A JP2020531836A JP6873332B2 JP 6873332 B2 JP6873332 B2 JP 6873332B2 JP 2020531836 A JP2020531836 A JP 2020531836A JP 2020531836 A JP2020531836 A JP 2020531836A JP 6873332 B2 JP6873332 B2 JP 6873332B2
Authority
JP
Japan
Prior art keywords
type
information
warning
defect
scoring
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
JP2020531836A
Other languages
English (en)
Other versions
JPWO2020021588A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2020021588A1 publication Critical patent/JPWO2020021588A1/ja
Application granted granted Critical
Publication of JP6873332B2 publication Critical patent/JP6873332B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3616Software analysis for verifying properties of programs using software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

この発明は、ソースコードの静的解析の結果に点数を与える、点数化装置、点数化プログラム及び点数化方法に関する。
静的解析は、ソースコードを解析し、システム停止のような不具合になる可能性のある箇所を抽出する技術である。従来では、手動で作成された重み付けを利用して、静的解析の警告を絞ることは行われている(例えば特許文献1)。
特開2014−059775号公報
静的解析では、メモリバッファオーバーフロー及びメモリリークのような不具合は、検出できる。しかし、従来技術では、軽微な不具合も含め、不具合の警告が大量に出力される。このため、開発中の製品において、不具合になる可能性の高い警告を把握することは、困難である。
この発明は、ソースコードの静的解析の結果から、不具合になる可能性の高い警告を抽出する技術の提供を目的とする。
この発明の点数化装置は、
ソースコードの静的解析によって警告される警告の種類を示す第1の警告種類と、過去の不具合の原因の種類を示す第1の不具合原因種類とが対応付けられた複数のレコードを有する対応情報と、過去の不具合の原因の種類を示す複数の第2の不具合原因種類を有する不具合情報とを使用することにより、前記レコードの前記第1の不具合原因種類に対応する前記第2の不具合原因種類の個数を決定し、前記第1の不具合原因種類に対応する前記第1の警告種類に、決定した前記個数に応じて点数を与え、前記第1の警告種類と前記点数とが対応付けられた重み付け情報を生成する重み付け部と、
ソースコードの静的解析の結果である複数の第2の警告種類を含む解析結果情報の前記複数の第2の警告種類のうち、前記重み付け情報の前記第1の警告種類に対応する前記第2の警告種類に、前記第1の警告種類に与えられた点数を与える点数化部と、
を備える。
この発明によれば、ソースコードの静的解析の結果から、不具合になる可能性の高い警告を抽出する技術を提供できる。
実施の形態1の図で、点数化装置の機能ブロック図。 実施の形態1の図で、点数化装置のハードウェア構成を示す図。 実施の形態1の図で、点数化装置の動作を示すフローチャート。 実施の形態1の図で、解析結果情報を示す図。 実施の形態1の図で、不具合情報を示す図。 実施の形態1の図で、対応情報を示す図。 実施の形態1の図で、閾値情報を示す図。 実施の形態1の図で、重み付け情報を示す図。 実施の形態1の図で、ステップS12の内容を示すフローチャート。 実施の形態1の図で、ステップS12の内容を説明する図。 実施の形態1の図で、ステップS13の内容を説明する図。 実施の形態1の図で、点数化情報を示す図。 実施の形態1の図で、変形例1である点数化装置の機能ブロック図。 実施の形態1の図で、変形例1である点数化装置のハードウェア構成図。 実施の形態1の図で、変形例2の回路構成を示す図。
実施の形態1.
図1は、ソースコードに点数を与える点数化装置10の機能ブロックである。点数化装置10にはソースコードの静的解析結果31が入力され、点数化装置10は点数化情報13aを表示装置に表示する。
***構成の説明***
図1に示すように、点数化装置10は、機能要素として、静的解析結果取得部11、重み付け部12、点数化部13及び表示処理部14を有する。また、点数化装置10は、記憶部として、解析結果情報記憶部21、点数化情報記憶部22、不具合情報記憶部23、対応情報記憶部24及び重み付け情報記憶部25を有する。
図2は、コンピュータである点数化装置10のハードウェア構成を示す。点数化装置10は、ハードウェアとして、プロセッサ91、メモリ92、入出力インタフェース93、表示装置94及び通信インタフェース95を有する。プロセッサ91は、信号線96を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
点数化装置10の機能要素である、静的解析結果取得部11、重み付け部12、点数化部13及び表示処理部14との機能は、ソフトウェアにより実現される。
プロセッサ91は、点数化プログラムを実行する装置である。点数化プログラムは、静的解析結果取得部11、重み付け部12、点数化部13及び表示処理部14との機能を実現するプログラムである。プロセッサ91は、演算処理を行うIC(Integrated Circuit)である。プロセッサ91の具体例は、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
メモリ92は、データを記憶する記憶装置である。解析結果情報記憶部21、点数化情報記憶部22、不具合情報記憶部23、対応情報記憶部24及び重み付け情報記憶部25はメモリ92によって実現される。メモリ92の具体例は、SRAM(Static Random Access Memory)、DRAM(Dynamic Random Access Memory)である。また、メモリ92の具体例は、HDD(Hard Disk Drive)のような、補助記憶装置でもよい。メモリ92は、プロセッサ91の演算結果を保持する。
入出力インタフェース93には、データ及び結果を入出力するための装置が接続される。データ及び結果を入出力するための装置の例としては、マウス及びキーボードである。
表示装置94は表示処理部14によって制御されて、情報を表示する。
通信インタフェース95は、ネットワークを介して他の装置と通信を行うためのインタフェース装置である。通信インタフェース95の具体例は通信ボードである。
点数化プログラムは、プロセッサ91に読み込まれ、プロセッサ91によって実行される。メモリ92には、点数化プログラムだけでなく、OS(Operating System)も記憶されている。プロセッサ91は、OSを実行しながら、点数化プログラムを実行する。
点数化装置10は、プロセッサ91を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、点数化プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ91と同じように、点数化プログラムを実行する装置である。
点数化プログラムによって利用、処理または出力されるデータ、情報、信号値及び変数値は、メモリ92、または、プロセッサ91内のレジスタあるいはキャッシュメモリに記憶される。点数化プログラムは、静的解析結果取得部11、重み付け部12、点数化部13及び表示処理部14の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程を、コンピュータに実行させるプログラムである。また、点数化方法は、コンピュータである点数化装置10が、点数化プログラムを実行することにより行われる方法である。
点数化プログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
静的解析結果取得部11は、静的解析結果31を取得する。静的解析結果取得部11は、取得した静的解析結果31から、警告種類、ファイル名、行数を抽出して、解析結果情報11aを生成する。静的解析結果取得部11は、解析結果情報11aを解析結果情報記憶部21へ格納する。
不具合情報記憶部23は、不具合情報32を格納している。対応情報記憶部24は、解析結果情報11aの警告種類と、不具合情報32の不具合原因種類との対応を示す対応情報33を格納している。
重み付け部12は、不具合情報記憶部23から不具合情報32を取得し、対応情報記憶部24から、対応情報33及び閾値情報34を取得する。重み付け部12は、警告種類の重み付け情報12aを生成し、重み付け情報12aを、重み付け情報記憶部25へ格納する。
点数化部13は、解析結果情報記憶部21から解析結果情報11aを取得し、重み付け情報記憶部25から警告種類の重み付け情報12aを取得する。点数化部13は点数化情報13aを生成し、点数化情報記憶部22へ格納する。
表示処理部14は、点数化情報記憶部22に記憶された点数化情報13aを表示する。
***動作の説明***
図3は、点数化装置10の動作を示すフローチャートである。点数化装置10の動作は、点数化方法に相当する。点数化装置10の動作は、点数化プログラムの処理に相当する。
図3を用いて、点数化装置10の処理を説明する。点数化装置10はステップS11からステップS14の処理を実行する。ステップS11は、静的解析結果31の取得処理である。ステップS12は、重み付け情報12aを生成する処理である。ステップS13は、点数化情報13aを生成する処理である。ステップS14は、点数化情報13aを表示する処理である。
<ステップS11>
静的解析結果取得部11は、入出力インタフェース93または通信インタフェース95を介して、静的解析結果31を取得する。静的解析結果取得部11は、静的解析結果31を解析結果情報11aに変換し、解析結果情報11aを解析結果情報記憶部21に格納する。
静的解析結果31とは、ソースコードの静的解析の結果である。静的解析結果31は、不具合の可能性のある種類を示す警告種類、不具合の可能性のある箇所を含むソースコードのファイルを示すファイル名、及び不具合の可能性のある箇所の行数を示す「行数」を含む。
図4は、静的解析結果取得部11が生成する解析結果情報11aを示す。解析結果情報11aは、静的解析結果31が表形式に変換された情報である。解析結果情報11aは、警告種類、ファイル名及び行数を含む。警告種類、ファイル名及び行数に関して、1行目は、バッファーオーバーフロー、a.c、1432であり、2行目は、初期化なし、a.c、25であり、2行目は、初期化なし、c.c、154である。
<ステップS12>
重み付け部12は、不具合情報記憶部23から不具合情報32を読み込み、対応情報記憶部24から、対応情報33及び閾値情報34を読み込む。重み付け部12は、重み付け情報12aを生成する。重み付け部12は生成した重み付け情報12aを、重み付け情報記憶部25へ格納する。
具体的な処理は、以下のようである。
図5は、不具合情報32を示す。不具合情報32は、ソースコードを実行することで発生した過去の不具合の実績を示す情報である。不具合情報32は、過去の不具合が表形式で示されている。不具合情報32は、複数の不具合原因種類に対して、詳細な内容が記載されている。不具合原因種類とは、不具合の原因が分類された情報である。1行目の不具合原因種類は、存在しない配列インデックス参照である。2行目の不具合原因種類は、存在しない配列インデックス書込である。3行目の不具合原因種類は、意図しない値の参照である。1行目の詳細は、配列Xの10番目を参照したが、配列Xは9番目までしかなかったため、停止したという内容である。2行目の詳細は、配列Yの15番目へ書込したが、配列Yは11番目までしかなかったため、停止したという内容である。3行目の詳細は、意図しない値が入った変数を引数に取った関数が例外を起こし、停止したという内容である。
図6は、対応情報33を示す。対応情報33は、解析結果情報11aと不具合情報32とを対応付けた情報である。具体的には、対応情報33は、解析結果情報11aの警告種類と、不具合情報32の不具合原因種類とを、対応付けている。警告種類及び不具合原因種類に関して、1行目は、バッファーオーバーフロー及び存在しない配列インデックス参照である。2行目は、初期化なし及び意図しない値の参照である。2行目は、バッファーオーバーフロー及び存在しない配列インデックス書き込みである。
図7は、閾値情報34を示す。閾値情報34は、不具合情報32の不具合数Xに対と、重み付点数との関係を示す。図7に示すように、不具合数Xが1以上50未満の場合には重み付け点数は1であり、不具合数Xが50以上100未満の場合には重み付け点数は5であり、不具合数Xが100以上の場合には重み付け点数は10である。
図8は、重み付け情報12aを示す。重み付け情報12aは、警告種類ごとの重み付点数を示す。警告種類及び重み付け点数に関して、1行目は、バッファーオーバーフロー及び10点であり、2行目は、初期化なし及び5点である。
図9は、重み付け情報12aを生成する処理であるステップS12の内容を示すフローチャートである。
図10は、ステップS12の内容を説明する図である。図9及び図10を用いて、ステップS12の内容を示すステップS121からステップS124を説明する。
<ステップS121>
点数化部13は、不具合情報32の不具合原因種類ごとに、個数を計算する。図10では、点数化部13は、存在しない配列インデックス参照(1−1),(1−2)...、存在しない配列インデックス書込(2−1),(2−2)...、意図しない値の参照(3−1),(3−2)...の個数を計算する。存在しない配列インデックス参照は、(1−1)から(1−30)の30あるとする。存在しない配列インデックス書込は、(2−1)から(2−90)の90あるとする。意図しない値の参照は、(3−1)から(3−60)の60あるとする
<ステップS122>
点数化部13は、不具合情報32により計算結果を用いて、対応情報33の警告種類ごとに、個数を計算する。図10の対応情報33に示すように、存在しない配列インデックス参照と、存在しない配列インデックス書込とは、バッファーオーバーフローに対応する。よって、点数化部13は30+90を計算し、バッファーオーバーフローの不具合数Xを120と計算する。意図しない値の参照は、初期化なしに対応する。点数化部13は60+0を計算し、初期化なしの不具合数Xを60と計算する。
<ステップS123>
点数化部13は、閾値情報34を参照して、ステップS122で求めた不具合数Xに基づき、重み付け点数を決定する。ステップS122では、バッファーオーバーフローの不具合数X=120であり、初期化なしの不具合数X=60である。よって、点数化部13は、閾値情報34を参照し、バッファーオーバーフローの重み付け点数を10と決定し、初期化なしの重み付け点数を5と決定する。
<ステップS124>
点数化部13は、ステップS123で決定した警告種類ごとの重み付け点数から、重み付け情報12aを生成する。この例では、図10に示すように、重み付け情報12aでは、バッファーオーバーフローの重み付け点数は10点であり、初期化なしの重み付け点数は5点である。
以上がステップS12の内容である。ステップS12の重み付け部12の処理をまとめると、以下のようである。以下では、対応情報33の警告種類を第1の警告種類と呼び、解析結果情報11aの警告種類を第2の警告種類と呼ぶ。また、対応情報33の不具合原因種類を第1の不具合原因種類と呼び、不具合情報32の不具合原因種類を第2の不具合原因種類と呼ぶ。重み付け部12は、対応情報33と、不具合情報32とを使用することにより、レコードの第1の不具合原因種類に対応する第2の不具合原因種類の個数を決定する。ここで、対応情報33は、ソースコードの静的解析によって警告される警告の種類を示す第1の警告種類と、過去の不具合の原因の種類を示す第1の不具合原因種類とが対応付けられた複数のレコードを有する情報である。レコードとは、図6の1行目から3行目の各行が該当する。不具合情報32は、過去の不具合の原因の種類を示す複数の第2の不具合原因種類を有する。重み付け部12は、第2の不具合原因種類の個数を決定した場合に、第1の不具合原因種類に対応する第1の警告種類に、決定した個数に応じて点数を与え、第1の警告種類と点数とが対応付けられた重み付け情報12aを生成する。
<ステップS13>
次に、点数化情報13aを生成する処理であるステップS13を説明する。ステップS13では、点数化部13は、解析結果情報11aの各行の警告種類に対して、警告種類の重み付け情報12aの警告種類に対応付けられている重み付け点数を与え、与えた重み付け点数をファイル名ごとに合計することで、点数化情報13aを生成する。
図11は、ステップS13を説明する図である。ステップS13において、点数化部13は、解析結果情報記憶部21から解析結果情報11aを取得し、重み付け情報記憶部25から重み付け情報12aを取得する。点数化部13は、重み付け情報12aを参照して、解析結果情報11aのそれぞれの警告種類に、重み付け点数を与える。図11の場合は、解析結果情報11aに対して、ファイル名a.cのバッファーオーバーフローに10点を与え、ファイル名a.cの初期化なしに5点を与え、ファイル名c.cの初期化なしに5点を与える。点数化部13は、ファイル名ごとに重み付け点数を合計して、点数化情報13aを生成する。この例では、ファイル名a.cの重み付け点数は、15点であり、ファイル名c.cの重み付け点数は15点である。点数化部13は、生成した点数化情報13aを点数化情報記憶部22へ格納する。
図12は、点数化情報13aを示す図である。ファイル及び点数合計に関して、1行目は、a.c及び15点であり、2行目は、c.c及び5点である。
以上がステップS13の内容である。ステップS13の点数化部13の処理をまとめると、以下のようである。点数化部13は、ソースコードの静的解析の結果である複数の第2の警告種類を含む解析結果情報11aの複数の第2の警告種類のうち、重み付け情報12aの第1の警告種類に対応する第2の警告種類に、第1の警告種類に与えられた点数を与える。
なお、図11の説明で述べたように、解析結果情報11aは、複数の第2の警告種類のそれぞれと、ソースコードを示すファイル名と、警告種類を含む行数が対応付けられている。警告種類を含む行数は、ソースコードにおいてバッファーオーバーフローのような警告種類が存在する位置を示す位置情報である。点数化部13は、ファイル名が同一である第2の警告種類の点数の合計を計算する。また、図11の説明で述べたように、点数化部13は、不具合の個数と重み付けの点数とが対応付けられた閾値情報34を使用して、重み付け情報12aを生成する。
<ステップS14>
表示処理部14は、点数化情報記憶部22から点数化情報13aを読み込み、点数化情報13aを表示装置94に表示する。
<変形例1>
図13は、点数化装置10の変形例の機能ブロック図である。図13の点数化装置10は、図1に対して、さらに、不具合情報取得部15を有する。不具合情報取得部15は、不具合情報32を取得することができる。
図14は、図13の点数化装置10のハードウェア構成を示す。図13のハードウェア構成は、図2に対して、不具合情報取得部15が追加されている。図2の場合と同様に、静的解析結果取得部11、点数化部13、点数化部13、表示処理部14及び不具合情報取得部15の機能は、点数化プログラムにより実現される。不具合情報取得部15は、不具合情報32を、入出力インタフェース93または通信インタフェース95を介して取得する。
なお、対応情報33及び閾値情報34は、図1及び図13の場合ともに、マウスまたはキーボードのような入出力インタフェース96によって、設定及び変更が可能である。
以上のように、不具合情報取得部15は、不具合情報32を取得し、取得した不具合情報32をメモリである。不具合情報記憶部23に格納する。重み付け部12は、不具合情報取得部15が取得した不具合情報32を使用することにより、重み付け情報12aを生成する。
変形例1によれば、不具合情報32を柔軟に変更できる。
<変形例2>
図15は、変形例2を示す。図2及び図14に示すハードウェア構成では、プロセッサ91として示す「部」の機能が、ソフトウェアで実現される。しかし、変形例2として、プロセッサ91として示す「部」の機能がハードウェアで実現されてもよい。具体的には、図15に示すように、処理回路99によって、プロセッサ91として示す「部」の機能及び「〜記憶部」の機能が実現される。処理回路99は信号線99aに接続している。処理回路99は、プロセッサ91として示す「部」の機能及び「〜記憶部」の機能を実現する専用の電子回路である。処理回路99は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA(Gate・Array)、ASIC(Application・Specific・Integrated・Circuit)、又は、FPGA(Field−Programmable・Gate・Array)である。
プロセッサ91と処理回路99とは、プロセッシングサーキットリとも呼ばれる。つまり、点数化装置10において、静的解析結果取得部11、重み付け部12、点数化部13、表示処理部14及び不具合情報取得部15の機能は、プロセッシングサーキットリにより実現される。
***実施の形態1の効果***
以上に説明した点数化装置は解析結果情報11aを生成するので、不具合に直結する確率の高い静的解析の警告と、その警告を含むファイル名及び不具合箇所である行数を特定できる。
以上、実施の形態1ついて説明したが、実施の形態1うち、1つを部分的に実施しても構わない。あるいは、実施の形態1のうち、2つ以上を部分的に組み合わせて実施しても構わない。なお、本発明は、実施の形態1に限定されるものではなく、必要に応じて種々の変更が可能である。
10 点数化装置、11 静的解析結果取得部、11a 解析結果情報、12 重み付け部、12a 重み付け情報、13 点数化部、13a 点数化情報、14 表示処理部、15 不具合情報取得部、21 解析結果情報記憶部、22 点数化情報記憶部、23 不具合情報記憶部、24 対応情報記憶部、25 重み付け情報記憶部、31 静的解析結果、32 不具合情報、33 対応情報、34 閾値情報、91 プロセッサ、92 メモリ、93 入出力インタフェース、94 表示装置、95 通信インタフェース、99 処理回路、99a 信号線。

Claims (9)

  1. ソースコードの静的解析によって警告される警告の種類を示す第1の警告種類と、過去の不具合の原因が分類された情報を示す第1の不具合原因種類とが対応付けられた複数のレコードを有する対応情報と
    去の不具合の原因が分類された情報を示す複数の第2の不具合原因種類を有する不具合情報とを使用することにより
    記レコードの前記第1の不具合原因種類に対応する前記第2の不具合原因種類の個数を算出
    記第1の不具合原因種類に対応する前記第1の警告種類に、算出した前記個数に応じて重み付けを行った重み付け情報を生成する重み付け部と、
    ソースコードの静的解析の結果である解析結果情報に含まれる複数の第2の警告種類のうち、前記重み付け情報の前記第1の警告種類に対応する前記第2の警告種類生成した前記重み付け情報基づき、点数化する点数化部と、
    を備える点数化装置。
  2. ソースコードの静的解析によって警告される警告の種類を示す第1の警告種類と、過去の不具合の原因の種類を示す第1の不具合原因種類とが対応付けられた複数のレコードを有する対応情報と、過去の不具合の原因の種類を示す複数の第2の不具合原因種類を有する不具合情報とを使用することにより、前記レコードの前記第1の不具合原因種類に対応する前記第2の不具合原因種類の個数を決定し、前記第1の不具合原因種類に対応する前記第1の警告種類に、決定した前記個数に応じて点数を与え、前記第1の警告種類と前記点数とが対応付けられた重み付け情報を生成する重み付け部と、
    ソースコードの静的解析の結果である複数の第2の警告種類を含む解析結果情報の前記複数の第2の警告種類のうち、前記重み付け情報の前記第1の警告種類に対応する前記第2の警告種類に、前記第1の警告種類に与えられた点数を与える点数化部と、
    を備える点数化装置。
  3. 前記解析結果情報は、
    複数の前記第2の警告種類のそれぞれと、ソースコードを示すファイル名とが対応付けられており、
    前記点数化部は、
    前記ファイル名が同一である前記第2の警告種類の点数の合計を計算する請求項1または請求項2に記載の点数化装置。
  4. 前記点数化部は、
    不具合の個数と点数とが対応付けられた閾値情報を使用して、前記重み付け情報を生成する請求項1から請求項3のいずれか一項に記載の点数化装置。
  5. 点数化装置は、さらに、
    メモリと、
    前記不具合情報を取得し、取得した前記不具合情報を前記メモリに格納する不具合情報取得部と、
    を備え、
    前記重み付け部は、
    前記不具合情報取得部が取得した前記不具合情報を使用することにより、前記重み付け情報を生成する請求項1から請求項のいずれか一項に記載の点数化装置。
  6. コンピュータに、
    ソースコードの静的解析によって警告される警告の種類を示す第1の警告種類と、過去の不具合の原因が分類された情報を示す第1の不具合原因種類とが対応付けられた複数のレコードを有する対応情報と
    去の不具合の原因が分類された情報を示す複数の第2の不具合原因種類を有する不具合情報とを使用することにより
    記レコードの前記第1の不具合原因種類に対応する前記第2の不具合原因種類の個数を算出
    記第1の不具合原因種類に対応する前記第1の警告種類に、算出した前記個数に応じて重み付けを行った重み付け情報を生成する処理、
    ソースコードの静的解析の結果である解析結果情報に含まれる複数の第2の警告種類のうち、前記重み付け情報の前記第1の警告種類に対応する前記第2の警告種類生成した前記重み付け情報基づき、点数化する処理、
    を実行させるための点数化プログラム。
  7. コンピュータに、
    ソースコードの静的解析によって警告される警告の種類を示す第1の警告種類と、過去の不具合の原因の種類を示す第1の不具合原因種類とが対応付けられた複数のレコードを有する対応情報と、過去の不具合の原因の種類を示す複数の第2の不具合原因種類を有する不具合情報とを使用することにより、前記レコードの前記第1の不具合原因種類に対応する前記第2の不具合原因種類の個数を決定し、前記第1の不具合原因種類に対応する前記第1の警告種類に、決定した前記個数に応じて点数を与え、前記第1の警告種類と前記点数とが対応付けられた重み付け情報を生成する処理、
    ソースコードの静的解析の結果である複数の第2の警告種類を含む解析結果情報の前記複数の第2の警告種類のうち、前記重み付け情報の前記第1の警告種類に対応する前記第2の警告種類に、前記第1の警告種類に与えられた点数を与える処理、
    を実行させるための点数化プログラム。
  8. コンピュータが、
    ソースコードの静的解析によって警告される警告の種類を示す第1の警告種類と、過去の不具合の原因が分類された情報を示す第1の不具合原因種類とが対応付けられた複数のレコードを有する対応情報と
    去の不具合の原因が分類された情報を示す複数の第2の不具合原因種類を有する不具合情報とを使用することにより
    記レコードの前記第1の不具合原因種類に対応する前記第2の不具合原因種類の個数を算出
    記第1の不具合原因種類に対応する前記第1の警告種類に、算出した前記個数に応じて重み付けを行った重み付け情報を生成し、
    ソースコードの静的解析の結果である解析結果情報に含まれる複数の第2の警告種類のうち、前記重み付け情報の前記第1の警告種類に対応する前記第2の警告種類生成した前記重み付け情報基づき、点数化する
    点数化方法。
  9. コンピュータが、
    ソースコードの静的解析によって警告される警告の種類を示す第1の警告種類と、過去の不具合の原因の種類を示す第1の不具合原因種類とが対応付けられた複数のレコードを有する対応情報と、過去の不具合の原因の種類を示す複数の第2の不具合原因種類を有する不具合情報とを使用することにより、前記レコードの前記第1の不具合原因種類に対応する前記第2の不具合原因種類の個数を決定し、前記第1の不具合原因種類に対応する前記第1の警告種類に、決定した前記個数に応じて点数を与え、前記第1の警告種類と前記点数とが対応付けられた重み付け情報を生成し、
    ソースコードの静的解析の結果である複数の第2の警告種類を含む解析結果情報の前記複数の第2の警告種類のうち、前記重み付け情報の前記第1の警告種類に対応する前記第2の警告種類に、前記第1の警告種類に与えられた点数を与える、
    点数化方法。
JP2020531836A 2018-07-23 2018-07-23 点数化装置、点数化プログラム及び点数化方法 Active JP6873332B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/027444 WO2020021588A1 (ja) 2018-07-23 2018-07-23 点数化装置、点数化プログラム及び点数化方法

Publications (2)

Publication Number Publication Date
JPWO2020021588A1 JPWO2020021588A1 (ja) 2021-02-15
JP6873332B2 true JP6873332B2 (ja) 2021-05-19

Family

ID=69180658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020531836A Active JP6873332B2 (ja) 2018-07-23 2018-07-23 点数化装置、点数化プログラム及び点数化方法

Country Status (3)

Country Link
US (1) US11281566B2 (ja)
JP (1) JP6873332B2 (ja)
WO (1) WO2020021588A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485862B (zh) * 2021-07-13 2022-07-15 北京三快在线科技有限公司 业务故障的管理方法、装置、电子设备及存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1078890A (ja) 1996-09-02 1998-03-24 Toshiba Corp レビューチェック項目管理装置及びレビューチェック項目管理方法
JP3288330B2 (ja) * 1999-04-06 2002-06-04 日本電気通信システム株式会社 プログラム危険度チェック装置
JP2003029970A (ja) 2001-07-12 2003-01-31 Mitsubishi Electric Corp プログラム品質管理支援装置、プログラム品質管理支援方法、プログラム品質管理支援方法をコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体、プログラム品質管理支援方法をコンピュータに実行させるためのプログラム
US7743286B2 (en) * 2005-05-17 2010-06-22 International Business Machines Corporation Method, system and program product for analyzing demographical factors of a computer system to address error conditions
JP4914609B2 (ja) 2005-12-28 2012-04-11 富士通株式会社 ソースコード問題予測プログラム
JP4886404B2 (ja) 2006-07-14 2012-02-29 株式会社東芝 ソースコード修正優先度付けシステムおよびその優先度付け方法
JP2008071110A (ja) 2006-09-14 2008-03-27 Xanavi Informatics Corp ソースコードレビュー支援装置
JP2009193099A (ja) 2008-02-12 2009-08-27 Nec Corp 検査配点方法および装置
JP2010117897A (ja) 2008-11-13 2010-05-27 Hitachi Software Eng Co Ltd プログラム静的解析システム
US8752001B2 (en) * 2009-07-08 2014-06-10 Infosys Limited System and method for developing a rule-based named entity extraction
JP2013131128A (ja) 2011-12-22 2013-07-04 Fuji Electric Co Ltd プログラム構造評価システム、プログラム
US9424379B2 (en) * 2012-05-31 2016-08-23 Freescale Semiconductor, Inc. Simulation system and method for testing a simulation of a device against one or more violation rules
JP6076660B2 (ja) 2012-09-18 2017-02-08 富士電機株式会社 プログラム構造評価システム、プログラム
JP6121828B2 (ja) 2013-07-26 2017-04-26 Necエンジニアリング株式会社 静的解析装置、静的解析方法、および、コンピュータ・プログラム
US20160004517A1 (en) * 2014-07-01 2016-01-07 Bank Of America Corporation SOFTWARE DEVELOPMENT IMPROVEMENT TOOL - iREVIEW
US9552549B1 (en) * 2014-07-28 2017-01-24 Google Inc. Ranking approach to train deep neural nets for multilabel image annotation
JP5793228B1 (ja) 2014-08-22 2015-10-14 三菱電機インフォメーションシステムズ株式会社 欠陥数予測装置及び欠陥数予測プログラム
JP2016128941A (ja) 2015-01-09 2016-07-14 日本電気株式会社 出力判定装置、出力判定方法、出力判定プログラム、及び、静的解析装置
US9916224B2 (en) * 2015-09-15 2018-03-13 Linkedin Corporation Integrating quality analysis with a code review tool
WO2017095727A1 (en) * 2015-11-30 2017-06-08 Jpmorgan Chase Bank, N.A. Systems and methods for software security scanning employing a scan quality index
US10037411B2 (en) * 2015-12-30 2018-07-31 Cerner Innovation, Inc. Intelligent alert suppression
US9928154B2 (en) * 2016-01-12 2018-03-27 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Leveling stress factors among like components in a server
US10747641B2 (en) * 2016-08-11 2020-08-18 Tata Consultancy Services Limited System and method for cause point analysis for effective handling of static analysis alarms

Also Published As

Publication number Publication date
WO2020021588A1 (ja) 2020-01-30
US20210263831A1 (en) 2021-08-26
US11281566B2 (en) 2022-03-22
JPWO2020021588A1 (ja) 2021-02-15

Similar Documents

Publication Publication Date Title
JP2008065425A5 (ja)
US20150248318A1 (en) Z/os workload mapper for potential problem areas using modules and defect data
JP6873332B2 (ja) 点数化装置、点数化プログラム及び点数化方法
JP2008210073A (ja) ログデータサイズ削減装置及びログデータサイズ削減装置のログデータサイズ削減方法
JP5171211B2 (ja) データ形式変換装置
JP6667733B2 (ja) シミュレーション装置、シミュレーション方法およびシミュレーションプログラム
US8140305B2 (en) Conversion of an application program
US9165007B2 (en) Log message optimization to ignore or identify redundant log messages
JP7116313B2 (ja) 修正候補特定プログラム
JP2008210068A (ja) データ処理装置及びデータ処理方法及びプログラム
JP6611963B2 (ja) プログラム解析装置、プログラム解析システム、プログラム解析方法および解析プログラム
JP6916327B1 (ja) 派生テスト装置、派生テスト方法、および、派生テストプログラム
JP6954806B2 (ja) 不具合検出装置、及び不具合検出方法
JP6430086B1 (ja) 画像提供装置、画像提供方法および画像提供プログラム
US20220092243A1 (en) Test apparatus, computer readable medium, and test method
JP7101750B2 (ja) 試験支援装置、試験支援方法及び試験支援プログラム
US11321225B2 (en) Reducing the memory load time for logic simulator by leveraging architecture simulator
JPWO2018142477A1 (ja) 要求分析装置、要求分析方法および要求分析プログラム
JP4946588B2 (ja) 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
WO2023187869A1 (ja) テスト支援装置、テスト支援方法、およびテスト支援プログラム
JP2009193298A (ja) 情報処理装置及び情報処理方法及びプログラム
WO2019229916A1 (ja) 状態監視装置、状態監視方法および状態監視プログラム
JP6851210B2 (ja) 分析支援装置、分析支援方法および分析支援プログラム
JP6724673B2 (ja) テスト支援プログラム、テスト支援方法及びテスト支援装置
JP2016139203A (ja) 設計情報作成方法、設計情報作成装置及びプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200715

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200715

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210420

R150 Certificate of patent or registration of utility model

Ref document number: 6873332

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250