winAMS使用手册(中文版详细版本测试工具)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
覆盖大师使用指导
一、介绍
我们十分感谢你对GAIO单元测试工具CoverageMaster-winAMS的兴趣爱好。
CoverageMaster-winAMS是一种对嵌入式软件进行评估和改善的单元测试工具。
这个试用指导包括为初次使用者制定的练习习题。
跟着指导完成练习,使用者会对CoverageMaster-winAMS的基本使用和特点有一个了解。
覆盖大师概述
在开始练习之前,首先会出现一个关于覆盖大师的特点及操作的解释。
1、嵌入式软件单元测试工具
CoverageMaster-winAMS是一个嵌入式软件单元测试工具。
它通过使用一个MPU仿真器(系统仿真器)执行软件代码(功能)来执行测试。
MPU仿真器(系统仿真器)通过启动实际交叉编译的MPU代码(对象代码)来操作运行。
由于实际目标代码是在仿真环境中使用,它有可能依据目标微处理器去核实项目行为和检查错误。
2、CoverageMaster-winAMS包含以下组件:
SSTManager:管理单元测试操作的基本UI应用。
System-G:MPU仿真器(系统仿真器)包括对多种MPU的支持。
WinAMS:单元测试仿真器。
除了这些项目之外,准备测试源文件需要一个交叉编译或者集成开发环境(IDE)。
二、为测试I/O使用CSV格式的文件
为了保证正确率的同时提高单元测试的效率CoverageMaster-winAMS在仿真过程中使用CSV格式文件。
单独单元测试设置,以及变量和根函数的输入输出数据都保存在CSV文件中。
因此,使用CSV文件让目标源代码中不必一定包含专用测试代码或者输入数据。
下面的图片阐明了CoverageMaster-winAMS单元测试的流程。
首先,交叉编译代码被加载到MPU仿真器。
代码必须附上可执行对象代码(被拆开的中间级对象代码不能被使用)
下一步,为了测试基础函数(如上文所示)生成一个CSV文件。
文件里有函数信息类似函数名称,输入变量,输出变量,测试条件,以及测试数据(测试容器)。
在上例中,测试数据是对于输入变量@a,@b,@c。
另外期望值是对于全局变量值。
输出变量的期望值(如上例中的值)可能进入与实际结果的比较中。
然而,若是你仅仅需要输出结果,期望值单元将被保留为空。
如果加入期望值,实际测试结果将与期望值进行比较并且在结果栏中报告NG或者OK的结果。
如果期望结果与实际结果不同,两个值都将被显示在单元内。
在上例测试结果CSV中第4行报告NG的结果,在值栏中显示16?
(10)。
在这个案例中16代表实际结果,10代表期望值。
三、带有覆盖和测试结果的自动单元测试
只需通过生成一个CSV测试数据文件,剩下的仿真测试步骤是自动完成的。
只需按下Start Simulator 按钮,仿真的输入测试数据开始运行。
一旦完成,C0/C1覆盖(*)和测试结果将被输出。
你可以在任何时间从Coverage Results屏幕查看覆盖结果,或者将它导出到一个文件中。
(*):C1 Coverage 需要使用GAIO的Caseplayer2.
四、使用Caseplay2自动生成覆盖测试数据
同时使用CoverageMaster-winAMS和Caseplayer2分析工具,单元测试的输入数据将自动生成。
下面的图表阐明了仿真过程。
概括来说,Caseplayer2检索函数变量信息然后生成测试数据满足覆盖率要求。
测试数据被送至CoveragerMaster-winAMS进行仿真。
在手册的练习4,Caseplayer2被使用到时,它的使用方法将被深入讨论。
五、准备阶段
准备样本代码
开始练习,起先我们定位提供的样本代码,使用GAIO的XASS-V系
列交叉开发环境来编译它。
如果使用第三方开发环境,请参考CoveragerMaster-winAMS中其
他合适的说明:手册结尾部分编写的第三方开发环境使用指导。
打开样本工程
解压练习文件,打开GAIO的开发环境
1、从C盘的根目录下Standard- Sample-(产品安装文件夹)复制
winAMS_CM1.exe可执行文件,双击并解压。
2、打开winAMS_CM1-target文件夹
3、双击SAMP1.gxp工程文件,在GAIO的开发环境中打开工程。
这本手册中包括三个源文件
Main.c:包括被测试的文件,func1()-func4(),和main()
Startup.xas:汇编码启动ARM7程序
Irq.c:用c语言编写的中断处理程序(未在这手册中使用)
在练习中我们将测试的函数,fun1()-fun4()都包含在main.c源文件中,若main()函数保留为零,则也在这个文件中。
这是因为CoverageMaster的MPU仿真器(系统仿真器)类似一个实际的MPU芯片般执行指令,因此关联的可执行代码是需要的。
现在,让我们建立样本代码,生成可执行对象文件。
4、在应用菜单中选择Build-Rebuild编译源代码。
练习文件结构
这部分解释练习中用到的样本文件的结构。
首先,编译完成后我们将覆盖在C盘winAMS_CM1-target-obj的可执行文件SAMP1.xlo
.xlo文件是在GAIO的XASS-V系列交叉编译环境中生成的文件后缀名。
它的格式根据GAIO的原始SAUF文件格式而来。
CoveragerMaster-winAMS 也许只能执行.xlo文件的测试。
CoverageMaster的内置对象转换函数(OMF转化器)可能将使用第三方交叉编译器编译的对象文件格式(调试信息)转换为.xlo文件。