Testbed静态测试使用指南V1.1

合集下载

LDRATestbed静态分析报告操作步骤

LDRATestbed静态分析报告操作步骤

使用 LDRA Testbed 对代码进行静态分析静态分析的主要操作:①分析对象选择②分析前的设置③分析项的选择与分析过程④分析结果的查看详细操作如下:一、分析对象的选择,即如何选择你的分析对象(被分析的文件) ;有两种方式:单个文件分析和以集(set) 的形式分析,以集的形式分析可每次分析多个文件1.单个文件分析选择打开程序LDRA Testbed ,点击Testbed 的菜单File select file 通过文件浏览窗口打开文件要分析的文件,如C:\LDRA_Workarea\Examples\C_testbed_examples\Testrian\Testrian.c 。

点击select 之后,可以在工具快捷按钮栏的下方看见目前选择的文件2.以集(set) 的形式分析选择① 创建集合(set), 设置集合属性打开程序LDRA Testbed ,点击Testbed 的菜单Set Select/Create/Delete Setsset 创建窗口在图中上部的Select/Create Sets 区域写入set 的名字,然后点击下部的Create 按钮创建set ,此时会弹出set 的属性设置对话框,有两种属性可以设置” Group ”和”System; ”此两种属性的区别:Group 只是把set 中的多个文件孤立的分析,不会分析文件间代码的相互关系,可作为批量分析使用。

弹出System 把set 中的多个文件作为一个工程来分析,能够分析文件间的代码的关联,般都会采用此种属性。

Set 创建之后可在窗口中确认如下:其中demo为set 的名字,system 为set 的属性,(0 files) 代表set 中目前没有文件② 向集合中添加文件点击Testbed 的菜单Set List/Add/Remove Files in Sets 弹出添加文件窗口分析前的设置在分析前需要对工具进行简单的设置,主要包括用户头文件的设置和编码规则集的设置。

Testbed静态检验测试使用指南

Testbed静态检验测试使用指南

目录1Testbed功能介绍 (1)1.1编程规则验证 (1)1.2数据流分析 (1)1.3控制流分析 (1)1.4表达式分析 (2)1.5接口分析 (2)1.6软件质量度量分析 (2)2使用Testbed 进行编码规则的定制和检查 (3)2.1确定测试需求 (3)2.2建立测试工程 (3)2.3定制代码分析规则 (6)2.4配置Report选项 (7)2.5分析执行及结果查看 (8)3结果分析及测试报告编写 (9)3.1质量度量信息的获取 (9)3.2程序质量度量报告单 (11)3.3静态分析质量报告单 (12)附录A:静态分析推荐规则使用说明 (1)1Testbed功能介绍1.1编程规则验证编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed 自动地验证应用软件是否遵循了所选择的编程规则。

编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。

LDRA Testbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。

测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。

1.2数据流分析LDRA Testbed分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。

通过Testbed数据流分析功能,可方便地分析出软件中一些可能的程序欠缺,如:1.没使用的函数参数;2.不匹配的参数;3.变量未赋初值就引用;4.代码中有多余变量;5.给值传递参数赋值;6.无返回值的函数路径;7.函数的实参是全局变量。

1.3控制流分析控制流分析检查以下内容:1.不可达代码;2.不合理的循环结构;3.存在浮点相等比较;4.函数存在多个出口;5.函数存在多个入口。

Testbed安装说明及单元测试指导书

Testbed安装说明及单元测试指导书

了。 ?条件覆盖(Condition Coverage):它度量判定中的每个子表达式结果true和false是否被测试到了。 ?MC/DC覆盖:MC/DC(Modified Condition Decision Coverage)是修订的条件/判定覆盖,判定中每个条件的所有可能结果至 少出现一次,每个判定本身的所有可能结果也至少出现一次,每个判定中的每个条件都曾独立的影响判定的结果至少一次, (独立影响意思是在其他的条件不变的情况下,改变一个条件)。 ?路径覆盖:又称断言覆盖(Predicate Coverage)。它度量了是否CSU的每一个路径分支都被执行了。有多个分支嵌套时,需 要对多个分支进行排列组合。 3.7单元测试需要注意的地方 1.若对软件单元进行必要的静态测试,应先于动态测试。 2.理论上讲,单元测试除了被测单元外都应该打桩。 3.应逐项测试软件设计文档规定的软件单元的功能、性能等特性; ?单元测试的直接依据是软件设计文档 ?从功能的角度出发,而不是从程序的角度出发 4.软件单元的每个特性应至少被一个正常的测试用例和一个被认可的异常测试用例覆盖 ?正常与异常是相对于功能来说的 ?因此在软件的设计文档中,应明确软件功能,以及对应的有效输入 ?进行单元测试时,用例需要同时包含有效范围之内的和有效范围之外的输入 ?空指针、异常值 5.测试用例的输入应至少包括有效等价类值、无效等价类值和边界等价类值 ?若软件的设计文档有明确的功能输入范围描述则可以进行等价类划分 ?若没有明确输入范围,则可以根据被测单元的参数类型、用到的全局变量类型,取相应的极大值与极小值 6.测试用例应达到要求的测试覆盖率,对未达到所要求覆盖率的情况需要说明原因 ?语句覆盖 ?条件覆盖 ?判定覆盖 ?MC/DC覆盖 ?路径覆盖 7.应测试软件单元输出数据及其格式 ?确认软件单元的返回值数据类型与内容是否与设计相一致 4软件安装 4.1Testbed工具安装 解压Testbed 8.2(Win 7).zip,进入安装包目录,双击setup.exe 进行软件安装,安装流程如下所示。

Testbed静态测试使用指南V11

Testbed静态测试使用指南V11

目录1Testbed功能介绍 (1)1.1编程规则验证 (1)1.2数据流分析 (1)1.3控制流分析 (1)1.4表达式分析 (2)1.5接口分析 (2)1.6软件质量度量分析 (2)2使用Testbed 进行编码规则的定制和检查 (3)2.1确定测试需求 (3)2.2建立测试工程 (3)2.3定制代码分析规则 (6)2.4配置Report选项 (7)2.5分析执行及结果查看 (8)3结果分析及测试报告编写 (9)3.1质量度量信息的获取 (9)3.2程序质量度量报告单 (11)3.3静态分析质量报告单 (12)附录A:静态分析推荐规则使用说明 (1)1Testbed功能介绍1.1编程规则验证编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed 自动地验证应用软件是否遵循了所选择的编程规则。

编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。

LDRA Testbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。

测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。

1.2数据流分析LDRA Testbed分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。

通过Testbed数据流分析功能,可方便地分析出软件中一些可能的程序欠缺,如:1.没使用的函数参数;2.不匹配的参数;3.变量未赋初值就引用;4.代码中有多余变量;5.给值传递参数赋值;6.无返回值的函数路径;7.函数的实参是全局变量。

1.3控制流分析控制流分析检查以下内容:1.不可达代码;2.不合理的循环结构;3.存在浮点相等比较;4.函数存在多个出口;5.函数存在多个入口。

LDRA Testbed使用指南

LDRA Testbed使用指南
LDRA Testbed的编程规则在数据文件CPEN.DAT中定义,检查结果在数据文件Creport.dat中定义,根据分级的MISRA规则生成三份Creport.dat文件,Creport_MustHave.DAT、CPEN_ShouldHave.DAT和CPEN_NiceHave.DAT分别对应Level-1、Level-2和Level-3三个等级的检查结果。
图4
2.2.3
打开Configure下拉菜单,选中Static Options…,弹出Static Configuration对话框,如图5所示,对话框中包含以下设置:
指定Include文件搜索目录的Sysearch.dat文件
定义预处理器宏的Sysppvar.dat文件
工作路径
编码检查规则文件cpen.dat
LDRA Testbed使用指南
1
LDRA公司成立于1975年,具有丰富的软件质量保证和软件测试经验。LDRA工具套件功能强大、全面,不仅适用于主机平台的软件质量保证和软件测试,也适用于嵌入式软件的软件质量保证和软件测试。
LDRA为软件开发人员、测试人员以及项目管理人员提出了零缺陷软件开发(ZDSD),其工具套件能够完全集成并实现以下过程:
标准行第三列中的数用于某些标准的限幅系数,这些标准在文本描述中包含字符串“***”。
标准行第四列中的数用于程序内部表示本条标准,用户不能修改。
标准行第五列中的字符表示本条标准在什么分析中应用,S表示静态分析,C表示复杂性分析,D表示静态数据流分析,I表示信息流分析,X表示交叉引用,Q表示质量报告。
2.2.4
Files in Set对话框中添加源文件到新建的集合中,如图16所示,源文件添加完毕,单击OK按钮,LDRA Testbed将激活其向导对话框,进入分析域设置界面,请参考2.2.2分析域设置。

Testbed静态测试使用指南V11

Testbed静态测试使用指南V11

目录1Testbed功能介绍 (1)1.1编程规则验证 (1)1.2数据流分析 (1)1.3控制流分析 (1)1.4表达式分析 (2)1.5接口分析 (2)1.6软件质量度量分析 (2)2使用Testbed 进行编码规则的定制和检查 (3)2.1确定测试需求 (3)2.2建立测试工程 (3)2.3定制代码分析规则 (6)2.4配置Report选项 (7)2.5分析执行及结果查看 (8)3结果分析及测试报告编写 (9)3.1质量度量信息的获取 (9)3.2程序质量度量报告单 (11)3.3静态分析质量报告单 (12)附录A:静态分析推荐规则使用说明 (1)1Testbed功能介绍1.1编程规则验证编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed 自动地验证应用软件是否遵循了所选择的编程规则。

编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。

LDRA Testbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。

测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。

1.2数据流分析LDRA Testbed分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。

通过Testbed数据流分析功能,可方便地分析出软件中一些可能的程序欠缺,如:1.没使用的函数参数;2.不匹配的参数;3.变量未赋初值就引用;4.代码中有多余变量;5.给值传递参数赋值;6.无返回值的函数路径;7.函数的实参是全局变量。

1.3控制流分析控制流分析检查以下内容:1.不可达代码;2.不合理的循环结构;3.存在浮点相等比较;4.函数存在多个出口;5.函数存在多个入口。

Testbed安装说明及单元测试指导书

Testbed安装说明及单元测试指导书

Testbed工具单元测试指导书1目的本文档用于指导测试人员在项目过程中使用Testbed工具进行单元测试,主要包括单元测试介绍、工具的安装、单元测试相关操作,以及在工程项目中使用Testbed工具进行单元测试常见问题处理和注意事项。

2说明该指导书针对的Testbed工具版本为8.2 的Windows 7版本,编译器采用GCC。

3单元测试介绍3.1测试对象软件单元。

GJB2786的定义:计算机软件部件设计中确定的能单独测试的部分GJB2786A的定义:计算机软件配置项设计中的一个元素;例如,CSCI的一个主要构成部分、这种构成部分的一个部件、一个类、对象、模块、函数、子程序或者数据库。

软件单元可以出现在层次结构的不同层上,并可以由其他软件单元组成。

设计中的软件单元与实现他们的代码和数据实体(子程序、过程、数据库、数据文件等)之间,或与包含这些实体的计算机文件之间并不一定有一一对应的关系。

3.2测试目的检查每个单元能否正确地实现设计说明中的功能、性能、接口和其他设计约束等要求,发现单元内可能存在的各种错误。

3.3测试依据软件设计文档。

3.4为什么进行单元测试1.确保软件单元的正确性2.确保单元之间交互的正确性3.明确函数的目的4.便于定位错误5.利于代码的重构6.可以实现自动化回归测试3.5单元测试工具✓流行的测试软件:Tburn、C++Test、Cantata++、VectorCAST、 Visual Unit、Tessy✓优点:一般都拥有自动化用例生成功能,具有方便的可视化功能,可以统计各类型的代码覆盖率信息。

✓缺点:都是商业软件,测试环境和开发环境完全脱离。

3.6覆盖率类型▪语句覆盖:又称行覆盖(Line Coverage),是最常用也是最常见的一种覆盖方式,就是度量被测代码中每个可执行语句是否被执行到了。

这里说的是“可执行语句”,因此就不会包括像C++的头文件声明,代码注释,空行等非可执行语句。

Testbed静态测试使用指南V11

Testbed静态测试使用指南V11

目录1Testbed功能介绍 (1)1.1编程规则验证 (1)1.2数据流分析 (1)1.3控制流分析 (1)1.4表达式分析 (2)1.5接口分析 (2)1.6软件质量度量分析 (2)2使用Testbed 进行编码规则的定制和检查 (3)2.1确定测试需求 (3)2.2建立测试工程 (3)2.3定制代码分析规则 (6)2.4配置Report选项 (7)2.5分析执行及结果查看 (8)3结果分析及测试报告编写 (9)3.1质量度量信息的获取 (9)3.2程序质量度量报告单 (11)3.3静态分析质量报告单 (12)附录A:静态分析推荐规则使用说明 (1)1Testbed功能介绍1.1编程规则验证编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed 自动地验证应用软件是否遵循了所选择的编程规则。

编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。

LDRA Testbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。

测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。

1.2数据流分析LDRA Testbed分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。

通过Testbed数据流分析功能,可方便地分析出软件中一些可能的程序欠缺,如:1.没使用的函数参数;2.不匹配的参数;3.变量未赋初值就引用;4.代码中有多余变量;5.给值传递参数赋值;6.无返回值的函数路径;7.函数的实参是全局变量。

1.3控制流分析控制流分析检查以下内容:1.不可达代码;2.不合理的循环结构;3.存在浮点相等比较;4.函数存在多个出口;5.函数存在多个入口。

LDRA Testbed使用指南

LDRA Testbed使用指南
标准行:文件中其他的行每行描述一条编程标准,例如:
21 02 S Label name reused。MISRA/DERA 12
标准行第一列中的数用于LDRA内部文档表示本条标准在cpen.dat文件中的序号,如果为0,则表示本标准和当前的实现无关,用户不能修改该数字。
标准行第二列中的数用于打开或关闭本条标准,0表示关闭,1表示打开。
分析域设置允许用户修改Sysppvar.dat和Sysearch.dat文件,如图3所示。
图3
不在源文件中定义而在编译器的选项中定义的宏可以在Sysppvar.dat文件中定义。单击Sysppvar编辑框附近的 按钮,选择Sysppvar.dat文件的存放位置,此时,后面的Create按钮自动变成Edit按钮,单击Edit按钮即可在Sysppvar.dat文件中添加宏定义了。宏定义的格式为:<名字> <数值>或<名字> (<参数1>, <参数2>,…)。
2
2.1
启动C/C++ LDRA Testbed后,首先进入其主界面,如图1所示:
图1
2.2
2.2.1
打开File下拉菜单,选中Select File…选项,或者单击工具栏上的 按钮,在弹出的Select
File对话框中浏览并选择进行分析的源文件,如图2所示:
图2
2.2
当加载新的文件或文件集合时,LDRA Testbed将激活其向导对话框,进入分析域设置界面,
LDRA Testbed使用指南
1
LDRA公司成立于1975年,具有丰富的软件质量保证和软件测试经验。LDRA工具套件功能强大、全面,不仅适用于主机平台的软件质量保证和软件测试,也适用于嵌入式软件的软件质量保证和软件测试。

Testbed安装说明及单元测试指导书

Testbed安装说明及单元测试指导书

Testbed工具单元测试指导书1目的本文档用于指导测试人员在项目过程中使用Testbed工具进行单元测试,主要包括单元测试介绍、工具的安装、单元测试相关操作,以及在工程项目中使用Testbed工具进行单元测试常见问题处理和注意事项。

2说明该指导书针对的Testbed工具版本为8.2 的Windows 7版本,编译器采用GCC。

3单元测试介绍3.1测试对象软件单元。

GJB2786的定义:计算机软件部件设计中确定的能单独测试的部分GJB2786A的定义:计算机软件配置项设计中的一个元素;例如,CSCI的一个主要构成部分、这种构成部分的一个部件、一个类、对象、模块、函数、子程序或者数据库。

软件单元可以出现在层次结构的不同层上,并可以由其他软件单元组成。

设计中的软件单元与实现他们的代码和数据实体(子程序、过程、数据库、数据文件等)之间,或与包含这些实体的计算机文件之间并不一定有一一对应的关系。

3.2测试目的检查每个单元能否正确地实现设计说明中的功能、性能、接口和其他设计约束等要求,发现单元内可能存在的各种错误。

3.3测试依据软件设计文档。

3.4为什么进行单元测试1.确保软件单元的正确性2.确保单元之间交互的正确性3.明确函数的目的4.便于定位错误5.利于代码的重构6.可以实现自动化回归测试3.5单元测试工具✓流行的测试软件:Tburn、C++Test、Cantata++、VectorCAST、 Visual Unit、Tessy✓优点:一般都拥有自动化用例生成功能,具有方便的可视化功能,可以统计各类型的代码覆盖率信息。

✓缺点:都是商业软件,测试环境和开发环境完全脱离。

3.6覆盖率类型▪语句覆盖:又称行覆盖(Line Coverage),是最常用也是最常见的一种覆盖方式,就是度量被测代码中每个可执行语句是否被执行到了。

这里说的是“可执行语句”,因此就不会包括像C++的头文件声明,代码注释,空行等非可执行语句。

LDRA_Testbed中文使用指南1.0

LDRA_Testbed中文使用指南1.0
五.主要静态分析......................................................................................13 5.1 运行静态分析并察看结果............................................................13 5.1.1 图形化显示分析结果.........................................................13 5.1.2 文本显示分析结果.............................................................15
六.复杂度分析..........................................................................................18 6.1 运行复杂度分析并察看结果........................................................18 6.1.1 图形化显示分析结果.........................................................18 6.1.2 文本显示分析结果.............................................................20
7.2.5 察看质量报告.....................................................................25 7.2.6 察看其他分析结果.............................................................26 八.动态分析..............................................................................................28 8.1 进行动态分析................................................................................28 8.2 选择执行插装程序命令................................................................29 8.3 选择动态覆盖率分析选项............................................................30 8.4 执行分析........................................................................................31 8.5 执行插装程序................................................................................31 九.深层次的动态分析..............................................................................34 9.1 再次执行插装后的程序................................................................34 十. 以集(set)的方式进行分析 ..............................................................37 10.1 设置集属性..................................................................................37 10.2 往集里添加文件..........................................................................38 10.3 集的分析及结果察看..................................................................39 十一. 附注:数据流分析...........................................................................40 十二. 附注:信息流分析...........................................................................42 十三. 分析自己的代码...............................................................................44 13.1 概述..............................................................................................44 13.2 基本规则......................................................................................44 13.3 分析范围......................................................................................44 13.4 编译插装后的代码......................................................................46 13.4.1 概述...................................................................................46 13.4.2 初步...................................................................................46 13.4.3 自动过程...........................................................................46 13.4.4 进一步...............................................................................47

LDRA Testbed静态分析操作步骤

LDRA Testbed静态分析操作步骤

使用LDRA Testbed对代码进行静态分析静态分析的主要操作:①分析对象选择②分析前的设置③分析项的选择与分析过程④分析结果的查看详细操作如下:一、分析对象的选择,即如何选择你的分析对象(被分析的文件);有两种方式:单个文件分析和以集(set)的形式分析,以集的形式分析可每次分析多个文件1.单个文件分析选择打开程序LDRA Testbed,点击Testbed的菜单File select file 通过文件浏览窗口打开文件要分析的文件,如C:\LDRA_Workarea\Examples\C_testbed_examples\Testrian\Testrian.c 。

点击select之后,可以在工具快捷按钮栏的下方看见目前选择的文件2.以集(set)的形式分析选择①创建集合(set),设置集合属性打开程序LDRA Testbed,点击Testbed的菜单Set Select/Create/Delete Sets 弹出set创建窗口在图中上部的Select/Create Sets区域写入set的名字,然后点击下部的Create按钮创建set,此时会弹出set的属性设置对话框,有两种属性可以设置”Group”和”System;”此两种属性的区别:Group 只是把set中的多个文件孤立的分析,不会分析文件间代码的相互关系,可作为批量分析使用。

System把set中的多个文件作为一个工程来分析,能够分析文件间的代码的关联,一般都会采用此种属性。

Set创建之后可在窗口中确认如下:其中demo为set的名字,system为set的属性,(0 files)代表set中目前没有文件②向集合中添加文件点击Testbed的菜单Set→List/Add/Remove Files in Sets 弹出添加文件窗口点击图中的Add按钮,通过文件浏览窗口可添加多个文件到set中。

二、分析前的设置在分析前需要对工具进行简单的设置,主要包括用户头文件的设置和编码规则集的设置。

Testbed静态测试使用指南V1.1

Testbed静态测试使用指南V1.1

Testbed静态测试使用指南V1.1目录1Testbed功能介绍 (1)1.1编程规则验证 (1)1.2数据流分析 (1)1.3控制流分析 (1)1.4表达式分析 (2)1.5接口分析 (2)1.6软件质量度量分析 (2)2使用Testbed 进行编码规则的定制和检查 (3)2.1确定测试需求 (3)2.2建立测试工程 (3)2.3定制代码分析规则 (6)2.4配置Report选项 (7)2.5分析执行及结果查看 (8)3结果分析及测试报告编写 (9)3.1质量度量信息的获取 (9)3.2程序质量度量报告单 (11)3.3静态分析质量报告单 (12)附录A:静态分析推荐规则使用说明 (1)1Testbed功能介绍1.1编程规则验证编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed 自动地验证应用软件是否遵循了所选择的编程规则。

编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。

LDRA Testbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。

测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。

1.2数据流分析LDRA Testbed分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。

通过Testbed数据流分析功能,可方便地分析出软件中一些可能的程序欠缺,如:1.没使用的函数参数;2.不匹配的参数;3.变量未赋初值就引用;4.代码中有多余变量;5.给值传递参数赋值;6.无返回值的函数路径;7.函数的实参是全局变量。

1.3控制流分析控制流分析检查以下内容:1.不可达代码;2.不合理的循环结构;3.存在浮点相等比较;4.函数存在多个出口;5.函数存在多个入口。

LDRA-Testbed静态分析操作步骤

LDRA-Testbed静态分析操作步骤

使用LDRA Testbed对代码进行静态分析静态分析的主要操作:①分析对象选择②分析前的设置③分析项的选择与分析过程④分析结果的查看详细操作如下:一、分析对象的选择,即如何选择你的分析对象(被分析的文件);有两种方式:单个文件分析和以集(set)的形式分析,以集的形式分析可每次分析多个文件1.单个文件分析选择打开程序LDRA Testbed,点击Testbed的菜单file 通过文件浏览窗口打开文件要分析的文件,如C:\LDRA_Workarea\Examples\C_testbed_examples\Testrian\Testrian.c 。

点击select之后,可以在工具快捷按钮栏的下方看见目前选择的文件2.以集(set)的形式分析选择①创建集合(set),设置集合属性打开程序LDRA Testbed,点击Testbed的菜单Set Select/Create/Delete Sets 弹出set创建窗口在图中上部的Select/Create Sets区域写入set的名字,然后点击下部的Create按钮创建set,此时会弹出set的属性设置对话框,有两种属性可以设置”Group”和”System;”此两种属性的区别:Group 只是把set中的多个文件孤立的分析,不会分析文件间代码的相互关系,可作为批量分析使用。

System把set中的多个文件作为一个工程来分析,能够分析文件间的代码的关联,一般都会采用此种属性。

Set创建之后可在窗口中确认如下:其中demo为set的名字,system为set的属性,(0 files)代表set中目前没有文件②向集合中添加文件点击Testbed的菜单Set→List/Add/Remove Files in Sets 弹出添加文件窗口点击图中的Add按钮,通过文件浏览窗口可添加多个文件到set中。

二、分析前的设置在分析前需要对工具进行简单的设置,主要包括用户头文件的设置和编码规则集的设置。

05.Testbed中文使用指南(2)

05.Testbed中文使用指南(2)
过载函数和分解行为调用作为每一种方法的部分策略,所有的分析都是以这 种分解为基础的。因此 LDRA Testbed 认可并辨别每个多形体的异体。
静态数据流分析
通常静态数据流分析追踪贯穿整个控制流结构的变量的值和对象。目前 没有数据流和数据关系的显示,因此,例如:这里没有类关系的图形显示。
动态分析
在静态分析中,得到的分析结果是跳过了所有的单个对象的。但是,动 态覆盖率分析呈现的仅仅是类的成员。因而,一个特殊类变量的一个定义可 能有缺陷而不是在相同类的另一个声明中。LDRA Testbed 仅报告这一种缺 陷。
Testbed 中文使用指南
测试策略概要
会把 F 和 G 当作系统调用的,在本质上忽略掉。结果就是 B、C、D 会被插 装,F、G 不被插装,E 可能会被插装也可能不被插装。整个系统可以这样 被划分为子系统再自底向上分层测试。这种方式可推荐使用在系统测试和子 系统的集成测试,主要的缺点是需要构造子系统的驱动。与 LDRA Testbed 的使用无关,在许多用例中构造这些驱动是一项明知的方针。
子中的模块 A)必须会被测试很多次,如果 A 很小,那么也就不重要了。
Testbed 中文使用指南
测试策略概要
第一块分割部分由模块 B 、H、C、D、E、I 和 J 组成,这个部分被编 译,从库中被连接。模块 A、F 和 G 对 LDRA Testbed 来说是可见的,那么 也能被测试。每一次仅有一块分割部分被隔离开,但是被分割开部分的大小 是任意的。当底层的模块 F 和 G 被充分测试完,那么 F 和 G 可以被预编译 和连接,然后被分割的第二部分 B、H 和 I 也可以被编译。 LDRA Testbed 分析了 A、C、D、E 和 J,这几个模块可以被测试,C、D、E和J依次被 预编译,LDRA Testbed 现在仅分析 A、B 、H 和 I,当这些被测试后,整个 工作就完成了。

Testbed中文简介教程文件

Testbed中文简介教程文件

LDRA公司是专业性软件测试工具与测试技术、咨询服务提供者,成立于1975年,具有丰富的软件测试经验,其总部位于英国利物浦,中国设有总代理上海创景计算机系统有限公司。

其旗舰产品Testbed/TBrun功能强大、功能全面、易于使用,不仅适合于主机平台软件测试,同时适合于嵌入式软件测试,已成功地应用于国内各大研究机构、软件测试部门。

LDRA Testbed/TBrun 软件测试产品功能介绍一、静态分析功能1、编程标准编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed 自动地验证应用软件是否遵循了所选择的编程规则。

编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。

LDRA Testbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。

测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。

2、软件度量分析、质量标准验证对于软件开发工程师、项目负责人及高级管理者来说,软件质量的管理与监控是非常困难的且费时。

LDRA Testbed 很好地解决了这一问题,使得管理者很容易地收集正在开发的软件系统的相关信息并判断软件是否满足软件质量标准要求,从而达到对软件项目的质量跟踪与控制,用户可基于现行软件标准自行定义适合本系统或项目的软件质量模型。

LDRA Testbed 支持下列主要软件度量元分析:* 控制流结点度量(Control Flow Knots);* LCSAJ 密度度量(LCSAJ Density);* 扇入/扇出度量;* 循环深度度量;* McCabe 圈复杂度;* Halstead软件科学度量;* McCabe Essential复杂度;* 注释行度量;* 代码可达性度量;* 等等。

Testbed测试流程及trick

Testbed测试流程及trick

Testbed测试流程单元测试1. File/Select File2. 点击工具栏上的“+”按钮(Unit Test only)3. 新建序列,Sequence/New4. 选择要测的函数,右击选择create new test case(后面的弹窗全部点击continue)5. 生成测试用例后在右下角的初始值输入栏中输入初始值,前面是I的表示输入,是O的表示输出,这里我们只有为输入的变量设置初始值。

(为指针变量设置初始值时,需要让其指向一个地址,如int*(0))6. 点击工具栏中的绿色编译按钮7. 在用例上右击选择View Fowgraph,可以看到整个程序的流图,期中绿色表示已经跑到的分支红色为没跑到的(这里是指之前所有用例加在一起的分支覆盖)。

点击上面的一个蓝色按钮可以看到当前用例执行的分支,红色表示当前覆盖,蓝色表示当前未覆盖8. 建立多个用例将函数的语句覆盖率和分支覆盖率都跑成100%集成测试1. 先了解你要测的是哪几个函数的集成,了解他们之间的调用关系(一般是一个主函数调用多个子函数),找到每个函数包含在哪个.c里,记录这些.c2. 选择工具栏中的Set,点击Select/Create Set创建新的set,然后点击Set按钮下的list/add,add之前所有记录的.c文件,然后点击工具栏中“+”字左边的按钮(Isolation Unit/Moudle Test)3. 新建序列,Sequence/New4. 选择所有要测的函数,右击选择Inclue,选择你所测的主函数右击create new test case(后面的弹窗全部点击continue)5. 生成测试用例后在右下角的初始值输入栏中输入初始值,前面是I的表示输入,是O的表示输出,这里我们只有为输入的变量设置初始值。

(为指针变量设置初始值时,需要让其指向一个地址,如int*(0))6. 点击工具栏中的绿色编译按钮7. 在用例上右击选择View Fowgraph,可以看到整个程序的流图,期中绿色表示已经跑到的分支红色为没跑到的(这里是指之前所有用例加在一起的分支覆盖)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录
1Testbed功能介绍 (1)
1.1编程规则验证 (1)
1.2数据流分析 (1)
1.3控制流分析 (1)
1.4表达式分析 (2)
1.5接口分析 (2)
1.6软件质量度量分析 (2)
2使用Testbed 进行编码规则的定制和检查 (3)
2.1确定测试需求 (3)
2.2建立测试工程 (3)
2.3定制代码分析规则 (6)
2.4配置Report选项 (7)
2.5分析执行及结果查看 (8)
3结果分析及测试报告编写 (9)
3.1质量度量信息的获取 (9)
3.2程序质量度量报告单 (11)
3.3静态分析质量报告单 (12)
附录A:静态分析推荐规则使用说明 (1)
1Testbed功能介绍
1.1编程规则验证
编程标准验证是高可靠性软件开发不可缺少的软件质量保证方法,使用LDRA Testbed 自动地验证应用软件是否遵循了所选择的编程规则。

编程规则由软件项目管理者根据自身项目的特点并参考现有的成熟的软件编程标准制定,如DERA(欧洲防务标准),MISRA(汽车软件标准),LDRA Testbed依据此规则搜索应用程序,并判断代码是否违反所制定的编程规则。

LDRA Testbed报告所有违反编程规则的代码并以文本方式或图形反标注的方式显示。

测试人员或编程人员可根据显示的信息对违反编程规则的代码进行修改。

1.2数据流分析
LDRA Testbed分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。

通过Testbed数据流分析功能,可方便地分析出软件中一些可能的程序欠缺,如:
1.没使用的函数参数;
2.不匹配的参数;
3.变量未赋初值就引用;
4.代码中有多余变量;
5.给值传递参数赋值;
6.无返回值的函数路径;
7.函数的实参是全局变量。

1.3控制流分析
控制流分析检查以下内容:
1.不可达代码;
2.不合理的循环结构;
3.存在浮点相等比较;
4.函数存在多个出口;
5.函数存在多个入口。

1.4表达式分析
表达式分析检查以下内容:
1.表达式中的括号使用不当;
2.数组下标越界;
3.存在被零除;
4.SWITCH语句缺少DEFAULT;
5.CASE语句缺少BREAK;
6.存在混合运算;
7.对指针进行逻辑比较;
8.在逻辑表达式中使用赋值操作符。

1.5接口分析
接口分析检查以下内容:
1.实参和形参个数不匹配;
2.实参和形参类型不匹配;
3.函数参数定义的结构和调用的结构不一致。

1.6软件质量度量分析
对于软件开发工程师、项目负责人及高级管理者来说,软件质量的管理与监控是非常困难的且费时。

LDRA Testbed很好地解决了这一问题,使得管理者很容易地收集正在开发的软件系统的相关信息并判断软件是否满足软件质量标准要求,从而达到对软件项目的质量跟踪与控制。

Testbed 提供数据文件接口,用户可基于现行软件标准自行定义适合本系统或项目的软件质量模型。

静态分析的软件度量元和相应的说明见表1:
表 1软件质量度量元说明
2使用Testbed 进行编码规则的定制和检查
LDRA Testbed可通过编辑编码规则文件cpen.dat/cppen.dat实现编码规则的定制,下面将具体介绍:
2.1确定测试需求
在测试需求分析阶段确定:
1.确定测试对象:整个MSVC工程还是文件集合;纯C文件、纯C++还
是C/C++混合文件。

2.确定测试内容:确定静态分析规则,可参考附录A所示静态分析推荐规
则使用说明。

3.确定测试“类型”:确定是进行击System分析还是Group分析(选择
Group时,不对代码进行集成测试,只是采用批处理方式分析单个文件)。

2.2建立测试工程
1. 启动Testbed,根据分析对象,选择测试工程类型。

如需对整个MSVC工程进行分析,选择Create Set Based Upon MSVC v6 Project;如分析对象是一个或多个C、C++文件,选择Select/Create/Delete Set…。

下面以在Set 菜单下选择
Select/Create/Delete Set…选项为例进行说明。

2. 在Select/Create Set输入框中输入“Demo”,点击【Create】按钮
3. 点击【System】按钮(选择Group时,不对代码进行集成测试,只是采用批处理方式分析单个文件)。

4. 点击右上侧【Add】按钮,选择好要分析的文件,点击【Add】按钮后点【OK】按钮进行确认。

2.3定制代码分析规则
1. 点击菜单栏中的Configure,在下拉菜单中点击Static Options 选项,将会出现如下窗口,点击cpen.dat/cpppen.dat后的Edit 按钮,按照提示编辑cpen.dat/cpppen.dat后。

若存在已编辑好的编码规则文件,可按旁边的浏览键直接指定该dat 文件,则下面第3步可以省略。

2. 编辑第2 列,根据实际需求,将对应编码规则置“0”或“1”,置“0”代表该条编码规则无效,置“1”代表该条编码规则有效。

2.4配置Report选项
1. Quality Report配置
点击菜单栏中的Configure,在下拉菜单中点击Quality Report Options 选项,将会出现如下窗口,在Programming Standard Model 下拉框中选择“No Model –all standards”。

如分析的文件为C、C++混合类型,则在下图右侧所示下拉列表中分别选择一个.C和.CPP文件,选中对应文件后选择在Programming Standard Model 下拉框中选择“No Model –all standards”。

在Optional Configuration中Violation Summaries选中“All”,根据需要选择Report Violations Only(Quality Report只列出有违反的)。

2. Metrics Report配置
点击菜单栏中的Configure,在下拉菜单中点击Metrics Report Options 选项,将会出现如下窗口,根据测试需求配置metpen,dat及Kiviat.dat文件。

2.5分析执行及结果查看
1. 点击菜单栏中的Analysis,在下拉菜单中点击Select Analysis,将会出现如下窗口,选择前3 项,点击Start Analysis 按钮,开始进行静态分析。

2. 静态分析结束后,点击菜单栏中的Individual /System Results,选择下拉菜单Text Results 中的Quality Report(HTML),查看质量报告。

3结果分析及测试报告编写
3.1质量度量信息的获取
度量度量信息可通过以下几种方式获取:
1. 查看规则审查报告:点击菜单栏中的Individual Results/System Results,选择下拉菜单Text Results 中的Quality Report (HTML)。

度量元指标查看位置具体说明
注释度量>=20% 在Quality Report (HTML)中
的Global Basic Information
获取可执行代码行总数与注
释行总数
注释行总数/(注释行总数+
可执行代码行总数)
2. 查看质量度量报告:点击菜单栏中的Individual Results/System Results,选择下拉菜单Text Results 中的Metrics Report (HTML)。

3. 查看图形化报告:点击菜单栏中的System Results,选择下拉菜单Graphical Results 中的Static Bar Charts。

以圈复杂度为例:选择Static Bar Charts子菜单下的“Essential Cyclomatic Complexity”,弹出如下所示柱状图,在该界面,将Graph菜单下的Show Bar Components选中,可查看函数基本圈复杂度具体信息。

3.2程序质量度量报告单
表 2程序质量度量报告单
度量元指标说明违反
个数
所在软件具体描述
函数代码行数<=200
函数包含的语
句数
注释度量>=20% 代码的有效注释率
函数参数<=7 函数参数个数Goto语句0 Goto语句数
圈复杂度<=10 控制流图中边的数量与节点数量之间的差值加2
基本复杂度<=4圈复杂度与流程图中结构化子图的数量之间的差值
LCSAJ密度<=20 LCSAJ 密度是一个描述软件可维护性的概念
3.3静态分析质量报告单
报告单中列出的审查内容根据测试需求确定,其中部分度量指标在质量度量报告中会重复出现,此表可以不列出。

审查结果根据根据Quality Report确定。

表 3静态分析质量报告单
附录A:静态分析推荐规则使用说明
1
2
3
注:M的优先级高于C。

4。

相关文档
最新文档