自动化测试方案
1.引言
1.1.文档版本
版本 | 作者 | 审批 | 备注 |
V1.0 | Vincent | XXX |
1.2.项目情况
项目名称 | XXXXXXXX |
项目版本 | V2.31 |
项目经理 | XXX |
测试经理 | Vincent |
所属部门 | XXXXXXX |
1.3.文档目的
本文档主要用于指导XX项目自动化测试的开展。本文档的主要目的在于提供项目自动化测试的技术方案、实施办法和计划安排等。
2.自动化实施目标
2.1.实施原则
项目采用自动化测试,主要目的是为了应对测试过程中繁重的重复性工作任务,以期达到如下效果:
降低测试成本
提高测试效率
更频繁的执行覆盖
提供更高准确和一致性
更好的时间利用
需要注意到的是,自动化的高效应用,对于被测系统有更高的要求,也需要遵循合理的方法流程,总结如下:
系统稳定性应有所保证,太多的功能变动和界面变动,会加大自动化实施难度,增加自动化维护成本;
自动化的实施应该被用于解决高重复性工作,否则其本身工作量投入会大于其收益,所以不应盲目对所有工作追求自动化;
自动化的整体实现应采用分步进行,优先覆盖功能特性稳定的模块,进而逐步扩展到整体项目的功能回归。
自动化测试是一个长期的过程,后续的代码维护和调优也具有可观的工作量。
2.2.自动化测试范围
系统范围:
自动化实施阶段 | 被测对象 | 功能点范围 |
第一阶段 | 系统某模块 | P1级功能点 |
第二阶段 | 系统某模块 | P1、P2级功能点 |
... | ||
... |
阶段范围:
自动化测试应主要被应用于代码提测之前的冒烟测试,以及系统测试完成之后的回归测试阶段。
2.3.自动化测试任务
以下分别描述每个任务的目的和过程。
测试方案制定
测试点提取分析
测试框架搭建
脚本代码编写
持续集成
代码维护
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.交付物管理
交付物 | 负责人 | 备注 |
《自动化测试方案》 | ||
自动化框架 | ||
自动化脚本代码 | ||
测试执行报告 |