技術(shù)分享 | 被測系統(tǒng)架構(gòu)與數(shù)據(jù)流分析
本文節(jié)選自霍格沃茲測試學(xué)院內(nèi)部教材

深入了解測試過程中被測系統(tǒng)的架構(gòu)與數(shù)據(jù)流,有助于理解業(yè)務(wù)邏輯,梳理業(yè)務(wù)用例以及促進(jìn)部門協(xié)同。
更深的理解業(yè)務(wù)邏輯是指要分析公司是做什么的,公司的重要的商務(wù)決策是什么,公司內(nèi)部數(shù)據(jù)流是怎么運行的,有哪些常見的業(yè)務(wù)場景。這也能考驗對公司業(yè)務(wù)的負(fù)責(zé)程度,可以更好的去服務(wù)業(yè)務(wù)部門,為公司創(chuàng)造價值。
開源項目litemall系統(tǒng)架構(gòu)
下面以開源項目 litemall 為例,分析一下這個項目中的系統(tǒng)架構(gòu)。
litemall 這款產(chǎn)品是一個小的商城,以 SpringBoot 作為后端,Vue 管理員結(jié)合微信小程序作為前端,Vue 用戶作為移動端。
litemall 的系統(tǒng)架構(gòu)如圖所示:
image1031×485 108 KB
litemall 的技術(shù)架構(gòu)如圖所示:
image1010×514 65.9 KB
開源項目Mall的系統(tǒng)架構(gòu)
Mall 項目是一套電商系統(tǒng),包括前臺商城系統(tǒng)及后臺管理系統(tǒng),基于 SpringBoot + MyBatis 實現(xiàn),采用 Docker 容器化部署。前臺商城系統(tǒng)包含首頁門戶、商品推薦、商品搜索、商品展示、購物車、訂單流程、會員中心、客戶服務(wù)、幫助中心等模塊。后臺管理系統(tǒng)包含商品管理、訂單管理、會員管理、促銷管理、運營管理、內(nèi)容管理、統(tǒng)計報表、財務(wù)管理、權(quán)限管理、設(shè)置等模塊。
系統(tǒng)架構(gòu)
Mall 的系統(tǒng)架構(gòu)如圖所示:
image1080×792 188 KB
業(yè)務(wù)架構(gòu)
Mall 的業(yè)務(wù)架構(gòu)如圖所示:
公司架構(gòu)組成
通過 litemall 和 mall 兩個開源項目可以看出,為了更好的服務(wù)公司,需要了解公司的架構(gòu),公司架構(gòu)一般分為業(yè)務(wù)架構(gòu)和系統(tǒng)架構(gòu)。
商業(yè)模式:也是目前大家最關(guān)心的問題,公司怎樣使得收益最大化。例如抖音的盈利模式以及其中裂變系統(tǒng)是怎樣參與的,這就需要了解你身處的業(yè)務(wù)部門的業(yè)務(wù)模式以及技術(shù)棧,以及公司的發(fā)展模式與未來趨勢。
業(yè)務(wù)數(shù)據(jù):了解角色、資源和數(shù)據(jù)。例如公司的賬戶管理中心中的角色有管理員、用戶等,而這些角色又可以分為輸出內(nèi)容的人和消費內(nèi)容的人,除了角色,還需要了解公司平臺上的核心資源的種類以及數(shù)據(jù)信息。
業(yè)務(wù)流程:了解業(yè)務(wù)數(shù)據(jù)中角色,角色的行為以及數(shù)據(jù)之間的集成關(guān)系。
系統(tǒng)架構(gòu)就是要把業(yè)務(wù)架構(gòu)進(jìn)行落地實施,實現(xiàn)其中的商業(yè)模式與業(yè)務(wù)流程。
架構(gòu)角色與技術(shù)棧:架構(gòu)角色基本不會變,而技術(shù)棧會隨著技術(shù)的發(fā)展而不斷變化。其中的具體實現(xiàn)有:
網(wǎng)關(guān):Apache/Nginx/F5
應(yīng)用開發(fā):SpringBoot/SpringCloud
通訊協(xié)議:Dubbo/HTTP/PB
數(shù)據(jù)處理:Hadoop/Spark/Flink
數(shù)據(jù)存儲:Redis/MySQL/Oracle/ES
文檔存儲:MongoDB/HBase/Neo4j
部署架構(gòu):架構(gòu)角色的集成關(guān)系,對應(yīng)業(yè)務(wù)架構(gòu)中的業(yè)務(wù)流程。
建模語言UML
為快速了解公司的架構(gòu),可以使用統(tǒng)一的建模語言 UML 來分析公司架構(gòu)。常用的編譯語言工具有:
plantuml(推薦)
yed
draw.io
processon
visio (不常用)
以 plantuml 工具為例,可以設(shè)計以下圖模型分析公司架構(gòu):
用例圖:用來描述商業(yè)模式、業(yè)務(wù)角色
時序圖:用來描述業(yè)務(wù)流程、調(diào)用關(guān)系
部署圖:用來描述系統(tǒng)架構(gòu)與集成關(guān)系
活動圖:用來分析業(yè)務(wù)邏輯
@startuml left to right direction actor User as user actor Admin as admin package 商品 { usecase "發(fā)布商品" usecase "瀏覽商品" usecase "購買商品" usecase "下架商品" } package 訂單 { usecase "結(jié)算訂單" usecase "查詢訂單" usecase "退款" usecase "管理訂單" } admin -up-> 發(fā)布商品 admin -up-> 下架商品 admin -up-> 管理訂單 user --> 瀏覽商品 user --> 購買商品 user --> 結(jié)算訂單 user --> 結(jié)算訂單 user --> 查詢訂單 user --> 退款 @enduml
@startmindmap scale 380 height * <&flag>Debian ** <&globe>Ubuntu *** Linux Mint *** Kubuntu *** Lubuntu *** KDE Neon ** <&graph>LMDE ** <&pulse>SolydXK ** <&people>SteamOS ** <&star>Raspbian with a very long name *** Raspmbc => OSMC *** Raspyfi => Volumio legend right Short legend endlegend @endmindmap
scale 300 height 用戶 -> 認(rèn)證中心: 登錄操作 認(rèn)證中心 -> 緩存: 存放(key=token+ip,value=token)token 用戶 <- 認(rèn)證中心 : 認(rèn)證成功返回token 用戶 -> 認(rèn)證中心: 下次訪問頭部攜帶token認(rèn)證 認(rèn)證中心 <- 緩存: key=token+ip獲取token 其他服務(wù) <- 認(rèn)證中心: 存在且校驗成功則跳轉(zhuǎn)到用戶請求的其他服務(wù) 其他服務(wù) -> 用戶: 信息
@startuml scale 580 height start repeat :Test something; if (Something went wrong?) then (no) #palegreen:OK; break endif ->NOK; :Alert "Error with long text"; repeat while (Something went wrong with long text?) is (yes) not (no) ->//merged step//; :Alert "Success"; stop @enduml
梳理好業(yè)務(wù)用例的本質(zhì)是在測試過程中,更全面的測試公司的業(yè)務(wù)。例如復(fù)雜的電商系統(tǒng)或者保險行業(yè)的管理系統(tǒng),內(nèi)部涉及的業(yè)務(wù)流以及用戶的種類都很復(fù)雜多樣,不理解其中的業(yè)務(wù)邏輯和數(shù)據(jù),就很難編寫一個覆蓋完善的業(yè)務(wù)用例。
更好的與研發(fā)運維進(jìn)行跨部門協(xié)同是指當(dāng)產(chǎn)品出現(xiàn)問題時,研發(fā)和運維都會排查。作為測試,要去了解出現(xiàn)的問題并幫助研發(fā)運維去解決,這樣可以加快部門協(xié)同進(jìn)度。
更多技術(shù)文章: https://qrcode.ceba.ceshiren.com/link?name=article&project_id=qrcode&from=hwyun×tamp=1652690731&author=XP
項目管理 ProjectMan
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。