JP6731366B2 - ソースコード検証システム - Google Patents

ソースコード検証システム Download PDF

Info

Publication number
JP6731366B2
JP6731366B2 JP2017045606A JP2017045606A JP6731366B2 JP 6731366 B2 JP6731366 B2 JP 6731366B2 JP 2017045606 A JP2017045606 A JP 2017045606A JP 2017045606 A JP2017045606 A JP 2017045606A JP 6731366 B2 JP6731366 B2 JP 6731366B2
Authority
JP
Japan
Prior art keywords
variable
variables
source code
defect
redundant
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
JP2017045606A
Other languages
English (en)
Other versions
JP2018151718A (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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Automotive Systems 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 Automotive Systems Ltd filed Critical Hitachi Automotive Systems Ltd
Priority to JP2017045606A priority Critical patent/JP6731366B2/ja
Publication of JP2018151718A publication Critical patent/JP2018151718A/ja
Application granted granted Critical
Publication of JP6731366B2 publication Critical patent/JP6731366B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Hardware Redundancy (AREA)

Description

本発明はソースコード検証システムに関する。
情報制御システムでは、プログラムの処理の実行タイミングにより発生する不具合が存在することがある。プログラムに並列または並行に実行される複数の実行単位(プロセス、スレッド、タスクなど)があり、それら実行単位処理順序により出力に異常が発生する事象を競合状態という。
競合状態を起こすプログラムの動作の一つに、データ競合がある。データ競合は、並列または並行に実行される複数の実行単位が同一の変数へアクセスし、かつ一つ以上のアクセスは書き込みである時に、データの内容が保障されていないことである。このようなタイミングに依存する不具合は発見が難しく、発生しても再現性がないことで原因究明が難しい場合が多い。
タイミングに依存する不具合の検出に有用な情報の一つに、プログラム依存関係がある。プログラム依存関係は、データ(変数)に影響を与える処理(ステートメント)間の関係を表すものであり、グラフで表現される。プログラム依存関係には、データ依存関係と制御依存関係がある。プログラムに変数a,b,cがあり、処理がb=a,c=bとある時には、b=aからc=bにデータ依存関係がある。また、処理がif(a>0){b=c}とある時には、a>0からb=cに制御依存関係がある。プログラム依存関係を関数間で繋いだものをシステム依存関係という。プログラム依存関係やシステム依存関係はステートメント単位であるが、これらを変数単位で表現したものを変数依存関係という。
上記の依存関係を用いてタイミングに依存する不具合を検出する技術として、特許文献1では、変数依存関係上である実行単位Cに属する変数cが、異なる実行単位Aに属する変数aと、異なる実行単位Bに属する変数bとの間に依存関係を持つ(cがaとbに依存する)ときに、実行単位A,B,Cの実行優先順位や実行周期を比較し、評価している。例えば、実行単位A,B,Cの優先度がL(低)、H(高)、H(高)と異なる場合には整合性が無いと評価し、優先度が一致する場合には整合性があると評価する。整合性がない場合、不具合の可能性があるとして通知する。また、AとBやAとCの実行周期を比較し、相違しているかを評価している。周期が相違する場合、不具合の可能性があるとして通知する。
しかし、タイミングに依存する不具合は、特許文献1の方法では適切に検出できない場合がある。例えば、実行単位Aの1回の実行中に2回読み込まれる変数xが、異なる実行単位Bに一回書き込まれ、かつ実行単位Bの優先度が実行単位Aより高い時に、実行単位Aの2回の読み込みの間に、タスクの開始や割り込み等で実行単位Bが起動して実行単位Bの書き込みが発生すると、変数xの一貫性が損なわれ、データ競合の不具合が発生しうる。逆に実行単位Aの優先度が実行単位Bより高い時には、優先度は「不整合」(一致しない)であるが、不具合は発生しない。データ競合の可能性を検出するには、まず異なる実行単位間での変数への多重アクセスを検出することが必要であり、その上で、優先度の考慮は偽陽性の抑制に有用である。特許文献2では、一つの変数に複数の書き込みまたは読み込みが重なる時のデータ競合に関する不具合の候補を検出する。この技術は、異なる実行単位にまたがる変数依存関係の接続状態から、データ競合の発生しうるプログラムの箇所を示す。
変数依存関係の解析方法は、一例として、特許文献2で示されている。
特開2013−254371号公報 特開2016−91138号公報
情報制御システムでは、システムの高信頼化のために、システムの一部を冗長化することがある。冗長化の例として、センサなどサブシステムに障害が発生したことを検出したり、障害が発生した後でもシステム全体の機能を維持したりするために、前記サブシステムの予備装置をバックアップとして配置する。冗長化されたシステムでは、プログラムも対応して冗長化されることがある。例えば、二重化されたセンサからデータを取得し、取得されたデータから制御のための演算を行うまでの処理を2セット用意し、2つの処理結果を突き合わせる。この2つの処理には、同種の情報を扱う変数がペアで用意される。本明細書では、冗長化されたサブシステムにある同種情報を扱う変数を冗長系変数と呼ぶ。
冗長系変数が一致しない場合には、対応するサブシステムに障害が発生していることが判明し、障害対応処理を行うことができる。この冗長系変数でも競合状態が発生しうる。冗長系変数の読み込み処理と書き込み処理のタイミングによっては、冗長系変数間の一貫性が失われるためである。競合状態の影響の例として、2つの処理間の一致性判定結果の正確性が失われ、システムの出力は設計から乖離する。特許文献2で検出できる不具合は、対象が同一変数への多重アクセスに限定されている。
このため、上記の従来技術では、冗長系変数間の競合状態により不具合が発生する場合に不具合を検出することができないという問題がある。
そこで、本発明は、冗長系変数間の競合状態による不具合の可能性を検出し、検証者に対して有用な情報を適切に提供することができるソースコード検証システムを提供することを目的とする。
本発明は、プログラムに含まれる依存関係に関する依存関係データと、同種の情報を扱う変数である冗長系変数のグループを示す冗長系変数データとに基づいて、冗長系変数を含む依存関係からプログラムが競合状態を起こす可能性を検出する不具合検出手段と、前記不具合に関する情報を出力する検査結果出力手段と、を備えることを特徴とする。
本発明によれば、検証者に対して有用な情報を適切に提供することができる。
本発明の実施形態に係るシステム構成。 ソースコード検証プログラムの構成。 ソースコード検証プログラムの処理フロー。 競合状態検査の処理フロー。 サンプルコード。 サンプルコードの冗長系変数データ。 サンプルコードの変数依存関係のグラフ。 サンプルコードの検査結果の出力ファイル。
以下、図面を用いて本発明の実施形態について説明を行う。
図1は、本実施形態に係るソースコード検証システムの構成図である。このソースコード検証システムは、ソフトウェアツールとして実現されている。各機能はソフトウェアとして実装されており、表示画面、主演算装置、主記憶装置(メインメモリ)、ハードディスク等の記憶媒体、キーボードやポインティングデバイス等の入力装置を備えるコンピュータ上で実行される。
ソースコード検証システムを実現するソフトウェアは、ソースコード検証プログラム120として、コンピュータ110のROM113に格納されており、CPU111により読み出されて実行される。コンピュータ110はソースコード検証プログラム120によって規定された処理を実行する。検査対象であるソースコードなどのファイルは、コンピュータ110上のハードディスク114に格納されている。ソースコード検証プログラム120に対するユーザ操作は、キーボードなどの入力装置130から行うことができる。ソースコード検証プログラム120による出力は、ディスプレイなどの表示装置140への表示や、ハードディスク114へのデータファイルの生成として成されるが、図示しない外部コンピュータへのネットワークを介した出力、CD−ROMなどの外部記憶媒体へのデータファイル形式での書き込みによる出力であってもよい。
図2は、ROM113に格納されたソースコード検証プログラム120の構成を示している。ソースコード検証プログラム120は、ハードディスク114に格納されたソースコード200と、実行単位情報210と、冗長系変数データ220とを入力とし、不具合箇所の候補を表示装置140にて表示し、ファイルとしてハードディスク114に出力する。実行単位情報210は各実行単位の優先度(Prio)と実行開始点(Starting_Pt)の情報を含めている。実行開始点(Starting_Pt)は、ソースコード200が実行形式にコンパイルされ、リアルタイムOS(Operating System)などにより実行される時、最初に実行される点(C言語では関数)である。
ソースコード検証プログラム120は、依存関係解析部230、冗長系変数検索部240、同一変数検索部250、競合状態検査部260、結果表示部270、結果出力部280とからなる。依存関係解析部230は、実行単位情報210に基づいてソースコード200の依存関係を解析し、その依存関係から、ユーザが指定した変数に関連する変数依存関係(Dep)を抽出する。
冗長系変数検索部240は、冗長系変数データ220と、依存関係解析部230により抽出された変数依存関係(Dep)とから、その変数依存関係(Dep)にある冗長系変数を検索し、同種情報を扱う冗長系変数のグループごとに、冗長系変数のある箇所(Red_Var)を出力する。
同一変数検索部250は、依存関係解析部230により抽出された変数依存関係(Dep)から、その変数依存関係上に複数回出現する同一変数を検索し、その同一変数のある箇所(Same_Var)を変数ごとに出力する。競合状態検査部260は、依存関係解析部230により抽出された変数依存関係(Dep)と、冗長系変数検索部240により発見された冗長系変数のある箇所(Red_Var)と、同一変数検索部250により発見された同一変数のある箇所(Same_Var)とから、冗長系変数や同一変数の競合状態が発生しうる箇所(Race_Info)を不具合箇所の候補として検出する。
結果表示部270は、競合状態検査部260により検出された不具合箇所の候補(Race_Info)を、表示装置140にて、依存関係をグラフ化したツリー上に表示する。結果出力部280は、競合状態検査部260により検出された不具合箇所の候補(Race_Info)をファイルとしてハードディスク114に出力する。
図3は、ソースコード検証プログラム120が実行する処理フローである。ステップ300で処理が開始される。
ステップ310にて依存関係解析部230は、実行単位優先度(Prio)と実行開始点(Starting_Pt)を含む実行単位情報210に基づいて、ソースコード200の依存関係を解析し、その依存関係から、ユーザが指定した変数に関連する変数依存関係(Dep)を抽出する。
ステップ320にて同一変数検索部250は、依存関係解析部230により抽出された変数依存関係(Dep)を入力とし、その依存関係上に複数回出現する同一変数を検索し、その同一変数のある箇所(Same_Var)を出力する。
ステップ330にて冗長系変数検索部240は、冗長系変数データ220と、依存関係解析部230により抽出された変数依存関係(Dep)とから、その変数依存関係(Dep)にある冗長系変数を検索し、同種情報を扱う冗長系変数のグループごとに、冗長系変数のある箇所(Red_Var)を出力する。
ステップ340にて競合状態検査部260は、依存関係解析部230により抽出された変数依存関係(Dep)と、冗長系変数検索部240により発見された冗長系変数のある箇所(Red_Var)と、同一変数検索部250により発見された同一変数のある箇所(Same_Var)とに基づいて、冗長系変数や同一変数の競合状態が発生しうる箇所(Race_Info)を不具合箇所の候補として検出する。ステップ350にて結果表示部270は、競合状態検査部260により検出された不具合箇所の候補(Race_Info)を表示装置140にて依存関係をグラフ化したツリー上で表示する。ステップ360にて結果表示部280は、前記不具合箇所の候補(Race_Info)をファイルとしてハードディスク114に出力する。
図4は、競合状態検査部260によるステップ340の処理を詳細化したフローである。この処理は、冗長系変数検索部240により発見された冗長系変数のグループや、同一変数検索部250により発見された同一変数それぞれについてについて実行される。
ここで「変数1」と「変数2」は、冗長系変数であれば同種情報を扱う異なる変数(変数名などが異なる)であり、同一変数であれば同じ変数であれば同じ変数であるが、どちらの場合も、ソースコードの異なる位置に記載されたものを指している。
また、図4のフローでは冗長系変数や同一変数の出現数は2つの時を扱っているが、3つ以上ある場合は、任意ペアごとにこの処理を実行すると良い。また、冗長系変数や同一変数のグループは一つに限定されていない。冗長系変数や同一変数のグループが複数ある場合は、グループごとにこの処理を実行すれば良い。
ステップ400で処理が開始される。
ステップ410では、依存関係解析部230により抽出された変数依存関係から、変数1に影響されている(間接影響も含む)変数を抽出する。ここで間接影響とは、異なる実行単位の間に存在する依存関係のことである。
ステップ420では、前記依存関係から、変数2に影響されている(間接影響も含む)変数を抽出する。ステップ425では、ステップ410で抽出された変数とステップ420で抽出された変数とに共通する変数があるかを判定する。共通する変数があれば、ステップ430へ進む。そうでなければ、ステップ490へ進む。
ステップ430では、ステップ410で抽出された変数とステップ420で抽出された変数とに共通して存在し、かつ変数1,2に最も近い変数(以降では「共通影響変数」と呼ぶ)を抽出する。
ステップ440では、変数1から共通影響変数への依存関係に間接影響があるかを判定する。間接影響があれば、ステップ450へ進む。そうでなければ、ステップ490へ進む。
ステップ450では、変数2から共通影響変数への依存関係に間接影響があるかを判定する。変数2と共通影響変数間の依存関係に間接影響があれば、ステップ460へ進む。そうでなければ、ステップ490へ進む。
ステップ460では、実行単位情報210に実行単位優先度情報があるかを判定する。実行単位情報210に実行単位優先度情報があれば、ステップ470へ進む。そうでなければ、ステップ480へ進む。
ステップ470では、ステップ440やステップ450にて検出された間接影響において、書き込み側は優先されるか、つまり書き込み側の優先度が読み込み側の優先度より高いかを、前記実行単位優先度情報から判定する。書き込み側の優先度は、間接影響の依存先(影響を与える側)の変数が属する実行単位の値を利用する。書き込み側が優先されれば、ステップ480へ進む。そうでなければ、ステップ490へ進む。
ステップ480では、対象とした冗長系変数や同一変数について、競合状態による不具合の可能性を検出する。また、共通影響変数を競合状態による影響が発生する箇所として、ステップ440やステップ450で検出された間接影響の前後の変数を競合状態に関与する書き込み変数と読み込み変数として、検出する。ステップ490にて本フローを終了する。
以上の構成と処理により、同一変数だけでなく、冗長系変数のグループについても競合状態が発生しうるかを判定し、発生箇所を検出できる。また、実行単位優先度情報に基づいて、実行単位の優先順位を考慮することにより、競合状態の検査結果の偽陽性を減らすことができる。
図5は検証対象となるサンプルグログラムのソースコード200の一部を示している。本実施例では、ソースコードはC言語で記述されているものとする。ソースファイル510、520、530からなるソースコードの構成を以下に説明する。主処理は関数funcである。関数inputは割込みにより実行される設定となっており、二重化センサ値DI0、DI1をそれぞれ変数a,bに代入する。センサが正常に動作する時には、二重化センサ値DI0、DI1の値は同じであるが、その値はいつでも変化しうる。関数funcでは、変数a、bを2倍する処理をそれぞれ関数calc1,calc2で冗長に行い、2つの計算結果x1,x2を比較して、一致していれば計算結果を確定させて変数xに代入し、一致していなければエラー対処を関数err_handleで行なう。実行単位情報210は図5に示されていないが、実行開始点は関数funcと関数inputであり、関数funcは優先度1、関数inputは優先度2で、関数inputの優先度は関数funcのそれより高い。
図6は、図5のサンプルソースコードの冗長系変数データファイル600であり、図2の冗長系変数データ220に対応している。本実施例では、冗長系変数データはXMLで記述されているものとする。冗長系変数データ600の構成を以下に説明する。要素redundant_varsは冗長系変数データの全体を意味する。要素varsetは一組の冗長系変数を意味する。要素varsetにvar1,fn1,path1,var2,fn2,path2六つの属性がある。var1とvar2は冗長系変数の変数名を意味する。fn1とfn2は冗長系変数がローカル変数の時、冗長系変数が定義された関数名を意味する。path1とpath2は冗長系変数がスタティック変数の時、冗長系変数が定義されたファイルを意味する。冗長系変数はグローバル変数であれば、fn1,fn2,path1,path2の入力は不要である。ファイル600に示すように、グローバル変数aとbは冗長系変数のグループに指定されている。
図7は、図5のサンプルソースコードを依存関係解析部230が解析し、変数xをルートとするツリーとして抽出した変数依存関係データをグラフ化したツリー700である。変数依存関係データやツリー700にて、ノードは変数を示しており、変数は記述位置や属する実行単位で区別されている。例えばx@016は、016行目の変数xを意味している。各変数が属する実行単位や関数は図には示されていないが、データには含まれる。ツリー700では、if文のような制御構文もノードとして扱っている。斜め線のついている変数ノードは、当該ノードがツリーの他の箇所に既出であり、下位ノードを省略していることを意味している。矢印が依存関係を示しており、ここでは矢印の元が依存先つまり変数値に影響を与える方、矢印の先が依存元つまり影響を受ける方である。これはデータ依存関係と制御依存関係の両方を含む。また実線の矢印は依存先と依存元の変数が同一の実行単位に含まれることを意味し、破線の矢印は依存先と依存元の変数が異なる実行単位に属することを意味する。
競合状態検査部260はステップ410からステップ480までの処理にて、ツリー700に示された変数依存関係にある冗長系変数の競合状態の可能性を検出する。冗長系変数はファイル600に指定されたグローバル変数a,bであるため、冗長系変数検索部240は、ツリー700から、同種情報を扱う冗長系変数のグループとしてa@104,a@204,b@109,b@205を抽出する。前記グループに四つのメンバーがあるため、変数名が異なる任意ペアごとに、ステップ410からステップ480までの処理を実行する。前記任意ペアには、a@104とb@109,a@104とb@205,a@204とb@109,a@204とb@205の四つの可能性がある。実際に競合状態を検出するペアであるa@204とb@205を代表例として、以下に説明する。a@204とb@205について、競合状態検査部260はステップ410からステップ480までの処理を実行する。この時、変数1はa@204、変数2はb@205である(変数1はb@205、変数2はa@204にしても良い)。
ステップ410では、ツリー700に示された変数依存関係から、変数1(a@204)に影響されている(間接影響も含む)変数を抽出する。抽出される変数はa@104,x1@104,x1@016,x@016である。
ステップ420では、ツリー700から、変数2(b@205)に影響されている(間接影響も含む)変数を抽出する。抽出された変数はb@109,x2@109,x2@012,x@016である。
ステップ430では、ステップ410で抽出された変数とステップ420で抽出された変数とに共通し、かつ変数1(a@204),変数2(b@205)に最も近い変数(共通影響変数)を抽出する。ツリー700では、共通影響変数はx@016である。
ステップ440では、変数1(a@204)から共通影響変数(x@016)への依存関係に間接影響があるかを判定する。a@204の実行単位は実行開始点がinputのもの、a@104の実行単位は実行開始点がfuncのものであるため、このノード間に間接影響が存在する。このため、ステップ450へ進む。
ステップ450では、変数2(b@205)から共通影響変数(x@016)への依存関係に間接影響があるかを判定する。b@205の実行単位は実行開始点がinputのもの、b@109の実行単位は実行開始点がfuncのものであるため、このノード間に間接影響が存在する。このため、ステップ460へ進む。
ステップ460では、実行単位情報210に実行単位優先度情報があるかを判定する。ツリー700では、実行単位優先度情報があるため、ステップ470へ進む。
ステップ470では、異なる実行単位の書き込み側は優先されるかを前記実行単位優先度情報から判定する。ツリー700では、異なる実行単位の書き込み側はa@204とb@205である。a@204とb@205はどちらも優先度が一番高い関数inputに定義されているため、異なる実行単位の書き込み側が優先されると判定し、ステップ480へ進む。ステップ480では、冗長系変数a,bについて、競合状態による不具合の可能性を検出する。また、異なる実行単位間で依存関係を持つ変数を競合状態に関与する箇所として検出する。ツリー700では、異なる実行単位間の依存関係はa@204からa@104への依存関係と、b@205からb@109への依存関係とであるため、a@204とa@104およびb@205とb@109を競合状態に関与する書き込み変数、読み込み変数として検出する。さらに、共通影響変数x@016を不具合の発生しうる箇所として検出する。
結果表示部270はステップ350にて、ツリー700のような依存関係ツリーの表示を生成し、競合状態に関与する箇所や共通影響変数のノードをマークすることができる。ツリー700では、a@204,a@104,b@205,b@109は競合状態に関与する箇所のノードとしてマークされる。マークされたツリーは、表示装置140により表示される。図7のツリー上で競合状態に関与する箇所をマークし、表示装置140に表示することにより、競合状態が発生する理由を依存関係から把握することができる。
図8は結果出力部280により出力されたファイル800である。本実施例では、このファイルはXMLで記述されているものとする。
ファイル800は競合状態検査部260により検出された各競合状態に関与する箇所(a@204,a@104,b@205,b@109)のツリー700上の位置を示している。要素dataracesは競合状態に関与する箇所の一覧を意味する。要素dataracesにconsiderPriorityという属性があり、ステップ350の処理において実行単位優先度を考慮したかを意味する。
要素racepointは要素dataracesに所属し、競合状態に関与する箇所の一つを意味する。要素racepointにidという属性があり、当該競合状態に関与する箇所の番号を意味する。要素read_varは要素racepointに所属し、ツリー700のルートノードから競合状態に関与する読み込み変数へのパスを示している。
要素tpは前記パスにあるノードの一つを意味する。要素tpにnameという属性があり、当該ノードの変数や制御文の名前を示している。要素tpのidxという属性は当該ノードの番号であり、ツリー上の兄弟ノードとの相対的位置を示している。
図8のように出力されると、競合状態に関与する箇所の一覧により、ツリー700において競合状態の発生しうる箇所を全体的に把握することができる。また、変数ツリー上で各競合状態に関与する箇所を追うこともできる。
以上のように、本実施形態に係るソースコード検証システムによれば、同一変数だけだはなく冗長系変数の競合状態の可能性やその箇所を検出することができ、検証者に対して有用な情報を適切に提供することができる。
114 ハードディスク
120 ソースコード検証プログラム
140 表示装置
200 ソースコード
210 実行単位情報
220 冗長系変数データ
230 依存関係解析部
240 冗長系変数検索部
250 同一変数検索部
260 競合状態検査部
270 結果表示部
280 結果出力部

Claims (5)

  1. プログラムに含まれる依存関係に関する依存関係データと、同種の情報を扱う変数である冗長系変数のグループを示す冗長系変数データに基づいて、冗長系変数を含む依存関係からプログラムが競合状態による不具合を起こす可能性を検出する不具合検出手段と、
    前記不具合に関する情報を出力する検査結果出力手段と、
    を備えることを特徴とする、ソースコード検証システム。
  2. 前記不具合検出手段は、不具合に関与する変数を特定し、前記検査結果出力手段が前記不具合に関与する変数を出力することを特徴とする、請求項1に記載のソースコード検証システム。
  3. 前記検査結果出力手段は、前記検査結果出力手段から出力される前記不具合に関与する変数を前記依存関係データのグラフで表示することを特徴とする、請求項2に記載のソースコード検証システム。
  4. 前記依存関係データのグラフはツリーであることを特徴とする、請求項3に記載のソースコード検証システム。
  5. 前記不具合検出手段は、前記プログラムの実行単位の優先度に関する情報に基づいて、前記不具合に関与する変数から、前記プログラムの実行単位の優先度により不具合にならない変数を除外することを特徴とする、請求項1に記載のソースコード検証システム。
JP2017045606A 2017-03-10 2017-03-10 ソースコード検証システム Active JP6731366B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017045606A JP6731366B2 (ja) 2017-03-10 2017-03-10 ソースコード検証システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017045606A JP6731366B2 (ja) 2017-03-10 2017-03-10 ソースコード検証システム

Publications (2)

Publication Number Publication Date
JP2018151718A JP2018151718A (ja) 2018-09-27
JP6731366B2 true JP6731366B2 (ja) 2020-07-29

Family

ID=63680445

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017045606A Active JP6731366B2 (ja) 2017-03-10 2017-03-10 ソースコード検証システム

Country Status (1)

Country Link
JP (1) JP6731366B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7031627B2 (ja) * 2019-03-13 2022-03-08 オムロン株式会社 解析装置、解析方法、及び解析プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008102686A (ja) * 2006-10-18 2008-05-01 Yokogawa Electric Corp フィールド制御装置
JP2013254371A (ja) * 2012-06-07 2013-12-19 Toyota Motor Corp ソフトウェア開発支援装置、ソフトウェア開発支援方法及びソフトウェア開発支援プログラム
JP6416588B2 (ja) * 2014-10-31 2018-10-31 日立オートモティブシステムズ株式会社 ソースコード検証システム

Also Published As

Publication number Publication date
JP2018151718A (ja) 2018-09-27

Similar Documents

Publication Publication Date Title
US11386154B2 (en) Method for generating a graph model for monitoring machinery health
Ding et al. Towards the use of the readily available tests from the release pipeline as performance tests: Are we there yet?
Chen et al. PerfJIT: Test-level just-in-time prediction for performance regression introducing commits
US20140351793A1 (en) Prioritizing test cases using multiple variables
US9208451B2 (en) Automatic identification of information useful for generation-based functional verification
US9619356B2 (en) Detection of hardware errors using periodically synchronized redundant transactions and comparing results from cores of a multi-core processor
Haben et al. A replication study on the usability of code vocabulary in predicting flaky tests
US20120185731A1 (en) Precise fault localization
Lampel et al. When life gives you oranges: detecting and diagnosing intermittent job failures at mozilla
JP2015011372A (ja) デバッグ支援システム、方法、プログラム及び記録媒体
WO2013058393A1 (ja) 異常検出装置、プログラム、及び、方法
CN110457070B (zh) 验证方法及装置以及相关产品
US8589734B2 (en) Verifying correctness of processor transactions
Zaman et al. Scminer: Localizing system-level concurrency faults from large system call traces
CN118152298A (zh) 内存的访问检测方法及其装置、电子设备以及计算机存储介质
JP6731366B2 (ja) ソースコード検証システム
US11249890B2 (en) Software defect creation
US11163674B1 (en) System and method for identifying a faulty component in a spectrum ambiguity group
Munson et al. Toward a quantifiable definition of software faults
US11086768B1 (en) Identifying false positives in test case failures using combinatorics
JP6878707B2 (ja) 試験装置、試験方法および試験プログラム
JP6369269B2 (ja) 検証支援装置、検証支援方法およびコンピュータプログラム
JP7447044B2 (ja) プログラム分析装置、プログラム分析方法およびトレース処理追加装置
CN114153750B (zh) 代码检查方法及装置、代码编写方法、电子设备
Odeh Software Source Code: Theoretical Analyzing and Practical Reviewing Model

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170313

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191029

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20191107

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20191114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191211

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200706

R150 Certificate of patent or registration of utility model

Ref document number: 6731366

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250