JP5811859B2 - ソースコードの静的解析装置、システム、方法、及びそのためのプログラム - Google Patents
ソースコードの静的解析装置、システム、方法、及びそのためのプログラム Download PDFInfo
- Publication number
- JP5811859B2 JP5811859B2 JP2012009955A JP2012009955A JP5811859B2 JP 5811859 B2 JP5811859 B2 JP 5811859B2 JP 2012009955 A JP2012009955 A JP 2012009955A JP 2012009955 A JP2012009955 A JP 2012009955A JP 5811859 B2 JP5811859 B2 JP 5811859B2
- Authority
- JP
- Japan
- Prior art keywords
- analysis
- source code
- static
- storage unit
- static analysis
- 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.)
- Expired - Fee Related
Links
- 238000004458 analytical method Methods 0.000 title claims description 318
- 230000003068 static effect Effects 0.000 title claims description 110
- 238000000034 method Methods 0.000 title claims description 27
- 230000007547 defect Effects 0.000 claims description 69
- 238000013500 data storage Methods 0.000 claims description 33
- 238000012545 processing Methods 0.000 claims description 23
- 238000012950 reanalysis Methods 0.000 claims description 16
- 239000000284 extract Substances 0.000 claims description 5
- 238000012986 modification Methods 0.000 claims description 2
- 230000004048 modification Effects 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 description 25
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 238000012937 correction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
図1は、本発明の第一の実施の形態におけるソースコード静的解析システム100の構成を示すブロック図である。図1を参照すると、ソースコード静的解析システム100は、入出力部110と送受信部120と静的解析装置130とを備える。静的解析装置130は、解析対象ソースコード生成部131と解析データ保管部132と静的解析部133を備える。
例えば、ソースコードに関数(func)A、B、Cが含まれており、前回の解析時の解析結果で関数Aに不具合が見つかったとすると、その解析結果を基に修正した関数A´と元の関数B及び関数Cとを含むソースコードと、修正した不具合識別ID(たとえば、解析ID「1」)が入力の対象となる。
解析データ保管部132に保存された前回解析時の解析結果には、それぞれ一意に識別できる前述の不具合識別IDが与えられているため、解析対象ソースコード生成部131は、解析データ保管部132から、不具合識別IDに対応した不具合の解析結果を読み出す。(ステップS103)
次に、解析対象ソースコード生成部131は、入手した前述の不具合の解析結果に含まれている解析範囲の情報を基に、前回解析時の解析結果を基に修正したソースコードから不具合部分を修正した該当部分を抽出する。さらに、解析対象ソースコード生成部131は、入手した前述の不具合の解析結果に含まれているフロー制御情報から、対象の処理フローに関連するソースコードを生成し、その生成したソースコードを前述の該当部分に付与して解析データ付与ソースコードを生成する。(ステップS104)
例えば前述の例によると、修正した関数A´と元の関数B及び関数Cを含むソースコードから、前述の不具合の解析結果に含まれている解析範囲の情報を基に関数A´を抽出し、抽出した関数A´にフロー制御情報から生成したソースコードを付与して、新たに解析データ付与ソースコードを生成する。
次に、静的解析部133は、送受信部120と解析データ保管部132に解析結果を渡し、解析データ保管部132は受け取った解析結果を保存する。(ステップS106)
最後に、送受信部120は、静的解析部133から受け取った解析結果を入出力部110に通知する。(ステップS107)
以上で、ソースコード静的解析システム100は、静的解析の動作を終了する。
次に、本発明の第二の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
次に、送受信部120は、静的解析の実行要求を受け付け、前述のソースコード及び前述の複数の不具合識別IDを解析対象ソースコード生成部131へ渡す。(ステップS202)
解析対象ソースコード生成部131は、渡されたソースコードと不具合識別IDに対応した不具合を示す解析結果の一つを、解析データ保管部132から入手する。(ステップS203)
次に、解析対象ソースコード生成部131は、その不具合を示す解析結果に含まれている解析範囲の情報とフロー制御情報から、前述のステップS104と同様に解析データ付与ソースコードを生成する。(ステップS204)
次に、入力された一つまたは複数の不具合識別IDが、全て処理されて解析データ付与ソースコードが生成されていれば、ステップS206へ進み、まだ未処理の不具合識別IDがあれば、ステップS203に戻り繰り返し処理を行う。(ステップS205)
全ての不具合識別IDが処理された場合、解析対象ソースコード生成部131は、生成された全ての解析データ付与ソースコードから、解析対象のソースコードを作成する。(ステップ206)
次に、解析対象ソースコード生成部131は、作成された解析対象のソースコードを静的解析部133に渡し、静的解析部133は静的解析を実施する。(ステップS207)
次に、静的解析部133は、送受信部120と解析データ保管部132に解析結果を渡し、解析データ保管部132は受け取った解析データを保存する。(ステップS208)
最後に、送受信部120は、静的解析部133から受け取った解析結果を入出力部110に通知する。(ステップS209)
以上で、ソースコード静的解析システム100は、一つまたは複数の不具合を修正したソースコードに対する静的解析の動作を終了する。
次に、本発明の第三の実施形態について図面を参照して詳細に説明する。以下、本実施形態の説明が不明確にならない範囲で、前述の説明と重複する内容については説明を省略する。
送受信部620は、静的解析の実施の指示を受け付け、利用者端末640から修正したソースコードのID及び修正された一つまたは複数の不具合識別IDを受信し、解析対象ソースコード生成部631へ渡す。(ステップS305)
解析対象ソースコード生成部631は、渡されたソースコードのIDに対応したソースコードを送受信部620を介してソースコード保管部650から入手する。(ステップS306)
また、解析対象ソースコード生成部631は、渡されたソースコードのIDと不具合識別IDに対応した不具合を示す解析結果の一つを、解析データ保管部632から入手する。(ステップS307)
次に、解析対象ソースコード生成部631は、その不具合を示す解析結果に含まれている解析範囲の情報とフロー制御情報から、解析データ付与ソースコードを生成する。(ステップS308)
次に、渡された一つまたは複数の不具合識別IDが、全て処理されて解析データ付与ソースコードが生成されていれば、ステップS310へ進み、まだ未処理の不具合識別IDがあれば、ステップS307に戻り繰り返し処理を行う。(ステップS309)
一つまたは複数の不具合識別IDが全て処理された場合、解析対象ソースコード生成部631は、生成された全ての解析データ付与ソースコードから、解析対象のソースコードを作成する。(ステップ310)
次に、解析対象ソースコード生成部631は、作成された解析対象のソースコードを静的解析部633に渡し、静的解析部633は静的解析を実施する。(ステップS311)
次に、静的解析部633は、送受信部620と解析データ保管部632に解析結果を渡し、解析データ保管部632は受け取った解析データを保存する。(ステップS312)
最後に、送受信部620は、静的解析部633から受け取った解析結果を利用者端末640上に表示して利用者に通知する。(ステップS313)
以上で、ソースコード静的解析システム600は、利用者端末上で一つまたは複数の不具合の修正がされたソースコードの静的解析の動作を終了する。
110 入出力部
120 送受信部
130 静的解析装置
131 解析対象ソースコード生成部
132 解析データ保管部
133 静的解析部
210 入出力装置
220 CPU
230 メモリ
240 外部記憶装置
250 バス
600 ソースコード静的解析システム
620 送受信部
630 静的解析装置
631 解析対象ソースコード生成部
632 解析データ保管部
633 静的解析部
640 利用者端末
650 ソースコード保管部
Claims (9)
- ソフトウェアのソースコードの解析処理の結果を保存する解析データ保管部と、
前記解析データ保管部に保存した前回解析時の解析結果を参照して、修正されたソースコードを含む対象ソースコードから、修正部分を抽出した再解析用のソースコードを生成する解析対象ソースコード生成部と、
前記再解析用のソースコードの静的解析を実行する静的解析部を備える、静的解析装置。 - 前記解析データ保管部に保存されるソースコードの解析結果は、
前記解析結果を一意に識別可能にする識別IDと、
ソースコードのどの範囲を解析したのかということを表す解析範囲と、
ソースコードのどの処理フローを解析したのかということを示す情報であり、この情報をソースコードに当てはめるとソースコードの処理フローが一意に定まるフロー制御情報と、
不具合の詳細情報である不具合判定、不具合種別、及び不具合発生箇所とを含む、請求項1に記載の静的解析装置。 - 前記解析対象ソースコード生成部は、
前記解析データ保管部に保存されている前記解析範囲の情報から、前記不具合の詳細情報を基に修正したソースコードから修正した該当部分を抽出し、
前記解析データ保管部に保存されている前記フロー制御情報から、解析対象の処理フローに関連するソースコードを生成し、
その生成したソースコードを前記該当部分に付与して再解析用のソースコードを生成する機能を備える、請求項2に記載の静的解析装置。 - ソースコードの表示と修正及びソースコードの解析処理の結果の表示を行う利用者端末と、
前記利用者端末で修正されたソースコード及び修正以前の全てのリビジョンのソースコードを保存するソースコード保管部と、
ソフトウェアのソースコードの解析処理の結果を保存する解析データ保管部と、
前記解析データ保管部に保存した前回解析時の解析結果を参照して、前記ソースコード保管部に保存された前記修正されたソースコードを含む対象ソースコードから、修正部分を抽出した再解析用のソースコードを生成する解析対象ソースコード生成部と、
前記再解析用のソースコードの静的解析を実行する静的解析部と、
を備える、静的解析装置。 - 解析データ保管部に保存された前回解析時の解析結果から、ソースコードのどの範囲をどのような条件で解析した際に不具合が発生したかの情報を取得し、
その取得した情報を基に再解析用のソースコードを生成し、
前記再解析用のソースコードの解析を実行するソースコードの静的解析方法。 - 一つまたは複数の不具合を修正したソースコードを処理対象とする、請求項5に記載のソースコードの静的解析方法。
- 利用者端末は、前回解析時の解析結果を表示し、それを参照しながらソースコードを修正して、引き続き静的解析を指示する、請求項5または6に記載のソースコードの静的解析方法。
- 解析データ保管部に保存された前回解析時の解析結果を参照して、
入力された対象ソースコードから修正部分を抽出した再解析用のソースコードを生成する処理と、
前記再解析用のソースコードの解析を実行する処理を、コンピュータに実行させるプログラム。 - 利用者端末上に前回解析時の解析結果を表示し、それを参照しながらソースコードを修正して、
引き続き静的解析の指示を行う処理をコンピュータに実行させる、請求項8に記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012009955A JP5811859B2 (ja) | 2012-01-20 | 2012-01-20 | ソースコードの静的解析装置、システム、方法、及びそのためのプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012009955A JP5811859B2 (ja) | 2012-01-20 | 2012-01-20 | ソースコードの静的解析装置、システム、方法、及びそのためのプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013149134A JP2013149134A (ja) | 2013-08-01 |
JP5811859B2 true JP5811859B2 (ja) | 2015-11-11 |
Family
ID=49046564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012009955A Expired - Fee Related JP5811859B2 (ja) | 2012-01-20 | 2012-01-20 | ソースコードの静的解析装置、システム、方法、及びそのためのプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5811859B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11269602B2 (en) | 2020-05-15 | 2022-03-08 | Red Hat, Inc. | Detecting native compilation incompatibilities |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103729295A (zh) * | 2013-12-31 | 2014-04-16 | 北京理工大学 | 一种污点传播路径分析方法 |
KR102269335B1 (ko) * | 2019-10-18 | 2021-06-24 | 한전케이디엔주식회사 | 실시간 운영체제 환경에서의 암호 알고리즘 구현 적합성 검증 장치 및 그 방법 |
-
2012
- 2012-01-20 JP JP2012009955A patent/JP5811859B2/ja not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11269602B2 (en) | 2020-05-15 | 2022-03-08 | Red Hat, Inc. | Detecting native compilation incompatibilities |
Also Published As
Publication number | Publication date |
---|---|
JP2013149134A (ja) | 2013-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9632754B2 (en) | Auto generation and linkage of source code to test cases | |
US10049031B2 (en) | Correlation of violating change sets in regression testing of computer software | |
CN111831564A (zh) | 一种回归测试方法、装置及计算设备 | |
US10095512B2 (en) | Program development support device, non-transitory storage medium storing thereon computer-readable program development support program, and program development support method | |
JP2017084082A (ja) | シミュレーション装置、試験シナリオファイル作成方法、及び試験シナリオファイルを用いた試験方法 | |
JP5811859B2 (ja) | ソースコードの静的解析装置、システム、方法、及びそのためのプログラム | |
JP5293521B2 (ja) | デザインルールチェック検証装置およびデザインルールチェック検証方法 | |
KR20140088963A (ko) | 애플리케이션 개발을 위한 런타임 에러 테스팅 시스템 및 방법 | |
JP6567212B2 (ja) | 等価性検証装置および等価性検証プログラム | |
JP2011013887A (ja) | ソフトウェア開発支援装置 | |
KR20120111618A (ko) | Plc 명령어 테스트 장치 및 방법 | |
JP6318976B2 (ja) | デバッグ回路、デバッガ装置、半導体装置及びデバッグ方法 | |
JPWO2012049816A1 (ja) | モデル検査装置、方法及びプログラム | |
KR102002545B1 (ko) | 가상화를 통한 코드 테스트 수행 자동화 방법 및 장치 | |
JP2008262473A (ja) | 設備保全管理システム | |
JP5799589B2 (ja) | 検証方法及び検証プログラム | |
US20240241822A1 (en) | Code implementation missing detection apparatus, code implementation missing detection method and program | |
WO2024195093A1 (ja) | 処理フロー可視化装置、処理フロー可視化方法、および処理フロー可視化プログラム | |
JP2018121245A (ja) | 通信装置、通信仕様差分抽出方法及び通信仕様差分抽出プログラム | |
JP2010097328A (ja) | ループ最適化システム、ループ最適化方法、及びループ最適化用プログラム | |
JP2009217720A (ja) | プログラム生成装置およびプログラム生成方法 | |
JP5949889B2 (ja) | ソフトウェア開発支援装置 | |
JP6576873B2 (ja) | ジョブネット検証装置及びジョブネット検証方法 | |
WO2018122990A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
US20110239193A1 (en) | Using reverse time for coverage analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20141217 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150806 |
|
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: 20150825 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150907 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5811859 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |