了解事物的历史才能更好得理解事物。在google上搜索到了《软件测试的起源与发展》,看了后,对测试的理解会清晰很多。有着同样经历的人,不凡找下此文章,品位下。以下是摘要:
70年代开始,对于测试就有了以下两种看法,测试方法一:Establish confidence that a program does what it is supposed to do;Any activities aimed at evaluating an attribute or capability of a program or system.相对应的过程:在设计规定的环境下运行软件的功能,将其结果与用户需求或设计结果相比较,如果相符则测试通过,如果不相符则视为Bug。该测试方法以需求和设计为本,有利于界定测试工作的范畴。一般大型软件在有限的时间和人力资源情况采取此测试方法。测试方法二:Excute a program or system with the intent of finding errors。相对应的过程:强调测试人员发挥主观能动性,用逆向思维方式,不断思考开发人员理解的误区、不良的习惯、程序代码的边界、无效数据的输入以及系统各种的弱点,试图破坏系统、摧毁系统,目标就是发现系统中各种各样的问题。该方法往往能够发现系统中存在的更多缺陷。但这个观点的片面性,所带来的结果是:1、 若测试人员以发现缺陷为唯一目标,而很少去关注系统对需求的实现,测试活动往往会存在一定的随意性和盲目性;2、 若有些软件企业接受了这样的方法,以Bug数量来做为考核测试人员业绩的唯一指标,也不太科学。
80年代:人们开始为软件开发设计了各种流程和管理方法,软件开发的方式也逐渐由混乱无序的开发过程过渡到结构化的开发过程,以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。人们还将“质量”的概念融入其中,软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且将测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容。软件测试有了行业标准(IEEE/ANSI)。IEEE给软件测试下的定义是:“使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别”。定义指出软件测试与整个开发流程融合成一体,软件测试已成为一个专业,需要运用专门的方法和手段,需要专门人才和专家来承担。
90年代开始引入了测试工具,如今的测试工具可分为:捕获/回放工具、Web测试工具、性能测试工具、测试管理工具、代码测试工具。在大型软件中,测试工具可以进行部分的测试设计、实现、执行和比较的工作。提高测试效率的目的。测试工具的发展,大大提高了软件测试的自动化程度,让测试人员从繁琐和重复的测试活动中解脱出来,专心从事有意义的测试设计等活动。采用自动比较技术,还可以自动完成测试用例执行结果的判断,从而避免人工比对存在的疏漏问题。设计良好的自动化测试,在某些情况下可以实现 “ 夜间测试 ” 和 “ 无人测试 ”。在大多数情况下,软件测试自动化可以减少开支,增加有限时间内可执行的测试,在执行相同数量测试时节约测试时间。