在测试过程中深入了解被测系统的架构和数据流,有助于理解业务逻辑,梳理业务用例,促进部门协作。
更深入的理解业务逻辑是指分析公司做什么,公司有哪些重要的业务决策,公司内部数据流如何运作,常见的业务场景有哪些。 这也能检验对公司业务的负责程度,能更好的为业务部门服务,为公司创造价值。
开源项目litemall系统架构 下面以开源项目litemall为例,分析一下该项目的系统架构。
Litemall是一个以SpringBoot为后端,Vue管理员结合微信小程序为前端,Vue用户为移动端的小型商城。
系统架构 Litemall的系统架构如图所示:
编辑
技术架构
litemall的技术架构如图所示:
编辑
开源项目商城系统架构
Mall项目是一套电商系统,包括前端商城系统和后端管理系统,基于SpringBoot+MyBatis实现,部署在Docker容器中。 前端商城系统包括首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客服、帮助中心等模块。 后台管理系统包括产品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
体系结构
Mall的系统架构如图所示:
编辑
业务结构
Mall的业务结构如图所示:
编辑
公司结构
从litemall和mall这两个开源项目可以看出,为了更好的为公司服务,需要了解公司的架构,一般分为业务架构和系统架构。
业务结构
商业模式:也是目前大家最关心的问题,公司怎样使得收益最大化。例如抖音的盈利模式以及其中裂变系统是怎样参与的,这就需要了解你身处的业务部门的业务模式以及技术栈,以及公司的发展模式与未来趋势。
业务数据:了解角色、资源和数据。例如公司的账户管理中心中的角色有管理员、用户等,而这些角色又可以分为输出内容的人和消费内容的人,除了角色,还需要了解公司平台上的核心资源的种类以及数据信息。
业务流程:了解业务数据中角色,角色的行为以及数据之间的集成关系。
体系结构
系统架构是实现业务架构数据分析软件,实现业务模型和业务流程。
架构角色与技术栈:架构角色基本不会变,而技术栈会随着技术的发展而不断变化。其中的具体实现有:
网关:Apache/Nginx/F5
应用开发:SpringBoot/SpringCloud
通讯协议:Dubbo/HTTP/PB
数据处理:Hadoop/Spark/Flink
数据存储:Redis/MySQL/Oracle/ES
文档存储:MongoDB/HBase/Neo4j
部署架构:架构角色的集成关系,对应业务架构中的业务流程。
建模语言 UML
为了快速了解公司的结构,可以使用统一的建模语言UML来分析公司的结构。 常用的编译语言工具有:
plantuml(推荐)
yed
draw.io
processon
visio (不常用)
以plantuml工具为例,可以设计如下图模型来分析公司结构:
用例图:用来描述商业模式、业务角色
时序图:用来描述业务流程、调用关系
部署图:用来描述系统架构与集成关系
活动图:用来分析业务逻辑
用用例图梳理业务流程
@startuml 从左到右方向 actor User as user actor Admin as admin package commodity { usecase "发布商品" usecase "浏览商品" usecase "购买商品" usecase "下架商品" } package order { usecase "结算订单" usecase "查询订单" usecase "Refund" usecase "Manage Order" } admin -up-> 发布产品admin -up-> 删除产品admin -up-> 管理订单用户--> 浏览产品用户--> 购买产品用户--> 结算订单用户 --> 结算订单用户 --> 查询订单用户 --> Refund@enduml
编辑
用思维导图分析功能点
@startmindmap scale 380 height Debian Ubuntu Linux Mint Kubuntu Lubuntu KDE Neon LMDE SolydXK SteamOS * Raspbian 名字很长 Raspmbc => OSMC Raspyfi => Volumio legend right Short legend endlegend @endmindmap
编辑
使用序列图分析数据流
scale 300 height User->Authentication Center: 登录操作 Authentication Center->Cache: Store (key=token+ip,value=token)token User Authentication Center: 下次访问会在header中携带token Authentication Authentication Center User: Information
编辑
使用活动图分析测试用例
@startuml scale 580 height start repeat :测试一些东西; 如果(出了什么问题?)那么(不)#palegreen:好的; break endif ->NOK; :警告“长文本错误”; text?) is (yes) not (no) ->//merged step//; :提示“成功”; 停止@enduml
编辑
梳理业务用例的本质是在测试过程中更全面地测试公司的业务。 例如,在保险行业复杂的电子商务系统或管理系统中,内部业务流程和涉及的用户类型非常复杂多样。 如果不了解业务逻辑和数据,就很难编写出覆盖面广的业务用例。
与R&D、O&M更好的跨部门协作,就是当一个产品出现问题时,R&D和O&M都会调查。 作为测试,需要了解出现的问题,帮助研发、运维解决数据分析软件,可以加快部门协作的进度。
的