Method and System to Extract a Navigation Model for Analysis of a Web Application
    1.
    发明申请
    Method and System to Extract a Navigation Model for Analysis of a Web Application 有权
    提取用于Web应用程序分析的导航模型的方法和系统

    公开(公告)号:US20120084609A1

    公开(公告)日:2012-04-05

    申请号:US12895323

    申请日:2010-09-30

    IPC分类号: G06F11/07 G06F15/16

    CPC分类号: G06F11/3696 G06F11/3688

    摘要: In one embodiment, a method includes automated extraction of the Page Transition Graph (PTG) model for model-based analysis of web applications. Specifically, the method includes accessing one or more JAVASERVER PAGES (JSP) files, one or more Extensible Markup Language (XML) configuration files, and one or more class files of a web application; parsing the JSP files and extracting data in the JSP files that encode user or server events supported by the event-driven application; parsing the XML configuration files and extracting data in the XML configuration files that encode definitions used by the event-driven application when deployed; parsing the class files and extracting data in the class files that encode one or more actions or one or more forms used by the event-driven application when deployed; storing the extracted data as an abstract syntax tree (AST); populating a page transition graph (PTG) of the event-driven application based on the AST; and checking the extracted PTG for navigation errors such as unreachable pages, ghost pages and undefined transitions.

    摘要翻译: 在一个实施例中,一种方法包括自动提取页面转换图(PTG)模型以用于web应用的基于模型的分析。 具体地,该方法包括访问一个或多个JAVASERVER PAGES(JSP)文件,一个或多个可扩展标记语言(XML)配置文件以及web应用的一个或多个类文件; 解析JSP文件并提取编码由事件驱动的应用程序支持的用户或服务器事件的JSP文件中的数据; 解析XML配置文件并提取XML配置文件中的数据,该配置文件在部署时对事件驱动应用程序使用的定义进行编码; 分析类文件并提取编码一个或多个动作的类文件中的数据,或者在部署时由事件驱动的应用程序使用的一个或多个表单; 存储提取的数据作为抽象语法树(AST); 基于AST填充事件驱动应用程序的页面转换图(PTG); 并检查提取的PTG以获得导航错误,例如不可访问的页面,鬼页面和未定义的转换。

    Environment data refinement based on static analysis and symbolic execution
    2.
    发明授权
    Environment data refinement based on static analysis and symbolic execution 有权
    基于静态分析和符号执行的环境数据细化

    公开(公告)号:US08504997B2

    公开(公告)日:2013-08-06

    申请号:US12407695

    申请日:2009-03-19

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3696

    摘要: In particular embodiments, an environment for modular software analysis is generated for a software module under analysis. Irrelevancy analysis is performed on the software module to determine that, for each input datum to the software module, whether the input datum is relevant or irrelevant with respect to branch coverage of the module code. A default concrete value is assigned to each irrelevant input datum. A set of concrete values is calculated for each relevant input datum using symbolic execution. The environment is enhanced such that default concrete values are passed to the software module for the irrelevant input data and sets of concrete values generated using symbolic execution are passed to the software module for the relevant input data. The enhanced environment enables module analysis with as much as 100% branch coverage of the module code.

    摘要翻译: 在特定实施例中,为分析的软件模块生成用于模块化软件分析的环境。 对软件模块执行不完整性分析,以确定对于软件模块的每个输入数据,输入数据是否与模块代码的分支覆盖相关或不相关。 默认的具体值分配给每个不相关的输入数据。 使用符号执行计算每个相关输入数据的一组具体值。 增强了环境,使得默认的具体值被传递给软件模块以用于不相关的输入数据,并且使用符号执行生成的具体值的集合被传递给用于相关输入数据的软件模块。 增强的环境使模块分析具有多达100%的模块代码的分支覆盖。

    Providing software validation as a service
    3.
    发明授权
    Providing software validation as a service 有权
    提供软件验证作为服务

    公开(公告)号:US08453117B2

    公开(公告)日:2013-05-28

    申请号:US12719971

    申请日:2010-03-09

    IPC分类号: G06F9/44 G06F3/00

    CPC分类号: G06F11/3608 G06F11/3696

    摘要: In one embodiment, a method includes accessing an event-driven application input by a user, the event-driven application comprising source code, one or more use cases input by the user for the event-driven application, and one or more functional requirements input by the user for the event-driven application; parsing the use cases and the functional requirements according to the predefined syntax to construct one or more validation modules for validating the event-driven application without any modification to the source code of the event-driven application for validation purposes; formally validating the event-driven application using the validation modules without relying on assertions inserted into the source code of the event-driven application for validation purposes; and if the formal validation finds one or more defects in the event-driven application, generating output for communication to the user identifying the defects.

    摘要翻译: 在一个实施例中,一种方法包括访问由用户输入的事件驱动应用程序,事件驱动的应用程序包括源代码,用户为事件驱动的应用程序输入的一个或多个用例以及一个或多个功能需求输入 由用户为事件驱动应用程序; 根据预定义的语法解析用例和功能需求,以构建用于验证事件驱动应用程序的一个或多个验证模块,而不用任何修改事件驱动应用程序的源代码进行验证; 使用验证模块正式验证事件驱动的应用程序,而不依赖插入到事件驱动应用程序的源代码中的断言来进行验证; 并且如果形式验证在事件驱动的应用程序中发现一个或多个缺陷,则产生用于识别缺陷的用户通信的输出。

    GENERATING A DRIVER FOR ANALYSIS OF AN EVENT-DRIVEN APPLICATION
    4.
    发明申请
    GENERATING A DRIVER FOR ANALYSIS OF AN EVENT-DRIVEN APPLICATION 有权
    生成驱动程序用于分析事件驱动应用程序

    公开(公告)号:US20100293557A1

    公开(公告)日:2010-11-18

    申请号:US12751982

    申请日:2010-03-31

    IPC分类号: G06F9/54

    CPC分类号: G06F8/38

    摘要: In one embodiment, a method includes specifying an application-specific navigation model of an event-driven application; analyzing the navigation model with respect to one or more navigation requirements of the event-driven application to determine whether the event-driven application satisfies the navigation requirements; generating one or more drivers for the event-driven application based on the navigation model; and traversing the navigation model with the application-independent event drivers to analyze the event-driven application with respect to one or more business-logic requirements of the event-driven application to determine whether the event-driven application satisfies the business-logic requirements.

    摘要翻译: 在一个实施例中,一种方法包括指定事件驱动应用的特定于应用的导航模型; 分析关于事件驱动应用的一个或多个导航要求的导航模型,以确定事件驱动应用是否满足导航要求; 基于导航模型生成用于事件驱动应用的一个或多个驱动器; 并使用与应用无关的事件驱动程序遍历导航模型,以便根据事件驱动的应用程序的一个或多个业务逻辑要求来分析事件驱动的应用程序,以确定事件驱动的应用程序是否满足业务逻辑要求。

    Generating a driver for analysis of an event-driven application
    5.
    发明授权
    Generating a driver for analysis of an event-driven application 有权
    生成用于分析事件驱动应用程序的驱动程序

    公开(公告)号:US08347320B2

    公开(公告)日:2013-01-01

    申请号:US12751982

    申请日:2010-03-31

    IPC分类号: G06F3/00

    CPC分类号: G06F8/38

    摘要: In one embodiment, a method includes specifying an application-specific navigation model of an event-driven application; analyzing the navigation model with respect to one or more navigation requirements of the event-driven application to determine whether the event-driven application satisfies the navigation requirements; generating one or more drivers for the event-driven application based on the navigation model; and traversing the navigation model with the application-independent event drivers to analyze the event-driven application with respect to one or more business-logic requirements of the event-driven application to determine whether the event-driven application satisfies the business-logic requirements.

    摘要翻译: 在一个实施例中,一种方法包括指定事件驱动应用的特定于应用的导航模型; 分析关于事件驱动应用的一个或多个导航要求的导航模型,以确定事件驱动应用是否满足导航要求; 基于导航模型生成用于事件驱动应用的一个或多个驱动器; 并使用与应用无关的事件驱动程序遍历导航模型,以便根据事件驱动的应用程序的一个或多个业务逻辑要求来分析事件驱动的应用程序,以确定事件驱动的应用程序是否满足业务逻辑要求。

    Environment Data Refinement Based on Static Analysis and Symbolic Execution
    6.
    发明申请
    Environment Data Refinement Based on Static Analysis and Symbolic Execution 有权
    基于静态分析和符号执行的环境数据优化

    公开(公告)号:US20100242029A1

    公开(公告)日:2010-09-23

    申请号:US12407695

    申请日:2009-03-19

    IPC分类号: G06F9/44

    CPC分类号: G06F11/3696

    摘要: In particular embodiments, an environment for modular software analysis is generated for a software module under analysis. Irrelevancy analysis is performed on the software module to determine that, for each input datum to the software module, whether the input datum is relevant or irrelevant with respect to branch coverage of the module code. A default concrete value is assigned to each irrelevant input datum. A set of concrete values is calculated for each relevant input datum using symbolic execution. The environment is enhanced such that default concrete values are passed to the software module for the irrelevant input data and sets of concrete values generated using symbolic execution are passed to the software module for the relevant input data. The enhanced environment enables module analysis with as much as 100% branch coverage of the module code.

    摘要翻译: 在特定实施例中,为分析的软件模块生成用于模块化软件分析的环境。 对软件模块执行不完整性分析,以确定对于软件模块的每个输入数据,输入数据是否与模块代码的分支覆盖相关或不相关。 默认的具体值分配给每个不相关的输入数据。 使用符号执行计算每个相关输入数据的一组具体值。 增强了环境,使得默认的具体值被传递给软件模块以用于不相关的输入数据,并且使用符号执行生成的具体值的集合被传递给用于相关输入数据的软件模块。 增强的环境使模块分析具有多达100%的模块代码的分支覆盖。

    System and method for detecting software defects
    7.
    发明授权
    System and method for detecting software defects 有权
    用于检测软件缺陷的系统和方法

    公开(公告)号:US07685471B2

    公开(公告)日:2010-03-23

    申请号:US11670143

    申请日:2007-02-01

    IPC分类号: G06F11/00

    CPC分类号: G06F11/3608 G06F9/44

    摘要: A method for detecting software defects includes selecting from a target program comprising a plurality of modules a first module for evaluation and isolating the first module. The method also includes iteratively performing the following steps until the first module has been reduced such that a validation program is able to determine whether the first module contains a defect: generating an environment surrounding the first module, the generated environment preserving at least one external constraint on the first module; reducing the size of the first module; and reducing the number of program states associated with the first module.

    摘要翻译: 用于检测软件缺陷的方法包括从包括多个模块的目标程序中选择用于评估和隔离第一模块的第一模块。 该方法还包括迭代地执行以下步骤,直到第一模块被减少,使得验证程序能够确定第一模块是否包含缺陷:生成围绕第一模块的环境,所生成的环境保留至少一个外部约束 在第一个模块上 减小第一个模块的尺寸; 并减少与第一模块相关联的程序状态的数量。

    Method and system to extract a navigation model for analysis of a web application
    8.
    发明授权
    Method and system to extract a navigation model for analysis of a web application 有权
    提取导航模型以分析Web应用程序的方法和系统

    公开(公告)号:US08402319B2

    公开(公告)日:2013-03-19

    申请号:US12895323

    申请日:2010-09-30

    IPC分类号: G06F11/00

    CPC分类号: G06F11/3696 G06F11/3688

    摘要: In one embodiment, a method includes automated extraction of the Page Transition Graph (PTG) model for model-based analysis of web applications. Specifically, the method includes accessing one or more JAVASERVER PAGES (JSP) files, one or more Extensible Markup Language (XML) configuration files, and one or more class files of a web application; parsing the JSP files and extracting data in the JSP files that encode user or server events supported by the event-driven application; parsing the XML configuration files and extracting data in the XML configuration files that encode definitions used by the event-driven application when deployed; parsing the class files and extracting data in the class files that encode one or more actions or one or more forms used by the event-driven application when deployed; storing the extracted data as an abstract syntax tree (AST); populating a page transition graph (PTG) of the event-driven application based on the AST; and checking the extracted PTG for navigation errors such as unreachable pages, ghost pages and undefined transitions.

    摘要翻译: 在一个实施例中,一种方法包括自动提取页面转换图(PTG)模型以用于web应用的基于模型的分析。 具体地,该方法包括访问一个或多个JAVASERVER PAGES(JSP)文件,一个或多个可扩展标记语言(XML)配置文件以及web应用的一个或多个类文件; 解析JSP文件并提取编码由事件驱动的应用程序支持的用户或服务器事件的JSP文件中的数据; 解析XML配置文件并提取XML配置文件中的数据,该配置文件在部署时对事件驱动应用程序使用的定义进行编码; 分析类文件并提取编码一个或多个动作的类文件中的数据,或者在部署时由事件驱动的应用程序使用的一个或多个表单; 存储提取的数据作为抽象语法树(AST); 基于AST填充事件驱动应用程序的页面转换图(PTG); 并检查提取的PTG以获得导航错误,例如不可访问的页面,鬼页面和未定义的转换。

    Providing Software Validation as a Service
    9.
    发明申请
    Providing Software Validation as a Service 有权
    提供软件验证即服务

    公开(公告)号:US20110225568A1

    公开(公告)日:2011-09-15

    申请号:US12719971

    申请日:2010-03-09

    IPC分类号: G06F9/44 G06F3/048

    CPC分类号: G06F11/3608 G06F11/3696

    摘要: In one embodiment, a method includes accessing an event-driven application input by a user, the event-driven application comprising source code, one or more use cases input by the user for the event-driven application, and one or more functional requirements input by the user for the event-driven application; parsing the use cases and the functional requirements according to the predefined syntax to construct one or more validation modules for validating the event-driven application without any modification to the source code of the event-driven application for validation purposes; formally validating the event-driven application using the validation modules without relying on assertions inserted into the source code of the event-driven application for validation purposes; and if the formal validation finds one or more defects in the event-driven application, generating output for communication to the user identifying the defects.

    摘要翻译: 在一个实施例中,一种方法包括访问由用户输入的事件驱动应用程序,事件驱动的应用程序包括源代码,用户为事件驱动的应用程序输入的一个或多个用例以及一个或多个功能需求输入 由用户为事件驱动应用程序; 根据预定义的语法解析用例和功能需求,以构建用于验证事件驱动应用程序的一个或多个验证模块,而不用任何修改事件驱动应用程序的源代码进行验证; 使用验证模块正式验证事件驱动的应用程序,而不依赖插入到事件驱动应用程序的源代码中的断言来进行验证; 并且如果形式验证在事件驱动的应用程序中发现一个或多个缺陷,则产生用于识别缺陷的用户通信的输出。

    System and Method for Detecting Software Defects
    10.
    发明申请
    System and Method for Detecting Software Defects 有权
    用于检测软件缺陷的系统和方法

    公开(公告)号:US20080189686A1

    公开(公告)日:2008-08-07

    申请号:US11670143

    申请日:2007-02-01

    IPC分类号: G06F11/36 G06F3/048

    CPC分类号: G06F11/3608 G06F9/44

    摘要: A method for detecting software defects includes selecting from a target program comprising a plurality of modules a first module for evaluation and isolating the first module. The method also includes iteratively performing the following steps until the first module has been reduced such that a validation program is able to determine whether the first module contains a defect: generating an environment surrounding the first module, the generated environment preserving at least one external constraint on the first module; reducing the size of the first module; and reducing the number of program states associated with the first module.

    摘要翻译: 用于检测软件缺陷的方法包括从包括多个模块的目标程序中选择用于评估和隔离第一模块的第一模块。 该方法还包括迭代地执行以下步骤,直到第一模块被减少,使得验证程序能够确定第一模块是否包含缺陷:生成围绕第一模块的环境,所生成的环境保留至少一个外部约束 在第一个模块上 减小第一个模块的尺寸; 并减少与第一模块相关联的程序状态的数量。