7.2.6 自动化测试可以覆盖软件测试中的每个阶段
很多刚入门的软件测试的新手往往认为自动化测试只限于系统测试和验收测试,而不适用于单元测试和集成测试,其实,这不完全正确的。开源工具JUnit、CPPUnit以及ParaSofy公司出品的Jtest、Ctest、C++test和Google公司开发的GTest等工具都是基于单元测试或集成测试的、它们除了可以完成单元测试和集成测试工作外,有些还具有代码书写规范检查的功能,启动运行这个模块,可以对代码参照预先定义好的规范进行检查,如果某些代码违反了规范,系统会给出可视化的提醒。
7.2.7 软件测试自动化是敏捷开发强有力的工具
众所周知,敏捷开发强调的是开发的快速性,是“短平快”的开发方式,这必然增大开发工程师、软件测试工程师以及运行维护人员的工作压力。如果能对某些功能,尤其是回归测试中涉及到的功能进行自动化测试,让这些功能在版本发布前自动运行,甚至是釆用持续集成(CI)的策略:即每天晚上,从版本控制管理软件中获取已经Check In的老的及新加入的产品和测试代码,然后对这些产品和测试代码分别进行自动化编译,再利用新编译好的测试代码去测试产品代码,直到最后测试完毕,系统会自动将测试报告发到相应的每个开发和软件测试工程师以及其他干系人的邮箱里,以便开发工程师、软件测试工程师第二天一早到公司就可看到测试报告,并对没通过的测试用例在第一时间内进行排查。这样就部分解决了敏捷开发中时间紧、工作压力大的问题,提高了测试的效率。
7.2.8 不要盲目选用现有的自动化测试工具
目前市面上有许多自动化测试工具,如本节开始部分提到的那些产品。许多书籍对这些工具的使用方法和技巧进行了系统介绍,有的测试培训中心还将这些软件测试工具作为专门的课程进行教学,这些都是必要的。但这些工具不是万能的,在实际工作中,还要充分结合产品自身的特性,了解这些自动化测试工具是否可以达到测试自己产品的目的,而不要盲目使用。事实上,如果这些现有的自动化测试工具达不到测试自己产品的目的,那么可以建立专门的自动化测试开发小组,自己开发出符合自己产品测试需求的自动化测试工具,这虽然要消耗一些时间和人力,但由于自己开发的自动化测试工具是针对自身产品开发的,因此使用起来效率高、速度快。此外,那些现有的自动化测试工具价格都比较昂贵,所以建立自动化开发小组往往还可以节约成本。
最后来看各种类型的自动化测试工具的利与弊。
7.2.9 各种类型的自动化测试工具的比较
各种类型测试工具的比较见表7-1。
表7-1 各种类型测试工具的比较
类型 |
优点 |
缺点 |
开源 |
无需购买 可以改动代码 …… |
质量较差 没有售后服务 可能不符合公司业务 …… |
商用 |
有售后支持服务 质量可靠 …… |
价格贵 可能不符合公司业务 …… |
自开发 |
无需购买 符合自己产品 …… |
开发周期长 …… |
扩展阅读:自动化测试知识体系(ABOK) (1)自动化在软件测试生命周期(STLC)中的角色 (2)测试自动化的类型和接口 (3)自动化工具 (4)测试自动化框架 (5)自动化框架设计 (6)自动化测试脚本思想 (7)质量优化 (8)编程思想 (9)自动化对象 (10)调试技巧 (11)错误处理 (12)自动化测试报告 http://www.automatedtestinginstitute.com/home/index.php?option=com_content&view=category&id=69&Itemid=95 |
注:本书中扩展阅读大部分来自于百度百科,请见参考文献【6】。
扩展阅读:数据驱动与关键字驱动 1.数据驱动 数据驱动测试,即黑盒测试(Black-box Testing),又称为功能测试,是把测试对象看作一个黑盒子。利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程。数据驱动测试注重于测试软件的功能性需求,也即数据驱动测试使软件工程师派生出执行程序所有功能需求的输入条件。数据驱动测试并不是白盒测试的替代品,而是用于辅助白盒测试发现其他类型的错误。 数据驱动,必须有数据来控制测试的业务流。比如测试一个Web程序,有很多页面,可以通过一个数据来控制每次是在哪个页面下工作的(即通过数据来导航到相应的页面)。它是关键字驱动的低级版本,它控制的是函数级的,而关键字是控制动作级的。所以数据驱动应该是可以控制整个测试的。 关键字驱动测试是数据驱动测试的一种改进类型,它将测试逻辑按照关键字进行分解,形成数据文件,关键字对应封装的业务逻辑。主要关键字包括3类:被操作对象(Item)、操作(Operation)和值(value),依据不同对象还有其他对应参数。关键字驱动的主要思想是:脚本与数据分离、界面元素名与测试内部对象名分离、测试描述与具体实现细节分离。数据驱动的自动化测试框架在受界面影响方面,较数据驱动和录制/回放有明显的优势,可根据界面的变化更新对应的关键字对象,而不用重新录制脚本。 关键字驱动的自动化测试系统与数据驱动的系统相比,主要的不同有两点: 第一点是数据文件的设计方法不同,数据驱动系统中数据文件存储的是测试输入数据,脚本中仍然存在业务逻辑,这样业务的变化会引起脚本的更改,而关键字驱动系统数据文件的设计将业务和测试输入数据都集成在数据表格中,虽然设计复杂,但当业务发生变化时,无需更改测试所用的脚本,从而提高了测试的效率。 第二点是与数据驱动系统相比,由于关键字驱动系统中数据文件的设计包含了业务信息,因此,将测试所进行的操作封装为关键字支持脚本。由动作封装的关键字支持脚本不包含任何的数据和业务信息,其重用性得到了极大的增强。 |
顾翔凡言:
不是好的工作会给你带来好的心情,而是好的心情会给你带来好的工作。