网站大量收购独家精品文档,联系QQ:2885784924

软件工程 第八章.ppt

  1. 1、本文档共63页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(2)局部数据结构 模块的局部数据结构是常见的错误来源,测试者应该仔细设计测试用例,以便发现这样一些类型的错误: 错误的变量名(变量名拼写错或被编译程序截短); 错误的或不一致的数据类型说明; 使用尚未赋值或尚未初始化的变量; 错误的初始值或错误的缺省值; 数据类型不相容; 上溢、下溢或地址异常。 如果有可能的话,在单元测试期间除了局部数据结构之外,还应该检查全程数据对模块的影响。 (3)重要的执行路径 选择适当的测试用例,对模块中的最有代表性、最可能发现错误的执行路径进行测试。 错误的计算主要集中在以下几个方面: 运算的优先次序不对或误解了运算符的优先次序; 混合运算(运算对象的类型彼此不相容); 变量的初始值赋值不正确; 运算的精度不够; 表达式的符号有错误。 错误的比较和控制流主要集中在以下几个方面: 不同数据类型之间的比较; 逻辑运算符不正确或优先次序不正确; 由于精度问题造成的两值比较时不相等; 差“1”错,即循环次数多一次或少一次; 错误的或不可能的循环终止条件; 当遇到发散的迭代时不能终止的循环; 错误地修改循环变量。 (4)出错处理 由于输入等条件的限制,程序在运行中出错往往是不可避免的。因而好的程序设计应该能预见可能出现的各种出错情况,并且设置相应的出错处理,以便在出现错误时执行相应的操作。 在单元测试时也应该对模块中的出错处理部分进行测试,进行这一部分测试时可能存在的错误主要有: 对错误的描述难于理解,或者是描述过于简单; 显示的错误信息与实际错误不相符; 在对错误进行处理之前,错误条件已经引起系统的干预; 对错误的处理不正确。 (5)边界条件 我们知道,软件常常在它的边界上失效。例如,处理n元数组的第一个元素或最后一个元素时,在n次循环中的第n次重复时,往往会发生错误。因此,使用刚好小于、等于或大于最大值或最小值的数据结构、控制量和数据值的测试方案时,很可能会发现软件中的错误。 2、单元测试的步骤 单元测试的对象是模块。测试者必须自己动手设计这两类模块:驱动模块和存根模块。 驱动模块:相当于所测模块的“主程序”。它接收测试数据,把这些数据传送给所测模块,然后输出测试结果。 存根模块:也叫虚拟子程序。它的作用是模拟被测模块所调用的子模块。存根模块可以做少量的数据操作,一般情况下,不需要把实际子模块的所有功能都带进来。 8.4.2 集成测试 集成测试过程中要考虑的问题: (1)数据穿过模块接口时是否会丢失; (2)模块的功能是否会对其它模块的功能产生不利的影响; (3)把子功能组合起来,能否达到预期的主功能要求; (4)单个模块的误差累积起来是否会放大到不能接受的程度; (5)全局数据结构是否有问题。 将各个模块组装成系统的方法:非增殖式组装方式和增殖式组装方式。 采用非增殖式组装方式:先分别对每个模块进行测试,再把所有模块按设计要求组装在一起进行测试,最终得到所要求的软件。 采用增殖式组装方式:把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试,这种方法实际上同时完成单元测试和集成测试。 这两种方法各有优缺点: (1)采用非增殖式组装方式时,可以较早发现模块间的接口错误,而采用增殖式组装方式时,只有在模块加进来时才可能发现,因此接口错误发现较晚。 (2)采用非增殖式组装方式时要对每个模块进行单元测试,需要编写的测试软件较多,工作量大,而采用增殖式组装方式时,利用已测试过的模块部分作为部分测试软件,因而工作量较小。 (3)非增殖式组装方式要求一下子把所有模块组装起来,如果发现错误则较难判断错误的位置,而采用增殖式组装方式时,由于每次只加入一个模块,因而错误往往与刚加入的模块有关,查错则相对容易些。 (4)采用非增殖式组装方式时,各模块的单元测试可以并行地进行,因此可以充分利用人力,加快测试进程,采用增殖式组装方式时却不能如此。 1、自顶向下结合 在使用增殖式组装方式时,常用的有自顶向下和自底向上两种方法。 采用这种组装方式时,是从主控制模块开始,沿着软件的控制层次向下移动,从而逐渐把各个模块都结合起来。 左图是一个树形结构,主控制模块是M1,在把主控制模块M1所属的那些模块都组装起来时可以采取两种方法:深度优先策略或者宽度优先策略。 采用深度优先的结合方法时,先把软件结构的一条主控制通路上的所有模块一个一个地结合组装起来。主控制通路的选择取决于应用的特点。对于图8.5来说,如果选取左通路为主控通路,那么首先结合模块M1,M2和M5,然后是M8。如果M2的某个功能需要的话,可结合M6。然后结合中间的和右边的控制通路。 采用宽度优先的结合方法时,逐层结合直接下属的所有模块,即把处于同一个控制层次上的所有模块组装起来。对于图8.5来说,首先结合模块M2,

文档评论(0)

118压缩包课件库 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档