7.测试.ppt-淮海工学院.ppt

  1. 1、本文档共116页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.测试.ppt-淮海工学院.ppt

学习目标;第7章 测试;7.1 基本概念;深入理解并正确运用指导软件测试的基本准则 (1) 所有测试都应该能追溯到用户需求。 软件测试的目标是发现错误。从用户的角度看,最严重的错误是导致程序不能满足用户需求的那些错误。 (2) 应该远在测试开始之前就制定出测试计划。 完成了需求模型就可以着手制定测试计划 建立了设计模型之后就可以立即开始设计详细的测试方案。 在编码之前就可以对所有测试工作进行计划和设计。; (3) 把Pareto原理应用到软件测试中。Pareto原理说明,测试发现的错误中的80%很可能是由程序中20%的模块造成的。 (4) 应该从“小规模”测试开始,逐步进行“大规模”测试。 (5) 穷举测试是不可能的。 (6) 为了达到最佳的测试效果,应该由独立的第三方从事测试工作。所谓“最佳效果”是指有最大可能性发现错误的测试。由于前面已经讲过的原因,开发软件的软件工程师并不是完成全部测试工作的最佳人选(通常他们主要承 担模块测试工作)。 ;7.1.3 测试方法;7.1.4 软件测试的步骤;;7.1.5测试阶段的信息流;测试;如果经常出现要求修改设计的严重错误,那么软件的质量和可靠性是值得怀疑的,应该进一步仔细测试。 如果看起来软件功能完成得很正常,遇到的错误也很容易改正,则仍然应该考虑两种可能: (1)软件的可靠性是可以接受的; (2)所进行的测试尚不足以发现严重的错误。;单元测试集中检测软件设计的最小单元——模块。通常,单元测试和编码属于软件过程的同一个阶段。在编写出源程序代码并通过了编译程序的语法检查之后,就可以用详细设计描述作指南,对重要的执行通路进行测试,以便发现模块内部的错误。可以应用人工测试和计算机测试这样两种不同类型的测试方法,完成单元测试工作。这两种测试方法各有所长,互相补充。通常,单元测试主要使用白盒测试技术,而且对多个模块的测试可以并行地进行。;单元测试期间着重从5个方面对模块进行测试。 1. 模块接口 首先应该对通过模块接口的数据流进行测试。 主要检查下述几个方面:参数的数目、次序、属性或单位系统与变元是否一致;是否修改了只作输入用的变元;全局变量的定义和用法在各个模块中是否一致。;2. 局部数据结构 对于模块来说,局部数据结构是常见的错误来源。应该仔细设计测试方案,以便发现局部数据说明、初始化、默认值等方面的错误。 3. 重要的执行通路 由于通常不可能进行穷尽测试,因此,在单元测试期间选择最有代表性、最可能发现错误的执行通路进行测试就是十分关键的。应该设计测试方案用来发现由于错误的计算、不正确的比较或不适当的控制流而造成的错误。;4. 出错处理通路 好的设计应该能预见出现错误的条件,并且设置适当的处理错误的通路,以便在真的出现错误时执行相应的出错处理通路或干净地结束处理。 着重测试下述一些可能发生的错误: (1) 对错误的描述是难以理解的; (2) 记下的错误与实际遇到的错误不同; (3) 在对错误进行处理之前,错误条件已经引起系统干预; (4) 对错误的处理不正确; (5) 描述错误的信息不足以帮助确定造成错误的位置。; 5. 边界条件 边界测试是单元测试中最后的也可能是最重要的任务。软件常常在它的边界上失效, 例如,处理n元数组的第n个元素时,或做到i次循环中的第i次重复时,往往会发生错误。使用刚好小于、刚好等于和刚好大于最大值或最小值的数据结构、控制量和数据值的测试方案,非常可能发现软件中的错误。;人工测试源程序可以由编写者本人非正式地进行,也可以由审查小组正式进行。后者称为代码审查,它是一种非常有效的程序验证技术,对于典型的程序来说,可以查出30%~70%的逻辑设计错误和编码错误。审查小组最好由下述4人组成: (1) 组长,应该是一个很有能力的程序员,而且没有直接参与这项工程; (2) 程序的设计者; (3) 程序的编写者; (4) 程序的测试者。;如果一个人既是程序的设计者又是编写者,或既是编写者又是测试者,则审查小组中应该再增加一个程序员。 审查之前,小组成员应该先研究设计说明书,力求理解这个设计。 审查会还有另外一种常见的进行方法,称为预排:由一个人扮演“测试者”,其他人扮演“计算机”。 采用代码审查的方法可以减少系统验证的总工作量。 实践表明,对于查找某些类型的错误来说,人工测试比计算机测试更有效;对于其他类型的错误来说则刚好相反。 ;模块并不是一个独立的程序,因此必须为每个单元测试开发驱动软件和(或)存根软件。 驱动程序也就是一个“主程序”,它接收测试数据,把这些数据传送给被测试的模块,并且印出有关的结果。 存根程序代替被测试的模块所调用的模块。因此存根程序也可以称为“虚拟子程序”。它使用被它代替的模块的接

文档评论(0)

youbika + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档