被测系统架构与数据流分析

一. 什么是被测系统的架构与数据流分析

在软件测试中, 被测系统(System Under Test,SUT) 就是你要测试的软件系统。 被测系统的架构与数据流分析就是在测试之前,先搞清楚如下两个问题:

  1. 系统架构是什么样的 (系统由哪些部分组成、这些部分如何连接)。
  2. 数据在系统中是怎么流动的 (数据从哪里来,经过哪些模块处理,最后到哪里去)。

简单理解:
架构分析 = 看系统结构图
数据流分析 = 看数据在系统里走的路线
这样做的目的,是帮助测试人员知道该测哪里、怎么测、重点测什么。


二. 被测系统的架构与数据流分析价值

  • 更深的理解业务逻辑

  • 更好的梳理业务用例

  • 更好的与研发运维进行跨部门协同


三. 被测系统的架构

3.1 什么是系统架构分析

系统架构分析就是了解软件系统的整体结构,例如:
系统有哪些模块
模块之间如何交互
使用了哪些技术或服务
哪些是核心模块

举个例子:一个电商系统可能有这样的架构:

java 复制代码
用户 → 前端页面 → 后端服务 → 数据库
            ↓
          支付系统 / 订单系统 / 商品系统
  • 主要组件可能包括:

    • 前端系统:网页或App界面

    • 后端服务:处理业务逻辑

    • 数据库:存储数据

    • 第三方服务:例如支付、短信、地图等

3.2 了解系统架构的好处

  • 通过架构分析,可以知道:

    • 哪些模块最关键
    • 哪些模块之间容易出问题
    • 哪些地方需要做接口测试或集成测试
  • 通过数据流分析,可以知道:

    • 数据在哪些地方被处理
    • 是否可能丢失或错误
    • 是否有安全问题
    • 是否存在异常情况

3.3 开源项目 Mall 的系统架构

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 官网

开源仓库

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 测试用例设计总结

  • 用例图-分析角色与资源
  • 思维导图-分析功能点
  • 时序图-分析数据流
  • 活动图-分析业务逻辑
相关推荐
辛迪聊物业数字化1 小时前
智慧社区小程序落地避坑指南:3类物业方案选型+成本测算,线上服务零翻车
大数据·嵌入式硬件·百度·系统架构
小徐不徐说14 小时前
C++ 接口与插件设计:从工厂注册到 Qt 动态插件
数据库·c++·qt·系统架构·程序设计
代码丰18 小时前
大 JSON 放进 Redis 之后,如何用 Stream 解耦耗时任务?
redis·后端·系统架构
阿狸猿1 天前
系统架构评估方法及其应用
系统架构
Eyfcom1 天前
〖阶段性回顾〗物流系统架构与算法的 Day 1-5 知识图谱与实战答疑
算法·系统架构·知识图谱·物流管理系统·快递管理系统
你看我名字1 天前
系统架构的演变:从单机应用到双十一级高并发系统
系统架构
吴建旭 智宅焕1 天前
智能家居B端从业者路径选择的系统架构设计:准入约束、路径匹配与交付确定性
系统架构·智能家居
AI你一生一世2 天前
当“暂停“成为架构决策:从签证系统停摆看高可用设计的边界
架构·系统架构·流量控制·幂等性·高可用设计·优雅降级·状态一致性
考拉讲支付2 天前
延迟分账 / 核销分账的技术实现方案:服务完成后再分钱,到底怎么设计?
大数据·运维·人工智能·微信小程序·小程序·系统架构
ai_coder_ai2 天前
多 Agent 智能应用系统架构设计
系统架构