一. 什么是被测系统的架构与数据流分析
在软件测试中, 被测系统(System Under Test,SUT) 就是你要测试的软件系统。 被测系统的架构与数据流分析就是在测试之前,先搞清楚如下两个问题:
- 系统架构是什么样的 (系统由哪些部分组成、这些部分如何连接)。
- 数据在系统中是怎么流动的 (数据从哪里来,经过哪些模块处理,最后到哪里去)。
简单理解:
架构分析 = 看系统结构图
数据流分析 = 看数据在系统里走的路线
这样做的目的,是帮助测试人员知道该测哪里、怎么测、重点测什么。
二. 被测系统的架构与数据流分析价值
-
更深的理解业务逻辑
-
更好的梳理业务用例
-
更好的与研发运维进行跨部门协同
三. 被测系统的架构
3.1 什么是系统架构分析
系统架构分析就是了解软件系统的整体结构,例如:
系统有哪些模块
模块之间如何交互
使用了哪些技术或服务
哪些是核心模块
举个例子:一个电商系统可能有这样的架构:
java
用户 → 前端页面 → 后端服务 → 数据库
↓
支付系统 / 订单系统 / 商品系统
-
主要组件可能包括:
-
前端系统:网页或App界面
-
后端服务:处理业务逻辑
-
数据库:存储数据
-
第三方服务:例如支付、短信、地图等
-
3.2 了解系统架构的好处
-
通过架构分析,可以知道:
- 哪些模块最关键
- 哪些模块之间容易出问题
- 哪些地方需要做接口测试或集成测试
-
通过数据流分析,可以知道:
- 数据在哪些地方被处理
- 是否可能丢失或错误
- 是否有安全问题
- 是否存在异常情况
3.3 开源项目 Mall 的系统架构
mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
- 角色与数据
- 用户产品
- 前端技术栈
- 后端技术栈
- 服务治理技术栈
- 监控技术栈
- 大数据处理技术栈
- 数据存储
- 持续集成/持续交付/DevOps

3.4 如何快速了解一家公司的架构
- 业务流程:
- 商业模式
- 业务数据:角色、资源、数据
- 业务流程:角色、行为、数据的集成关系
- 系统架构:
- 架构角色与技术栈:
- 网关:apache/nginx/f5
- 应用开发:spring boot/spring cloud
- 通讯协议:dubbo/http/pb
- 数据处理:hadoop/spark/flink
- 数据存储:redis/mysql/oracle/redis/es
- 文档存储:mongodb/hbase/neo4j
- 部署架构:架构角色的集成
- 架构角色与技术栈:
mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
- 角色与数据
- 用户产品
- 前端技术栈
- 后端技术栈
- 服务治理技术栈
- 监控技术栈
- 大数据处理技术栈
- 数据存储
- 持续集成/持续交付/DevOps

四、数据流分析
4.1 什么是数据流分析
数据流分析关注的是:数据在系统中是如何传递和变化的。比如一个用户登录的流程:
用户输入账号密码
前端把数据发送到后端接口
后端查询数据库
数据库返回用户信息
后端验证密码
返回登录结果给前端
后端查询数据库
这就是一条数据流路径: 用户 → 前端 → 接口 → 后端服务 → 数据库 → 返回结果
4.2 了解数据流的好处
-
通过数据流分析,可以知道:
- 数据在哪些地方被处理
- 是否可能丢失或错误
- 是否有安全问题
- 是否存在异常情况
-
例如要考虑:
- 密码为空怎么办
- 用户不存在怎么办
- 数据库返回错误怎么办
4.3 数据流分析统一建模语言 UML
- 用例图:商业模式、业务角色
- 时序图:业务流程、调用关系
- 部署图:系统架构与集成关系
- 活动图:业务逻辑分析
4.4 推荐绘图工具
- plantuml
- yed
- draw.io
- processon
- Visio
4.5 用例图-梳理业务流程
- 用例图(
Use Case Diagram)是一种广泛使用的工具,旨在梳理和展示系统的业务流程,明确系统与外部用户(称为"角色")之间的交互。通过用例图,可以清晰地了解系统的功能需求和用户的操作流程。

4.6 思维导图-分析功能点
- 思维导图(
Mind Map)是一种有效的工具,用于分析和组织系统的功能点。通过思维导图,可以直观地展示系统各个功能模块及其相互关系,有助于全面理解和梳理系统的功能需求。

4.7 时序图-分析数据流
-
时序图(
Sequence Diagram)是一种用于描述对象或组件之间交互的图表,特别适合分析系统中的数据流和交互过程。通过时序图,可以清晰地展示在特定场景中各个对象的通信和操作顺序,有助于理解系统的动态行为和数据流向。
4.8 活动图-分析测试用例
- 活动图(
Activity Diagram)广泛用于表示业务流程和操作顺序。活动图特别适合分析测试用例,展示系统在不同条件下的行为以及各个步骤的顺序。通过活动图,可以清晰地了解系统的操作流程,设计出全面的测试用例。

4.9 测试用例设计总结
- 用例图-分析角色与资源
- 思维导图-分析功能点
- 时序图-分析数据流
- 活动图-分析业务逻辑