软件测试管理--第二章 2.2节

2.2 软件测试发展历史

举了2.1节的案例,并不是论述软件给我们带来的危害,而是要说明存在质量问题的软件可能会带来严重后果。因此作为保证软件质量主要手段的软件测试,在软件工程中的地位就更是不言而喻的了。

随着计算机技术的高速发展,软件在生产生活中用的越来越多:从日常的家电业,到航天领域,软件已经“泛滥”得无所不在,计算机病毒、黑客、ERP、电子政务、电子商务等名词也无时无刻不在冲击着我们的生活。

软件设计的概念现在与以往相比已经截然不同:软件开发最开始是个别程序员的“英雄主义”行为,设计成果可以看成一件个人艺术品;而现在软件开发逐渐发展成为一个系统化工程,设计出的软件要充分考虑可用性、通用性、复用性等因素,大部分软件是作为商品来获取利润的。

1.背景知识

60年代中期到70年代中期,软件业取得了快速发展,软件开始作为一种产品为人们所广泛使用,这个时刻出现了“软件作坊”。但是软件的数量急剧膨胀,需求也越来越复杂,开发成本也越来越高。随着用户对软件的要求越来越高,市场对软件质量的各个方面,都提出了新的要求,但是软件开发的管理水平却没有跟上,开发成本越来越高,最终,软件危机发生了。

1968年初,北大西洋公约组织的在联邦德国召开的国际学术会议上,计算机科学家们正式提出了“软件危机”(Softwre Crisis)一词,总结了软件危机的如下表现:

(1) 对进度和成本估计不准确,开发成本远远超出预算,项目进度严重滞后;

(2) 用户对提交的产品经常会不满意;

(3) 产品的质量不可靠,缺陷很多,维护成本非常高;

(4) 软件开发过程的文档匮乏;

(5) 软件的成本不断提高;

(6) 软件开发的效率跟不上计算机硬件的发展速度和人们的需求。

软件危机的原因,一方面是软件的特殊性,与传统制造业的产品不同,它使一种逻辑实体,尽管可以存储,但具体的形态仍然不可见;另一方面就是软件开发和维护的方法不规范。

1968年秋季,北约的科技委员会召集了许多一流的编程人员、计算机科学家和工业界巨头,商讨如何摆脱软件危机的策略。在这次会议上,首次提出了软件工程(Software Engineering)的概念。软件工程的提出主要包含两方面的内容:软件开发技术和软件项目管理。软件开发技术主要包含软件开发方法学、软件工具和软件工程环境;软件项目管理主要包含软件度量、项目估算、进度控制、人员组织、配置管理、质量管理、软件测试、项目计划等。

到目前为止,软件工程已经发展了30多年,取得了很大的成就。软件测试伴随着软件工程,逐渐发展起来:

1957年,软件测试才开始与调试区别开来,作为一种发现软件缺陷的活动。由于一直存在着为了让我们看到产品在工作,就得将测试工作往后推一点的思想,测试仍然是后于开发的活动。潜意识里,我们的目的是使自己确信产品能工作。

20世纪70年代,尽管对“软件工程”的真正含义还缺乏共识,但这一词条已经频繁出现。1972年,在美国北卡罗来纳大学举行了首届软件测试正式会议。1979年,Glenford Myers的《软件测试艺术》(The Art of Software Testing)中作出了当时最好的软件测试定义:测试是为发现错误而执行的一个程序或者系统的过程。

上世纪80年代早期,质量的号角开始吹响。软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容。软件开发人员和测试人员开始坐在一起探讨软件工程和测试问题。制定了各类标准,包括IEEEInstitute of Electrical and Electronic Engineers)标准、美国ANSIAmerican National Standard Institute)标准以及ISOInternational Standard Organization)国际标准。1983年,Bill Hetzel在《软件测试完全指南》(Complete Guide of Software Testing)一书中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。”MyersHetzel的定义至今仍被引用。

上世纪90年代,测试工具终于盛行起来。人们普遍意识到,工具不仅仅是有用的,而且要对今天的软件系统进行充分的测试,工具是必不可少的。

到了2002年,RickStefan在《系统的软件测试》(Systematic Software Testing)中对软件测试做了进一步定义:测试是为了度量和提高被测软件的质量,对测试件进行工程设计、实施和维护的整个生命周期过程。这些经典论著对软件测试研究的理论化和体系化产生了巨大的影响。

2.我国的软件测试发展过程

随着软件工程的不断发展,测试工作逐渐成为一项独立的业务在软件项目中进行开展。测试工程师也成为一项新的岗位,得到越来越多的重视。

我国的软件行业发展现在已经过了初级阶段,正在逐渐进入成长阶段,但是大部分的国内IT公司仍然处在“大而不强”的缓慢发展状态或者“由小到大”蜕变阶段。重要原因之一就是软件测试做的不够,尤其很多公司开始成立时候产品测试就做的不到位,开发的产品质量平平。软件质量不好,产品也就没有竞争力,导致产品销售情况不好,从而就没有更多的资金投入到研发上来,投入到测试上的资源就更少。同时为了维持企业的生存,又必须在更短的时间做更多的项目,要不公司就亏本,从而很多公司都在一个“恶性循环”的圈子里,情况好一些的也是缓慢的向前发展。

但是用户对高质量的软件的呼声却越来越高,所以软件质量管理例如ISOCMM一提出被炒的很热,但是“软件质量管理”没有发生作用。开发高质量的产品公司才能有发展机会,在这种情况下,软件测试更加被重视,至少在意识上得到了空前的提高,大多数公司开始在测试方面投入资源。

我国的软件测试行业到目前为止主要经历了如下的发展过程:

l 没有测试,或者只是在开发过程中由程序员进行简单的测试;

l 在开发工作结束后,由开发人员进行专门的测试;

l 逐渐有专门的测试人员,但是这些测试人员基本是因为无法从事其他工作只好来作测试,因此这个时候测试只是一种辅助性的工作;

l 一些开发人员意识到测试广阔的前景,开始进入测试领域;

l 逐渐有隶属于开发部门的测试小组;

l 产生独立的测试部门(这是目前大多数公司所处的阶段);

l 产生质量部门,但有的公司还存在测试和质量“不分家”,同属一个部门(质量人员有的公司诞生的早些);

l 测试部门、开发部门、质量管理部门的鼎立局面再一些公司形成,逐渐建立规范质量体系。

软件测试技术方面同时相应经历了如下的发展过程:

l 没有测试文档,手工测试,用文字编辑器来报告缺陷;

l 开始编写测试计划、测试用例、测试报告等文档,但是没有按照执行;

l 开始采用缺陷跟踪等软件测试管理工具;

l 开始采用一些自动化测试工具(这是目前大多数公司所处的阶段);

l 测试用例逐渐开始在测试中起重要作用,并开始进行维护;

l 建立了合理的文档体系;

目前大多数公司都逐渐建立独立于开发的测试部门或者测试小组,在测试技术方面开始使用一些测试工具,但是在管理方面做的很弱,例如测试文档、测试环境、测试进度管理方面都做的远远不够。

3.前景

由于公司之间的竞争日益集中在质量方面,所以公司对软件测试人员的需求量也越来越大,国外已经把质量和质量控制作为最重要的一件事情来做,这一点在北美尤为明显,而我国国内软件产品的质量控制体系和标准都还处于模糊状态,国内软件提供商的质量承诺,既没有相应机构的监督,也缺乏合理的第三方对质量水平进行认证,这些现状决定了软件测试行业在国内还有很大的发展潜力,具有广阔的发展前景。随着大多数IT公司对测试的重视,测试将会逐渐规范化,软件测试行业将会迅速发展起来,测试工作在未来将会成为极具挑战性的工作。

国内的软件测试行业近年来有了不小的发展,测试观念正在逐渐被大部分公司接受,而在这两年IT行业不景气的低谷中,越来越多的企业认识到了产品质量的重要性并开始投入更多的精力关注产品质量。在测试行业的细分方面,本地化测试、测试外包、软件测试咨询和培训工作都吸引了不少先入者进入,总体来说,国内的软件测试行业正处于蓄势待发的阶段。

据有关资料统计,我国目前软件人才匮乏,据2004年度的调查表明,专家估计在未来5年内我国的软件开发人员缺口高达30多万人,在今后相当长的一段时间内,对软件开发人才的需求量都会持续增加。而根据有关职位统计资料显示,在国外大多数软件公司,1个软件开发工程师就需要辅有12个软件测试工程师。按照这个趋势统计,国内在今后一段相当长时间内都会有大量的软件测试工程师需求。

另一方面,软件测试在经历了多年的发展之后,软件测试覆盖的范围越来越广,测试工作进行得越来越深入,对软件测试工程师的要求也越来越高。以 Microsoft 在软件测试职位上的需求变化为例, 2002 6 MS 招聘的测试工程师中有一半是测试员、另一半是测试设计员,而据 MS 2004 6 月份在网站上给出的软件测试工程师招聘职位信息,招聘的测试职位中只有 16% 的测试员,另外 84% 60% 的测试设计员和 24% 的测试自动化工程师。我国的软件测试行业从业人员和国外相比,在技术和水平上还处于落后状态,尤其是自动化测试技术在我国则刚刚被少数业内专家所认知,而这方面的专业技术人员在国内更是凤毛麟角。可以预计,在我国,测试行业将会成为一个迅速发展的行业,测试工程师也将会成为一个热门的新兴岗位。

你可能感兴趣的:(配置管理,项目管理,软件测试,招聘,电子政务)