WO2014112303A1 - データ更新漏れ検査装置、データ更新漏れ検査方法、データ更新漏れ検査プログラム - Google Patents

データ更新漏れ検査装置、データ更新漏れ検査方法、データ更新漏れ検査プログラム Download PDF

Info

Publication number
WO2014112303A1
WO2014112303A1 PCT/JP2013/084612 JP2013084612W WO2014112303A1 WO 2014112303 A1 WO2014112303 A1 WO 2014112303A1 JP 2013084612 W JP2013084612 W JP 2013084612W WO 2014112303 A1 WO2014112303 A1 WO 2014112303A1
Authority
WO
WIPO (PCT)
Prior art keywords
update
variable
program
program block
unit
Prior art date
Application number
PCT/JP2013/084612
Other languages
English (en)
French (fr)
Japanese (ja)
Inventor
美和子 長谷川
Original Assignee
日産自動車株式会社
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 日産自動車株式会社 filed Critical 日産自動車株式会社
Priority to JP2014557376A priority Critical patent/JP5967225B2/ja
Priority to CN201380069207.8A priority patent/CN104885060B/zh
Publication of WO2014112303A1 publication Critical patent/WO2014112303A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Definitions

  • the present invention relates to a data update omission inspection device, a data update omission inspection method, and a data update omission inspection program.
  • Patent Document 1 discloses a software inspection device that detects a shared resource to be managed by an individual semaphore among a plurality of shared resources (variable groups) managed by one semaphore by static analysis of source code.
  • Software inspection devices are known.
  • the software inspection apparatus disclosed in Patent Document 1 includes a means for specifying a variable group protected by one semaphore, and determines whether or not the variable group is simultaneously accessed in a section protected by one semaphore. Can be confirmed.
  • Patent Document 1 since the software inspection apparatus disclosed in Patent Document 1 only targets the protection section by the semaphore, it cannot inspect the section that is not protected by the semaphore. For this reason, in a section not protected by a semaphore, it is not possible to check for a variable update omission with respect to a variable group (a plurality of variables) that need to be accessed simultaneously to represent one state or information.
  • the present invention has been made in view of the above problems, and its object is to make it possible for a user to indicate the possibility of omission of update of variables for a plurality of variables that need to be updated simultaneously to represent one state or information.
  • the present invention provides a data update omission inspection apparatus, a data update omission inspection method, and a data update omission inspection program.
  • An update omission inspection apparatus classifies statements included in a computer program to be inspected into a plurality of program blocks, and extracts a variable updated in the program block for each program block.
  • the update variable set corresponding to each program block is specified, and at least one of the plurality of update variable sets is specified as a group variable.
  • the update variable set corresponding to the program block and the inclusion relation of the group variable are used to determine the degree of simultaneous update of the program block, and the result is output.
  • An update omission check apparatus extracts a program block whose degree of simultaneous update is determined to be a part, and outputs information specifying the extracted program block in association with the determination result Is preferred.
  • An update omission inspection apparatus is as follows.
  • the number of program blocks for which the degree of simultaneous update is determined to be partial and the sum of the number of program blocks for which the degree of simultaneous update is determined to be complete It is preferable to calculate the ratio of the numbers and output the calculated ratio in association with the determination result.
  • the program block when there is a program block whose degree of simultaneous update is determined to be a part of a plurality of program blocks, the program block is selected from among the elements of the group variable. It is preferable to extract elements that do not belong to the update variable set corresponding to, and output them in association with the determination results.
  • the update omission check apparatus uses information for specifying a group variable as a determination result when a plurality of program blocks do not include a program block whose degree of simultaneous update is determined to be a part. It is preferable to output in association.
  • FIG. 1 is a block diagram showing a hardware configuration of a data update omission inspection apparatus according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing a functional configuration of the CPU 11.
  • FIG. 3 is a flowchart showing a flow of information processing executed by the data update omission inspection apparatus according to the embodiment of the present invention.
  • FIG. 4A, FIG. 4B, and FIG. 4C are diagrams showing an example of a computer program described in C language as the source code D01 read by the source code input unit 21.
  • FIG. 5 is a table showing an example of the block separator list D03 of FIG. 2 referred to by the program block specifying unit 31.
  • FIG. 6 is a table showing an example of the entry point list D02.
  • FIG. 7 is a table showing an example of an execution function table created by the execution function analysis unit 30.
  • FIG. 8 is a flowchart illustrating an example of a detailed processing procedure of steps S03 and S04.
  • FIG. 9 is a table summarizing the results of classifying the statements included in the computer program shown in FIGS. 4A, 4B, and 4C into a plurality of program blocks.
  • FIG. 10 is a table showing an example of an update variable table in which variables extracted from statements included in the computer program shown in FIGS. 4A, 4B, and 4C are registered.
  • FIG. 11 is a table showing a list of update variable sets and group variables specified in step S05, and a correspondence relationship between update variable sets and group variables.
  • FIG. 12 is a flowchart illustrating an example of a detailed processing procedure of step S06.
  • FIG. 13 is a table showing a “variable update synchronization list” that summarizes the processing results of step S06 of FIG.
  • FIG. 14 is a table in which the update omission location extracted in step S07 of FIG. 3, the degree of coupling calculated in step S08, and the set of update omission variables extracted in step S09 are summarized for each group variable.
  • FIG. 15 is a table showing an example of the determination result output in step S10.
  • FIG. 16 is a diagram illustrating an example of a computer program to be inspected.
  • the data update omission inspection apparatus can be applied to a data update omission inspection process of a computer program executed by, for example, an electronic control unit (ECU) mounted on a vehicle.
  • ECU electronice control unit
  • the possibility of missing updates of the variable is checked.
  • the data update omission inspection device includes an input / output device 12 that reads a computer program (source code D01) to be inspected and data necessary for the inspection (including an entry point list D02 and a block separator list D03) from a storage medium;
  • a storage device 14 for storing the source code D01 read by the output device 12 and intermediate data for analysis, a CPU (central processing unit) 11 for executing various operations and analyzing the source code D01, and information necessary for analysis by the user Input device 13 and display device 15 for displaying the inspection result output from CPU 11.
  • the inspection result can also be written to a storage medium using the input / output device 12.
  • Examples of the storage device 14 include a memory and a hard disk, and data is input and output between the storage device 14 and a CPU (central processing unit) 11.
  • the data update omission inspection device can be realized as a client server model.
  • a general-purpose personal computer (client) is connected to the server via a computer network.
  • a server placed in a remote environment including the CPU 11 shown in FIG. 1 can be connected to the input / output device 12, the input device 13, the storage device 14, or the display device 15 included in the client via a computer network.
  • the data update omission inspection device is mainly configured by the CPU 11 (server), and the input / output device 12, the input device 13, the storage device 14, or the display device 15 is not included in the data update omission inspection device.
  • a computer program for causing a computer including the CPU 11 to function as a data update omission inspection device is installed in the computer including the CPU 11 and executed.
  • CPU11 functions as each information processing part shown below.
  • the data update omission check apparatus is realized by software.
  • the data update omission check apparatus is configured by preparing dedicated hardware for executing the following information processing. It is also possible.
  • the CPU 11 functions as a source code input unit 21, a program block classification unit 22, an update variable extraction unit 23, a group variable identification unit 24, a simultaneity determination unit 25, and an inspection result output unit 29.
  • the program block classification unit 22 includes an execution function analysis unit 30 and a program block identification unit 31.
  • the source code input unit 21 reads a computer program (source code D01) to be inspected from the input / output device 12 or the input device 13, and stores it in the storage device 14.
  • the execution function analysis unit 30 analyzes the source code D01 read by the source code input unit 21. Specifically, using the entry point list D02 input from the input / output device 12 or the input device 13, a function to be called directly and indirectly in the source code D01 is specified.
  • the entry point list D02 will be described later with reference to FIG.
  • the program block specifying unit 31 classifies statements included in the function specified by the execution function analyzing unit 30 as block separators.
  • the program block specifying unit 31 refers to the block separator list D03 and classifies the statements with the block separator as a break.
  • the block separator list D03 is input from the input / output device 12 or the input device 13.
  • the data update omission check apparatus treats the block separator list D03 shown in FIG. 5 as the default value of the block separator. It is arbitrary whether the user gives as input or uses the default block separator.
  • the block separator list D03 will be described later with reference to FIG.
  • a “statement” is a processing unit for each line on the source code.
  • the program block classification unit 22 can classify all valid statements included in the source code D01 into a plurality of program blocks by the processing operations of the execution function analysis unit 30 and the program block identification unit 31 described above. All valid statements included in the source code D01 are classified as belonging to at least one program block of the plurality of program blocks or belonging to only one of the plurality of program blocks.
  • the update variable extraction unit 23 extracts a variable to be updated in the program block.
  • the update variable extraction unit 23 extracts the above-described variables for each program block included in the plurality of program blocks classified by the program block classification unit 22.
  • the processing by the update variable extracting unit 23 can be performed simultaneously with the processing by the program block specifying unit 31.
  • the group variable specifying unit 24 specifies, for each program block, a set (update variable set) having the variable (update variable) extracted by the update variable extracting unit 23 as an element corresponding to the program block, and a plurality of update variables At least one of the sets is identified as a group variable.
  • a case will be described in which the above group variables are specified for all program blocks included in a plurality of program blocks.
  • the simultaneity determination unit 25 compares, for each program block, an element belonging to the update variable set specified by the group variable specifying unit 24 and an element belonging to the group variable specified by the group variable specifying unit 24. Then, using the inclusion relationship between the update variable set and the group variable, the simultaneity determination unit 25 determines the degree of simultaneous update of the program block for each program block. The determination is performed in three stages of “complete”, “part”, and “none”, and the determination method will be described later.
  • the inspection result output unit 29 outputs at least the determination result by the concurrency determining unit 25 to the storage medium inserted in the display device 15 or the input / output device 12 as the data update omission inspection result D04.
  • the data update omission inspection result D04 will be described later with reference to FIG.
  • the CPU 11 further functions as the update omission location extraction unit 26.
  • the update omission part extraction unit 26 extracts the program block determined by the simultaneity determination unit 25 that the degree of simultaneous update is partial.
  • the inspection result output unit 29 outputs information specifying the program block extracted by the update omission part extraction unit 26 in association with the determination result by the simultaneity determination unit 25.
  • the CPU 11 further functions as the coupling degree calculation unit 27.
  • the degree-of-association calculating unit 27 obtains the number of program blocks (the sum of the number of partially overlapping blocks and the number of completely overlapping blocks) determined by the concurrency determining unit 25 that the degree of simultaneous update is partial or complete. Further, the coupling degree calculation unit 27 obtains the number of program blocks (the number of completely duplicated blocks) determined by the simultaneity determination unit 25 that the simultaneous update degree is complete. Then, the degree-of-joint calculation unit 27 calculates the ratio of the number of completely duplicated blocks to the sum of the number of partially duplicated blocks and the number of completely duplicated blocks (“jointness”).
  • the inspection result output unit 29 outputs the ratio calculated by the coupling degree calculation unit 27 in association with the determination result by the simultaneity determination unit 25.
  • the CPU 11 further functions as the update omission variable extraction unit 28. If there is a program block determined by the concurrency determination unit 25 that the degree of simultaneous update is a part of the plurality of program blocks, the update omission variable extraction unit 28 selects the program from the group variable elements. Extract elements that do not belong to the update variable set corresponding to the block. The inspection result output unit 29 outputs the element extracted by the update omission variable extraction unit 28 in association with the determination result.
  • test result output unit 29 uses the group variable as information for specifying the group variable. A list of variables belonging to is output in association with the judgment result.
  • step S01 the source code input unit 21 reads the source code D01 to be inspected from, for example, the input / output device 12, and stores it in the storage device 14.
  • the source code D01 may be read in advance by the user into the data update omission inspection device using the input / output device 12 and stored in the storage device 14. In this case, the process of step S01 is unnecessary.
  • 4 (a), 4 (b), and 4 (c) show an example of a computer program described in C language as the read source code D01.
  • the computer program to be inspected is described across the three files shown in FIGS. 4 (a), 4 (b), and 4 (c).
  • the file name in FIG. 4A is “File1.c”, the file name in FIG.
  • the computer program describes four functions.
  • the function “Task1” is described in “File1.c” in FIG.
  • the function “Task1” calls two functions “Func1” and “Func2” and ends.
  • the function “Func1” is described in “File2.c” in FIG.
  • the function “Func2” is described in “File3.c” in FIG.
  • the function “Func3” is also described in “File3.c” in FIG.
  • the function “Func3” is a function that is not executed because it is not called by the function “Task1”.
  • “Sem_Lock (ID1)” indicates the start instruction of the protection interval by the semaphore of “ID1”
  • “Sem_UnLock (ID1)” indicates the instruction of the end of the protection interval by the semaphore of “ID1”.
  • step S02 the execution function analysis unit 30 uses the entry point list D02 to specify a function to be called directly and indirectly in the source code D01.
  • Each identified function is assigned a function ID.
  • the table in FIG. 6 shows an example of the entry point list D02.
  • the “entry point” indicates a location where the computer program is started.
  • a plurality of different entry points may be set according to an on operation of an ignition switch and an on operation of an air conditioner switch.
  • the function “Task1” is defined as an entry point.
  • the execution function analysis unit 30 first specifies the function “Task1”, and then specifies the function “Func1” and the function “Func2” that are called by the subroutine call. Since the function “Func3” is not called by the function “Task1”, the execution function analysis unit 30 does not specify the function “Func3”.
  • step S03 the program block specifying unit 31 classifies the statements included in the functions “Task1,” “Func1,” and “Func2” for each program block with the block separator as a break. Each classified program block is given a block ID.
  • the execution function analysis unit 30 can specify all the functions that are called from the entry point as a base point among the functions included in the source code D01 by the processing in step S02 described above. Further, by the process of step S03, the program block classification unit 22 reads all valid statements included in the source code D01, and classifies all valid statements included in the source code D01 into a plurality of program blocks. can do.
  • step S04 the update variable extraction unit 23 extracts, as update variables, variables updated in the program blocks for each program block included in the plurality of program blocks classified by the program block classification unit 22. To do.
  • step S03 and step S04 indicated by reference numeral F01 in the flowchart of FIG. 3 can be executed simultaneously.
  • an example of a detailed processing procedure of step S03 and step S04 will be described with reference to the flowchart of FIG.
  • step S103 the program block specifying unit 31 reads a statement included in the function (target function) specified by the function ID initialized in step S101 into the memory.
  • the program block specifying unit 31 refers to the block separator list D03 and determines whether or not the first statement (target statement) among the read statements matches the block separator.
  • the table in FIG. 5 shows an example of the block separator list D03. In the block separator list D03, the separator ID, the processing content, and the source code description (block separator) are described.
  • the “block separator” includes an instruction that becomes a turning point of processing of the source code D01, for example, a branch instruction or a jump instruction.
  • the program block specifying unit 31 determines whether or not the target statement matches the source code description (block separator) described in the table of FIG.
  • step S104 If the target statement does not match the block separator (NO in step S104), the process proceeds to step S105, and a block ID is attached to the target statement.
  • step S106 the update variable extraction unit 23 registers the variable to be updated in the target statement in the “update variable table”. Thereafter, the process proceeds to step S109.
  • step S104 if the target statement matches the block separator (YES in step S104), the process proceeds to step S107, and it is determined whether or not the next statement matches the block separator. If the next statement does not match the block separator (NO in step S107), the block ID is counted up in step S108, and the process proceeds to step S109. On the other hand, if the next statement matches the block separator (YES in step S107), the process directly proceeds to step S109.
  • step S109 when the target statement is not the last statement included in the target function (NO in step S109), the next statement is set as the target statement (S110), and the process returns to step S104.
  • step S109 when the target statement is the last statement included in the target function (YES in step S109), the process proceeds to step S111. If the target function is not the last function shown in FIG. 7 in step S111 (NO in step S111), the function ID is counted up in step S112. Thereafter, the target function is set to the next function, the statement reading location is set at the head of the set function (step S113), and the process returns to step S103.
  • the target function is the last function, which is “Func2” shown in FIG. 7 in this embodiment (YES in step S111), the flowchart of FIG. 8 ends.
  • FIG. 9 is a table summarizing the results of classifying the statements included in the computer program shown in FIGS. 4 (a), 4 (b), and 4 (c) into a plurality of program blocks.
  • a function ID, a file name, a line number, a statement content, and a block ID are associated with all statements included in each function.
  • the same block ID can be assigned from the statement immediately after the block separator to the statement immediately before the next block separator.
  • the block ID is counted up when the block separator or the continuous block separator is crossed.
  • Statements immediately after the block separator to immediately before the next block separator can be registered as statements belonging to one program block.
  • the program block classification unit 22 can classify all valid statements in the source code D01 to be analyzed into program blocks.
  • FIG. 10 is a table showing an example of an update variable table in which variables extracted from statements included in the computer program shown in FIGS. 4A, 4B, and 4C are registered.
  • the update variable table a variable is registered for each program block classified by the program block classification unit 22.
  • the variables extracted in step S04 are registered in the order of extraction.
  • the variable is registered twice or more times. Variables registered in the update variable table are handled as update variables.
  • the update variable table may be stored in the storage device 14, or may be stored in a memory such as a registry installed in the CPU 11.
  • the group variable specifying unit 24 uses the update variable table shown in FIG. 10 to set, for each program block, a set (“update variable set”) having variables (update variables) updated in the program block as elements. Specified). More specifically, the group variable specifying unit 24 specifies an update variable set for each program block by arranging the registration order of update variables registered in the update variable table and eliminating duplicate registration of the same update variables. To do. Updating variable set that is specified corresponding to each program block, denoted by the variable n representing the block ID indicating the program block, hereinafter referred to as an update variable set Q n.
  • Update variable set Q n is only updated variables that are updated in the program block specified by the variable n has an element, the element of the update variable set Q n do not overlap.
  • the variable n takes a natural number, and the maximum value that can be taken is equal to the number of program blocks in the source code.
  • a duplicate set (update variable set Q n ) is eliminated and a new set is created.
  • the elements of this set are sets having an update variable set as an element.
  • This newly created set element is hereinafter referred to as a group variable.
  • Each group variable is given a variable i representing a group variable ID and is represented as a group variable P i .
  • the variable i takes a natural number, and the maximum value that can be taken is equal to the number of elements of a set newly created by eliminating the above-described duplication.
  • step S06 the simultaneous determination unit 25 compares the extracted variables (variables that belong to the updated variable set Q n) for each program block in step S04, the variable belonging to the group variable specified in step S05 Thus, it is determined whether or not there is an update omission in the variable extracted in step S04.
  • the simultaneous determination unit 25 determines the degree of simultaneous update (simultaneity) of group variables for each program block. Judgment is made in three stages: “complete”, “part”, and “none”.
  • an example of a detailed processing procedure of step S06 will be described with reference to the flowchart of FIG.
  • step S202 it acquires the updated set of variables Q n is a set of the extracted variables for each program block in step S04.
  • step S204 the group variable P i specified in step S05 is acquired.
  • step S205 it is determined whether or not the group variable P i is a subset of the update variable set Q n .
  • the group variable P i is a subset of the update variable set Q n (YES in S205)
  • all elements (variables) belonging to the group variable P i overlap with variables belonging to the update variable set Q n . Therefore, in step S206, the simultaneity determination unit 25 determines that the simultaneous update degree is “complete”. Thereafter, the process proceeds to step S210.
  • step S205 if there is an element (variable) of the group variable P i that does not belong to the update variable set Q n , that is, if the group variable P i is not a subset of the update variable set Q n (NO in step S205), the process proceeds to step S207. .
  • step S207 it is determined whether or not the common part of the group variable P i and the update variable set Q n is an empty set ( ⁇ ).
  • the simultaneous part between the group variable P i and the update variable set Q n is not an empty set (YES in step S207)
  • step S208 the simultaneouseity determination unit 25 determines that the degree of simultaneous update is “partial”. That is, in the case of YES at step S207, only some of the elements (variables) that belong to the group variable P i is, and overlaps with the variable belonging to update variable set Q n, does not belong to the updated variable set Q n group variable P It can be determined that element i exists. Therefore, the degree of simultaneous update is determined as “partial”. Thereafter, the process proceeds to step S210.
  • step S209 the simultaneous update degree determination unit 25 determines that the simultaneous update degree is “none”. . That is, in the case of NO at step S207, any of elements belonging to group variable P i (variable), it can be determined that does not overlap with the variable belonging to update variable set Q n. Therefore, the simultaneous update degree is determined as “none”. Thereafter, the process proceeds to step S210.
  • step S210 group variable P i obtained in step S204, it is determined whether the last group variable. If the group variable Pi is not the last group variable (NO in step S210), the variable i is counted up (step S211), and the process returns to step S204.
  • the value of the variable i representing the group variable ID is equal to the maximum value that can be taken, that is, when the group variable Pi is the last group variable (YES in step S210)
  • the process proceeds to step S212, and in step S202. It is determined whether or not the acquired update variable set Q n is the last update variable set. That is, it is determined whether or not the concurrency determination has been performed on the last program block.
  • step S212 If the update variable set Q n is not the last update variable set (NO in step S212), the variable n is counted up (step S213), and the process returns to step S202.
  • the value of the variable n representing the block ID is equal to the maximum possible value, that is, when the update variable set Q n is the last update variable set (YES in step S212)
  • the simultaneity determination unit 25 compares the set (update variable set Q n ) whose elements are the variables extracted in step S04 with the group variable P i specified in step S05. Then, it is possible to determine whether or not there are program blocks in which a variable belonging to the update variable set Q n overlaps with only some of the variables belonging to the group variable P i among the plurality of program blocks.
  • the simultaneity determination unit 25 determines the degree of simultaneous update of the program block to be determined based on the mutual inclusion relationship between the update variable set Q n and the group variable P i .
  • the simultaneity determination unit 25 determines that a program block in which a variable belonging to the update variable set Q n overlaps with only some of the variables belonging to the group variable P i is a “partial” update degree. That is, some variables belonging to the group variable P i belong to the update variable set Q n corresponding to the program block to be determined, and other variables belonging to the group variable P i belong to the update variable set Q n . If not, the concurrency determining unit 25 determines that the program block has a “partial” simultaneous update degree.
  • the concurrency determining unit 25 determines that a program block in which a variable belonging to the update variable set Q n overlaps with all variables belonging to the group variable P i is the degree of simultaneous update “complete”. That is, when all the variables belonging to the group variable P i belong to the update variable set Q n corresponding to the program block to be determined, the simultaneity determination unit 25 determines the degree of simultaneous update “complete” for the program block. Judge.
  • the concurrency determining unit 25 determines that a program block in which a variable belonging to the update variable set Q n does not overlap with any variable belonging to the group variable P i has a simultaneous update degree “None”. That is, when all the variables belonging to the group variable P i do not belong to the update variable set Q n corresponding to the program block to be determined, the concurrency determining unit 25 determines the degree of simultaneous update “none” for the program block. Judge.
  • the table of FIG. 13 shows a “variable update synchronization list” that summarizes the processing results of step S06 of FIG. Q 1 to Q 4 represent update variable sets, and P 1 to P 3 represent group variables. As shown in FIGS. 10 and 11, update variables are used as elements.
  • step S07 the update omission location extraction unit 26 extracts the program block determined to have an omission of update in step S06. Specifically, the program blocks determined to have a “partial” simultaneous update degree in step S06 are extracted.
  • step S04 it is possible to extract a program block variables extracted in step S04 overlaps only a part of the elements belonging to the group variable P i identified in step S05.
  • step S06 in which the degree of simultaneous update is determined to be “partial”, “duplicates only with some elements” belongs to the group variable P i specified in step S05.
  • Some variables overlap with the variables extracted in step S04 (variables belonging to the update variable set Q n corresponding to the program block to be extracted), and other variables other than some variables belonging to the group variable P i Means that it does not overlap with the variable extracted in step S04.
  • block ID with omission of update the block ID of a program block determined to be “partial” at the same time.
  • the degree-of-association calculating unit 27 obtains the number of program blocks (the number of completely duplicated blocks) determined as the degree of simultaneous update “complete” in step S06. Then, the degree-of-association calculating unit 27 obtains the number of program blocks (the number of partially overlapping blocks) determined to be the “partial” simultaneous update degree in step S06.
  • the sum of the number of completely duplicated blocks and the number of partially duplicated blocks represents the number of program blocks in which the variable extracted in step S04 overlaps at least some of the variables belonging to the group variable specified in step S05.
  • the sum represents the number of program blocks that are determined to be “partial” or “complete” at the same time.
  • the degree-of-association calculating unit 27 calculates the ratio of the number of program blocks determined to have the simultaneous update degree “complete” with respect to this sum as the “degree of association”.
  • the “association degree” is an index indicating the ratio of program blocks that access all of the update variables that are elements of the group variable among the program blocks that update at least part of the update variables that are the elements of the group variable. It has become.
  • step S09 the update omission variable extraction unit 28 selects an element that does not belong to the update variable set corresponding to the program block from among the elements that belong to the group variable in the program block determined to have the simultaneous update degree “partial”. Are extracted as “update omission variables”.
  • the inspection result output unit 29 outputs a determination result on whether or not there is an update omission in step S06.
  • the inspection result output unit 29 is at least one of the information specifying the program block extracted in step S07, the degree of coupling calculated in step S08, and the information specifying the update omission variable specified in step S09. One of them can be output in association with the determination result in step S06.
  • the table in FIG. 14 summarizes the update omission location extracted in step S07 of FIG. 3, the degree of coupling calculated in step S08, and the omission update variable extracted in step S09 for each group variable P 1 to P 3 . It is a table.
  • the update omission location is indicated by “block ID with omission of update”
  • the list of update omission variables is indicated by “set R of update omission variables”.
  • block ID with update omission” and “set R of update omission variables” are merely examples of information for specifying an omission location and an omission update variable, respectively.
  • the table in FIG. 15 shows an example of the determination result output in step S10.
  • the inspection result output unit 29 outputs a determination result as to whether or not there is an update failure for each of the group variables P 1 to P 3 .
  • “Presence / absence of update omission” indicates a determination result of whether or not there is omission of update.
  • the table of FIG. 15 shows whether or not “binding degree”, “block ID”, “file name”, “number of rows”, and “update omission variable” as information for specifying the omission of update are omissions.
  • An example of output in association with the determination result is shown.
  • the inspection result output unit 29 may output a determination result as to whether or not there is an update omission at least for each of the group variables P 1 to P 3 .
  • the user can add a statement for executing the update process of Y after the ninth line in FIG. Also, the user notices the possibility that the statement regarding the W update process shown in the fourth line of FIG. 4C is incorrect, and changes the statement from the W update process to the Y update process as necessary. Modifications can be made.
  • the data update omission inspection device is again applied to the source code in which the statement is added after the ninth line in FIG. 4A and the fourth line in FIG. 4C is corrected.
  • FIG. 15 When the inspection according to FIG. 15 is performed, it can be seen that all of the portions indicated as “present” change to “absent” depending on whether or not there is an update omission shown in FIG. As a result, it is possible to eliminate omissions in updating the variables constituting the group variable.
  • “Sem_Lock (ID1)” is an instruction to start a protection interval by a semaphore identified by ID1
  • “Sem_UnLock (ID1)” is an instruction to end a protection interval by a semaphore identified by ID1.
  • group variables having variables X, Y, and Z as elements are updated. Essentially, all elements X, Y, Z should always be accessed at the same time. However, the update of “Z” is leaked at the 21st line as indicated by the symbol AM1, and the update of “Y” is leaked at the 25th row as indicated by the symbol AM2.
  • the program block classification unit 22 classifies the statements included in the computer program to be inspected into a plurality of program blocks (FIG. 9), and the update variable extraction unit 23 executes the program. Variables to be updated in each of the blocks are extracted (FIG. 10). Then, the group variable specifying unit 24 specifies an update variable set corresponding to each program block, and specifies at least one of the plurality of update variable sets as a group variable (FIG. 11).
  • the concurrency determining unit 25 determines the degree of simultaneous update of the program block using the update variable set corresponding to the program block and the inclusion relation of the group variables (FIG. 13), and the inspection result output unit 29 determines the determination result.
  • the data update omission inspection device includes an update omission location extraction unit 26 that extracts a program block determined by the simultaneity determination unit 25 that the degree of simultaneous update is a part (FIG. 14). Information specifying the program block extracted by the update omission location extraction unit 26 is output in association with the above-described determination result (FIG. 15). Since the program block to be verified is specified among the plurality of program blocks, the efficiency of verification work by the user can be improved.
  • the concurrency determining unit 25 determines that the number of program blocks (the number of partially duplicated blocks) determined by the concurrency determining unit 25 that the degree of simultaneous updating is a part and the degree of simultaneous updating are complete.
  • the data update omission checking device when there is a program block determined by the concurrency determining unit 25 that the degree of simultaneous update is a part of the plurality of program blocks, the program block from among the elements of the group variable
  • the update omission variable extraction unit 28 is extracted (FIG. 14) for extracting elements that do not belong to the update variable set corresponding to. Then, the variable extracted by the update omission variable extraction unit 28 is output in association with the determination result (FIG. 15). Therefore, it is possible to identify an element (variable) that may be missed. Since the user can easily specify the location to be verified, the efficiency of the verification work by the user can be increased.
  • the data update omission check device determines whether the information for specifying the group variable is the above-described determination when there is no program block determined by the concurrency determination unit 25 that the degree of simultaneous update is a part of the plurality of program blocks. Output in association with the result. Therefore, in the computer program to be inspected, it is possible to specify a set of elements (variables) that are free from variable update. Therefore, it is possible to easily obtain highly useful information as information to be maintained or managed as computer program specifications.
  • a variable to be updated in a program block is extracted, an update variable set corresponding to the program block is specified, and at least one of the update variable sets is specified as a group variable. Then, by using the inclusion relationship between the update variable set and the group variable, the degree of simultaneous update for the group variable is determined for each program group. By outputting the determination result, it is possible to make the user aware of the possibility of missing updates of a plurality of variables that need to be updated simultaneously to represent one state or information.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)
PCT/JP2013/084612 2013-01-21 2013-12-25 データ更新漏れ検査装置、データ更新漏れ検査方法、データ更新漏れ検査プログラム WO2014112303A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014557376A JP5967225B2 (ja) 2013-01-21 2013-12-25 データ更新漏れ検査装置、データ更新漏れ検査方法、データ更新漏れ検査プログラム
CN201380069207.8A CN104885060B (zh) 2013-01-21 2013-12-25 数据漏更新检查装置、数据漏更新检查方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013008353 2013-01-21
JP2013-008353 2013-01-21

Publications (1)

Publication Number Publication Date
WO2014112303A1 true WO2014112303A1 (ja) 2014-07-24

Family

ID=51209405

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/084612 WO2014112303A1 (ja) 2013-01-21 2013-12-25 データ更新漏れ検査装置、データ更新漏れ検査方法、データ更新漏れ検査プログラム

Country Status (3)

Country Link
JP (1) JP5967225B2 (zh)
CN (1) CN104885060B (zh)
WO (1) WO2014112303A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899616A (zh) * 2015-04-10 2015-09-09 中国科学技术大学先进技术研究院 一种基于智能工卡的信息管理方法、系统和设备
CN112612516A (zh) * 2020-12-30 2021-04-06 瑞庭网络技术(上海)有限公司 一种代码处理方法及装置
CN113176889A (zh) * 2021-04-28 2021-07-27 维沃移动通信有限公司 程序更新方法、装置和电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109725629B (zh) * 2018-12-29 2020-05-22 一汽-大众汽车有限公司 一种整车控制器刷新测试系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003316615A (ja) * 2002-04-26 2003-11-07 Nissan Motor Co Ltd 演算順序チェック装置およびその方法
JP2006331027A (ja) * 2005-05-25 2006-12-07 Nissan Motor Co Ltd 検査装置、検査方法、及び検査プログラム
JP2008090696A (ja) * 2006-10-04 2008-04-17 Nissan Motor Co Ltd プログラム解析装置及びプログラム解析方法
JP2010157147A (ja) * 2008-12-29 2010-07-15 Sharp Corp ソフトウェア検査装置、ソフトウェア検査方法およびソフトウェア検査プログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2735698B2 (ja) * 1991-01-21 1998-04-02 富士通株式会社 インタフェース検証処理方式
CN100565541C (zh) * 2005-04-21 2009-12-02 松下电器产业株式会社 程序变换装置和变换方法
JP4839424B2 (ja) * 2008-12-15 2011-12-21 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラムの解析を支援するための方法、並びにそのコンピュータ・プログラム及びコンピュータ・システム
US9170805B2 (en) * 2010-07-20 2015-10-27 Hitachi, Ltd. Software maintenance supporting device for analyzing relationships between variables

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003316615A (ja) * 2002-04-26 2003-11-07 Nissan Motor Co Ltd 演算順序チェック装置およびその方法
JP2006331027A (ja) * 2005-05-25 2006-12-07 Nissan Motor Co Ltd 検査装置、検査方法、及び検査プログラム
JP2008090696A (ja) * 2006-10-04 2008-04-17 Nissan Motor Co Ltd プログラム解析装置及びプログラム解析方法
JP2010157147A (ja) * 2008-12-29 2010-07-15 Sharp Corp ソフトウェア検査装置、ソフトウェア検査方法およびソフトウェア検査プログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899616A (zh) * 2015-04-10 2015-09-09 中国科学技术大学先进技术研究院 一种基于智能工卡的信息管理方法、系统和设备
CN104899616B (zh) * 2015-04-10 2018-09-07 中国科学技术大学先进技术研究院 一种基于智能工卡的信息管理方法、系统和设备
CN112612516A (zh) * 2020-12-30 2021-04-06 瑞庭网络技术(上海)有限公司 一种代码处理方法及装置
CN112612516B (zh) * 2020-12-30 2024-05-03 瑞庭网络技术(上海)有限公司 一种代码处理方法及装置
CN113176889A (zh) * 2021-04-28 2021-07-27 维沃移动通信有限公司 程序更新方法、装置和电子设备

Also Published As

Publication number Publication date
JP5967225B2 (ja) 2016-08-10
CN104885060A (zh) 2015-09-02
JPWO2014112303A1 (ja) 2017-01-19
CN104885060B (zh) 2016-10-12

Similar Documents

Publication Publication Date Title
US11048798B2 (en) Method for detecting libraries in program binaries
US20120311709A1 (en) Automatic management system for group and mutant information of malicious codes
JP5967225B2 (ja) データ更新漏れ検査装置、データ更新漏れ検査方法、データ更新漏れ検査プログラム
JP6090850B2 (ja) ソースプログラム解析システム、ソースプログラム解析方法およびプログラム
CN110688658B (zh) 未知病毒感染追溯方法、装置及系统
US11036479B2 (en) Devices, systems, and methods of program identification, isolation, and profile attachment
CN110287696A (zh) 一种反弹shell进程的检测方法、装置和设备
CN109815697B (zh) 误报行为处理方法及装置
CN111694612A (zh) 配置检查方法、装置、计算机系统及存储介质
KR101860674B1 (ko) 크래시 리포트 그룹핑 방법, 서버 및 컴퓨터 프로그램
CN111913878A (zh) 基于程序分析结果的字节码插桩方法、装置及存储介质
CN114661423A (zh) 集群配置检测方法、装置、计算机设备及存储介质
CN105701405B (zh) 对软件程序集的本机图像进行防病毒检查的系统和方法
US20220108023A1 (en) Docker image vulnerability inspection device and method for performing docker file analysis
CN112463596B (zh) 测试用例数据的处理方法、装置、设备以及处理设备
CN108829575B (zh) 测试案例推荐方法、电子装置及可读存储介质
Radu et al. Grey-box analysis and fuzzing of automotive electronic components via control-flow graph extraction
US20230315843A1 (en) Systems and methods for cybersecurity alert deduplication, grouping, and prioritization
US20110047417A1 (en) Method and system for error detection in pattern definitions
KR102256894B1 (ko) 크래시 리포트 그룹핑 방법, 서버 및 컴퓨터 프로그램
CN110337017B (zh) 电视机及其日志处理方法、日志处理装置和可读存储介质
JP5962779B2 (ja) フラグアクセス不具合検査装置、フラグアクセス不具合検査方法、フラグアクセス不具合検査プログラム
CN115658551B (zh) 代码测试方法、存储介质、电子设备和装置
Cam et al. Detect repackaged android applications by using representative graphs
KR102638058B1 (ko) 펌웨어 에뮬레이션 방법 및 이를 위한 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13872203

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014557376

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13872203

Country of ref document: EP

Kind code of ref document: A1