JPWO2020021588A1 - 点数化装置、点数化プログラム及び点数化方法 - Google Patents
点数化装置、点数化プログラム及び点数化方法 Download PDFInfo
- Publication number
- JPWO2020021588A1 JPWO2020021588A1 JP2020531836A JP2020531836A JPWO2020021588A1 JP WO2020021588 A1 JPWO2020021588 A1 JP WO2020021588A1 JP 2020531836 A JP2020531836 A JP 2020531836A JP 2020531836 A JP2020531836 A JP 2020531836A JP WO2020021588 A1 JPWO2020021588 A1 JP WO2020021588A1
- Authority
- JP
- Japan
- Prior art keywords
- type
- warning
- information
- 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.)
- Granted
Links
- 238000013077 scoring method Methods 0.000 title description 4
- 230000007547 defect Effects 0.000 claims abstract description 119
- 238000004458 analytical method Methods 0.000 claims abstract description 75
- 230000003068 static effect Effects 0.000 claims description 42
- 238000012545 processing Methods 0.000 claims description 28
- 238000000034 method Methods 0.000 claims description 16
- 230000006870 function Effects 0.000 description 11
- 238000012986 modification Methods 0.000 description 9
- 230000004048 modification Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 239000002131 composite material Substances 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- 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)
Abstract
Description
ソースコードの静的解析によって警告される警告の種類を示す第1の警告種類と、過去の不具合の原因の種類を示す第1の不具合原因種類とが対応付けられた複数のレコードを有する対応情報と、過去の不具合の原因の種類を示す複数の第2の不具合原因種類を有する不具合情報とを使用することにより、前記レコードの前記第1の不具合原因種類に対応する前記第2の不具合原因種類の個数を決定し、前記第1の不具合原因種類に対応する前記第1の警告種類に、決定した前記個数に応じて点数を与え、前記第1の警告種類と前記点数とが対応付けられた重み付け情報を生成する重み付け部と、
ソースコードの静的解析の結果である複数の第2の警告種類を含む解析結果情報の前記複数の第2の警告種類のうち、前記重み付け情報の前記第1の警告種類に対応する前記第2の警告種類に、前記第1の警告種類に与えられた点数を与える点数化部と、
を備える。
図1は、ソースコードに点数を与える点数化装置10の機能ブロックである。点数化装置10にはソースコードの静的解析結果31が入力され、点数化装置10は点数化情報13aを表示装置に表示する。
図1に示すように、点数化装置10は、機能要素として、静的解析結果取得部11、重み付け部12、点数化部13及び表示処理部14を有する。また、点数化装置10は、記憶部として、解析結果情報記憶部21、点数化情報記憶部22、不具合情報記憶部23、対応情報記憶部24及び重み付け情報記憶部25を有する。
入出力インタフェース93には、データ及び結果を入出力するための装置が接続される。データ及び結果を入出力するための装置の例としては、マウス及びキーボードである。
表示装置94は表示処理部14によって制御されて、情報を表示する。
通信インタフェース95は、ネットワークを介して他の装置と通信を行うためのインタフェース装置である。通信インタフェース95の具体例は通信ボードである。
重み付け部12は、不具合情報記憶部23から不具合情報32を取得し、対応情報記憶部24から、対応情報33及び閾値情報34を取得する。重み付け部12は、警告種類の重み付け情報12aを生成し、重み付け情報12aを、重み付け情報記憶部25へ格納する。
図3は、点数化装置10の動作を示すフローチャートである。点数化装置10の動作は、点数化方法に相当する。点数化装置10の動作は、点数化プログラムの処理に相当する。
静的解析結果取得部11は、入出力インタフェース93または通信インタフェース95を介して、静的解析結果31を取得する。静的解析結果取得部11は、静的解析結果31を解析結果情報11aに変換し、解析結果情報11aを解析結果情報記憶部21に格納する。
重み付け部12は、不具合情報記憶部23から不具合情報32を読み込み、対応情報記憶部24から、対応情報33及び閾値情報34を読み込む。重み付け部12は、重み付け情報12aを生成する。重み付け部12は生成した重み付け情報12aを、重み付け情報記憶部25へ格納する。
具体的な処理は、以下のようである。
図10は、ステップS12の内容を説明する図である。図9及び図10を用いて、ステップS12の内容を示すステップS121からステップS124を説明する。
点数化部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あるとする
点数化部13は、不具合情報32により計算結果を用いて、対応情報33の警告種類ごとに、個数を計算する。図10の対応情報33に示すように、存在しない配列インデックス参照と、存在しない配列インデックス書込とは、バッファーオーバーフローに対応する。よって、点数化部13は30+90を計算し、バッファーオーバーフローの不具合数Xを120と計算する。意図しない値の参照は、初期化なしに対応する。点数化部13は60+0を計算し、初期化なしの不具合数Xを60と計算する。
点数化部13は、閾値情報34を参照して、ステップS122で求めた不具合数Xに基づき、重み付け点数を決定する。ステップS122では、バッファーオーバーフローの不具合数X=120であり、初期化なしの不具合数X=60である。よって、点数化部13は、閾値情報34を参照し、バッファーオーバーフローの重み付け点数を10と決定し、初期化なしの重み付け点数を5と決定する。
点数化部13は、ステップS123で決定した警告種類ごとの重み付け点数から、重み付け情報12aを生成する。この例では、図10に示すように、重み付け情報12aでは、バッファーオーバーフローの重み付け点数は10点であり、初期化なしの重み付け点数は5点である。
次に、点数化情報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点である。
表示処理部14は、点数化情報記憶部22から点数化情報13aを読み込み、点数化情報13aを表示装置94に表示する。
図13は、点数化装置10の変形例の機能ブロック図である。図13の点数化装置10は、図1に対して、さらに、不具合情報取得部15を有する。不具合情報取得部15は、不具合情報32を取得することができる。
図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)である。
以上に説明した点数化装置は解析結果情報11aを生成するので、不具合に直結する確率の高い静的解析の警告と、その警告を含むファイル名及び不具合箇所である行数を特定できる。
Claims (6)
- ソースコードの静的解析によって警告される警告の種類を示す第1の警告種類と、過去の不具合の原因の種類を示す第1の不具合原因種類とが対応付けられた複数のレコードを有する対応情報と、過去の不具合の原因の種類を示す複数の第2の不具合原因種類を有する不具合情報とを使用することにより、前記レコードの前記第1の不具合原因種類に対応する前記第2の不具合原因種類の個数を決定し、前記第1の不具合原因種類に対応する前記第1の警告種類に、決定した前記個数に応じて点数を与え、前記第1の警告種類と前記点数とが対応付けられた重み付け情報を生成する重み付け部と、
ソースコードの静的解析の結果である複数の第2の警告種類を含む解析結果情報の前記複数の第2の警告種類のうち、前記重み付け情報の前記第1の警告種類に対応する前記第2の警告種類に、前記第1の警告種類に与えられた点数を与える点数化部と、
を備える点数化装置。 - 前記解析結果情報は、
複数の前記第2の警告種類のそれぞれと、ソースコードを示すファイル名とが対応付けられており、
前記点数化部は、
前記ファイル名が同一である前記第2の警告種類の点数の合計を計算する請求項1に記載の点数化装置。 - 前記点数化部は、
不具合の個数と点数とが対応付けられた閾値情報を使用して、前記重み付け情報を生成する請求項1または請求項2に記載の点数化装置。 - 点数化装置は、さらに、
メモリと、
前記不具合情報を取得し、取得した前記不具合情報を前記メモリに格納する不具合情報取得部と、
を備え、
前記重み付け部は、
前記不具合情報取得部が取得した前記不具合情報を使用することにより、前記重み付け情報を生成する請求項1から請求項3のいずれか一項に記載の点数化装置。 - コンピュータに、
ソースコードの静的解析によって警告される警告の種類を示す第1の警告種類と、過去の不具合の原因の種類を示す第1の不具合原因種類とが対応付けられた複数のレコードを有する対応情報と、過去の不具合の原因の種類を示す複数の第2の不具合原因種類を有する不具合情報とを使用することにより、前記レコードの前記第1の不具合原因種類に対応する前記第2の不具合原因種類の個数を決定し、前記第1の不具合原因種類に対応する前記第1の警告種類に、決定した前記個数に応じて点数を与え、前記第1の警告種類と前記点数とが対応付けられた重み付け情報を生成する処理、
ソースコードの静的解析の結果である複数の第2の警告種類を含む解析結果情報の前記複数の第2の警告種類のうち、前記重み付け情報の前記第1の警告種類に対応する前記第2の警告種類に、前記第1の警告種類に与えられた点数を与える処理、
を実行させるための点数化プログラム。 - コンピュータが、
ソースコードの静的解析によって警告される警告の種類を示す第1の警告種類と、過去の不具合の原因の種類を示す第1の不具合原因種類とが対応付けられた複数のレコードを有する対応情報と、過去の不具合の原因の種類を示す複数の第2の不具合原因種類を有する不具合情報とを使用することにより、前記レコードの前記第1の不具合原因種類に対応する前記第2の不具合原因種類の個数を決定し、前記第1の不具合原因種類に対応する前記第1の警告種類に、決定した前記個数に応じて点数を与え、前記第1の警告種類と前記点数とが対応付けられた重み付け情報を生成し、
ソースコードの静的解析の結果である複数の第2の警告種類を含む解析結果情報の前記複数の第2の警告種類のうち、前記重み付け情報の前記第1の警告種類に対応する前記第2の警告種類に、前記第1の警告種類に与えられた点数を与える、
点数化方法。
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 true JPWO2020021588A1 (ja) | 2021-02-15 |
JP6873332B2 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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113485862B (zh) * | 2021-07-13 | 2022-07-15 | 北京三快在线科技有限公司 | 业务故障的管理方法、装置、电子设备及存储介质 |
Family Cites Families (23)
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 | プログラム構造評価システム、プログラム |
WO2013179076A1 (en) * | 2012-05-31 | 2013-12-05 | Freescale Semiconductor, Inc. | A 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 |
-
2018
- 2018-07-23 US US17/252,328 patent/US11281566B2/en active Active
- 2018-07-23 WO PCT/JP2018/027444 patent/WO2020021588A1/ja active Application Filing
- 2018-07-23 JP JP2020531836A patent/JP6873332B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
US11281566B2 (en) | 2022-03-22 |
US20210263831A1 (en) | 2021-08-26 |
JP6873332B2 (ja) | 2021-05-19 |
WO2020021588A1 (ja) | 2020-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100131685A1 (en) | Hardware configuration information system, method, and computer program product | |
JP6873332B2 (ja) | 点数化装置、点数化プログラム及び点数化方法 | |
CN114691371A (zh) | 多线程同时转换Pattern的方法及装置 | |
JP2008210073A (ja) | ログデータサイズ削減装置及びログデータサイズ削減装置のログデータサイズ削減方法 | |
JP7025104B2 (ja) | 情報処理装置、方法およびプログラム | |
JP6667733B2 (ja) | シミュレーション装置、シミュレーション方法およびシミュレーションプログラム | |
US8140305B2 (en) | Conversion of an application program | |
JP2009116395A (ja) | データ形式変換装置及びデータ形式変換プログラム及びデータ形式変換方法 | |
US20190369997A1 (en) | Simulation device, simulation method, and computer readable medium | |
JP7116313B2 (ja) | 修正候補特定プログラム | |
JP2013105286A (ja) | プログラム自動生成装置およびプログラム自動生成方法 | |
JP2008210068A (ja) | データ処理装置及びデータ処理方法及びプログラム | |
JP6916327B1 (ja) | 派生テスト装置、派生テスト方法、および、派生テストプログラム | |
US11797738B2 (en) | Test apparatus, computer readable medium, and test method | |
US11321225B2 (en) | Reducing the memory load time for logic simulator by leveraging architecture simulator | |
JP6430086B1 (ja) | 画像提供装置、画像提供方法および画像提供プログラム | |
JP6954806B2 (ja) | 不具合検出装置、及び不具合検出方法 | |
JP7101750B2 (ja) | 試験支援装置、試験支援方法及び試験支援プログラム | |
WO2022195892A1 (ja) | トレース制御装置、エミュレータ、トレース制御方法、および、トレース制御プログラム | |
WO2023187869A1 (ja) | テスト支援装置、テスト支援方法、およびテスト支援プログラム | |
US20230195414A1 (en) | Arithmetic processing apparatus and arithmetic processing method | |
US7895553B2 (en) | Verification support method and apparatus, and computer product | |
JP2009193298A (ja) | 情報処理装置及び情報処理方法及びプログラム | |
JP6851210B2 (ja) | 分析支援装置、分析支援方法および分析支援プログラム | |
JP6234640B2 (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 |