2016.11.4, 深圳, Ken Fang
微服务产品在每个版本, 都将会有一个到多个的特性需发布。
每个特性依据它的业务场景切片, 将划分成一个到多个的微服务。
每个特性内的微服务, 又划分为一个到多个的 User Stories。
所以, 微服务产品的集成测试主要区分为:
1. 微服务内的 User Stories 的集成测试
2. 特性内的微服务的集成测试
3. 微服务产品内的特性的集成测试
而微服务产品的集成测试的测试用例, 主要分为两大类:
1. 特性运维时的环境、资源的测试用例。
2. 集成业务场景测试用例; 集成业务场景指的是: 微服务内的 User Stories 的集成业务场景、特性内的微服务的集成业务场景、微服务产品内的特性的集成业务场景。
针对这两大类的测试用例的设计, 描述如下:
I. 特性运维时的环境、资源的测试用例的设计:
微服务产品是一复杂的分布式系统, 所以, 特性运维时的环境、资源的测试用例的设计, 必需要测试经理、架构师、开发人员、测试人员, 运用测试用例看板, 共同的协作完成。
Step 1: 测试经理、架构师、开发人员、测试人员必需要能共同的协作, 识别出特性运维时的环境、资源的测试面向为何? 例如: 内存、流量、主要实体数、地域位置、档案/ 存储…等等。
Step 2: 测试经理、架构师、开发人员、测试人员共同的协作, 识别特性运维时的环境、资源的各测试面向下的各测试纬度为何? 例如: 测试面向; 内存; 的测试纬度是: 内存为过小时、内存为正常时、内存为过大时。
Step 3: 测试经理、架构师、开发人员、测试人员共同的协作, 设计特性运维时的环境、资源的各测试面向下的各测试纬度的测试用例。
例如:
a. 测试面向; 内存; 与测试纬度; 内存为过小时; 的测试用例是: 1G 的内存。
b. 测试面向; 内存; 与测试纬度; 内存为正常时; 的测试用例是: 8G 的内存。
c. 测试面向; 内存; 与测试纬度; 内存为过大时; 的测试用例是: 32G 的内存。
II. 集成业务场景测试用例设计:
不论是微服务内的 User Stories 的集成业务场景、特性内的微服务的集成业务场景或是微服务产品内的特性的集成业务场景, 均可用业务场景树, 分析各类型的集成业务场景, 所包含的活动、活动所产生的实体、活动所产生实体的校验纬度。
当测试人员设计出微服务内的 User Stories 的集成业务场景、特性内的微服务的集成业务场景或是微服务产品内的特性的集成业务场景的业务场景树后, 测试人员便可经由业务场景树, 设计出:
a. 微服务内的 User Stories 的集成测试用例的准备数据、过程数据、测试的预期结果。
b. 特性内的微服务的集成测试用例的准备数据、过程数据、测试的预期结果。
c. 微服务产品内的特性的集成测试用例的准备数据、过程数据、测试的预期结果。
当特性运维时的环境、资源的测试用例与集成业务场景测试用例, 都设计完成后。测试人员便可依照版本的架构质量属性; 如: 性能、可靠性、易用性、安全性、系统集成、可移植性…等等; 的优先级, 组合特性运维时的环境、资源的测试用例与集成业务场景测试用例, 设计出微服务产品集成测试的基础集成测试用例。
测试人员便可将这些基础集成测试用例, 开发成自动化测试脚本、执行基础集成测试的自动化测试。并根据基础集成测试自动化测试的执行结果, 探索出更多的微服务产品集成测试用例, 挖掘出更多深层的微服务产品缺陷。