一种基于逻辑执行块的嵌入式软件测试插桩方法

文档序号:6350553阅读:555来源:国知局
专利名称:一种基于逻辑执行块的嵌入式软件测试插桩方法
技术领域
本发明属于嵌入式系统测试技术领域,具体涉及一种基于逻辑执行块的嵌入式软件测试插桩方法。该方法能够完成嵌入式软件的多种覆盖测试,能够准确快速的分析出语句的执行次数和覆盖率,大大降低了程序插桩后的膨胀率,减小了海森堡效应对实时性测试的影响。
背景技术
软件测试是指在软件开发的整个生命周期中对软件质量进行有效的控制,是软件质量的重要保证。据统计,测试可以使软件的缺陷数至少降低75%,从而减少软件的投资风险,提高投资回报率。代码覆盖测试是评价软件测试的质量的一个重要指标,它通过收集覆盖率数据, 对测试结果的可信度进行评价。根据覆盖内容的不同,覆盖可以分为语句覆盖、判定覆盖、 条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。其中常用的为前五种。语句覆盖指设计足够多的测试用例,使每条语句至少执行一次。其覆盖率计算公式为
权利要求
1.一种基于逻辑执行块的嵌入式软件测试插桩方法,包括如下步骤(1)根据不同的覆盖测试类型,对被测程序进行不同的预处理。(2)分析预处理后被测程序的结构,获得被测程序语句类型、层级关系、嵌套关系等信肩、ο(3)在结构分析的基础上,对被测程序按逻辑执行关系分块。每个逻辑执行块作为一个插桩单位,将其入口和出口位置定为插桩点。(4)初始化探针函数及插桩环境,在插桩点插入探针函数。(5)运行插桩后的被测程序。每经过一次插桩点,由探针函数发送该插桩点的位置信息。统计接收到的桩信息,计算出各插桩点的执行次数(逻辑执行块的入口和出口位置的执行次数)。(6)根据步骤O)中记录的被测程序语句类型、层级关系、嵌套关系等信息,计算每个逻辑执行块中所有语句的执行次数,进而计算出覆盖率。
2.根据权利要求1所述的一种基于逻辑执行块的嵌入式软件测试插桩方法,其特征在于,可以确定被测程序的语句的类型以及层级关系、嵌套关系。
3.根据权利要求1、2所述的一种基于逻辑执行块的嵌入式软件测试插桩方法,其特征在于,被测程序语句类型的识别采用超前搜索的方式。
4.根据权利要求1、2所述的一种基于逻辑执行块的嵌入式软件测试插桩方法,其特征在于,被测程序层级关系、嵌套关系的分析采用深度优先的匹配算法。
5.根据权利要求1所述的一种基于逻辑执行块的嵌入式软件测试插桩方法,其特征在于,根据被测程序的层级关系、嵌套关系、逻辑执行关系来对被测程序分块插桩。
6.根据权利要求1所述的一种基于逻辑执行块的嵌入式软件测试插桩方法,其特征在于,探针函数并非直接插入源文件,而是以库函数的形式链接到源文件中。
7.根据权利要求1所述的一种基于逻辑执行块的嵌入式软件测试插桩方法,其特征在于,能够完成包括语句覆盖率、判定覆盖率、条件覆盖率、判定/条件覆盖率、条件组合覆盖率在内的五种覆盖率测试。
全文摘要
本发明公开了一种基于逻辑执行块的嵌入式软件测试插桩方法。首先根据不同的覆盖测试类型,对被测程序进行预处理。接着分析被测程序结构,获得语句类型、层级关系、嵌套关系等信息。根据这些信息和逻辑执行关系对被测程序分块,每个逻辑执行块入口和出口位置插入探针函数。运行插桩后的被测程序,收集桩信息,统计插桩点语句的执行次数。最后根据插桩点语句类型和被测程序层级关系、嵌套关系,确定每段代码块中语句的执行次数。该方法能厘清程序层级关系、嵌套关系,计算包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖在内的多种覆盖率。该方法基于代码块插桩,大大降低程序插桩后的膨胀率,减小海森堡效应对实时性测试的影响。
文档编号G06F11/36GK102521123SQ20111037987
公开日2012年6月27日 申请日期2011年11月24日 优先权日2011年11月24日
发明者梁琛, 王忠民, 王文浪, 范琳, 霍艺伟 申请人:西安邮电学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1