(完整版)LDRATestbed单元测试操作步骤

合集下载

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.函数存在多个入口。

LDRATestbed静态分析报告操作步骤

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 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中。

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分析域设置。

LDRA Testbed单元测试操作步骤

LDRA Testbed单元测试操作步骤

使用LDRA Testbed对代码进行单元测试单元测试的主要操作:⑴被测对象选择⑵编译器的确认与切换⑶单元测试模块Tbrun的打开⑷测试序列(Sequence)的创建⑸测试用例的创建⑹测试用例的IO值设定⑺测试用例中桩的设定⑻测试用例的执行⑼测试结果的查看⑽测试用例的保存⑾测试用例中增加用户全局变量⑿测试用例创建向导中对全局数组和指针的处理详细操作如下:一、测试对象的选择在Testbed中C码中的“单元”就是一个函数,每次对一个函数的代码进行测试,测试时每次打开一个源文件。

打开程序LDRA Testbed,点击Testbed的菜单File select file 通过文件浏览窗口打开文件要分析的文件,如C:\LDRA_Workarea\Examples\C_testbed_examples\Testrian\Testrian.c 。

点击select之后,可以在工具快捷按钮栏的下方看见目前选择的文件二、编译器的确认与切换在使用TBrun进行单元测试前需要先确认当前使用的编译器是否是正确的,如果不是正确的编译器可以切换为正确的编译器,其操作如下:1.确认编译器是否为目标编译器在Testbed中右上角的”Options Window”中要确认”Current Compiler”和”Default Compiler”所显示的内容,需要注意两点,“Current”和“Default”是否是目标编译器“Current”和“Default”是否是一样的,应该相同才可以2.切换编译器如果编译器不是用户想要的目标编译器需要切换,切换方法如下:点击Testbed菜单Configure—>Switch Compiler,在弹出窗口的编译器列表中选择目标编译器,然后点击Select按钮即可。

如果编译器选项中的”Current Compiler”和”Default Compiler”不一致,也需要设置为一致的,设置方式为点击Testbed菜单Configure—>Switch Compiler,在弹出窗口中点击Reset Current Set按钮来设置。

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软件的单元测试

基于LDRA Testbed软件的单元测试

基于LDRA Testbed软件的单元测试单元测试是软件开发过程中不可或缺的一环,它能够发现代码中的错误和缺陷,提高软件质量和可靠性。

LDRA Testbed软件是一个集成开发环境(IDE),能够帮助开发人员进行单元测试和代码分析。

本文将介绍LDRA Testbed软件的基本原理、功能、应用和优点。

一、基本原理LDRA Testbed软件的基本原理是将代码分析为结构章程(Structural Coverage),并将其转换为函数测试用例。

开发人员可以使用该软件生成测试用例,以测试单元代码是否符合预期要求。

这些测试用例能够包含各种测试类型,如基本路径覆盖、条件覆盖、分支覆盖等。

通过这些测试用例,开发人员能够发现代码中的错误和缺陷,提高软件质量和可靠性。

二、功能LDRA Testbed软件能够实现以下功能:1.静态分析:能够分析代码并检查其是否符合规范。

这个过程能够发现一些潜在的安全漏洞和重构机会。

2.代码覆盖率:能够帮助开发人员检查测试用例是否完全覆盖单元代码,并生成测试报告。

3.自动化测试:能够快速、准确地测试代码,提高软件生产效率。

4.符号执行:通过符号计算机程序运行,能够模拟软件运行过程,发现软件问题。

5.程序执行跟踪:能够记录代码执行时的控制流,与图形界面结合,更容易定位问题。

6.缺陷管理:能够管理问题和工件,建立组织工件和缺陷报表的能力。

三、应用LDRA Testbed软件适用于以下场景:1.嵌入式开发:对于嵌入式系统,测试时要求测试代码的完整性、效率、可靠性和正确性,LDRA Testbed软件能够帮助开发人员实现这些要求。

2.医疗设备:对于一些医疗设备,在测试代码时要求高度安全性和健壮性,使用LDRA Testbed软件可以有效提高测试效率。

3.汽车电子:对于汽车电子产品,要求测试涵盖复杂的逻辑,同时需要高效且可靠。

使用LDRA Testbed能够加快开发和测试速度,帮助开发人员更好地实现目标。

单元测试有哪些步骤各个步骤有哪些实施内容

单元测试有哪些步骤各个步骤有哪些实施内容

单元测试步骤及实施内容单元测试是软件开发中非常重要的一环,它能够帮助开发人员在开发过程中及时发现问题,提高代码质量,保证系统的稳定性。

下面是进行单元测试时需要遵循的步骤以及每个步骤的实施内容。

步骤一:确定测试目标在进行单元测试之前,首先要确定测试的目标,即明确要测试的是哪部分代码、函数或模块。

只有明确了测试目标,才能有针对性地进行测试。

实施内容:- 确定要测试的代码范围 - 确定测试的功能和接口 - 编写测试用例步骤二:准备测试环境在进行单元测试之前,需要搭建好测试环境,包括所需的软件、硬件环境和测试数据等。

良好的测试环境能够保障测试的准确性和有效性。

实施内容:- 搭建测试环境 - 准备测试数据 - 配置测试工具和框架步骤三:编写测试代码编写测试代码是进行单元测试的关键步骤,通过编写测试用例和测试代码可以验证被测试代码的正确性和稳定性。

实施内容:- 编写测试用例 - 编写测试代码 - 确保测试代码覆盖率步骤四:运行测试在编写完测试代码之后,需要运行测试代码来验证被测试代码的正确性。

在这个过程中,需要检查测试结果,确保测试覆盖了所有的边界情况。

实施内容:- 运行测试代码 - 检查测试结果 - 修复测试代码中的问题步骤五:分析和整理测试结果在运行完测试代码之后,需要对测试结果进行分析和整理,找出问题所在,并进行记录。

通过分析和整理测试结果,可以改进代码质量,规避潜在问题。

实施内容:- 分析测试结果 - 记录测试问题 - 提出改进建议步骤六:重复测试单元测试是一个循环迭代的过程,需要不断地重复测试,直到所有的问题都得到解决。

通过不断地重复测试,可以不断地改进代码质量,确保系统的稳定性和可靠性。

实施内容:- 修复问题 - 重复测试 - 确保问题解决通过以上步骤,我们可以完整地进行单元测试,保证软件开发的质量和可靠性。

单元测试不仅可以帮助我们发现问题,也可以帮助我们改进开发流程,提高团队的工作效率和协作能力。

基于Testbed_的单元测试方法及实例分析

基于Testbed_的单元测试方法及实例分析
等标准 [4] 。 值得一提的 LCSAJ 覆盖是 LDRA 特有的
覆盖分析,是对形成的线性代码( start 和 finish 配对)
进行覆盖统计,消除了路径覆盖测试用例成几何倍
数,仅需 N + 1( N 为条件个数) 个测试用例即可达到
100%覆盖。 覆盖率配置可以在 Testbed 中进行定义,
此桩函数中增加 m_mapFilter 的初始化代码,确保集
合不为空; 第二 个 即 打 桩 的 ST _ FILER1553B:: ST _
FILER1553B( int,int,int) 构造函数,确保能够初始化
成功;第三个即打桩的 ST _FILER1553B 的 operator <
操作符函数,不然默认的桩函数总是返回 false。 再次
qq_last_test_case、ldra_qq_test_case_number 等 进 行
作者简介:张晓明(1985— ) ,男,陕西礼泉人,高级工程师,本科;研究方向:航空电子技术。
— 51 —
第 19 期
2023 年 10 月
无线互联科技·软件开发
判断区分。
1. 6 系统函数打桩
系统函数一般不用打桩,直接调用即可,如果确有
\ lib \ libQt5Cored. a” 。
2. 2 设计测试用例
因为是针对类的函数测试,必然要调用类的构造
和 析 构 函 数, 又 因 为 是 单 元 测 试, 所 以 必 须 对
C1553::C1553( ) 构造函数和 C1553:: ~ C1553 ( ) 析
构函数这两个函数打桩。
第 19 期
2023 年 10 月
无线互联科技
Wireless Internet Science and Technology

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中。

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

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中。

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

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中。

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

Testbed静态测试使用指南

Testbed静态测试使用指南

T e s t b e d静态测试使用指南V1.1(共19页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--目录1Testbed功能介绍 ................................................................ 错误!未定义书签。

编程规则验证...................................................................... 错误!未定义书签。

数据流分析.......................................................................... 错误!未定义书签。

控制流分析.......................................................................... 错误!未定义书签。

表达式分析.......................................................................... 错误!未定义书签。

接口分析.............................................................................. 错误!未定义书签。

软件质量度量分析.............................................................. 错误!未定义书签。

2使用Testbed 进行编码规则的定制和检查 ....................... 错误!未定义书签。

确定测试需求...................................................................... 错误!未定义书签。

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,当这些被测试后,整个 工作就完成了。

LDRA-Testbed单元测试操作步骤.docx

LDRA-Testbed单元测试操作步骤.docx

使用LDRA Testbed对代码进行单元测试单元测试的主要操作:⑴被测对象选择⑵编译器的确认与切换⑶单元测试模块Tbrun的打开⑷测试序列(Sequence)的创建⑸测试用例的创建⑹测试用例的10值设定⑺测试用例中桩的设定⑻测试用例的执行⑼测试结果的查看(10)测试用例的保存(11)测试用例中增加用户全局变量(10测试用例创建向导中对全局数组和指针的处理详细操作如下:—、测试对象的选择在Testbed中C码中的“单元”就是一个函数,每次对一个函数的代码进行测试,测试时每次打开一个源文件。

打开程序LDRA Testbed,点击Testbed的菜单File^select file通过文件浏览窗口打开文件要分析的文件,如C:\LDRA_Workarea\Examples\C_testbed_examples\Testrian\Testrian.c。

hit Analysis Tgrun IB evolveSelect Previously Analysed File.・・Select Fil« from MSVC v6 ProjectS«l«ct File ・r S«t fro* ICFSave File or Set to TCPRecent £il«s点击select 之后,可以在工具快捷按钮栏的下方看见目前选择的文件JC/C-+ LDRA Testbed Version 3.4仏 i975 .0514 LDRAltd.二、 编译器的确认与切换在使用TBrun 进行单元测试前需要先确认当前使用的编译器是否是正确的,如果不是正 确的编译器可以切换为正确的编译器,其操作如下:1 •确认编译器是否为目标编译器在 Testbed 中右上角的"Options Window "中要确认"Current Compiler"和"Default Compiler" 所显示的内容,需要注意两点, "Current"和"Default"是否是目标编译器"Current"和"Default"是否是一样的,应该相同才可以I C/C* ■ LORA Tntbed Vers on 94.6 C 1975 - 2014 LDRA Ltd Customs 10: 508867 - 20 Days Remaning*Jflrw T Bfvolve Individual ftetuits Set Retutts (oniiQur*Website (JHpJ 0 e 两禅 SH — <1 ■ 8 Q a S O S S D 9SS996 ^QQ<J20 >«€on4ihost id 1userU«conds): 900T«ltl licenses in "•: 1T^tal 0f lic«ns«s 1 ...L^cxinc oni»urc« £il«C 'LDKAJTxktr••\Ex ・plu\C.tbrg_・*f lu\G (roc«r ・ c startedFk*s« tinderL»・d 哼 source fil ・C \UXA.Vorktr««\Ex«»pl•s \C_tbrun_«xe»pl«s\Gp*^ctri c finuhtd2.切换编译器如果编译器不是用户想要的目标编译器需要切换,切换方法如下:点击Testbed 菜单Configure —>Switch Compiler,在弹出窗口的编译器列表中选择目标编 译器,然后点击Select 按钮即可。

LDRA_Testbed汇编语言使用指南1.1

LDRA_Testbed汇编语言使用指南1.1

LDRA_Testbed汇编语言使用指南1.1汇编语言使用指南联系电话: 021-********(上海),010-********(北京)028-********(成都),0755-*******(深圳)LDRA TESTBED (1)1.T ESTBED对汇编分析前对ASM文件的文件格式要求 (1)1.1程序全部使用大写 (1)1.2在程序体里不能有伪指令 (1)1.3过程中包含过程 (1)1.4 从一个过程之中跳转到另一个过程中 (2)1.5 散转指令的问题 (2)1.6 $符号的问题 (2)1.7 标号的问题 (3)1.8 间接寻址问题 (3)1.9 函数标号 (3)1.10 程序中间有伪指令 (3)1.11 8031汇编程序的主程序 (4)1.12 宏汇编程序中宏展开的问题 (4)2.汇编程序示例 (5)2.1 宏汇编的例子程序 (5)2.2 8031汇编的例子程序 (6)2.3 TI TMS320C2xx/3x汇编的例子程序 (9)3.常见问题解决 (11)3.1 分析时提示ERROR 311 OCCURRED IN MACRO EXPANSION的错误 (11)3.2 选择新的文件分析提示无法为该文件创建ID (11)3.3 宏汇编Testbed7.09动态分析历史文件问题 (11)3.4 宏汇编系统测试的模板问题 (11)4.T ESTBED FOR TMS320C3X汇编的使用注意及问题 (12)4.1条件编译的问题: (12)4.2 BNZD BZD 等的问题 (12)4.3宏替换的问题 (12)4.4插桩模板的问题 (12)4.5 Testbed TiC3x(7.09)的插桩设置问题 (13)5.TMS320C25汇编插桩模版 (14)5.1插桩模板 (14)1. Testbed 对汇编分析前对ASM 文件的文件格式要求1.1程序全部使用大写采用Testbed 对汇编代码进行分析的时候,将汇编代码全部转换为大写的,否则Testbed 进行分析的时候在函数的调用关系上会出错;具体的说就是如果函数名不是全大写,Testbed 不能正确的分析出调用关系,会显示是外部函数;(以下说明和分析都以T estbed MASM 7.07为例,其它版本可能有不同)1.2 在程序体里不能有伪指令由于汇编的灵活和不规范性,所以程序中往往有在程序体中有常量定义等伪指令,这样Testbed 在分析的时候有时就不能正确地分析这些程序后面的代码;所以在程序体内不要有伪指令,相关的伪指令都应当放到程序体外(proc 和 endp 之外);1.3过程中包含过程不规范的程序写法,往往会有在过程中包含过程的情况,比如(以宏汇编为例):上面这种情况需要修改为:START PROCOR AX,AX JNZ NR00 XOR CL,CL JMP NR00 NR00:CMP AX,4000H CALL NORADJMP STARTNORAD PROC NEAROR AX,AX XOR CL,CL NREND: RET NORAD ENDPSTART ENDPSTART PROCOR AX,AX JNZ NR00 XOR CL,CL JMP NR00 NR00:CMP AX,4000H CALL NORADJMP START START ENDPNORAD PROC NEAR OR AX,AXXOR CL,CL NREND: RET NORAD ENDP如果START 是程序中的主程序,或者相当于主程序的话,那么在程序语法和功能没有问题的前提下可以将程序改为:这样Testbed 的Callgraph 中就不会同时出现START 函数和START (SEGMENT )了,这样的程序结构才是更加合理的。

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)。

使用LDRA Testbed对代码进行单元测试单元测试的主要操作:⑴被测对象选择⑵编译器的确认与切换⑶单元测试模块Tbrun的打开⑷测试序列(Sequence)的创建⑸测试用例的创建⑹测试用例的IO值设定⑺测试用例中桩的设定⑻测试用例的执行⑼测试结果的查看⑽测试用例的保存⑾测试用例中增加用户全局变量⑿测试用例创建向导中对全局数组和指针的处理详细操作如下:一、测试对象的选择在Testbed中C码中的“单元”就是一个函数,每次对一个函数的代码进行测试,测试时每次打开一个源文件。

打开程序LDRA Testbed,点击Testbed的菜单File select file 通过文件浏览窗口打开文件要分析的文件,如C:\LDRA_Workarea\Examples\C_testbed_examples\Testrian\Testrian.c 。

点击select之后,可以在工具快捷按钮栏的下方看见目前选择的文件二、编译器的确认与切换在使用TBrun进行单元测试前需要先确认当前使用的编译器是否是正确的,如果不是正确的编译器可以切换为正确的编译器,其操作如下:1.确认编译器是否为目标编译器在Testbed中右上角的”Options Window”中要确认”Current Compiler”和”Default Compiler”所显示的内容,需要注意两点,“Current”和“Default”是否是目标编译器“Current”和“Default”是否是一样的,应该相同才可以2.切换编译器如果编译器不是用户想要的目标编译器需要切换,切换方法如下:点击Testbed菜单Configure—>Switch Compiler,在弹出窗口的编译器列表中选择目标编译器,然后点击Select按钮即可。

如果编译器选项中的”Current Compiler”和”Default Compiler”不一致,也需要设置为一致的,设置方式为点击Testbed菜单Configure—>Switch Compiler,在弹出窗口中点击Reset Current Set按钮来设置。

三、单元测试模块Tbrun的打开由Testbed进入Tbrun有三种模式,每种模式对应不同的测试类型,三种模式分别为:“Integration Unit / Module Test”、”Isolation Unit / Module Test”和” Unit Test Only”。

C代码的单元测试使用” Unit Test Only”模式,CPP的单元测试使用另外两种模式皆可。

在Testbed菜单TBrun→Unit Test Only点击,即可进入Tbrun模块。

四、测试序列(Sequence)的创建在Tbrun中是使用测试序列(sequence)来容纳测试用例和测试数据的,进入Tbrun后第一步需要做的就是创建测试序列。

建议每一个函数对应一个测试序列,便于用例管理。

在Tbrun的菜单Sequence-→New点击,弹出测试序列创建窗口,在’Sequence name”下面需要用户写入Sequence的名字;窗体下面的选项卡设置如下,在”Code Coverage”选项卡中把选择框”Code Coverage”选上,此项可自动计算覆盖率信息,在”Test Enviroment ”选项卡中把选择框”Create Dicitoary”、”Create User Globals”、”Create Stubs”,注意”Test build”选择框不要选,其他保持默认设置即可;然后点击”Continue”按钮即可。

五、测试用例的创建在Tbrun窗体的右上角File View窗口中,点击文件名能够展开显示文件中所包含的函数,把鼠标放到某个函数名上,右键弹出菜单点击”Create New Test Case”,会弹出测试用例创建向导窗口在此窗口中会显示函数的基本信息,可不用关注,直接点击按钮”Continue”向下进行,这样一个用例创建完成,可在用例管理窗口”Test Case View”中显示已经创建的用例,以数字编号用例,在”Variable I/O View”窗口中会显示此函数的输入输出参数。

六、测试用例的输入输出参数IO值设定测试用例的输入输出参数值的设定是测试的核心,在这一步决定了有什么样的输入和用例运行之后应该有什么样的输出(预期输出),从而实现了函数功能的验证。

对于函数的输入输出不只有函数的参数,还包含函数内部使用的全局变量。

在”Variable I/O View”窗口中工具会显示出函数的参数和内部使用的全局变量,并会显示每个参数是输入还是输出,用户给每个参数赋值即可,注意输入以”I”标示的,输出是以”O”标示的,此处的输出是指预期的输出值。

对于标示为”I”的变量一定要有一个确定的值,要不让用例无法执行。

七、测试用例中桩的设定桩-----使用一个函数原型相同的空函数来代替原函数如果被测函数中调用了其他函数,则被调用函数会被打桩,如果被调用函数的返回值影响了被测函数的分支流程,或被调用函数的动作影响了被测函数的分支流程,则需要对桩进行设置,一般设置桩的返回值即可满足。

在Tbrun的”Variable I/O View”中,双击”M Double-click to access”图标即可打开桩的属性设置其返回值等在桩函数右键,弹出菜单,选择”Set Return Value On Exit”,弹出返回值设定窗口在途中的”Value”设定返回值,点击”OK”。

八、测试用例的执行测试用例的IO设置和桩的设定之后,此用例就算构造完成了,接下来要做的就是执行用例,有两种运行方式,操作方法如下:a.一键式运行用例;在测试用例管理窗口中的空白处右键可弹出菜单,点击”Run TestCase Driver”即可运行用例。

b.分步式执行用例;在测试用例管理窗口中的空白处右键可弹出菜单,按顺序点击“Generate Driver”、”Build Driver”、”Execute Driver”、(“Split Regression Driver Output”)、”Process Regression Driver Output”,每执行一步如果执行成功则会在旁边以“√”提示,如果不成功则没有“√”,请排查原因。

九、测试结果的查看单元测试其测试结果由两部分构成:函数功能验证和函数覆盖率信息;函数功能的验证是通过用例的执行之后的用例确认对话框中的Pass/Fail结果反映的。

函数的覆盖率信息可通过动态覆盖率分析报告来查看,在Tbrun的菜单Result Dynamic Coverage Analysis Report点击即可,此报告中包含整个文件中所有函数的语句、分支MC/DC覆盖率信息。

还有一种图形化的方式显示函数的覆盖率信息,在Tbrun的用例管理窗口,选中用例然后右键在弹出的菜单中选择”View Flowgraph”即可打开覆盖率图形化显示窗体,图中绿色的代表已经覆盖了的,红色的代码未覆盖的在弹出窗体中可通过菜单选择为图形添加分支跳转条件注释十、测试用例的保存通过设计多个测试用例执行,函数的功能全部验证通过,并且覆盖率的值也达到了测试规范中的要求的值,此函数的测试就可以结束了,以便于以后对此函数进行回归测试,需要用户把用例保存起来,保存的操作如下:在Tbrun的菜单Sequense→Exprot Test Case(TCF)点击,通过文件浏览窗体选择一个目录来保存对应的TCF文件。

至此单元测试的主要操作流程结束,下面介绍在测试用例创建过程中会常用到的几个重要的操作处理。

十一、测试用例中增加用户全局变量单元测试每次通过Testbed来选择一个文件,而我们每个用例是针对一个函数的,所以在编译的时候只编译用户代码中的一个函数,如果此函数中使用了全局变量,且恰好此变量是用”extern”声明的,即全局变量身体的声明(定义)不在此文件内部,就需要用户自己在Tbrun中添加此全局变量的声明(定义)。

操作如下:在Tbrun的菜单Global Variables→Create User Global点击即可弹出用户全局变量定义窗口,在窗口中添入”Name”和”Declaration Type”点击finish即可。

十二、测试用例创建向导中对全局数组和指针的处理1.全局数组的处理如果被测函数内使用的全局数据,在创建用例的时候用例创建向导会提示遇到全局数组,让用例来选择处理方式,一共有三种方式“Add all elements to the test case”把数组的所有元素都添加到用例的IO窗口中“Add multiple elements to the test case”把数组的部分元素添加到用例的IO窗口中“Remove all elements from the test case”把数组的所有元素从用例的IO窗口中删除用户根据自己代码中对全局数组的访问情况自主选择相应的处理方式。

2.指针的处理a.输入指针的处理如果被测函数的参数中包含输入指针(此指针的所指向内容未被改变),在创建用例时用例向导会提示用户发现输入指针,让用户选择处理方式,一般选择第二种”Set input pointer to the address of entity”在下面的空白处填入要指向的实体,也可以通过”Find”按钮选择已有的用户全局变量,或者”New”新建一个用户全局变量来指向。

b.输出指针的处理如果被测函数的参数中包含输出指针(此指针的所指向内容被改变),在创建用例时用例向导会提示用户发现输出指针,让用户选择处理方式,一般选择第二种”Mapping”把此指针映射到某个实体,点击next按钮后会出现映射窗口在此窗口中选择”Map to Global Entity”,然后通过”Assign”来分配映射到那个全局变量,再让后点击”next”按钮;一步一步”next”或”continue”完成输出指针的处理。

相关文档
最新文档