概述
本文用于规范测试人员日常测试工作,引导测试工作有计划、有要求、有保证、高效率的开展。
整体流程规范
在每个项目的测试中,测试人员参与的测试活动主要有以下部分,针对每个测试活动会制定具体的规范要求:
需求阶段
目的让测试人员熟悉需求,形成和开发、产品统一的业务理解,检查需求是否完善,遗漏,减少测试和开发后期返工。
解读需求、参与需求评审
- 如果产品提前发出需求和产品原型,测试需要提前解读,并记录疑问点
 - 了解需求背后的业务逻辑
 - 需求评审过程,对需求理解外,还需要尽可能了解该需求对旧功能的影响,以及上下游系统的影响
 - 检查需求是否完善,遗漏,并解决所有对需求的疑问
 
拆分测试任务、测试计划
- 根据需求和开发已拆分的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是否存在隐私不合规问题
 - 扫描包是否存在安全漏洞
 - 检查包是否能反编译
 - 等等
 
