软件测试的概念和定义:
1972年,软件测试领域的先驱Bill Hetzel博士(代表论著《The Complete Guide to Software Testing》),提出了对软件测试的定义:“就是建立一种信心,认为程序能够按预期的设想运行。Establish confidence that a program does what it is supposed to do. ” 为表明软件正确而进行测试
1979年Glenford J. Myers(代表论著《The Art of Software Testing》)提出了对软件测试的定义:“测试是为发现错误而执行的一个程序或者系统的过程。The process of executing a program or system with the intent of finding errors.” 测试的目的是寻找错误,并且是尽最大可能找出最多的错误。 Myers还给出了与测试相关的三个重要观点,那就是:
1、 测试是为了证明程序有错,而不是证明程序无错误;
2、 一个好的测试用例是在于它能发现至今未发现的错误;
3、 一个成功的测试是发现了至今未发现的错误的测试;
- 软件测试的成熟度:
Phase 2 :测试的目的是为了表明软件不能够能够正常工作
Phase 3 :测试的目的不是要证明什么,而是为了把软件不能正常工作的预知风险降低到能够接受的程度
Phase 4 : 测试不是行为,而是一种自觉的约束 (mental discipline) ,不用太多的测试投入产生低风险的软件上的 。
V模型:改进软件开发的效率和效果。
W模型:测试是伴随着整个软件开发周期。而且测试的对象不仅仅是程序,需求、设计等同样要测试,也就是说,测试与开发是同步进行的。W模型有利于尽早地全面的发现问题。例如,需求分析完成后,测试人员就应该参与到对需求的验证和确认活动中,以尽早地找出缺陷所在。同时,对需求的测试也有利于及时了解项目难度和测试风险,及早制定应对措施,这将显著减少总体测试时间,加快项目进度。
总结:
V模型的局限性是把测试作为编码之后的一个阶段,是针对程序而寻找错误的活动,,而忽视了测试活动对需求分析,系统设计等活动的验证和确认的功能。
W模型的局限性是在W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。
软件测试的起源与发展这篇文章来源于 51testing博客,作者是 袁琳 网址链接是:http://www.51testing.com/html/87/n-6987.html