background image

                                                                 国内软件测试行业现状
及建议

关键字:软件测试

, 现状, 对策

 1、软件测试的概念

         对软件测试技术的发展有重要影响的 Glenford J. Myers1979 年在其名著 5The Art of 

Software Testing6

中对软件测试的定义是: 测试是为发现错误而执行的一个程序或者系统的过程(

The 

process of executing a program or system with the intent of finding errors)。该定义
一经提出即被业界所认可,经常被引用。此外,

Myers 还给出了与软件测试相关的 3 个重要观点:测试是为了证

明程序有错,而不是证明程序无错误;一个好的测试用例是在于它能发现至今未发现的错误;一个成功的测试是
发现了至今未发现的错误的测试。由此可见,

Myers 的定义能够被概括为/测试的目的是证伪 0。然而,这一概念

容易使人们误解为软件测试主要是在代码已经形成,产品也基本完成时才进行的,同时也容易让人们误认为测试
人员就是

/挑毛病的,而事实上测试人员应该是软件质量的/卫士。

        1983 年,美国电气及电子工程师学会(IEEE)对软件测试给出的定义是:使用人工或自动化手段来运
行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。
这个定义明确指出了软件测试是以检验软件系统是否满足需求为目标,它不只是软件开发后期的活动,而是与整
个开发流程融合成一体,软件测试是一个需要运用专门的方法和手段,需要专门人才和专家来承担的科学技术专
业。

         2、国内软件测试现状

         在软件业较发达的国家, 软件测试不仅早已成为软件开发的一个重要组成部分,而且在整个软件开发
的系统工程中占据着相当大的比重。例如,在美国的软件开发中,需求分析和规划确定的比重只有

3%,设计占

5%,编程占 7%,而测试要占到 15%,其余 67% 是投产和维护。微软为打造 Windows2000,用了 250 多个项目
经理、

1700 多个开发人员,而测试人员则用了 3200 人,几乎是开发人员的两倍。而且,每修改一个错误,都

花费大量时间以确保没有新错误产生。

         而在我国,由于总体上,国内软件项目过程不规范,导致重视编码和轻视测试的现象,对于软件测试
的重要性、测试方法和流程等还存在很多错误的认识。

        (1)软件开发完成后进行软件测试

        根据传统的软件开发模型,软件项目要经过以下几个阶段:需求分析,概要设计,详细设计,软件编码,
软件测试,软件发布。据此,很多人认为软件测试只是软件编码后的一个过程。这是不了解软件测试周期的错误
认识。实际上软件测试是一个系列过程活动,包括软件测试需求分析,测试计划设计,测试用例设计,执行测试。
因此,软件测试贯穿于软件项目的整个生命过程。在软件项目的每一个阶段都要进行不同目的和内容的测试活动,
以保证各个阶段的正确性。

        (2)软件发布后如果发现质量问题,是软件测试人员的责任

        从软件开发的角度看,软件的高质量不是软件测试人员测出来的,是靠软件生命周期的各个过程中设计
出来的。出现软件错误,不能简单地归结为某一个人的责任,由于管理不当,在软件开发的各个环节都会出现多
种错误。应该分析软件项目的各个过程,从过程改进方面寻找产生错误的原因和改进的措施。

        (3)软件测试哪个人员都行

       随着软件工程学的发展和软件项目管理经验的提高,软件测试已经由一个独立的技术学科,演变成一个
有巨大市场需求的行业。软件测试包括测试技术和管理两个方面,完全掌握这两个方面的内容,需要很多测试实
践经验和不断学习精神。

        (4)软件测试是测试人员的事情,与程序员无关

        许多人将软件测试和软件开发完全分开,认为是两个不相关的部门,其实开发和测试是相辅相成的过程,
需要软件测试人员、程序员和系统分析师等保持密切的联系,需要更多的交流和协调,以便提高测试效率。另外,
对于单元测试主要应该由程序员完成,必要时测试人员可以帮助设计测试样例。对于测试中发现的软件错误,很