系統(tǒng)重構(gòu)類改造的測試總結(jié)-創(chuàng)新互聯(lián)

目錄

靖邊網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,靖邊網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為靖邊上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的靖邊做網(wǎng)站的公司定做!

我經(jīng)歷過的一些重構(gòu)

我理解的系統(tǒng)重構(gòu)的關(guān)注點(diǎn)

過程中QA要做的事情


我經(jīng)歷過的一些重構(gòu)
  • 三維建筑設(shè)計(jì)類PC桌面軟件。

背景:使用了上古語言Delphi,共計(jì)300W行(包括底層3D引擎)代碼,為了跟上新時(shí)代技術(shù)棧,需要整體切換到C++語言。集團(tuán)內(nèi)部提供了已驗(yàn)證的新版C++引擎,業(yè)務(wù)線需要將各自業(yè)務(wù)代碼遷移至C++。

重構(gòu)過程:

  1. 業(yè)務(wù)決策。從產(chǎn)品戰(zhàn)略維度允許全力投入重構(gòu),接受至少1-2年無新產(chǎn)品迭代。
  2. 執(zhí)行重構(gòu)。按模塊翻譯代碼,最終持續(xù)了2年+時(shí)間,投入開發(fā)團(tuán)隊(duì)30+人才完成。
  3. 任務(wù)估時(shí)。整體估時(shí)采用單純的代碼行數(shù)來評估工作量,比如模塊A有50W行代碼,需要多久,模塊B有**行代碼,需要多久。拍腦袋決定的。
  4. 技術(shù)評估。由于底層核心技術(shù)集團(tuán)以提供,業(yè)務(wù)團(tuán)隊(duì)主要任務(wù)是翻譯業(yè)務(wù)邏輯(Delphi ->C++)。

過程中的問題:1、任務(wù)估時(shí)邏輯不對,太過樂觀。2、團(tuán)隊(duì)開發(fā)人員C++經(jīng)驗(yàn)較少。3、按單個(gè)模塊順序重構(gòu),測試介入時(shí)間太晚,不可測性太高。4、歷史功能邏輯梳理不夠,開發(fā)中有很多漏需求的情況。

  • 單體應(yīng)用的微服務(wù)架構(gòu)改造

背景:一個(gè)極其龐大的單體PHP應(yīng)用,由于業(yè)務(wù)數(shù)據(jù)量增長和性能需求,需要將其中核心業(yè)務(wù)拆解到JAVA微服務(wù)框架。

重構(gòu)過程:

  1. 業(yè)務(wù)決策。從產(chǎn)品戰(zhàn)略維度允許大部分精力投入重構(gòu),接受至少半年無新產(chǎn)品迭代。
  2. 開發(fā)過程。相對順利,業(yè)務(wù)測試+接口維度的灰度發(fā)布+性能測試 保障了線上穩(wěn)定性。
  3. 技術(shù)評估。PHP ->JAVA,業(yè)務(wù)邏輯重新實(shí)現(xiàn),保證前端無感知。小黑屋封閉開發(fā),中間有幾次技術(shù)架構(gòu)調(diào)整,導(dǎo)致返工。

過程中的問題:1、對于微服務(wù)涉及的知識(shí)儲(chǔ)備不夠,開發(fā)中的技術(shù)調(diào)整的補(bǔ)全導(dǎo)致返工。2、產(chǎn)品需求list缺失,大多數(shù)歷史邏輯是靠資深開發(fā)和測試確認(rèn)和補(bǔ)回。3、雖然保障了web端的對外接口協(xié)議不變,可以通過自動(dòng)化覆蓋大部分改動(dòng),但是對于移動(dòng)端api保障不足。4、中間遇到幾次由于對java技術(shù)棧不熟導(dǎo)致的故障。

  • PC端的文件同步系統(tǒng)重構(gòu)

背景:網(wǎng)盤的PC端文件同步系統(tǒng),由于歷史遺留bug太多+邏輯龐雜,難以繼續(xù)堆砌業(yè)務(wù)邏輯,決定重構(gòu)。

重構(gòu)過程:

  1. 業(yè)務(wù)決策。業(yè)務(wù)上同意重構(gòu),但是由于歷史負(fù)擔(dān)實(shí)在太重,開發(fā)團(tuán)隊(duì)還是需要分一部分精力同時(shí)間處理線上舊版本反饋,且心理負(fù)擔(dān)極大。
  2. 開發(fā)過程。開發(fā)進(jìn)度緩慢,前面用了很多時(shí)間搞Electron,實(shí)際核心底層邏輯估時(shí)嚴(yán)重不足。bug太多了,測試2、3個(gè)月版本無法穩(wěn)定。
  3. 技術(shù)評估。底層使用C++ 檢測操作系統(tǒng)層級(jí)數(shù)據(jù)變更,業(yè)務(wù)層用Python實(shí)現(xiàn)同步操作,展示層由QT遷移到Electron框架。技術(shù)方案評估時(shí)由于技術(shù)棧特殊性,技術(shù)TL無法給予足夠指導(dǎo)

過程中的問題:1、心態(tài)上負(fù)擔(dān)大,歷史名譽(yù)不好導(dǎo)致患得患失。2、前期重構(gòu)規(guī)劃不足,同時(shí)把從底層到前端全部重構(gòu),工作量大,新技術(shù)多。3、研發(fā)團(tuán)隊(duì)中缺少相關(guān)技術(shù)棧沉淀和人員儲(chǔ)備4、開發(fā)質(zhì)量太差,同一份用例每次執(zhí)行都有很多bug(表現(xiàn)重復(fù)但底層原因各不相同)。5、缺少有效的測試手段,桌面客戶端歷史自動(dòng)化沉淀太少,純手工。6、產(chǎn)品只給了文件同步大原則邏輯,很多細(xì)節(jié)是邊開發(fā)邊確認(rèn)的,導(dǎo)致有很多追加的工作量。

  • 某媒體資源管理系統(tǒng)的服務(wù)遷移

背景:公司有新舊兩套媒資數(shù)據(jù)管理系統(tǒng),基于統(tǒng)一研發(fā)應(yīng)用+節(jié)省資源的需求,將業(yè)務(wù)系統(tǒng)中數(shù)據(jù)管理模塊從舊應(yīng)用遷移到新應(yīng)用。

  1. 業(yè)務(wù)決策。涉及的上層業(yè)務(wù)眾多,各自遷移節(jié)奏不同,花了很多精力推動(dòng)各方改動(dòng)
  2. 開發(fā)過程。整體進(jìn)度緩慢,走走停停。過程中多次涉及補(bǔ)充兼容邏輯。整體耗時(shí)近一年。
  3. 技術(shù)決策。這個(gè)改造方案對于上游業(yè)務(wù)+前端都有感知,需要配合改造。這次的改造和普通的重構(gòu)改造還有個(gè)區(qū)別是,新的媒資系統(tǒng)實(shí)際也已經(jīng)運(yùn)行了很久且有上層業(yè)務(wù)衍生邏輯,無法和舊媒資系統(tǒng)完全保持一致。

過程中的問題:1、本身改造復(fù)雜度大,需要兼容的點(diǎn)多。2、前后端都有變更,測試手段有限,歷史積累自動(dòng)化無法應(yīng)用,絕大部分純手工。3、歷史產(chǎn)品邏輯細(xì)節(jié)較多,重構(gòu)團(tuán)隊(duì)這方面缺少輸入,經(jīng)常出現(xiàn)漏處理的業(yè)務(wù)邏輯。4、缺少更細(xì)粒度的灰度發(fā)布手段(只能應(yīng)用級(jí)別灰度)

我理解的系統(tǒng)重構(gòu)的關(guān)注點(diǎn)

1、重構(gòu)狹義上看是技術(shù)層面的,業(yè)務(wù)邏輯無需改動(dòng),甚至上層應(yīng)用都應(yīng)該無感知。在重構(gòu)規(guī)劃時(shí),應(yīng)該盡可能往這個(gè)方向上靠攏,如果實(shí)在無法做到,那么風(fēng)險(xiǎn)極大。

2、重構(gòu)另一個(gè)維度來看,也是業(yè)務(wù)的一個(gè)妥協(xié),但也背著業(yè)務(wù)債。業(yè)務(wù)會(huì)有新的期待,新的要求,在技術(shù)規(guī)劃時(shí)就要考慮到。

3、重構(gòu)需要依賴功能清單(加粗)

重構(gòu)前,已有能力清單應(yīng)該明確并用來確認(rèn)重構(gòu)方案是否支持;

重構(gòu)過程中,也可以根據(jù)這個(gè)清單評估工作量和進(jìn)度;

測試時(shí)也要按照這個(gè)清單逐項(xiàng)驗(yàn)證。

這個(gè)清單應(yīng)該足夠細(xì)化,產(chǎn)品+測試+技術(shù)同學(xué)統(tǒng)一參與進(jìn)來梳理。

4、可能會(huì)受影響的上下游應(yīng)用都要評估到。關(guān)注他們的業(yè)務(wù)訴求和改造進(jìn)度訴求。

5、引入新技術(shù)、新框架要提前做好知識(shí)儲(chǔ)備+人員儲(chǔ)備。邊學(xué)邊開發(fā)是一件要命的事情。

6、重構(gòu)是一定一定需要測試介入的事情,從前期準(zhǔn)備階段就需要??蓽y試性需要從改造范圍+技術(shù)方案+進(jìn)度計(jì)劃多個(gè)維度考慮。

7、重構(gòu)期間盡可能專注,別受線上問題、業(yè)務(wù)壓力影響,其他團(tuán)隊(duì)/職能幫忙分擔(dān)些。

過程中QA要做的事情

1、協(xié)助梳理歷史需求和能力。

這個(gè)大多數(shù)情況舊系統(tǒng)都缺少文檔沉淀、知識(shí)積累,甚至連當(dāng)初設(shè)計(jì)的人員都不在了。測試大概率是最熟悉這個(gè)系統(tǒng)的角色,重構(gòu)方案制定前,測試需要花較多時(shí)間來梳理、確認(rèn)歷史需求和能力,輸出給研發(fā),同時(shí)支撐自己的測試方案計(jì)劃。

2、重構(gòu)方案的可測試性評估和穩(wěn)定性要求。

判斷改造范圍來確定可采用哪些測試手段,盡可能復(fù)用之前的自動(dòng)化,也可以提測試需求(留后門接口、單測覆蓋度要求)

盡早提出穩(wěn)定性要求,比如灰度發(fā)布邏輯,可回滾邏輯,數(shù)據(jù)備份要求。

盡可能早的介入測試,可以提一些分階段測試要求

3、提前準(zhǔn)備好功能基線(功能清單)+非功能基線(性能表現(xiàn)),來評估重構(gòu)后的質(zhì)量表現(xiàn)。

4、如果發(fā)現(xiàn)上面有提到的可能導(dǎo)致質(zhì)量風(fēng)險(xiǎn)的特征,要及時(shí)調(diào)整投入的測試資源,充分測試。

5、新技術(shù)的引入和使用。流量回放、灰度發(fā)布+監(jiān)控、數(shù)據(jù)埋點(diǎn)

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧

分享標(biāo)題:系統(tǒng)重構(gòu)類改造的測試總結(jié)-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://muchs.cn/article8/dscpop.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計(jì)用戶體驗(yàn)、微信小程序網(wǎng)頁設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司