1. 引言
1.1. 文档版本
版本 | 作者 | 审批 | 备注 |
V1.0 | Vincent | ||
1.2. 项目情况
项目名称 | XXXXXXXX |
项目版本 | V2.31 |
项目经理 | XXX |
测试经理 | Vincent |
所属部门 | XXXXXXX |
1.3. 文档目的
本文档主要用于指导XX项目自动化测试的开展。本文档的主要目的在于提供项目自动化测试的技术方案、实施办法和计划安排等。
2. 自动化实施目标
2.1. 实施原则
项目采用自动化测试,主要目的是为了应对测试过程中繁重的重复性工作任务,以期达到如下效果:
u 降低测试成本
u 提高测试效率
u 更频繁的执行覆盖
u 提供更高准确和一致性
u 更好的时间利用
需要注意到的是,自动化的高效应用,对于被测系统有更高的要求,也需要遵循合理的方法流程,总结如下:
u 系统稳定性应有所保证,太多的功能变动和界面变动,会加大自动化实施难度,增加自动化维护成本;
u 自动化的实施应该被用于解决高重复性工作,否则其本身工作量投入会大于其收益,所以不应盲目对所有工作追求自动化;
u 自动化的整体实现应采用分步进行,优先覆盖功能特性稳定的模块,进而逐步扩展到整体项目的功能回归。
u 自动化测试是一个长期的过程,后续的代码维护和调优也具有可观的工作量。
2.2. 自动化测试范围
系统范围:
自动化实施阶段
被测对象
功能点范围
第一阶段
系统某模块
P1级功能点
第二阶段
系统某模块
P1、P2级功能点
...
...
阶段范围:
自动化测试应主要被应用于代码提测之前的冒烟测试,以及系统测试完成之后的回归测试阶段。
2.3. 自动化测试任务
以下分别描述每个任务的目的和过程。
l 测试方案制定
l 测试点提取分析
l 测试框架搭建
l 脚本代码编写
l 持续集成
l 代码维护
3. 自动化技术选型
3.1. 整体体系
结合测试金字塔以及本项目资深流程特性,本次自动化实现将主要以UI自动化的形式开展。以selenium3.0为核心机制,以TestNG为测试组织,Maven实现项目管理,jenkins实现持续集成,并选取Java做为编程语言实现。
画出自动化架构图
3.2. 核心技术
3.2.1. 测试执行机制
Selenium的介绍。
3.2.2. 测试组织和断言机制
TestNG的介绍。
3.2.3. Java项目管理机制
Maven的介绍。
3.2.4. 项目协同机制
Git的介绍。
3.2.5. 持续集成机制
Jenkins的介绍。
3.3. 框架思想
3.3.1. 二次封装思路
3.3.2. 数据驱动实现
4. 测试环境需求
4.1. 硬件环境
硬件
4.2. 软件环境
软件
5. 人员进度安排
5.1. 职责分配
人员/组别
职责
备注
测试经理
制定测试计划,确定测试范围
功能测试组
进行测试分析,提取测试用例
自动化测试组
实现自动化测试框架,自动化脚本编写
5.2. 进度安排
测试任务
负责人
开始时间
备注
自动化方案制定
自动化测试分析设计
自动化环境搭建
自动化框架搭建
自动化脚本代码编写
持续集成实现
自动化执行监控
自动化代码维护
自动化测试报告
5.3. 交付物管理
交付物 | 负责人 | 备注 |
《自动化测试方案》 | ||
自动化框架 | ||
自动化脚本代码 | ||
测试执行报告 | ||