第07章实现讲解.ppt

  1. 1、本文档共109页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 实现 7.1 编码 7.2 软件测试基础 7.3 单元测试 7.4 集成测试 7.5 确认测试 通常把编码和测试统称为实现。 编码:把软件设计结果翻译成用某种程序设计语言书写的程序。 作为软件工程过程的一个阶段,编码是对设计的进一步具体化,因此,程序的质量主要取决于软件设计的质量。 但是,所选用的程序设计语言的特点及编码风格也将对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。 正如任何产品在交付使用之前都必须经过严格的检验过程一样,由于软件开发的复杂性和困难性,软件产品在交付使用之前尤其应该经过严格的检验过程。 目前,软件测试仍然是保证软件质量的主要途径,它是对软件需求规格说明、软件设计和编码的最后复审。 仅就测试而言,它的目标是发现软件中的错误,但是,发现错误并不是我们的最终目的。 软件工程的根本目标,是开发出高质量的完全符合用户需要的软件产品,因此,通过测试发现软件错误之后还必须诊断并改正错误,这就是调试(也称为纠正)的任务。 调试是测试阶段最困难的工作。 在对测试结果进行收集和评价的时候,软件产品所达到的可靠性也逐渐明朗了。 软件可靠性模型使用故障率数据,预测软件的可靠性。 7.1 编码 7.1.1 选择程序设计语言 总的来说,高级语言明显由于汇编语言,因此,除了在很特殊的应用领域,或者大型系统中执行时间非常关键的(或直接依赖于硬件的)一小部分代码,需要用汇编语言书写之外,其他程序代码应该一律用高级语言书写。 理想的高级程序设计语言: 有良好的模块化机制 可读性好的控制结构和数据结构 编译程序能够尽可能多地发现程序代码中的错误 有良好的独立编译机制 但在实际选择时,不能仅仅使用理想标准,还必须同时考虑实用方面的种种限制。主要有: 软件用户的要求。 可以使用的编译程序。 可以得到的软件工具。 工程规模。 程序员的知识。 软件可移植性要求。 软件的应用领域。 7.1.2 编码风格 源程序代码的逻辑简明清晰、易读易懂,是好程序的一个重要标准。为了写出好程序,应该遵循下述规则: 程序内部应该有很好的文档。所谓程序内部的文档,包括恰当的标识符、适当的注解和程序的视觉组织等。 数据说明应该易于理解便于查阅。 语句构造应该尽可能简单直观。 输入输出风格遵守人机界面设计准则。 效率满足用户需求即可。 美国宇航局为了省钱,简化了确定何时关闭推进器的装置。 为了替代其他太空船上使用的贵重雷达,在飞船的脚上装了一个廉价的触点开关,在计算机中设置一个数据位来关掉燃料。 很简单,飞船的脚不“着地”,引挚就会点火。 不幸的是,质量管理小组在事后的测试中发现,当飞船的脚迅速摆开准备着陆时,机械震动在大多数情况下也会触发着地开关,设置错误的数据位。 设想飞船开始着陆时,计算机极有可能关闭推进器,而火星登陆飞船下坠1800米之后冲向地面,必然会撞成碎片。 为什么会出现这样的结果?原因很简单。 登陆飞船经过了多个小组测试: 其中一个小组测试飞船的脚落地过程(leg fold-down procedure),但从没有检查那个关键的数据位,因为那不是这个小组负责的范围 另一个小组测试着陆过程的其他部分,但这个小组总是在开始测试之前重置计算机、清除数据位 双方本身的工作都没什么问题,就是没有合在一起测试,其接口没有被测,而问题就在这里,后一个小组没有注意到数据位已经被错误设定。 仅仅由于两个测试小组单独进行测试,没有进行很好沟通,缺少一个集成测试的阶段,结果导致1999年美国宇航局的火星基地登陆飞船在试图登陆火星表面时突然坠毁失踪。 质量管理小组观测到故障,并认定出现误动作的原因极可能是某一个数据位被意外更改。 软件错误和软件失效的案例2:爱国者导弹防御系统 美国爱国者导弹防御系统首次被用在第一次海湾战争对抗伊拉克飞毛腿导弹的防御作战中,总体上看效果不错,赢得各界的赞誉。 但它还是有几次失利,没有成功拦截伊拉克飞毛腿导弹,其中一枚在沙特阿拉伯的多哈爆炸的飞毛腿导弹造成28名美国士兵死亡。 分析专家发现,拦截失败的症结在于一个软件缺陷,当爱国者导弹防御系统的时钟累计运行超过14小时后,系统的跟踪系统就不准确。 在多哈袭击战中,爱国者导弹防御系统运行时间已经累计超过100多个小时,显然那时系统的跟踪系统已经很不准确,从而造成这种结果。 软件错误和软件失效的案例3:英特尔奔腾芯片缺陷 在计算机的“计算器”程序中输入以下算式: (4195835/3145727)×3145727–?4195835 如果答案是0,就说明该计算机浮点运算没问题 如果答案不是0,就表示计算机的浮点除法存在缺陷 1994年,英特尔奔腾CPU芯片就曾经存在这样一个软件缺陷,而且被大批生产出来卖到用户那里,最后,英特尔为自己处理软件缺陷的行为道歉并拿出

文档评论(0)

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

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

1亿VIP精品文档

相关文档