05.Testbed中文使用指南(2)
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安装说明及单元测试指导书
了。 ?条件覆盖(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 进行软件安装,安装流程如下所示。
(完整版)LDRATestbed单元测试操作步骤
使用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按钮来设置。
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静态测试使用指南V1
目录1Testbed功能介绍11.1编程规则验证11.2数据流分析11.3控制流分析11.4表达式分析21.5接口分析21.6软件质量度量分析22使用Testbed 进展编码规则的定制和检查3 2.1确定测试需求32.2建立测试工程32.3定制代码分析规则42.4配置Report选项42.5分析执行及结果查看43结果分析及测试报告编写43.1质量度量信息的获取43.2程序质量度量报告单63.3静态分析质量报告单7附录A:静态分析推荐规则使用说明11Testbed功能介绍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.在逻辑表达式中使用赋值操作符。
Testbed常见问题解答
常见问题解答目录Testbed使用过程中问题解析............................................ 错误!未定义书签。
1 如何处理中文? ...................................................... 错误!未定义书签。
2.如何尽快入门:介绍tutorial ........................................................................ 错误!未定义书签。
3 •安装的问题:文字竖排、输入许可、软件狗驱动......................... 错误!未定义书签。
4. ....................................................................................... 用户许可无效"Con trol File Co nfiguratio n ....................................................................................... ” ................ 错误!未定义书签。
5. .................................................................................................................... 试用版不要更改日期错误!未定义书签。
6. 嵌入式系统软件的测试(bitmap插装).................................................... 错误!未定义书签。
7. .................................................................................................................... Testbed的bitmap 插装技术.................................................................. 错误!未定义书签。
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++的头文件声明,代码注释,空行等非可执行语句。
05.LDRA_Testbed中文使用指南1.2
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
24.如何使用testbed进行编码规则的定制和检查1.0
如何使用testbed进行编码规则的定制和检查本篇文档主要介绍如何利用LDRA Testbed进行编码规则的定制和检查,同时结合TBAudit中文报告生成工具生成中文质量报告。
一、使用Testbed进行编码规则的定制和检查LDRA Testbed提供两种方法定制编码规则:一种是通过编辑编码规则文件cpen.dat/cppen.dat实现;一种是编辑cReport.dat添加自己的规则集,下面我们分别介绍。
(一)编辑编码规则文件cpen.dat实现编码规则定制1.启动Testbed,在File菜单下选择Select File选项,选择要分析的文件;选择好要分析的文件,点击Select按钮完成。
2.点击菜单栏中的Configure,在下拉菜单中点击Static Options选项,将会出现如下窗口,点击cpen.dat后的Edit按钮,按照提示编辑cpen.dat。
若存在已编辑好的编码规则文件,可按旁边的浏览键直接指定该dat文件,则下面的3、4、5步可以省略。
3.使用编辑工具中的列模式将第10列全部置为“0”,“0”代表该条编码规则无效。
4.按照规则的中文描述,将与之对应的英文编码规则所在行该列置为“1”,“1”代表该条编码规则有效。
比如某单位编码规则“4.1.1.1 过程/函数名禁止重用”,通过比对编码规则文件,发现规则1与之对应,就作如下修改:5.以此类推,编辑后的编码规则文件如下。
6.同时,整理出对应的中文编码规则文件(TBAudit使用),以上为例,按GJB排序,无用的规则去除。
7.点击菜单栏中的Configure,在下拉菜单中点击Quality Report Options选项,将会出现如下窗口,在Programming Standard Model下拉框中选择“Standard”。
8.点击菜单栏中的Analysis,在下拉菜单中点击Select Analysis,将会出现如下窗口,选择前3项,点击Start Analysis按钮,开始进行静态分析。
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.函数存在多个入口。
05.LDRA_Testbed中文使用指南1.2
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
用Testbed做软件单元测试时一些常见问题的处理
TECHNOLOGY 技术应用摘要:随着我国经济的发展,计算机发展越来越迅猛,测试工具的功能也逐渐强大,同样的,软件测试技术也越来越发达。
单元测试是软件测试的组成部分,也是软件测试的基本要点,是给软件查漏补缺,保证软件质量的必要步骤。
论文以LDRA Testbed测试工具为基础,就单元测试的基本概念和单元测试在工作中的基本方法来结合实际的案例,进行全方位稳妥有效的分析,以期提高测试的覆盖率。
反复的实验结果可以得出结论,在经过严谨的单元测试后,LDR Testbed进行时有效的提高了软件的质量。
关键词:单元测试;LDRA Testbed;用例设计;覆盖率一、前言众所周知,互联网计算机时代的开启了第三次工业革命,各国都大力发展互联网产业,随着经济的发展和科学技术的发展,软件行业也取得了较大的发展,二者相互影响相互促进,相辅相成。
软件行业的发展进程中,有一个重要的影响因素决定着软件质量的高低,这就是软件测试,相对应的,软件测试行业也取得了长足发展,且为了满足软件开发与运行的需求,也不断的在提升其自身技术水平[1]。
软件测试的工作方式就是将已经开发好的软件程序按照常规状态运行,在其运行状态中查明发生的错误,软件的漏洞,查漏补缺,一方面也可以做出软件质量的评估,这样就可以最大程度的减少损失,防止软件正式推向市场后出现问题,最终导致难以挽回的后果。
如果能在软件开发的前期发现并且改正存在的一些错误,可以节省很多成本,最简单直接的就是单元测试。
因为软件市场的多样化越来越明显,出现的问题也越来越多,所以为了应对这些问题,各种功能的测试工具被开发出来投入使用,其中类似LDRA Testbed等工具较为突出,拥有着更精确更高效的能力,能够保证软件的正确性。
主要是为了检测C语言和C++,已经取得了很优秀的成绩,并且在相应领域做出了突出的表现并且占据了一定的地位。
本文就LDRA Testbed来展开研究和分析。
二、单元测试为了对软件进行全方位测试,必须对软件中的每一个小部分做出检测,这一小部分就是程序模块,而用来测试程序模块的就是单元测试。
LDRA Testbed单元测试操作步骤
使用LDRA Testbed对代码进行单元测试单元测试的主要操作:⑴被测对象选择⑵编译器的确认与切换⑶单元测试模块Tbrun的打开⑷测试序列(Sequence)的创建⑸测试用例的创建⑹测试用例的IO值设定⑺测试用例中桩的设定⑻测试用例的执行⑼测试结果的查看⑽测试用例的保存⑾测试用例中增加用户全局变量⑿测试用例创建向导中对全局数组和指针的处理详细操作如下:一、测试对象的选择在Testbed中C码中的“单元”就是一个函数,每次对一个函数的代码进行测试,测试时每次打开一个源文件。
打开程序LDRA Testbed,点击Testbed的菜单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按钮来设置。
LDRA_Testbed中文使用指南1.0
六.复杂度分析..........................................................................................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
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复杂度;*注释行度量;*代码可达性度量;*等等。
3、静态数据流分析LDRA Testbed分析软件中全局变量、局域变量及过程参数的使用状况,并以图形显示、HTML或ASCII文本报告方式表示,清晰地识别出变量使用引起的软件错误,此种方法既可使用于单元级,亦可使用于集成级、系统级。
05.Testbed中文使用指南(2)
静态数据流分析
通常静态数据流分析追踪贯穿整个控制流结构的变量的值和对象。目前 没有数据流和数据关系的显示,因此,例如:这里没有类关系的图形显示。
动态分析
在静态分析中,得到的分析结果是跳过了所有的单个对象的。但是,动 态覆盖率分析呈现的仅仅是类的成员。因而,一个特殊类变量的一个定义可 能有缺陷而不是在相同类的另一个声明中。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中文简介教程文件
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复杂度;* 注释行度量;* 代码可达性度量;* 等等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Testbed 中文使用指南
测试策略概要
14.1 测试复杂的源代码
测试复杂系统的主要的困难起于两个方面。第一个问题是连接被插装的 原码和 I/O 文件需要执行它,包括执行历史的额外输出流。既然这个可能是 很复杂,用户使用 LDRA Testbed 可以手动地随意控制。这儿主要考虑记住 要为执行历史添加输出流。执行的插装原代码用户是可以完全信赖的。执行 完后,用户重新进入 LDRA Testbed 进行动态覆盖率分析,接下来 LDRA Testbed 可以继续分析简单的用例的执行历史。
第二个困难是考虑一个大系统的详细分析的人的问题。尽管 LDRA Testbed 对它所能分析的原代码在大小上没有限制,经验表明对一个完整的 很大的系统的分析是困难的,于是我们建议用户一次分析的代码不要超过 10,000 行。
14.2 大系统问题
当对超大规模软件系统进行工作时,测试会变得费用昂贵。这是主要由 于在系统测试时要运行很多次,计算机要花费时间,系统的执行路径仅在很 低级的模块中发生了改变。比较有用并很经济的技术是子系统测试,如下面 插图所示,展示了内部模块按等级划分的结构:
动态分析覆盖率结果显示的是每一个函数成员或类变量的行为,或作为一个 整体的类成员的覆盖率情况。在以后的方案中,覆盖会被增大到涵盖类变量 的许多不同使用。以前是很难得到的并在综合的类结构中是不可能得到的, 因此后面的策略看起来更具有普遍价值。在 C++ LDRA Testbed 中,后面的 策略已经可以实现了。
注意:划分内容的选择可能有点随意。例如:模块 J 也能被包含在第二个 分割部分。然而,在某些语言中,顶层模块 A 必须对 LDRA Testbed 来说是 可见的,因为它可以包含为执行历史插入的控制输出通道。当测试模块是 E、 F 和 G 时,从 A 到底层模块的跳转对 LDRA Testbed 来说是未知的,因为它仅 仅分析到 A 调用了 B 和 H,而不是相应的对 C、D、E、I 和 J 的调用,因为这 些模块的代码对 LDRA Testbed 来说是不可见的。导致的结果就是 LDRA Testbed 顺着控制流通过 A,当它出乎意料地发现转移到 G。LDRA Testbed 产 生了一条从 A 的最后的已知的位置到模块 G 的开始的‘额外的跳转’(也是 ‘额外的 LCSAJ’)和一条对应的从模块结束的返回跳转。静态分析不能预报 这些跳转和 LCSAJ,因此在动态覆盖率分析中这些分支被报告成不期望的分 支(unexpected branches)。更进一步的边界影响是模块 A 中的某些 LCSAJ 被报告当作不可执行的。这些也可能是包含被隐藏模块调用的 LCSAJ。
1 c:\msvc\mfc\samples\scribble\step1
分析自己的代码:
1 c:\mysourcedir
这样就可以确保被分析代码指定的头文件可以被工具找到并包含进来, 而 MFC 头文件将被忽略。
不包含 MFC 的逻辑关系是很难被量化的,主要是因为 MFC 定义了大量 的宏,如果这些宏被用在用户代码中,那么被 LDRA Testbed 分析的代码不 是 C++的,而是一种比较广泛的语法结构。LDRA Testbed 已经被设计使用这 种语法结构,但是我们不能在大体上确保我们掌控了语法结构的全体,随着 MFC 的改变,这种语法结构也会改变。LDRA 公司已经尽全力使其语法结构 是最新的,但也不能完全担保。因此,如果语法结构是错误的,LDRA Testbed 就会以一种不可预知的方式工作也是可能的,通常随着分析工作的停止,错 误信息也就产生了。然而,被包含在 Visual C++编译器中使用 MFC 类,LDRA Testbed 已经被测试过了。
进一步检查,经常发现未被执行的 LCSAJ 是不可行的。例如:对于 任何测试数据都不能执行。于是可以建议这部分代码重写,因为这部分 代码不合理、效率差还有错误。而且,这部分代码被重写后,其它的与 之有关系的 LCSAJ 也可以被删除。一些不可行的 LCSAJ 是无害的,也 可以留下来,不过这就得以减少程序的可读性为代价。倘若知道统一性 不能达到的原因,这些 LCSAJ 可以被忽略,TER3 可以被最佳化。
测试时采用自底向上的方式,选择一个子系统,如 E 、F 和 G,然后为 E 构造一个驱动。再用 LDRA Testbed 直接构造测试数据来达到子系统的覆 盖率需求。然后把 F 和 G(甚至 E)视为可信赖的组件,预编译并连接它们。 这样如果子系统 B、 C、D 和 E 是下一个被测试的目标,那么 LDRA Testbed
直到为功能测试设计的所有数据被用完或满足了必须的测试度量, 这个过程才结束。如果这前一部分是正确的,继续第二步,否则整个任 务已完成。
步骤二:检查测试覆盖度量。如果 TER1 不一致(例:不是每一条语句被执 行),可能由于测试特别的用例、错误退出等而失败。由于这些可能,累 计执行历史 Profile 是基础的,因为执行程序很多次来达到每一行代码都 执行,这通常是必须的。经常发现功能测试仅能达到可执行语句的 40 %~60%。
Testbed 中文使用指南
C++分析策略
代码时就带来了困难,MFC 的问题也就轻易地侵犯了你的代码测试。 为了帮助用户克服这些问题,可以采用下面的测试策略。分析时不包含 NhomakorabeaFC 头文件
一般来说用户只希望分析自己的代码,对 MFC 的分析不感兴趣。LDRA Testbed 仅仅分析用户自己编写的代码,而不是 MFC,这个目标是可以达到 的。这只要确保文件 sysearch.dat 中出现的目录仅仅是包含用户自己代码的 目录,而不是包含 MFC 的目录。因此,要分析微软 Scribble 的例子时,在 sysearch.dat 文件中要包含下面这行目录:
15.1 C++ LDRA Testbed 和 MFC
概述
通常开发人员(LDRA Testbed 用户)通过在代码中 include 基本类(MFCS) 或连接基本类来使用基本类。连接基本类对 LDRA Testbed 来说是不存在任 何问题,因此这篇文档主要局限在前者包含基本类。
包含 MFC 头文件在人们分析它们时会带来许多的问题,首先,它们没 有完全遵守 ANSI C++标准;其次,它们包含许多错误和缺陷。作为错误和 缺陷检测分析工具套件,LDRA Testbed 经常会遇到这些问题,然后停止分析 并弹出相应的出错信息,例如:发现没有关闭的注释。这样在分析你自己的
Testbed 中文使用指南
测试策略概要
十四. 测试策略概要
在使用 LDRA Testbed 时,建议使用如下的测试策略:
步骤一:依据需求说明、程序说明或用户文档,从软件被假定做了什么来
构造最可能的功能测试。可以借助于 LDRA Testbed 来监控原代码按测试 数据的执行情况。当功能测试的测试数据都用完了,察看动态覆盖率分 析报告,可以得到程序中哪些部分没有被完全测试。每个测试数据集合 的动态覆盖率分析结果是累加的,也可以观察到每个测试数据集合对应 于程序中的执行部分。这些信息是通过执行动态数据集得到的。
LDRA Testbed 产生的分析结果对原代码的动态覆盖率测试是完全足够 的。静态分析只是提及用户定义的实体,因此数据流分析可以假设哪些条目 (items)对用户来说是不可见的。为了得到最明显的数据流分析包含 MFC 是基本的,可以通过在 sysearch.dat 文件中包含 MFC 的路径来实现。但是用 户会受 MFC 的错误支配,这些错误是不能改变和控制的。
通常用户发现不包含 MFC 的分析对评审来说是完全够用的。所有的结 构分析都是正确的,仅静态数据流分析有不足。在静态数据流报告中这些不 足会被逐条列出来,这份报告 LDRA Testbed 是不认可的。
包含 MFC 头文件的分析
在前面提到过,分析原代码包括 MFC 头文件,需要在 sysearch.dat 文件
Testbed 中文使用指南
测试策略概要
会把 F 和 G 当作系统调用的,在本质上忽略掉。结果就是 B、C、D 会被插 装,F、G 不被插装,E 可能会被插装也可能不被插装。整个系统可以这样 被划分为子系统再自底向上分层测试。这种方式可推荐使用在系统测试和子 系统的集成测试,主要的缺点是需要构造子系统的驱动。与 LDRA Testbed 的使用无关,在许多用例中构造这些驱动是一项明知的方针。
过载函数和分解行为调用作为每一种方法的部分策略,所有的分析都是以这 种分解为基础的。因此 LDRA Testbed 认可并辨别每个多形体的异体。
静态数据流分析
通常静态数据流分析追踪贯穿整个控制流结构的变量的值和对象。目前 没有数据流和数据关系的显示,因此,例如:这里没有类关系的图形显示。
动态分析
在静态分析中,得到的分析结果是跳过了所有的单个对象的。但是,动 态覆盖率分析呈现的仅仅是类的成员。因而,一个特殊类变量的一个定义可 能有缺陷而不是在相同类的另一个声明中。LDRA Testbed 仅报告这一种缺 陷。
当 TER1 达到一致(unity),每一条语句都被执行,那么再检查每条 没有被执行的分支。没有被执行的分支中的某些通常可以通过构造特殊 的用例来执行。当用完这个方法,继续 LCSAJ 覆盖是更费力的,因为程 序分析需要研究剩下的未被执行的分支与研究未被执行的 LCSAJ 类似。
一些未被执行的分支和 LCSAJ 可以用特殊用例来达到,例如产生于 出错的状态下或者程序或者潜在的计算过程。对于防御程序和那些应该 未被执行的 LCSAJ,这个经常被提及。
Testbed 中文使用指南
C++分析策略
中指出包含使用了的 MFC 文件的目录,例如:分析 Scribble:
1 c:\msvc\mfc\samples\scribble\step1 1 c:\msvc\include 1 c:\msvc\mfc\include