概述
本文用于规范测试人员日常测试工作,引导测试工作有计划、有要求、有保证、高效率的开展。
整体流程规范
在每个项目的测试中,测试人员参与的测试活动主要有以下部分,针对每个测试活动会制定具体的规范要求:
需求阶段
目的让测试人员熟悉需求,形成和开发、产品统一的业务理解,检查需求是否完善,遗漏,减少测试和开发后期返工。
解读需求、参与需求评审
- 如果产品提前发出需求和产品原型,测试需要提前解读,并记录疑问点
- 了解需求背后的业务逻辑
- 需求评审过程,对需求理解外,还需要尽可能了解该需求对旧功能的影响,以及上下游系统的影响
- 检查需求是否完善,遗漏,并解决所有对需求的疑问
拆分测试任务、测试计划
- 根据需求和开发已拆分的story,在LUCP上去拆分测试任务
- 在LUCP上为每个任务设定一个测试计划,测试人员、测试的开始、结束时间
开发阶段
开发阶段,测试主要围绕测试用例活动,新增、修改用例,进行用例评审和开发共同确定冒烟测试用例。
编写测试用例
- 可采用Xmind工具或Excel文档编写测试用例
- 优先编写P0冒烟测试用例,添加标识,并在开发联调之前给到开发做自测参考
- 基于用户使用场景进行用例设计,避免直接沿用需求、设计的思路
- 用例尽可能覆盖所有用户使用场景及异常情况
- 用例编写以把测试点描述清楚为准,不要求详细操作步骤
- 尽可能复用公共测试用例
用例评审、确定开发自测用例
- 组织开发和产品参会
- 详细介绍每个需求点对应的测试用例
- 讨论并解决用例疑问点
- 标记用例遗漏点,并会后完善
- 同开发一起确定需要开发自测的用例,并会后整理成《PMO项管文档》提供给开发
开发自测阶段
主要检查开发是否进行自测,是否达到项目提测标准。
开发自测验收
- 检查相应《PMO项管文档》
测试环境阶段
检验系统功能是否达到预期和是否存在潜在风险等。
冒烟测试
-
执行测试
如果已经完成自动化,则手动触发脚本校验旧功能是否正常
- 根据用例逐条对系统进行校验
- 发现问题按规范提交到LUCP
- 跟踪问题
- 如果时间允许,做更多的探索性测试(如安全测试等)
- 如果项目需要做性能压测,安排性能压测
如果项目需要做异常测试和稳定性测试,安排对应异常测试和稳定性测试
每日日报、风险评估
每天结束测试时,群发测试进度和是否存在什么风险
测试日报格式:
【XX系统V3.1版本测试日报】
测试进度:65%;
Bug分析:总bug数61个,待解决bug数3个,待关闭Bug数1个;
风险问题:需求变更,但不影响上线时间xxxxxxx。新功能回归
项目趋于稳定,并未再发现严重bug,对新功能进行整体回归
预发布环境
贴近生产环境的测试,属于集成后的测试,主要校验新功能完善并不影响旧功能,符合上线标准。
冒烟测试
上线阶段
检查生产环境新功能正常,并校验业务核心下单功能正常。
新功能验证
验收阶段
次日值班
- 提前填写版本值班人员:姓名+手机号
- 针对前一天上线项目,安排对应测试早上值班观察zeus大盘
总结阶段
通过测试总结对测试工作进行反思改进,并且对测试过程中的经验进行固化共享,提高团队的整体经验技能,并维护好回归用例和自动化代码。
业务知识总结
- 对于要求进行测试总结的项目,需要出具书面的业务总结
- 总结内容需要包括业务介绍、典型流程、关键数据、操作指导等方面
-
版本测试回顾总结
可选,对于项目过程中做得好的和做的不好的地方进行总结,固化经验和提出改进计划和建议,落实对应人跟踪
-
测试用例和自动化代码完善
对测试用例基线库进行迭代更新
- 如果有做自动化,则实现新增P0用例的自动化脚本
用例编写规范
测试用例编写的质量直接影响到整个项目测试的质量,同样测试用例编写的水平、对需求的覆盖率等,也可以很大层面上了解到一个测试员的整体测试水平。测试用例能更好的保证测试人员能有效、有序、合理的对系统进行全面的测试。
整体规范要求
以Xmind编写的测试用例为例子,这个跟excel模板编写的测试用例会有所差异。
- 测试用例的编写需要严格根据需求功能进行,要求100%覆盖需求功能点
- 使用统一的用例编写工具平台,暂定Xmind
- 一条完整用例需要如下内容
- 功能模块或页面模块
- 用例级别
- P0:最高级别,涵盖系统核心流程的用例,用例数控制在5%左右
- P1:涵盖系统主要功能,用例数控制在5%-10%左右
- P2:涵盖所有功能点
- P3:通常该级别用例只需要执行一遍,一旦验证通过后续除非需求变动,否则不需要再次验证。例如UI样式,文本内容,字体大小颜色等。
- 前提条件
- 测试用户场景、操作步骤
- 预期结果
- 实际结果(可有可无)
- 通过Xmind标识,标注测试是否执行通过
- 备注(可有可无)
- 用例迭代维护,每个迭代后对用例进行归档,下个迭代拷贝一份,基于拷贝后的做增删改
-
用例设计方法
等价类划分
- 边界值判定
- 错误推送发
- 场景分析法
- 等等
规范例子
Bug规范
规范的bug管理有助于测试跟踪bug,统计bug和迭代后期总结,同时规范的bug内容编写有助于开发了解问题,定位问题。
Bug 管理规范
- Bug统一提交到LUCP测试管理模块
- Bug提交需要关联具体Story
Bug 内容规范
BUG 必须包含如下内容:
- 选择一个合适的产生缺陷的原因
- 环境、配置问题
- 开发代码问题
- 需求问题
- 数据问题
- 建议性问题
- Bug优先级
- 紧急:通常指阻碍测试的bug,很大层面上对应P0级别用例或者线上问题
- 严重:通常指功能未能实现,很大层面上对应P1级别用例
- 一般:通常指功能虽实现,但可能存在交互等不够友好,一般能对应上P2级别用例
- 轻微:不影响用户使用,对应上P3级别用例
- 环境,如果是APP还得写明是哪一端IOS还是Android
- 指定需要来解决Bug的经办人
- Bug提交人
- 期望bug修复日期(可有可无)
- Bug主题,简单描述Bug
- 前置条件
- 操作步骤
- 实际结果
- 预期结果
- 附件(图、log日志文件、录屏等均可)
Bug 生命周期规范
服务端测试规范
API\RPC 自动测试规范
技术选型
- 编程语言选择跟开发一样 - Java,便于复用开发代码
相应框架尽可能通用,并可复用:
Java 编码规范遵循公司规范,也可以参考《阿里巴巴Java开发手册》
代码管理规范
-
脚本用例管理规范
按包名管理项目和模块
- 每个API\RPC一个class文件,并以API\RPC名称+Test 为结尾命名
- 每个class文件,编写对应API用例
- 每个用例:
- 用 description 进行简单描述
- 用 Severity 注解进行用例级别划分
- 用例入参尽可能动态化,避免环境变更等失效
- 用例结果严格按功能测试验证为标准编写,杜绝状态200就算通过
- 等价类用例,尽可能采用数据驱动方式组织脚本用例
-
使用场景
开发提测时,快速测试黄金流程运行正常
- 测试或预发布环境回归测试阶段,快速确认旧功能是否正常
规范例子
性能测试规范
目前绝大多数应用都是基于网络的分布式应用,我们无法知道用户数量,用户场景的不确定性,导致系统测试时,不仅仅是功能,业务逻辑,接口测试,还要测试系统性能。一个用户没问题,但是用户一旦多了就可能出现各种各样的问题,所以需要进行系统性能测试。
压测目的
- 能够找到系统/模块的极限吞吐量
- 能活获取影响极限吞吐量的核心因素和关系,指导模块或者系统优化
测试环境
pre环境、个别接口放线上环境压测压测工具、平台
暂用Jmeter,后期统一使用全链路压测平台压测内容
所有新增和所有修改的API和RPC接口压测指标
并发数:根据产品或者开发给出的API\RPC调用频率或每日调用量级,计算出接口大概的并发数。
其余性能指标,如响应时间、吞吐量、事务数、硬件指标等参考性能保障组给定的API和RPC压测指标。
异常、稳定性测试
检查系统如果某块处于某种异常情况下,其余模块是否能正常、稳定运行。
异常场景
- 服务机器异常:机器宕机、断电、磁盘满、CPU抢占、内存错乱满等
- 网络异常:网络都懂、丢包、超时、网卡满、DNS故障、断网等
- 应用服务异常:进程被杀、启动异常、心跳异常、环境配置错误、包错误或损坏、配置错误等
- 数据库异常:连接池满、数据库主备延迟、数据库宕机、数据同步错误、延迟等
- 等等
安全测试
检查系统是否存在业务漏洞,防止常见系统漏洞,并通过一些安全软件扫描系统潜在的安全问题。
安全检查项
- 注入
- 使用安全的API,避免使用解释起
- 对输入的特殊字符进行转义处理
- 权限最小化,减轻被注入的影响
- 会话管理
- 使用内置会话管理功能
- 使用单一的入口点
- 登录开始就使用ssl保护网页
- 跨站脚本攻击
- 不安全的直接对象引用
- 伪造跨站请求
- 完全误配置
- 统一、自动化的部署,减少配置不一
- 敏感信息加密
- 用户信息等存放和传输等进行加密
业务安全
Appscan
- Burpsuite
- fiddler\charles
- NGS
- 等等
APP测试规范
API自动化测试规范
性能测试规范
检查APP的整体性能,避免应用耗资源过大,保障APP使用的流畅性等。
性能测试点
- 相应时间
- 冷热启动:冷、热启动APP的时间
- 内存
- 后台运行下消耗最小内存
- 中度使用下内存消耗
- 重度使用下(mokey来测试),检查是否有内存泄露
- CPU
- 后台运行下,应用消耗的CPU
- 中度规格转态下应用对CPU的消耗
- 满规格下应用CPU的消耗
- 应用CPU峰值情况
- 弱网络
- 模拟各种网络下的APP反应情况
- GPU
- 界面绘制情况
- 屏幕滑动帧速率
- 屏幕滑动平滑度
- 功耗
- 手机安装APP前后功耗是否明显差异
- 常用场景下,进入待机,电量消耗是否正常范围内
- 长时间使用APP,是否出现异常耗电现象
- 耗流量
- APP首次启动流量值
- 后台连续运行若干小时流量值
- APP中负荷的流量值
- APP高负荷下的流量峰值
- 等等
测试工具、平台
性能指标
- 以往数据对比
- 竞品数据对比
异常、稳定性测试
异常场景
隐私合规、安全
- 检查APP是否存在隐私不合规问题
- 扫描包是否存在安全漏洞
- 检查包是否能反编译
- 等等