软件测试 | 什么是被测系统架构与数据流分析
1.理解被测系统架构与数据流的益处
深入了解被测系统的架构与数据流,有助于理解业务逻辑、梳理业务用例,以及促进部门间协同。
更深入地理解业务逻辑是指:要分析公司是做什么的?公司重要的商务决策是什么?公司内部数据流是怎么运行的?有哪些常见的业务场景。
更好地梳理业务用例的本质是:在测试过程中,测试人员可以更全面地测试公司的业务。例如,复杂的电商系统或保险行业的管理系统,内部涉及的业务流以及包括的用户种类都很复杂、多样,测试人员不理解其中的业务逻辑和数据,就很难编写出一个覆盖完整系统功能的业务测试用例。
更好地与研发、运维进行跨部门间协同是指:当产品出现问题时,研发和运维部门都会排查。作为测试部门,更要了解出现的问题并帮助研发、运维部门解决问题,这样可以加快部门间协同解决问题的速度。
2.开源项目 litemall 系统架构
下面以开元项目 litemall 为例,分析一下这个项目的系统架构。
litemall 是一款小的网上商城应用,系统以 Spring Boot 作为后端,Vue 结合微信小程序作为前端,同时 Vue 也作为移动端。
(1)系统架构
litemall 系统架构如图 1-5 所示。
(2)技术架构
litemall 的技术架构如图 1-6 所示。
3.开源项目 Mall 系统架构
Mall 项目是一套电商系统,包括前台商城系统及后台管理系统,基于 Spring Boot + MyBatis 实现,采用 Docker 容器化部署。前台商城系统包含首页、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
(1)系统架构
Mall 系统架构如图 1-7 所示。
(2)业务架构
Mall 的业务架构如图 1-8 所示。
4.公司架构组成分析
通过 litemall 和 Mall 两个开源项目可以看出,这两项目的公司架构一般分为业务架构和系统架构。
(1)业务架构
1)商业模式:也是大家最关心的问题,公司使收益最大化的运作模式,例如,抖音的运作模式以及其裂变系统是怎样进行的。
2)业务数据:公司系统中包括的角色、资源和数据,例如,公司系统的账户管理中的角色有管理员、用户等,而这些角色有可以分为输出内容的人和消费内容的人。除了角色,公司系统上还有核心资源的种类及数据信息。
3)业务流程:业务数据中的角色的行为以及数据之间的集成关系。
(2)系统架构
系统架构就是要把业务架构进行落地实施,实现其中的商业模式与业务流程。
**架构角色与技术栈:**架构中的角色基本不会变,而技术栈会随着技术的发展而不断变化。其中的技术栈有:网关(Apache/Nginx/F5)、应用开发(Spring Boot/Spring Cloud)、通信协议(Dubbo/HTTP/PB)、数据处理(Hadoop/Spark/Flink)、数据储存(Redis/MySQL/Oracle/ES)、文档存储(MongoDB/HBase/Ne04j)。
**部署架构:**架构角色的集成关系。
5.建模语言 UML
为加速了解公司的系统架构,可以使用统一建模语言(UML)来分析公司的系统架构。常用的编译工具有:plantuml(推荐)、yed、draw.io、processon、visio。
下面以 plantuml 工具为例,设计图模型,用以分析公司系统架构。
(1)用例图:用来描述商业模式、业务角色。
(2)时序图:用来描述业务流程、调用关系。
(3)部署图:用来描述系统架构与集成关系。
(4)活动图:用来分析业务逻辑。
下面对上述设计图模型进行简单说明。
(1)用例图
使用用例图梳理商业模式、业务角色,如图 1-9 所示。
(2)部署图
使用部署图分析系统架构与集成关系,如图 1-10 所示。
(3)时序图、
使用时序图分析业务流程和调用关系,如图 1-11 所示
(4)活动图
使用活动图分析业务逻辑,如图 1-12 所示
关注我公众号 TestingStudio,霍格沃兹的干货都很硬核
评论