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

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

在软件测试中, 被测系统(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 测试用例设计总结

  • 用例图-分析角色与资源
  • 思维导图-分析功能点
  • 时序图-分析数据流
  • 活动图-分析业务逻辑
相关推荐
@insist12312 小时前
系统架构设计师-安全架构设计:网络安全威胁分类与典型攻击原理
web安全·系统架构·软考·安全架构·系统架构设计师·软件水平考试
故渊at14 小时前
第一板块:Android 系统基石与运行原理 | 第二篇:Android 编译、打包与安装机制
android·系统架构·apk·打包·application·dalvik·android编译
Jump 不二14 小时前
Memory-os 7 层记忆架构深度解析:让 Hermes Agent 真正 “记住并使用“ 知识
人工智能·语言模型·系统架构
折哥的程序人生 · 物流技术专研16 小时前
【电商多平台电子面单对接实战|第二篇】抖音代发电子面单对接:从“面条代码”到整洁架构的涅槃之路
设计模式·架构·系统架构·单元测试·代码规范·单一职责原则
Sam_Deep_Thinking2 天前
结算分摊的策略模式:不同营销活动的扣点计算方案
java·设计模式·架构·系统架构
Alluxio2 天前
造父智能(哈啰robotaxi)在阿里云环境下构建极致透明的训练加速层
人工智能·机器学习·缓存·系统架构·自动驾驶·模型训练
SL-staff2 天前
企业级私有化AI知识库完整搭建指南:从RAG架构到Llama 3落地实践
人工智能·系统架构·私有化部署·rag·ai知识库·llama3·jvs-ai
故渊at2 天前
第一板块:Android 系统基石与运行原理 | 第一篇:Android 系统架构分层与 AOSP 规范
android·系统架构·android系统·aosp
名不经传的养虾人2 天前
从0到1:企业级AI项目迭代日记 Vol.41|多租户不是一个功能,是一次手术
服务器·数据库·系统架构·ai编程·ai工作流·企业ai
@insist1232 天前
系统架构设计师-软件容错架构设计:高可靠系统构建指南
架构·系统架构·软考·系统架构设计师·软件水平考试