前言
众所周知,软件测试是目前软件工程领域唯一的朝阳行业;所谓朝阳行业,就意味着挑战与机遇并存!有人说软件测试既是科学又是艺术,但凡称为既是科学又是艺术的学科就是不成熟的学科,软件测试也如此,它也是不成熟的领域,在其发展道路上还存在着太多的不足和难以克服的困难;因此,很多国内外的专家和公司都在积极的探求着更规范化和标准化的测试流程,以及更成熟、更易实现的技术方法。
从宏观意义讲,软件测试可以划分为以下三个方面:
软件测试管理:测试流程管理、测试职业管理,测试技能方法管理等
软件测试技术方法:根据软件测试的不同阶段、不同测试类型、不同软件类型等,深入研究软件测试的技术及方法
软件测试自动化:自动化测试流程、自动化测试管理、自动化测试工具等
软件测试大致分为以上三类,每类可细化为更多子方面,例如第二类根据测试类型还可细化为功能测试、性能测试、安全测试等,根据测试方法可细化为黑盒测试、白盒测试、灰盒测试等。这里,之所以讲软件测试自动化单独列出来,是考虑到软件测试自动化既包括技术方法方面,又包含管理方面;更重要的是,软件测试自动化是软件测试领域无法逾越的发展阶段,随着应用软件程序规模的不断扩大,业务逻辑的不断复杂,以及从业者协作关系的日益重要,在软件的开发周期里适当使用自动化测试是非常必要的!
自动化测试介绍
一)自动化测试的神话和现实
自动化测试能增强软件测试的规范化和标准化,如果实施方法得当,它可以:
●减少浪费在重复性手工测试工作上的时间
●创建优良可靠的测试过程,减少人为错误
●增强测试的覆盖率以及产品质量
但是,测试自动化不能:
●完全代替手工测试
●立即降低测试投入,提高测试效率
●保证100%的测试覆盖率
●补偿劣质的测试过程
要对自动化测试形成正确的认识,切不可好高骛远,脱离实际的以为企业实施了测试自动化,就可以克服从前的一切问题。实际上,软件测试自动化在企业内部的推广,也是一个与时俱进的持续性过程。
二)自动化测试工具
自动化测试定义为通过测试自动化工具开发和执行测试脚本,以评估软件的需求。测试工具分为两类:
●找错工具(fault-finding):根据既定的测试标准寻找被测程序中的缺陷,包括静态分析工具(一些白盒测试工具例如parasoft的jtest含有该功能)、动态测试工具(市面众多的测试工具robot、winrunner、qarun等)
●测试支持工具:测试管理工具(如testmanager、testdirecter等)、其他支持工具(如clearquest、clearcase等)
三)自动化测试成功的关键要素
企业购买了自动化测试工具,下一步就是要在公司内部推广自动化测试。那么,自动化工具能够给企业的测试流程带来多少变更呢?如何在测试工作中使用自动化测试工具呢?RUP提出这样的自动化测试关键要素:
●自动化测试必须看成一个软件开发项目,因为测试脚本是代码,而测试代码是自动化测试的根本;有效的开发并维护良好的测试脚本,是自动化测试的重中之重。
●自动化测试同样需要经历计划、设计、开发、维护、版本控制过程,具体而言,包括四个关键过程:
●清晰的定义和可持续的实现过程
●获得企业组织管理上的支持
●审思成熟的项目计划
●稳定的结构设计
以下逐一讲解每个关键过程。