|
2#
楼主 |
发表于 2004-7-14 09:48:25
|
只看该作者
PureCoverage缺省显示未测试代码为红色, 已测试代码蓝色, 而死状态
行(通常是函数, 过程或者方法中的非活动代码部分)黑色. 那些部分测试的代
码块为粉色 – 通常它们是那些程序里面的条件分支部分.
你可以按照名称在测试执行的时候测试指定的函数, 过程或者方法的代码.
5. 修改测试运行
这样你就可以知道那些部分你遗漏了没有测试. 如果你以非正常方式执行
程序, 需要考虑你之前遗漏的部分. 如果在一个测试系列当中, 你可以附加或者
调整测试脚本来提升测试覆盖程度.
无论哪种方式之一, 都可以使用PureCoverage提供的信息获得那些代码
需要覆盖 – 而无需猜测.
6. 重新执行测试
Auto Merge Data是将覆盖数据由一个新的执行同其他任何存在的以前执
行的数据进行组合.
7. 保存覆盖数据
PureCoverage支持两种数据格式:
? 数据文件(.cfy), 用来以后打开进行比较合分析, 或者和其他团队成员
共享
? 文本文件(.txt), 用于在表格和字处理程序里面制作报表
四. PureCoverage的原理特性列表
1. 将开发环境同PureCoverage集成
PureCoverage可以和注入VisualStudio等开发集成环境很好的集成, 让
你进行开发和测试的时候可以方便的使用. 如图可以看到习惯的工具条已经自
动集成到了VC的IDE当中, 不过值得注意的是有时候会将SourceSafe的工
具条"挤出"IDE, 这个时候一般重新安装SourceSafe可以解决.
2. 自动数据采集
1) 整体覆盖方式选择
覆盖方式选择
用户可以选择不同的覆盖模式:
? 行覆盖模式
直接对于代码的每一行代码(包括注释等)进行覆盖, 以不同颜色显示执
行命中率
? 函数覆盖模式
对于具体函数进行覆盖, 以不同颜色显示执行命中率
我们可以选择复选框"Exclude all modules in Windows directory"来缩
小覆盖范围, 排除那些位于System(System32)内的系统DLL文件; 也可以
点击"Modules…"按钮可以选择具体文件的覆盖程度.
2) 模块覆盖方式选择
用户可以选择针对具体模块的不同的覆盖模式:
? 缺省模式(Default)
遵从整体设置
? 行覆盖模式(Line)
对于指定模块的代码行进行覆盖
? 函数覆盖模式(Function)
对于指定模块的函数进行覆盖
? 排除模式(Exclude)
不对指定模块进行覆盖
3. 对于关键程序区域的检测
1) 采用交互式快照
在使用独立PureCoverage软件执行指定应用程序的覆盖测试的时候, 我
们可以使用下图工具条实现应用特定时刻的快照摄制数据采集.
在使用VC集成PureCoverage执行指定应用程序的覆盖测试的时候, 我
们可以使用菜单Run Control的Data SnapShot菜单项实现应用特定时刻的
快照摄制数据采集.
下图就是实时采集的数据快照:
窗口的左侧就是具体的快照项目, 显示了摄制日期等时间参数, 而右面的就
是和平时覆盖测试一样的数据采集窗口, 区别在于这里的数据是截至特定时刻
的部分数据.
2) 使用PureCoverage API函数
PureCoverage提供了一组习惯的API函数实现覆盖测试的自定义控制, 对
于VC使用环境而言, 需要在搜索路径里面附加需要的头文件和实现文件的路
径, 一般Pure.H和Pure_api.c位于Coverage的安装目录当中.
以下是习惯的API函数列表:
我们可以看见, 通过相应的在线帮助可以非常方便的获得相应的使用指南,
这里API函数还暂时不支持C#, Java等其他测试环境. 并且注意在有些MFC
程序下面需要设置Pure_api.c文件的Precompiled Header不要使
用"stdafx.h", 否则无法链接.
? CoverageAddAnnotation
在执行总结窗口和相应的覆盖测试日志文件里面附加用户自定义的提示
信息.
int CoverageAddAnnotation (char *Annotation)
返回1表示成功, 0表示失败
一般我们使用该函数设置一些相关注释信息, 比如: 版本, 日期, 测试
时间等等.
应用例子如下:
#include <windows.h>
#include <stdio.h>
#include "pure.h"
void main()
{
CoverageAddAnnotation ("2002.02.26 应用程序名称 12:30
XXX?.");
}
? CoverageClearData
删除当前运行的所有现存收集数据.
int CoverageClearData (void)
返回1表示成功, 0表示失败
? CoverageDisableRecordingData
禁止收集数据.
int CoverageDisableRecordingData (void)
返回1表示成功, 0表示失败
? CoverageIsRecordingData
当前是否在收集数据.
int CoverageIsRecordingData (void)
返回1表示在收集, 0表示不在收集
? CoverageIsRunning
判断当前应用是否运行在PureCoverage环境下.
int CoverageIsRunning (void)
返回1表示是, 0表示否
? CoverageSaveData
保存当前运行的所有现存收集数据.
int CoverageSaveData (void)
返回1表示成功, 0表示失败. 因为具体的存盘路径通过命令行方式交
给PureCoverage, 为此不能控制具体文件名称和路径
? CoverageStartRecordingData
开始收集数据.
int CoverageStartRecordingData (void)
返回1表示成功, 0表示失败
? CoverageStopRecordingData
停止收集数据.
int CoverageStopRecordingData (void)
返回1表示成功, 0表示失败
4. 将测试环境同PureCoverage集成
使用下列命令行方式可以实现在测试而非开发环境下进行测试:
coverage /SaveTextData 应用程序.exe
? 回产生一个同名的.txt文件
? 如果使用SaveData就是得到一个.Cfy文件
? 如果使用SaveMergeData则得到一个_AutoMerge.Cfy文件
? 上述选项可以配合使用
五. PureCoverage课程提纲
1) Rational PureCoverage的运行环境
PureCoverage只能使用在WinNT以上的OS, Win9x以及WinME不能
使用.
2) Rational有关测试的一些组件
Rational的TestStudio是一个系统测试解决方案, 主要由以下组件组成:
? TestManager
测试管理软件, 用于实现测试的计划—用例设计—用例实现—测试实施
—结果分析
? TeamTest
团队测试工具, 用于对于功能, 性能和质量的量化测试和管理
? PurifyPlus
运行时分析软件, 用于对于项目实施:
? 代码覆盖测试
? 代码错误测试(内存泄漏, 代码错误)
? 代码性能(瓶颈查找)
? Robot
面向对象的测试
? VisualTest
针对微软的测试组件
? PreVue
针对X平台和终端软件的测试组件
? ClearQuest
需求管理软件, 用于实现需求项目管理和变更影响评估和协调
3) 如何安装Rational PureCoverage
主要讲述针对Ratioanl Enterprise Suite 2001的安装和注册过程. 需要
注意的就是Ratioanl的几种注册机制:
? CS联机注册模式
? 独立单机注册模式
? 注册码有效期模式
4) PureCoverage的特点和基本要素
? OCI技术
? 代码命中率
? 覆盖模式
? 数据保存
5) 如何启动PureCoverage
如何在PureCoverage里面和IDE里面使用
? 独立环境当中的使用, 记住不同开发工具目标程序的命令行诧异
? IDE环境当中的使用, 相关特性
6) 如何实现PureCoverage的脚本定制自动化
如何通过API实现PureCoverage的自动化 |
|