《软件测试技术大全:测试基础 流行工具 项目实战(第3版)》—第1章1.1节软件测试的起源...

    xiaoxiao2024-04-20  8

    本节书摘来自异步社区《软件测试技术大全:测试基础 流行工具 项目实战(第3版)》一书中的第1章,第1.1节软件测试的起源,作者陈能技 , 黄志国,更多章节内容可以访问云栖社区“异步社区”公众号查看。

    第1章 软件测试行业软件测试技术大全:测试基础 流行工具 项目实战(第3版)有人把软件产品与药品并称为世界上两种无法根除自身的缺陷却被允许公开合法销售的产品。人们明知药物不可能百分百治疗疾病,而且肯定存在一些副作用,但还是会购买。软件产品也一样,人们也知道软件不是百分百可靠,但还是越来越依赖它们。

    而在其他行业中,如果产品存在明显不可预测的缺陷,市场、用户和法律都会做出强烈的反映。所以有人说,如果微软不是生产软件,而是制造汽车,恐怕早就倒闭了。软件产品的缺陷难以根除,但是可以通过加强软件测试来控制质量,通过修正缺陷来提高软件产品的质量。

    软件测试行业是一个新兴的行业,尤其是在国内。称为“行业”是因为,测试已经不是以前单纯依附在软件开发过程中的一个可有可无的角色,而是发展到了足以成为专门的行业。

    软件测试开始得到越来越多人的重视。第三方测试、测试外包的涌现,测试培训、咨询、考证的红火,测试职位的高薪,软件测试网站的增多,软件测试专门杂志的出现,种种迹象表明,在国外早已是一个专门的学科的软件测试,在国内开始步入可以称之为“行业”的时期。

    本章从测试的起源讲起,重点描述测试的几个发展阶段,最后分析目前的软件测试现状,展望软件测试的前景。

    1.1 软件测试的起源通常称之为Bug的软件缺陷是伴随着软件出现的,软件测试同样是伴随着软件而出现的。随着软件Bug的增多,严重的质量事故也随之增多,所以人们“对抗”Bug的态度日益强硬,软件测试也不断得到加强和重视,并持续发展。

    1.1.1 第一个Bug的故事1945年9月的某天,在一间老式建筑里,从窗外飞进来一只飞蛾,此时Hopper正埋头工作在一台名为Mark II的计算机前,并没有注意到这只即将造就历史事件的飞蛾。这台计算机使用了大量的继电器(电子机械装置,那时还没有使用晶体管)。突然,Mark II死机了。Hopper试了很多次还是不能启动,他开始用各种方法查找问题,最后定位到了某个电路板的继电器上。Hopper观察这个继电器,惊奇地发现一只飞蛾已经被继电器打死。Hopper小心地用镊子将飞蛾夹出来,用透明胶布贴到“事件记录本”中,写上“第一个发现虫子的实例”。

    Hopper的事件记录本,连同那只飞蛾,现在都陈列在美国历史博物馆中。在单维彰的个人网站上收录了一系列关于Hopper和这个事件的照片,如图1.1所示。

    1.1.2 几个导致严重错误的Bug 软件的Bug事件发生了大半个世纪后,并没有迹象要停止,而是愈演愈烈。或许人们早已忘记了半个世纪以前的几起航天事故,但是最近发生的几起Bug事件仍让人们记忆犹新。

    (1)2008年,北京奥运官方票务网站的浏览量达到了800万次,每秒钟从网上提交的门票申请超过20万张,票务呼叫中心热线从9时至10时的呼入量超过了380万人次。由于瞬间访问数量过大,技术系统应对不畅,造成很多申购者无法及时提交申请。

    (2)2007年6月,某热门的在线股票选购竞赛系统中存在一个软件缺陷,可以导致不公平的竞争,从而获取高额的竞赛奖金。经调查最后发现,原本前5位的优胜者都要取消资格。

    (3)2007年4月,某地铁系统软件存在缺陷未能检测和防止剩余动力在设备中的使用,最终导致列车过热而起火。

    类似的报告数不胜数,据NIST报告指出,美国标准和技术研究机构(National Institute of Standards and Technology)在2002年公布的一项关于软件缺陷引起的美国经济损失高达595亿美元。

    1.1.3 软件测试的起因早在周代的时候,就有叫“人”“氏”的工官,职能相当于工长,他们懂技术,负责直接管理制作器物的工匠,保证器物制造的质量。因此这些人堪称历史上最早的测试员。

    1961年,一个简单的软件错误导致美国大力神洲际导弹助推器的毁灭。这个简单而又昂贵的错误,导致美国空军强制要求在以后所有的关键发射任务中都必须进行独立的验证。从此建立了软件的验证和确认方法论。软件测试也就从那时候开始存在了。

    从上面的几个故事,大概可以看出,错误从远古的时候就出现了,针对这些错误再制定相应的管理措施。由此看来,测试对产品制造者可以进行管理,虽然可能不是直接的管理,而是间接地通过检查产品来对制造者进行管理。

    人类从很早的时候就已经知道,不能自己检查自己的工作产品,必须由其他人来检查,以确保公平、公正和客观性。但是在软件开始出现时,人们似乎并没有意识到这条规律的重要性。

    随着错误的不断出现,导致了很多严重的问题,人们开始反省,知道靠制造者本身对自己的产品进行检查和验证存在很大的弊端,因此引入了独立的检查者。

    尽管软件测试的发展经历了大半个世纪,但软件缺陷仍然大量存在。一方面是软件越来越复杂;另一方面,与软件测试的技术发展缓慢也有一定的关系。

    相关资源:《软件测试技术大全:测试基础、流行工具、项目实战》(第3版)(高清影印带书签目录)
    最新回复(0)