1.1.1软件缺陷 遗憾的是,故障评估委员会在测试中发现,许多情况下,当探测 器的脚迅速撑开准备着陆时,机械震动也会触发着陆触点开关,设 置致命的错误数据位。设想探测器开始着陆时,计算机极有可能关 闭着陆推进器,这样火星极地登陆者号探测器飞船下坠1800米之后 冲向地面,撞成碎片 结果是灾难性的,但背后的原因却很简单。登陆探测器经过了多 个小组测试。其中一个小组测试飞船的脚折叠过程,另一个小组测 试此后的着陆过程。前一个小组不去注意着地数据是否置位 这不是他们负责的范围;后一个小组总是在开始复位之前复位计算 机,清除数据位。双方独立工作都做得很好,但合在一起就不是这 样了 第一章软件测试的基础理论
1.1.1软件缺陷 第一章 软件测试的基础理论 遗憾的是,故障评估委员会在测试中发现,许多情况下,当探测 器的脚迅速撑开准备着陆时,机械震动也会触发着陆触点开关,设 置致命的错误数据位。设想探测器开始着陆时,计算机极有可能关 闭着陆推进器,这样火星极地登陆者号探测器飞船下坠1800米之后 冲向地面,撞成碎片。 结果是灾难性的,但背后的原因却很简单。登陆探测器经过了多 个小组测试。其中一个小组测试飞船的脚折叠过程,另一个小组测 试此后的着陆过程。前一个小组不去注意着地数据是否置位—— 这不是他们负责的范围;后一个小组总是在开始复位之前复位计算 机,清除数据位。双方独立工作都做得很好,但合在一起就不是这 样了
1.1.1软件缺陷 (5)金山词霸缺陷 在国内,“金山词霸”是一个很著名的词典软件,应用范围极 大,对使用中文操作的用户帮助很大,但它也存在不少缺陷。例 如输入“cube,词霸会在示例中显示3-9的错误;又如,如果用 鼠标取词“ dynamically(力学,动力学),词霸会出现其他不同的 单词“ dynamite n炸药”的显示错误。 第一章软件测试的基础理论
1.1.1软件缺陷 第一章 软件测试的基础理论 (5)金山词霸缺陷 在国内,“金山词霸”是一个很著名的词典软件,应用范围极 大,对使用中文操作的用户帮助很大,但它也存在不少缺陷。例 如输入“cube”,词霸会在示例中显示3 3=9的错误;又如,如果用 鼠标取词“dynamically”(力学,动力学),词霸会出现其他不同的 单词“dynamite n.炸药”的显示错误
1.1.1软件缺陷 (6)英特尔奔腾浮点除法缺陷 在计算机的“计算器”程序中输入以下算式: (4195835/3145727)*3145727-4195835 如果答案是0,就说明计算机没问题。如果得出别的结果,就表示计 算机使用的是带有浮点除法软件缺陷的老式英特尔奔腾处理器—这 个软件缺陷被烧录在一个计算机芯片中,并在制作过程中反复生产。 1994年10月30日,弗吉利亚州 Lynchburg学院的 Thomas Nicely博 士在他的一个实验中,用奔腾PC机解决一个除法问题时,记录了一个 想不到的结果,得出了错误的结论。他把发现的问题放到因特网上, 随后引发了一场风暴,成千上万的人发现了同样的问题,并且发现在 另外一些情形下也会得出错误的结果。万幸的是,这种情况很少见, 仅仅在进行精度要求很高的数学、科学和工程计算中才会导致错误 大多数用来进行税务处理和商务应用的用户根本不会遇到此类问题。 第一章软件测试的基础理论
1.1.1软件缺陷 第一章 软件测试的基础理论 (6) 英特尔奔腾浮点除法缺陷 在计算机的“计算器”程序中输入以下算式: (4195835/3145727)*3145727-4195835 如果答案是0,就说明计算机没问题。如果得出别的结果,就表示计 算机使用的是带有浮点除法软件缺陷的老式英特尔奔腾处理器——这 个软件缺陷被烧录在一个计算机芯片中,并在制作过程中反复生产。 1994年10月30日,弗吉利亚州Lynchburg学院的Thomas R .Nicely博 士在他的一个实验中,用奔腾PC机解决一个除法问题时,记录了一个 想不到的结果,得出了错误的结论。他把发现的问题放到因特网上, 随后引发了一场风暴,成千上万的人发现了同样的问题,并且发现在 另外一些情形下也会得出错误的结果。万幸的是,这种情况很少见, 仅仅在进行精度要求很高的数学、科学和工程计算中才会导致错误。 大多数用来进行税务处理和商务应用的用户根本不会遇到此类问题
1.1.1软件缺陷 这件事情引人关注的并不是这个软件缺陷,而是英特尔公司解决 问题的方式: 他们的软件测试工程师在芯片发布之前进行内部测试时已经发现了 这个问题。英特尔的管理层认为这没有严重到要保证修正,甚至公 开的程度。 当软件缺陷被发现时,英特尔通过新闻发布和公开声明试图弱化这 受到压力时,英特尔承诺更换有问题的芯片,但要求用户必须证明 自己受到缺陷的影响。 第一章软件测试的基础理论
1.1.1软件缺陷 第一章 软件测试的基础理论 这件事情引人关注的并不是这个软件缺陷,而是英特尔公司解决 问题的方式: •他们的软件测试工程师在芯片发布之前进行内部测试时已经发现了 这个问题。英特尔的管理层认为这没有严重到要保证修正,甚至公 开的程度。 •当软件缺陷被发现时,英特尔通过新闻发布和公开声明试图弱化这 个问题的已知严重性。 受到压力时,英特尔承诺更换有问题的芯片,但要求用户必须证明 自己受到缺陷的影响