有专门的测试职业吗?认为软件主要是开发人员的事
, 软件的成果也是由开发
人员决定的
, 当我在参加工作后, 真正从学校的学习环境中走上实际运用开发的
时候
, 事实上真的不是那么一回事。软件无处不在, 然而,
——
软件是人编的
所以
不完美。臭名昭著的软件测试案例:
1
、迪士尼的狮子王 (
1994~1995)软件在少数系统中能正常工作, 但在
大众使用的常见系统中不行。后来证实
,迪士尼公司没有对市场上投入实用的各
种
pc 机型进行正确的测试。
2、英特尔奔腾浮点除法软件缺陷(1994)英特尔为自己处理软件缺陷拿
出
4 亿美元支付更换坏芯片的费用。导致付出如此昂贵的代价, 其主要原因是发
现了软件缺陷没有正确的处理。
3、美国航天局火星极地登陆(1999)该项目使用前有经过测试, 两个测试
小组双方独立工作都很好
, 但从未走在一起。
4
、爱国者导弹防御系统 (
1991)一枚导弹在多哈击毙 28 名美国士兵, 症
结在于一个软件缺陷:一个很小的系统时钟错误累积起来就可能拖延
14 小时,
造成跟踪系统失去准确度。在多哈袭击战中系统被拖延
100 小时。
5
、千年虫 (大约
1974)估计世界各地更换或升级该系统程序解决原有
2000 年错误的费用已经超过数亿美元。
3 软件测试的概述
3.1 软件测试的定义
软件测试使用人工或者自动手段来运行或测试某个系统的过程
,其目的在于
检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。它是帮助识
别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度
(correctness) 完 全 度 (completeness) 和 质 量 (quality) 的 软 件 过 程 ; 是
SQA(software quality assurance)的重要子域。
(1)测试并不仅仅是为了找出错误,通过分析错误产生的原因和错误的发生
趋势
,可以帮助项目管理者发现当前软件开发过程中的缺陷,以便及时改进;
(2)这种分析也能帮助测试人员设计出有针对性的测试方法,改善测试的效率
和有效性;
2