测试开发实战教程
上QQ阅读APP看书,第一时间看更新

1.理解被测系统架构与数据流的益处

深入了解被测系统的架构与数据流,有助于理解业务逻辑、梳理业务用例,以及促进部门间协同。

更深入地理解业务逻辑是指:要分析公司是做什么的?公司重要的商务决策是什么?公司内部数据流是怎么运行的?有哪些常见的业务场景。

更好地梳理业务用例的本质是:在测试过程中,测试人员可以更全面地测试公司的业务。例如,复杂的电商系统或者保险行业的管理系统,内部涉及的业务流以及包括的用户种类都很复杂、多样,测试人员不理解其中的业务逻辑和数据,就很难编写出一个覆盖完整系统功能的业务测试用例。

更好地与研发、运维进行跨部门间协同是指:当产品出现问题时,研发和运维部门都会排查。作为测试部门,更要了解出现的问题并帮助研发、运维部门解决问题,这样可以加快部门间协同解决问题的速度。

2.开源项目litemall系统架构

下面以开源项目litemall为例,分析一下这个项目的系统架构。

litemall是一款小的网上商城应用,系统以Spring Boot作为后端,Vue结合微信小程序作为前端,同时Vue也作为移动端。

(1)系统架构

litemall系统架构如图1-5所示。

..\22-0118二校改图回传\1-5.tif

图1-5

(2)技术架构

litemall的技术架构如图1-6所示。

..\22-0118一校改图\22-0118改图回传\1-6.tif

图1-6

3.开源项目Mall系统架构

Mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于Spring Boot + MyBatis实现,采用Docker容器化部署。前台商城系统包含首页、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。

(1)系统架构

Mall系统架构如图1-7所示。

..\22-0118五校改图回传\1-7.tif

图1-7

(2)业务架构

Mall的业务架构如图1-8所示。

..\22-0118一校改图\22-0118改图回传\1-8.tif

图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/Neo4j)。

部署架构:架构角色的集成关系。

5.建模语言UML

为快速了解公司的系统架构,可以使用统一建模语言(UML)来分析公司的系统架构。常用的编译工具有:

plantuml(推荐)、yed、draw.io、processon、visio。

下面以plantuml工具为例,设计图模型,用以分析公司系统架构。

(1)用例图:用来描述商业模式、业务角色。

(2)时序图:用来描述业务流程、调用关系。

(3)部署图:用来描述系统架构与集成关系。

(4)活动图:用来分析业务逻辑。

下面对上述设计图模型进行简单说明。

(1)用例图

使用用例图梳理商业模式、业务角色,如图 1-9所示。

..\22-0118三校改图\1-9.tif

图1-9

(2)部署图

使用部署图分析系统架构与集成关系,如图1-10所示。

..\22-0118二校改图回传\1-10.tif

图1-10

(3)时序图

使用时序图分析业务流程和调用关系,如图1-11所示。

..\22-0118六校改图回传\1-11.tif

图1-11

(4)活动图

使用活动图分析业务逻辑,如图1-12所示。

..\22-0118六校改图回传\1-12.tif

图1-12