软件测试的发展历程
随着计算机的诞生——在软件行业发展初期就已经开始软件测试,但这一阶段还没有系统意义上的软件测试,更多的是一种类似调试的测试。测试是没有计划和方法的,测试用例的设计和选取也都是根据测试人员的经验随机进行的,大多数测试的目的是为了证明系统可以正常运行。
20世纪50年代后期到20世纪60年代,各种高级语言相继诞生,测试的重点也逐步转入使用高级语言编写的软件系统中,但程序的复杂性远远超过了以前。尽管如此,由于受到硬件的制约。在计算机系统中,软件仍然处于次要位置。软件正确性的把握仍然主要依赖于编程人员的技术水平。因此,这一时期测试理论和方法的发展比较缓慢。
20世纪70年代以后,随着计算机处理速度的大幅度提高,存储器容量的快速增加,软件在整个计算机系统中的地位变得越来越重要。随着软件开发技术的成熟和完善,软件的规模也越来越大,复杂度也大大增加。因此,软件的可靠性面临着前所未有的危机,给软件测试工作带来了更大的挑战,很多测试理论和测试方法应运而生,逐渐形成了一套完整的体系,培养和造就了一批批出色的测试人才。
如今在软件产业化发展的大趋势下,人们对软件质量、成本和进度的要求也越来越高,质量的控制已经不仅仅是传统意义上的软件测试。传统的软件测试大多是基于代码运行的,并且常常是在软件开发的后期才开始进行,但大量研究结果表明设计活动引入的错误占软件开发过程中出现的所有错误数量的50%~65%。因此,越来越多的声音呼吁,软件产业化要求有一个规范的软件开发过程。而在整个软件开发过程中,测试已经不再只是基于程序代码进行的活动,而是一个基于整个软件生命周期的质量控制活动,贯穿着软件开发的各个阶段。
我国软件测试的现状
在我国,软件测试可能还算不上一个真正的产业,许多软件开发企业对软件测试认识淡薄,软件测试人员与软件开发人员往往比例失调,而在发达国家和地区软件测试已经成了一个产业,微软的开发工程师与测试工程师的比例是1:2,国内一般公司是6:1.很多人认为导致这种现状产生的原因与接受的传统教育和开发习惯有相当大的关系。软件行业相对于其他一些行业来说是相当年轻的,开发工作包含了需求管理、分析、设计、测试和部署等工作,由于软件业的历史年轻,而且一般人认为,开发周期前面的工作没有完善之前,比较难于考虑到稍后的阶段。因此,可以看到软件业大部分的精力都投入在需求管理、分析、设计三个阶段的开发,造成了这些方面软件和方法论的快速发展,而忽视了测试工作。
总之,与一些发达国家相比,国内测试工作还存在一定的差距。主要体现在测试意识以及测试理论的研究、大型测试工具软件的开发以及从业人员数量等方面。其实,这与中国整日软件的发展水平是一致的,因为我国整体的软件产业水平和软件发达国家水平相比有较大的差距,而作为软件产业重要一环的软件测试,必然有不小的差距。但是,我们在软件测试实现方面并不比国外差,国际上优秀的测试工具,我们基本都有,这些工具所体现的思想我们也有深刻的理解,很多大型系统在国内都能得到了很好的测试。