自动化测试是什么
自动化测试指软件测试的自动化,在预设状态下运行应用程序或系统,预设条件包括正常和异常,最后评估运行结果
自动化测试的优势
降低大型系统由于变更或者多期开发引起的大量的回归测试的人力投入,这可能是自动化测试最主要的任务,特别是在程序修改比较频繁时,效果是非常明显的,自动化测试前期人力投入较多,但后期进入维护期后,可节省大量人力,而手工测试后期需要增加大量人力用于回归测试减少重复测试的时间,实现快速回归测试创建优良可靠的测试过程,减少人为错误可以运行更多更繁琐的测试可以执行一些手工测试困难或不可能进行的测试更好的利用资源
自动化测试的适用对象
实施自动化测试的前提条件:需求变动不频繁、项目周期足够长、自动化测试脚本可重复使用 原因如下: ①需求变动频繁的项目,自动化脚本不能重复使用,维护成本太大,性价比低 ②项目周期短,自动化脚本编制完成后使用次数不多,性价比低 ③交互型较强的项目,需要人工干预的项目,自动化无法实施
自动化测试实施过程
(1)分析:总体把握系统逻辑,分析出系统的核心体系架构 (2)设计:设计测试用例,测试用例要足够明确和清晰,覆盖面广而精 (3)实现:实现脚本,有两个要求一是断言,二是合理的运用参数化 (4)执行:脚本执行过程中的异常,需要仔细分析原因 (5)总结:测试结果的分析,和测试过程的总结是自动化测试的关键 (6)维护:自动化测试脚本的维护是一个难以解决但又必须要解决的问题
自动化测试,首先可以看作一个项目,那么自动化测试的过程就是一个项目的实施过程,经过计划、执行、评估与总结而不断提高的过程 自动化测试,可以看作软件开发的过程,经过测试需求的分析、自动化测试框架的设计、测试脚本的开发和验证、测试脚本的运行等流程。而且测试脚本的管理和源代码的管理也是一样的,须要通过CVS、SubVersion等工具进行配置管理,包括版本分支和合并、变更控制等 自动化测试过程,依然是一个测试过程,从测试需求出发,设计和执行测试用例、报告缺陷,并自动生成测试报告
自动化测试需求分析
当拿到新的项目时,必须针对测试项目的具体情况进行具体可行性分析,确定一个软件系统测试中哪些范围、哪些任务是适合自动化测试的而哪些是不适合的。然后,根据测试任务的特点并结合自动化测试框架的要求,确定正确的自动化测试目标和策略,选择合适的自动化测试工具,逐步开展自动化测试工作
选定测试工具
不可能有单一的测试工具能满足测试的所有需求。不同的测试任务会选用不同的测试工具,如单元测试须要选用单元测试工具,性能测试须要选用性能测试工具,针对不同的应用,也要选择不同的工具,如针对Web应用,可以选择Selenium和WebLoad等工具,而针对客户端应用,则要选择AutoIT等工具 在选择测试工具时,要清楚测试目标和需求,确定适用的技术环境及自动工具可支持的各种测试,分析测试工具与被测软件系统的互操作性和兼容性,考虑工具的易用性,特别是要考虑工具本身所要求的测试脚本,是否支持数据驱动、关键字驱动,以及是否容易编写、调试和维护等
开发自动化测试脚本
自动化测试脚本的编写,要遵守编码规范,包括脚本的层次、命名等,将(测试)数据层、(系统)操作层和(业务)逻辑层分开,不仅构造结构化的脚本,而且构造程序对象映射、建立对象库和关键字函数库等,全面支持测试数据驱动、关键字驱动的脚本,有利于脚本的开发和维护 在脚本开发中增加冗余设计,即使降低一定的性能,也要保证测试执行的稳定性。如果测试可以在无人值守情况下运行,那么测试的执行效率就不是大问题了 脚本写完了,还须要调试。只有脚本运行稳定,执行的测试结果符合测试要求,才能说明测试脚本开发完成
测试结果分析
自动化测试结果一般被分为3种情况——通过(pass)、失败(failed)和不确定/没有被执行(TBD/unexecuted) 针对测试自动化执行结果,主要集中分析那些没有通过(failed)的结果。首先,分析是不是软件产品本身存在缺陷导致测试执行失败?是不是上面某个测试执行失败而导致其他大量的测试执行没通过?如果不是,再查看测试环境。如果产品和测试环境都没有问题,就要检查自动化测试脚本,是不是测试脚本误报信息?还是脚本的验证点设置不对?有时候,测试执行全部通过,也可能存在问题——脚本的验证点不够或太粗,从而错过许多验证点 为了更好地进行测试结果分析,一方面,尽量存储好的测试执行日志(log);另一方面,提供规范的测试结果报告格式
|