Method and system for identifying relevant changes for incremental verification of evolving software

    公开(公告)号:US12050906B2

    公开(公告)日:2024-07-30

    申请号:US18060591

    申请日:2022-12-01

    CPC classification number: G06F8/71 G06F8/75

    Abstract: Modern software verification tools are moving towards incremental verification of program properties to ensure safety of evolving software systems. However, not every change in the program impacts verification outcome of program properties. Moreover, analyzing these irrelevant changes adds to cost of incremental verification. A system and method have been provided for identifying relevant changes for incremental verification of evolving software. The disclosure provides a light-weight pre-analysis phase of identifying relevant changes that can lead to improvement in efficiency of all existing incremental verification techniques. To identify relevant changes, the system provides a relevant change identification technique (RCIT) with respect to program properties. The RCIT uses a variant of the strongly live variables (SLV) analysis to compute variables that are influencing the verification outcome of program properties. These variables are referred as value influencing variables (VIVs). The RCIT, then uses computed VIVs and changed statement information to identify relevant changes.

    Systems and methods for selective path sensitive interval analysis

    公开(公告)号:US11650907B2

    公开(公告)日:2023-05-16

    申请号:US17463622

    申请日:2021-09-01

    CPC classification number: G06F11/3636 G06F11/302 G06F11/3075 G06F11/3624

    Abstract: Abstract interpretation based static analysis tools use relational/non-relational abstract domains to verify program properties. Precision and scalability of analysis vary basis usage of abstract domains. K-limited path-sensitive interval domain is an abstract domain that was conventionally proposed for analysis on industry strength programs. The domain maintains variables' intervals along a configurable K subsets of paths at each program point, which implicitly provides co-relation among variables. When the number of paths at the join point exceeds K, set of paths are partitioned into K subsets, arbitrarily, which results in loss of precision required to verify program properties. To address the above problem, embodiments of the present disclosure provide selective merging of paths in such a way that the intervals computed help verifying more properties. The selective path-sensitive method of the present disclosure is based on the knowledge of variables whose values influence the verification outcome of program properties.

    Method and system for mapping intermediate representation objects for facilitating incremental analysis

    公开(公告)号:US12112162B2

    公开(公告)日:2024-10-08

    申请号:US18146702

    申请日:2022-12-27

    CPC classification number: G06F8/75

    Abstract: For performing incremental analysis, analysis tools may reuse analysis information computed earlier for intermediate representation (IR) objects that remain unchanged between versions of program. But identification numbers (IDs) of unchanged IR objects change over versions due to changes with each run of incremental analysis, thereby making it difficult to reuse analysis information as tools require IDs of unchanged IR objects from previous versions. Present disclosure provides method and system for mapping IR objects for facilitating incremental analysis. The system first extracts attributes associated with each IR object present in previous version to create data structure for storing IR objects. The system then determines unchanged lines between versions to create line number map. Thereafter, system uses line number map to create ID-based IR mapping between ID of each unchanged IR object present in each unchanged line in current version and ID of each IR object stored in data structure.

    System and method for software verification

    公开(公告)号:US11275860B2

    公开(公告)日:2022-03-15

    申请号:US16814460

    申请日:2020-03-10

    Abstract: A system and a method for verification of a source code are provided. There as many techniques available that can be used for verification of software codes, however, it is difficult to determine appropriate technique that can be utilized for verification of a given software code. In an embodiment, the system receives a source code encoded with one or more specifications to be verified. A static analysis of the source code is performed to identify program features of the source code. The program features may include, but are not limited to, multiple return paths, loops with an unstructured control flow, loops with arrays, short ranges and numerical loops. Based on the identification of the program features, verification techniques are applied to the source code for the verification. Each verification technique of the one or more verification techniques is applied for a predetermined period of time and in a predefined order.

Patent Agency Ranking