第一篇 - 规划
测试团队的发展历程
- 初期 - 已功能测试发现bug为主要任务,每天进行大量重复性的工作,即便如此也依然会有遗漏
- 平台建设 - 测试人员的质量意识和工作效率得到提高,更多时间和精力投入到测试分析与深度测试中,发现和预防bug。在自动化回归测试和造数阶段提升起来。各种专项测试也随之产生
- 质量监控阶段 - 更加全面的监控项目的质量。进而能够更加高效的完成测试工作。精准测试、API文档生成测试代码、可视化质量看板等。测试左移+测试右移
- 赋能阶段 - 从工具和流程两方面为研发人员赋能,从而提升研发的效率和质量。
第二篇 - 基础
这一篇主要介绍了夯实基础,以发现bug为主要任务,丰富测试手段,减少线上问题。解决好各类质量问题,比如线上问题管理混乱,减少漏测。
功能测试
要做功能测试,首先需要进行业务梳理。大部分的bug或者说漏测的bug其实都是由于不熟悉业务造成的,那么如何快速熟悉业务呢? 可以这么做
- 业务通 - 熟悉各个模块;了解系统内部的实现逻辑和处理方式;从用户角度熟悉系统的功能;
- 抓核心 - 产品服务对象有哪些,这些对象经常的操作是什么样的,他们最重视的产品价值是什么?
- 看全局 - 熟悉业务的上下游,以及彼此之间的依赖关系;了解各项服务在系统中的位置
- 透服务 - 数据流的流转路径;流转过程中涉及哪些组件和数据库;系统的核心架构是如何进行交互的
如何提高测试用例的设计质量呢?
- 设立用例设计原则: 采用质量模型,多维度的考虑
- 用例设计模板化: 这里主要指分享和总结不同测试方法的使用场景和使用案列
- 设计用例框架:DDD思想推动用例设计
提高用例质量最好的办法还是多思考,多总结和多复盘自己的用例
用例评审也应该坚持做好,是团队统一需求认知的最后一道关。 比如要确定合格用例的特点、用例评审的准则等
安全测试
坚持安全测试常态化,也就是安全内建。在软件开发生命周期的每个阶段,都应该考虑安全的必要性。
一些好的实践有:
- 梳理当前敏感信息,常见问题主要集中于越权和信息泄露两个方面。
- 对于团队,引入工具和增强意识
- 要在各类评审中和方案中加上安全因素
兼容性测试
兼容性测试的推荐步骤大致如下:
- 明确兼容性测试的对象。APP/API/H5/WEB
- 兼容性测试介入的时间点。什么情况需要测?什么时间测?
- 评估ROI
- 选取兼容性测试的重点。覆盖范围和重点是?
- 选取兼容性测试的方式。执行手段
- 输出兼容性测试报告
线上问题治理
线上问题容易出现周期长、跟踪难、易遗漏、不同步等问题。
- 流程方面可以使用工具。比如钉钉机器人对问题进行统一收录、跟踪和统计。
- 能够自动地处理线上问题,把线上问题转移到特定数据库
- 线上问题数据沉淀及自动化
- 对于答疑内缺陷,可以使用自查文档等方式及早给予反馈
第三篇 - 提效
这一篇主要介绍了一些API框架的知识来解释如何测试效率不断提升的过程。
常见的API测试手段
- cURL
- postman + newman
- JMeter
测试框架
框架的定义
框架由一类特定可复用的、相互协作的组件构成;为解决某些特定问题而实现的解决方案。
自动化测试所经历的经典时代 录制/回放 –> 硬编码时代 –> 面向对象/数据分离时代 –> BDD & 关键字驱动时代 –> 平台化时代
模块化思想、测试库思想、数据驱动思想、关键字思想和BDD思想也影响着测试框架。
总结下来,测试框架 = 测试执行框架 + 请求类包 + 报告框架 + 集成工具 + 其他工具
结合分层思想(公共基础层,API层,组件/业务层,用例层)后,一个典型的文件结构如下
├── Base
├── Config
├── Data
├── Domain
│ ├── A_domain
│ └── B_domain
├── Flow
│ ├── biz_flow_a
│ └── biz_flow_b
├── Log
├── TestSuite
│ ├── TestCasesA
│ └── TestCasesB
└── Tools
API覆盖率统计
测试覆盖率的统计是业界针对测试完整性进行的度量手段之一。
有三大类:
- 白盒覆盖率/代码覆盖率 - 代码的行数和逻辑
- 接口覆盖率 -
至少被执行一次的接口数量
/系统中接口的总数
- 黑盒覆盖率 -
被验证到的需求数量
/总的需求总数
自动生成框架代码技术
通过自动化生成框架代码来减少自动化测试代码的撰写成本和维护成本。 一般面对重复率高,步骤固定的代码,我们大概可以有以下思路:
- 自动获取接口信息
- 建立模板机制
- 数据解析器
- 简历自动触发机制
第四篇 - 赋能
数据工厂
数据工厂是有效提高研发效率的手段,从手工化到脚本化到平台化到服务化,数据工厂在不断地演进。