1.3 软件开发与软件测试
软件开发是软件测试的基础,而软件测试则是软件开发的质量保证手段,软件开发人员是软件质量的最终创造者,软件测试人员应该成为软件开发人员的最好帮手。
1.3.1 软件开发与软件测试的对立统一
软件开发与软件测试是一个对立面,因为软件开发是一种创造性的活动,而软件测试则是一种破坏性的活动。软件开发人员在努力地实现各种软件功能,而测试人员则在努力地寻找里面的缺陷。
软件的质量不能靠开发人员来保证,因为出于“保护”心理,开发人员不忍心对自己辛苦创造出来的产品进行批判;软件的质量也不能靠测试人员来保证,因为测试人员不能确保发现所有缺陷,并且即使发现了缺陷,最终还是要靠开发人员来修正。
软件的质量应该由开发人员和测试人员来一起保证,软件开发人员应该寻求测试人员的帮助,利用测试人员的“批判性”、“破坏性”思维,以及对缺陷的“敏感度”来帮助自己发现程序的错误,从而修正错误,提高产品质量。
而测试人员则应该把自己的工作当成是一种服务,努力发现关于软件质量的方方面面的信息,把这些信息准确、客观、公正地提供给项目组中的所有人。
1.3.2 测试人员需要的开发技术
对于测试人员而言,编程技能未必是必不可缺的技能,但是如果能掌握基本的编程技巧,则会对测试有很大的帮助。大部分的自动化测试工具,需要测试人员具备一定的编码能力和语言知识。对于黑盒测试、手工测试者而言,具备一定的编程能力也会有好处。至少,在与开发人员沟通一个Bug的时候,能理解开发人员的话,开发人员也会感觉测试人员是明白和理解其代码的人,而不会被认为是生硬的、不可理喻的、专门挑刺的人。
测试人员的编程技巧与开发人员的编程技巧,所需要的范围和方面是不一样的。开发人员要更专业一些,他们需要懂得处理很多专门的软件开发和设计上的问题,需要深入了解很多语言的特性,如组件编程、面向对象、可重用性、可扩展性、设计模式、高效率、性能等。而测试人员则更偏向于快速地应用编程知识解决测试方面的问题,不需要追求精致的语言应用,不需要追求完美的可重用性,甚至有些时候不追求性能和效率。但是,需要快速地解决实际的问题。
1.3.3 QTP自动化测试工程师需要掌握的技术
要想成为专业的QTP自动化测试工程师,需要掌握很多方面的专业技术。包括:
(1)VBScript。QTP使用VBScript作为测试脚本语言,因此需要掌握很多VBScript的知识。
(2)软件测试自动化框架知识。为了让自动化测试脚本的可重用性、可维护性更强,自动化测试框架方面的知识不可或缺。
(3)COM/DCOM技术。主要是Excel,Word,Outlook等相关的COM技术,例如,在自动化测试过程中经常需要调用Excel编程接口来读取数据。
(4)SQL语言。查询数据库读取测试数据、添加数据库验证点,这些都需要SQL语言的基础和数据库应用基础。
(5)HTML、XML、DOM。测试Web页面、Web服务、AJAX应用时经常需要跟这些技术打交道。