软件测试方法和技术(第4版) 设备的标识符。在断开连接期间,Uber必须吊销令牌,以便不再错误地向之前连接的设备发 送通知,但该案例中没有吊销令牌,所以问题产生了。 我国自2021年11月起也开始实施个人信息保护法,确保个人隐私能够得到良好的 保护。 更多的悲剧 1.1.9 了分析。2003年8月11日,“冲击波”计算机病毒首先在美国发作,使美国的政府机关、企业 及个人用户的成千上万的计算机受到攻击。随后,冲击波蠕虫很快在互联网上广泛传播,中国 和日本等国家也相继受到不断的攻击,结果使十几万台邮件服务器瘫痪,给整个世界范围内的 Internet通信带来惨重损失。 制造冲击波蠕虫的黑客仅仅用了3周时间就制造了这个恶毒的程序,“冲击波”计算机病 毒仅仅是利用微软Messenger Service中的一个缺陷,攻破计算机安全屏障,可使基于 Windows操作系统的计算机崩溃。该缺陷几乎影响当时所有微软Windows系统,它甚至使 安全专家产生更大的忧虑:独立的黑客们将很快找到利用该缺陷控制大部分计算机的方法。 随后,微软公司不得不紧急发布补丁包,修正这个缺陷。 软件缺陷还会造成更大的悲剧,导致生命危险,下面就是两个典型的实例。 1.放射性设备治死4个人 由于放射性治疗仪Therac-25中的软件存在缺陷,导致几个癌症病人受到非常严重的过 量放射性治疗,其中4个人因此死亡。一个独立的科学调查报告显示:即使在加拿大原子能 公司(AtomicEnergyof Canada Limited,AECL)已经处理了几个特定的软件缺陷后,这种事 故还是发生了。造成这种低级而致命的错误的原因是缺乏软件工程实践,一个错误的想法是 软件的可靠性依赖于用户的安全操作。 2.28名美国士兵死亡 美国爱国者导弹防御系统是主动战略防御(即星球大战)系统的简化版本,它首次被用在 第一次海湾战争对抗伊拉克飞毛腿导弹的防御作战中,总体上看效果不错,赢得各界的赞誉。 但它还是有几次失利,没有成功拦截伊拉克飞毛腿导弹,其中一枚在沙特阿拉伯的巴哈爆炸的 飞毛腿导弹造成28名美国士兵死亡。分析专家发现,拦截失败的症结在于一个软件缺陷,当 爱国者导弹防御系统的时钟累计运行超过14小时后,系统的跟踪系统就不准确。在巴哈袭击 战中,爱国者导弹防御系统运行时间已经累计超过100多个小时,显然那时系统的跟踪系统已 经很不准确,从而造成了这样的悲剧。 1.2 为什么要进行软件测试 为什么要进行软件测试?答案很简单,就是为了保证软件质量。1.1节中所介绍的软件 质量事故就说明了这一点,没有很好地完成软件测试任务,产品的质量得不到保证。如果没有 软件测试,就不能了解软件产品的质量。测试是软件工程中不可缺少的一部分,特别是当软件 无处不在、越来越贴近人们的生活和工作的时候,软件测试的必要性就越来越明显。