現(xiàn)狀背景
會議電視產(chǎn)品,從立項到現(xiàn)在已經(jīng)有十幾年的歷史,項目流程發(fā)展也在不斷改進(jìn)提升,但是當(dāng)前依然面臨的諸多問題。
需求評審跟蹤依然是通過excel+SVN的方式進(jìn)行,導(dǎo)致跟蹤不及時且很難閉環(huán)管理;
迭代過程中代碼提交無評審,代碼錯誤、編譯錯誤等等不能提前發(fā)現(xiàn),導(dǎo)致集成頻繁回退版本;
UT/FT/ST等測試無管理,都是各個小組單獨(dú)進(jìn)行,版本無關(guān)聯(lián)性,測試結(jié)果也沒有集中管理,測試質(zhì)量無法保證。
為了解決上述問題,我們引入了Devops工具鏈,整體改進(jìn)上述流程中出現(xiàn)的問題。
解決方案
引入Devops工具鏈后,整個項目從流程上完成了閉環(huán)管理,項目的各個階段的都有專門的系統(tǒng)進(jìn)行統(tǒng)一管理。工具鏈不管是在數(shù)據(jù)查詢、統(tǒng)計、追溯上還是業(yè)務(wù)閉環(huán)操作上都給出比較滿意的解決方案。整個解決方案流程如下。
自從項目引入敏捷后,工具鏈在我們項目的核心業(yè)務(wù)上起到至關(guān)重要的作用。wiki作為內(nèi)容管理貫穿整個項目的始終,所有的項目文檔,會議紀(jì)要等等都是通過wiki進(jìn)行記錄管理;TFS管理用戶故事、測試用例、測試過程等等,從需求到開發(fā)再到測試形成了統(tǒng)一的管理流程;GIT、Gerrit為代碼管理的核心工具,透過gerrit與CI的配合,提前發(fā)現(xiàn)代碼問題,提高了代碼管理效率;云CI為代碼評審,代碼質(zhì)量檢查(如KW、復(fù)雜度等)、UT、FT等提供一個自動化的評審、檢查、測試的流程。與制品庫配合可以完成從代碼、測試到版本發(fā)布的全流程管理,與BDA系統(tǒng)配合可以完成研發(fā)過程的質(zhì)量監(jiān)管,以清晰的圖表展示研發(fā)過程數(shù)據(jù)統(tǒng)計;云測試,由于產(chǎn)品本身的特性只能在私有云里面進(jìn)行自動化測試,所有的數(shù)據(jù)均通過云CI管理并上傳至相關(guān)的系統(tǒng)如BDA系統(tǒng)等。
實踐情況
解決方案中我們提出了明確的流程以及相關(guān)的工具,在實踐中我們將展示整個實踐過程具體操作以及相關(guān)的數(shù)據(jù)。
TFS輔助敏捷流程,跟蹤用戶故事、需求等,根據(jù)Feature下達(dá)任務(wù)計劃,完成項目任務(wù)跟蹤。
需求澄清,系統(tǒng)化的使用Confluence,及時快捷的對需求進(jìn)行澄清
迭代開發(fā),迭代開發(fā)很重要的一部分是代碼管理,使用GIT工具管理源碼,不僅提高代碼獲取效率,而且與Gerrit配合開啟代碼評審功能,提高合入效率。
持續(xù)集成,CI全流程囊括整個研發(fā)過程,從代碼提交/代碼檢查入庫、UT到集成版本構(gòu)建、FT、入庫再到系統(tǒng)測試全流程管理。
整個云CI流程有幾個關(guān)鍵的CI流程,分別是VerifyCI、MergeCI以及DailyCI,關(guān)鍵CI流程的實踐如下:
1.VerifyCI
開發(fā)人員提交代碼后自動觸發(fā)CI流程,完成模塊版本的構(gòu)建、代碼KW、Lizard檢查、UT、推送數(shù)據(jù)到看板系統(tǒng)并發(fā)送郵件到相關(guān)的開發(fā)人員以展示相關(guān)的編譯、檢查以及測試結(jié)果。
2.MergeCI
每天定時完成版本構(gòu)建、全版本的KW,復(fù)雜度檢查、FT、推送數(shù)據(jù)看板并發(fā)送郵件到相關(guān)的人員以展示構(gòu)建、檢查以及測試結(jié)果
3.DailyCI
每天定時完成ST測試,并把數(shù)據(jù)推送至看板系統(tǒng),發(fā)送郵件展示測試用例詳細(xì)的執(zhí)行結(jié)果:
所有的數(shù)據(jù)均有推送到看板系統(tǒng),以圖表形式展示整個研發(fā)周期內(nèi)的相關(guān)數(shù)據(jù)
FT數(shù)據(jù),看板數(shù)據(jù)反映FT的測試用例總數(shù)、測試用例數(shù)、以及通過率數(shù)據(jù)。
KW,看板數(shù)據(jù)反映每個項目的KW的錯誤告警數(shù),以及相關(guān)的告警消除趨勢
復(fù)雜度檢查,看板數(shù)據(jù)實時反映每個項目的Lizard復(fù)雜度告警數(shù)件
制品庫,每次MergeCI構(gòu)建的版本,都會推送到制品庫上,供FT、ST測試使用
ST數(shù)據(jù),看板數(shù)據(jù)反映ST的測試用例總數(shù)、測試用例數(shù)、以及通過率數(shù)據(jù)下
改進(jìn)提效
會議電視引入Devops工具鏈后整個項目周期得到了有力的監(jiān)管,并且很高的提高的項目運(yùn)作效率,但是依然面臨的一些問題,依然有改進(jìn)的空間,改進(jìn)提效持續(xù)進(jìn)行中。
針對相關(guān)的問題提出了一系列的改進(jìn)措施。持續(xù)改進(jìn)中,大量引進(jìn)自動化工具,修改相關(guān)的流程。詳細(xì)改進(jìn)對比如下:
編譯實踐長,工具鏈引入后通過工具系統(tǒng)的配合使得整個編譯消息提高了70%以上
代碼回退率高,是因為錯誤沒有在入庫之前發(fā)現(xiàn)導(dǎo)致,引入云CI、Gerrit之后,在代碼入庫之前會自動觸發(fā)代碼的相關(guān)檢查如編譯、KW、復(fù)雜度等等,檢查結(jié)果直接影響代碼是否能入庫,可以提前發(fā)現(xiàn)代碼問題,如下圖所示Verified +2表示該模塊完成的相關(guān)的檢查可以入庫.
代碼質(zhì)量無量化,代碼寫的時候精簡,有無泄露等等問題以前是沒有辦法量化的,引入相關(guān)的工具后代碼質(zhì)量可以詳細(xì)具體到每個方法
版本無統(tǒng)一管理,以前集成測試和系統(tǒng)測試版本是分開的,集成測試過程中版本編譯由集成測試完成,系統(tǒng)測試版本由技術(shù)部構(gòu)建,引入制品庫后集成測試,系統(tǒng)測試,以及工程均由制品庫出版本,只是版本獲取方法由權(quán)限或者流程進(jìn)行控制。
-
會議電視
+關(guān)注
關(guān)注
0文章
5瀏覽量
7966 -
CI
+關(guān)注
關(guān)注
0文章
14瀏覽量
11417 -
代碼
+關(guān)注
關(guān)注
30文章
4799瀏覽量
68728
原文標(biāo)題:DevOps案例 | 會議電視X項目端到端案例
文章出處:【微信號:ZTEdeveloper,微信公眾號:中興開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論