第18章 白盒测试.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第18章 白 盒 测 试 18.1 综述 本节将提供两个实例,详细地说明白盒测试中如何使用静态测试和动态测试方法,以及使用这两种方法进行测试时相应的测试内容和测试用例的设计过程。 根据白盒测试的特点,一般我们可以在单元测试以及集成测试阶段,使用白盒测试的各种方法,到系统测试阶段,软件的系统结构已经确定,功能接口的黑盒测试将居于主要地位,代码级的白盒测试退居次位:当使用黑盒测试的方法检查错误时,可以通过代码检查定位错误的具体位置,或通过使用性能测试分析性能的瓶颈所在,或通过内存测试,分析出错的原因是否是由于内存使用不当所致。 与其他测试相类似,白盒测试的流程也由测试计划、测试设计、测试实施、测试结果分析等阶段组成。 前面章节中已经介绍了白盒测试中主要使用的静态测试和动态测试方法,下面将分别使用两个例子进行具体说明。 在静态测试中将使用一个汽车车身控制的软件示例,测试内容包括静态结构分析和代码质量度量。 在动态测试中将使用一个计算器的程序示例,测试内容为覆盖率测试。 18.2 静态测试 汽车车身控制软件用C语言编写,是用于汽车控制的软件,主要包括电动车窗、遥控中央门锁与防盗、外车灯、车内灯、后窗及后视镜加热延时和手动雨刮控制6个模块。 测试环境。 ① 硬件。普通PC机; CPU:PIII 600Hz; 内存:128MB; 硬盘:10GB。 ② 软件。 操作系统:Windows 2000 Professional中文版; 编译系统:Visual Studio 6.0。 测试工具。 使用Telelogic公司的Logiscope 5.1作为测试工具。 18.2.1 静态结构分析以直观的图形方式描述一个应用程序中各个函数的调用和被调用关系显示一个函数的内部逻辑结构以图形方式描述应用程序中各个文件间的调用和被调用关系。函数调用关系图18-1所示是汽车车身控制软件的函数调用关系图,图中的每一个方块代表一个函数,方块内的数字代表函数的编号。从图可知,该应用程序从上到下分为7层,包括44个函数,函数之间没有存在递归调用的情况,结构比较简单。 图18-1 函数调用关系图 44个函数中编号为18、19、37、40和42的函数被调用次数较高,其他函数功能的正确实现严重依赖于这些函数,它们的质量好坏对系统的影响明显要高于其他函数,因此可认为属于重要函数,需要加强对它们的测试,例如使用较高的代码覆盖率要求等措施;其他函数属于次要函数,可以采用较低的代码覆盖率要求。 2.文件调用关系图 文件调用关系图与函数调用关系图相类似,它体现了文件之间的依赖关系。 如图18-2所示即为上述汽车车身控制软件的文件调用关系图,其中的方块代表各源文件及其编号,由图可知,该软件包括6个源文件,按结构组成可分为5层,结构简单。 3.模块控制流图18-3所示是被测汽车车身控制软件中函数n_Pulse_Counter的模块控制流图。通过该图可以看出,该函数有一个入口和一个出口,3个不嵌套的判断结点,结构比较简单,易于实现和理解,属于非常好的结构。 图18-3 模块控制流图 该汽车车身控制软件的模块控制流图绝大部分与如图18-3所示相似,均属于比较好的结构,没有存在重大缺陷。 18.2.2 静态质量度量 1.质量度量模型 静态质量度量通过使用质量度量模型分析程序的复杂性,引用复杂度参数来度量软件是否易于理解、是否可读、是否方便维护、是否可靠。建立的质量度量模型遵循 ISO 9126、DO-178B、SEI/CMM标准,描述了Halsted、McCabe的度量方法学和质量因素(可维护性、可重用性等)和质量准则(可测试性、可读性等),使用多种参数,包括圈复杂度,强化复杂度,设计复杂度,集成复杂度,代码行数,Halstead复杂度等,例如:可执行语句数、运算符总数、运算符频度、操作数总数、操作数频度、函数中算子和算法出现频度、函数内调用函数的总数、直接调用函数的数量、调用本函数的上级函数数量、goto语句数量、类和函数的扇入扇出、注释行的比例、语句函数、平均语句长度、函数参数数量、基本圈复杂度,可以用于全面而系统地评价整个软件系统的质量。在静态质量度量中,质量度量模型。Metrics Kiviat图18-4所示是函数EXT_LMP 的Metrics Kiviat图。图中的每一根极轴代表一个Metrics参数,所有参数的归一化最小值和最大值组成两个同心圆,当参数的取值位于这两个同心圆之间时,表示满足质量模型要求,否则该参数不符合模型质量要求。 图18-4 函数EXT_LMP 的Metrics Kiviat图 函数EXT_LMP的VOCF、LVAR和STMT参数值超过标准要求。 其中,VOCF值过高,意味着该函数包含太近似的,甚至是重复的语句,这样在维护时,由于许多改动可在

文档评论(0)

bm5044 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档