1.1什么是自动化测试
自动化测试简单来说就是用机器代替手工的方式来参与软件测试的活动,自动化测试是软件活动中的一个重要分支和组成部分,随着软件产业的不断发展,市场对软件周期的要求越来越高,于是催生各种开发模式,如大家熟知的敏捷开发,从而对测试提出了更高的要求。此时,产生了自动化测试,即利用工具或者脚本来达到软件测试的目的,没有人工或极少人工参与的软件活动称为自动化测试。自动化测试的优势如下:
- 更方便对系统进行回归测试,当软件的版本发布比较频繁时,自动化测试的效率更加明显
- 可以自动处理原本繁琐,重复的任务,提高测试的准确性和测试人员的积极性
- 自动化测试具有复用性和一致性,即测试脚本可以在不同的版本上重复运行,且可以保障猜测内容的一致性
1.2自动化测试的分类
从软件开发周期或者分层的角度来分类:
- 单元自动化测试
单元自动化测试是指自动化地完成对代码中的类或方法进行测试,主要关注代码的实现细节以及业务逻辑等方面。
- 接口自动化测试
接口自动化测试用于测试系统组件件接口的请求与返回。接口测试稳定性高,更适合开展自动化测试。
- UI自动化测试
用自动化技术对图形界面进行流程和功能方面验证的过程。
从测试目的角度分类:
- 功能自动化测试
功能自动化测试主要检查实际功能是否符合用户的需求,主要以回归测试为主,涉及图形界面,数据库连接,以及其他比较稳定而不经常发送变化的元素
- 性能自动化测试
性能自动化测试是托管自动化平台的执行性能测试,收集测试结果,并能分析测试结果的一种可以接近无人值守的性能测试。性能自动化测试有以下特性:
- 对脚本创建和优化提供类库和其他模块支撑
- 可以设定自动化任务
- 自动收集测试结果并存储
- 事中监控
- 成熟的平台可以进行自动分析功能
- 安全自动化测试
1.3测试分类
按开发阶段分类:
- 单元测试
又称模块测试,针对软件设计最小单位-程序模块,进行正确性检查的测试工作。
- 集成测试
又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的递增的测试。
- 系统测试
指的是将整个软件系统看为一个整体进行测试,包括对性能,功能,以及软件所运行的软硬件环境进行测试。
按是否运行分类
- 静态测试
指不实际运行被测试软件,而只是静态的检查代码,界面或文档中可能存在的错误过程
- 动态测试
指实际运行被测试程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程
验收测试
Alpha测试是内测版本,即现在所说的CB,从版本表示该软件是一个初步完成品,通常只是在软件开发者内部交流,也有很少一部分发布给专业测试人员,一般而言,该版本软件的bug较多,普通用户最后不要安装。
Beta是公测版本,是对所有用户开房的测试版本,该版本相对Alpha版本已经有了而很大改进。
Gamma版本测试,指的是软件版本正式发行的迭代版,该版本已经相当成熟的,与即将发行的正式版本相差无几,成为正式版本发布的候选版本
1.4自动化测试项目适用条件
上线自动化测试项目是需要"天时","地利","人和"的,为什么这么说呢,因为自动化测试项目的评估需要各方面的考虑,但是总体来说还是有一些规律可循的:
- 自动化测试前期投入较多,比如人力,物力,时间等
- 软件测试界面稳定,变动少,页面变的更频繁会导致代码维护成本增加
- 项目进度压力不太大,项目时间安排比较紧迫,不适合进行自动化测试
- 自动化测试的脚本可以重复使用,代码复用率高恶意降低开发和维护的成本
- 测试人员具备较强的编程能力