阿里测试之道

1. 代码门禁

2. 代码门禁优化

3. 测试本质:质量反馈

4. 可信测试三要素

  1. 测试全面性
  2. 结果可信度
  3. 全部通过

5. 质量与效能关系

6. 测试破局三维度

维度 关键措施
缩短反馈时间 测试金字塔下移、并发执行、数据准备优化、精准测试、用例瘦身
降低反馈成本 小型测试为主、逻辑隔离替代实例隔离
提高可信度 提升稳定性、代码/业务覆盖率、自动生成用例

7. 缩短反馈时间实践

8. 提升可信度策略

稳定性提升

有效性度量

充分性保障

9. 防错设计

10 影子数据(test in product 的核心数据)

全链路功能根植于影子体系,按照之前的介绍,影子体系是通过影子标来标记影子流量、通过影子表保存影子体系数据的。影子表和正式表同库,表结构和线上保持一致,只是表名加前缀,如同影子一般,因此,存储在影子表中的数据被称作影子数据。

影子数据的生成:
全链路功能要提前验证大促招商的所有数据,涉及的影子数据是上亿级的,且是各库表的各种类型的数据,如何圈定线上数据,将线上数据迁移成可用的影子数据,并且不会对线上数据造成影响,就成为首先需要解决的问题。
影子数据平台是在解决这个问题的过程中诞生的,它构建了一条通道,将正式表的数据搬运到影子表中,产生可用的影子数据,影子数据的生成过程如图 2-7 所示。
影子数据的生成过程,并不是完全的复制过程。虽然有了影子表,有了中间件作为媒介透传影子表、识别影子流量

(小公司可以通过通过 X-Shadow-Test: true 等 Header 或 URL 参数标记压测影子数据,然后数据库影子表统一同步,读写数据都通过影子表来完成)

11 SQL 预热

数据库执行 SOL 查询的时候,会先在缓存池中查询是否已经有结果,如果没有则会进入下面长长的解析、优化和计划执行等过程。因此如果能提前向缓存池中放入热 SQL 的执行结果,则能大大降低请求到数据库的处理响应时间。预热系统也可以同时预热多个单元的数据库实例,支持按照用户单元规则将热点数据进行路由。
(确实存在缓存,如查询 gps 数据能感觉到第一次查询很慢,有了缓存之后才快起来)

12 SOLOPI

设想一下:当需要编写一个用户注册流程验证的自动化用例时,我们可以利用 SoloPi 的录制回放功能,按正常流程进行注册,这时 SoloPi 会同步生成一份 UI 操作自动化脚本。为了能够重复利用其间的注册信息,我们可以利用 Mock 功能将当次的请求数据保存下来同步关联到上述录制的脚本中,完成注册流程验证的自动化用例编写。同时为了后续能够定时执行,我们还可以将用例放置在云测平台上,设定定时执行时间和结果通知方式,这是一件多么惬意的事呀!

13 APP 测试

主要事在自动化,一机多控、性能、兼容性(不同机型不同策略)、android 或 ios 升级等方面、云测、mock 等方面展开

14 软件开发模式

DDD(Deadline-Driven Development) 截止日期驱动开发

BDD 行为驱动开发

TDD 测试驱动开发

15 测式三定律

1)软件总会出错(人非圣贤)

2)测试不可穷尽

3)质量的设计出来的,不是测试出来的(比如 A 项目 1000 个 bug 修复了 到了 B 下项目也是 1000 个 bug 甚至更多 请问质量提高了吗)

16 对于质量和效率之间的平衡点

服务端测试倾向于离效率更近一些,客户端测试倾向于离质量更近一些,因为服务端 Bug 更容易被修复。最后,工程能力的提升,会帮助我们找到新的平衡点。


↙↙↙阅读原文可查看相关链接,并与作者交流