一、项目测试的自动化
自动化是测试工程师必须掌握的技能,不管是使用自动化测试工具还是开发自动化测试工具,都是软件测试发展的方向,因此测试工程师一定要掌握这方面的技能。
虽然说项目的临时性特征使得项目不太适合做自动化测试,但是客户要求我们做自动化测试,况且自动化测试也是软件测试技术发展的最终目标,所以有必要学习和运用自动化测试技术,以提高测试的效率。
二、自动化测试面面观
自动化测试就是指通过测试工具或其他手段,能够按照预定计划对软件系统进行自动的测试。它是软件测试的一个重要组成部分,它能够完成许多手工测试无法完成或者难以实现的一些测试工作。
自动化测试是相对于手工测试来说的,所以说只要使用了工具执行的测试,都可以称之为自动化测试。软件测试自动化涉及到测试流程、测试体系、自动化编译,以及自动化测试等方面的整合。
现在很多外包项目都要求对系统进行自动化测试,对自动化测试本身的要求也是越来越高。但是在外包项目进行期间,要把自动化测试进行好,需要做好前期的规划和技术准备工作。
1.适用情形
可以采用的自动化测试情况有以下几种:
外包项目周期大于3个月,欲投入资源相对估算的外包项目工作量有余量。
对基本稳定的系统进行测试。功能、技术和界面都要不轻易改变,否则维护脚本的代价会超过自动化测试带来的好处。
系统中有数据量大、重复度高的测试。
对于结果可预测的系统,如果自动化测试中可验证的结果不可以预测,那么进行自动化测试的意义不大。
系统人机交互界面能够被自动化工具所识别,支持自动化脚本录制。
外包项目管理层要考虑进行自动化测试所要投入的资源,包括是否已经具备了自动化测试所需要的流程和方法,自动化测试工具是否具备,是否有测试工程师熟悉自动化技术且具有外包项目经验等。
2.自动化测试优势
自动化测试的优势有如下几点。
1)自动提高测试质量
软件开发的过程就是一个持续集成和改进的过程,而每一次修改都有可能产生错误。因此,当软件产品的一部分或者全部应用环境被修改时都需要对软件产品重新进行测试,其目的是验证修改后的系统或者产品的质量是否符合规格说明。例如,对于产品型的软件来说,每发布一个新的版本,其中大部分功能与界面都和上一个版本相似或完全相同,这部分功能特别适合于自动化测试。由于自动测试工具提供了简便的回归测试,能以便利的方式验证是否有新的错误进入软件产品,这样既节省了重复手工输入的工作量,又保证了测试案例的一致性,避免了人为因素的干扰,也可以让测试达到每个质量特性的目的,从而提高软件测试的质量。
2)提高测试效率,缩短测试工作时间
软件系统的规模越来越大,功能也越来越多,达到几千个甚至上万个,因此人工测试非常耗时和烦琐,这样必然会导致测试效率低下,而使用自动化测试工具可以较好地执行这些频繁的测试任务。在充分并合理使用了测试工具以后,可以减轻测试工程师的手工测试工作,同时,测试工具还可以把控制和管理引入整个测试过程,从而保证测试的进度。
3)提高测试覆盖率
通过自动化测试工具的录制回放及数据驱动来测试功能,可以提高测试覆盖率。通过测试工具的辅助分析功能,可以提高测试的深度。