防不胜防的软件错误--例:1963年,美国,飞往火星的....pptVIP

防不胜防的软件错误--例:1963年,美国,飞往火星的....ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
防不胜防的软件错误 —— 例:1963年, 美国, 飞往火星的火箭爆炸, 损失$ 10 million. 原因: FORTRAN循环 DO 5 I = 1, 3 误写为 DO 5 I = 1.3 §1. 基本概念 1、定义:测试是为了发现程序中的错误而执行程序的过程。 注意:① 只能尽可能查错,不能证明程序中 没有错; ② 测试员与程序员不应是同一个人。 2、黑盒和白盒测试 ? 白盒测试(white-box , or open-box, clear-box testing): 逻辑测试(结构测试,内部,每条可能路径) Use the structure of the program to test. —— Structural testing 例:(White-box) §2. 单元测试(白盒) 一、主要测试以下五个方面: 1、模块接口: ? 内部检查: 传输参数的数目、属性、单位、次序是否匹配; 全程变量的定义是否一致; 只做输入的变元有无被修改, ……. ? 外部检查: 打开、结束、关闭文件的操作; 文件和属性; I\O错误处理; 输出拼写, …… §2.单元测试 3、重要的执行通路: 由于穷尽测试不可能,故通常针对最常见 的错误设计测试方案。较常见的错误有: 计算次序问题 不同类型混合运算(例:比较类型不同的量) 初值设置错误 精度问题(例:精度不够导致两变量不可能相等,而程序中等待相等条件的出现) 表达式错误 循环终止条件错误(例:次数差1,或陷入死循环) 4、出错处理通路: 预见出现错误的条件,设置处理。较常见的问题有: ? 输出的错误信息难以理解,不能确定错误位置 ? 描述的错误与实际错误不符 ? 处理之前系统已经干预 ? 处理不正确 1、代码审查(code inspection) ? 从头到尾(Walk-through): 例如 Lucent Technologies 的测试策略,是由三人一组(包括 author, reader, 和recorder),逐行检查源代码。 ? 预演(Rehearsal):由人扮演computer,模拟执行情况。 §3.集成测试 两种方式的比较: ? Incremental testing 可以较早发现模块间的接口错误;Big-bang testing 最后才组装,因此错误发现得晚。 ? Big-bang testing 中发现错误后难以诊断定位; Incremental testing 中,出现的错误往往跟最新加入的模块有关。 ? Incremental testing 在不断集成的过程中使模块不断在新的条件下受到新的检测,测试更彻底。 ? Incremental testing 较 Big-bang testing 费时。 Big-bang testing 可以同时并行测试所有模块,能充分利用人力。 ⑴ 自顶向下(Top-down testing) 第1步:测试顶端模块(主控模块),用存根程序(stub)代替直接附属的下层模块 Stub: to simulate the activity of the component which is not yet tested. 第2步:根据深度优先 / 宽度优先的策略,每次用一个实际模块代换一个stub。 ⑵ 自底向上(Bottom - up testing) 第1步:把低层模块组合成族,每族实现一个子功能。 第2步:用驱动程序(Driver)协调测试数据的I\O,测试子功能族。 ⑶ 混合法(Sandwich testing) §4. 验收测试(Acceptance testing) 任务:验收软件的有效性(功能和性能达标)。 手段:黑盒测试; 用户参与; 主要用实际数据进行测试。 内容:按合同规定审查软件配置; 设计测试计划,使通过测试保证软件能满足所有功能、性能要求; 文档与程序一致,具有维护阶段所必须的细节;

文档评论(0)

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

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

1亿VIP精品文档

相关文档