www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > > 架構(gòu)師社區(qū)
[導(dǎo)讀]來(lái)自:DBAplus社群 作者介紹 劉華(Kenneth),就職于世界500強(qiáng)銀行,負(fù)責(zé)基金服務(wù)業(yè)務(wù)軟件開發(fā)與交付,DevOps團(tuán)隊(duì)負(fù)責(zé)人。敏捷、精益、DevOps領(lǐng)域?qū)<?,精通極限編程、Scrum、看板方法、測(cè)試驅(qū)動(dòng)開發(fā)、持續(xù)集成、行為驅(qū)動(dòng)開發(fā)、DevOps工具棧。著有《獵豹行動(dòng)


銀行持續(xù)交付實(shí)戰(zhàn):一個(gè)單體系統(tǒng)足以撐起全球大項(xiàng)目

來(lái)自:DBAplus社群

作者介紹

劉華(Kenneth),就職于世界500強(qiáng)銀行,負(fù)責(zé)基金服務(wù)業(yè)務(wù)軟件開發(fā)與交付,DevOps團(tuán)隊(duì)負(fù)責(zé)人。敏捷、精益、DevOps領(lǐng)域?qū)<?,精通極限編程、Scrum、看板方法、測(cè)試驅(qū)動(dòng)開發(fā)、持續(xù)集成、行為驅(qū)動(dòng)開發(fā)、DevOps工具棧。著有《獵豹行動(dòng):硝煙中的敏捷轉(zhuǎn)型之旅》一書。


我們的核心系統(tǒng)是一個(gè)單體系統(tǒng),支撐全球多個(gè)國(guó)家和地區(qū)的業(yè)務(wù)。同時(shí),業(yè)務(wù)部門近年生意紅火,接了幾個(gè)大客戶,針對(duì)這些大客戶的大型項(xiàng)目也在如火如荼地進(jìn)行中。


由于生產(chǎn)環(huán)境只有一套,而且已經(jīng)有業(yè)務(wù)在生產(chǎn)環(huán)境上跑,這些大項(xiàng)目最終也要在這套生產(chǎn)環(huán)境上上線。這套系統(tǒng)是糅合了各地、各不同業(yè)務(wù)的復(fù)雜系統(tǒng)。


之前,為了滿足各個(gè)客戶交付時(shí)間,每個(gè)項(xiàng)目都拉了一個(gè)獨(dú)立的分支進(jìn)行開發(fā),減少各項(xiàng)目之間的依賴,但這也導(dǎo)致了每個(gè)項(xiàng)目各自為政,互不交流。一旦這些項(xiàng)目開發(fā)完成,要和生產(chǎn)環(huán)境的版本進(jìn)行合并。這種巨型合并勢(shì)必帶來(lái)巨大風(fēng)險(xiǎn),相互隔絕的開發(fā)模式也將帶來(lái)大量的合并沖突。


我們一直在思考如何降低這種合并風(fēng)險(xiǎn),以及如何打破各大型項(xiàng)目各自為政的困局,實(shí)現(xiàn)產(chǎn)品化的敏捷交付?;貧w測(cè)試成為實(shí)現(xiàn)這些使命的基礎(chǔ)。


使命——實(shí)現(xiàn)敏捷交付


前面提到,目前的開發(fā)模式是針對(duì)不同的大客戶,分別設(shè)立了不同的大型項(xiàng)目進(jìn)行開發(fā)。這些項(xiàng)目的交付周期往往數(shù)以年計(jì),交付周期長(zhǎng),風(fēng)險(xiǎn)大。


生產(chǎn)環(huán)境又只有一套,而且已經(jīng)有業(yè)務(wù)在生產(chǎn)環(huán)境上跑,代碼合并困難,上線風(fēng)險(xiǎn)巨大。


我們希望能打破這種大型項(xiàng)目的交付形式,以產(chǎn)品化的思維進(jìn)行管理。


具體實(shí)施的思路是:


  1. 合并——對(duì)各大型項(xiàng)目的現(xiàn)有代碼與生產(chǎn)環(huán)境的版本進(jìn)行一次性的合并;

  2. 統(tǒng)一Backlog——各類需求(包括現(xiàn)在以大型項(xiàng)目形式服務(wù)的大客戶的需求)以用戶故事的形式進(jìn)入到同一個(gè)Backlog;

  3. Scrum——建立以Scrum為形式的持續(xù)交付機(jī)制,以一個(gè)月作為Sprint的周期,通過(guò)Sprint計(jì)劃會(huì)議敲定Sprint的交付計(jì)劃;

  4. 持續(xù)交付——每個(gè)Sprint完成計(jì)劃內(nèi)各用戶故事的交付全流程,包括回歸測(cè)試和上線到生產(chǎn)環(huán)境。


要實(shí)現(xiàn)以上模式,上線前的回歸測(cè)試至關(guān)重要。而且由于一個(gè)Sprint內(nèi),也就是一個(gè)月內(nèi),要完成Sprint交付計(jì)劃內(nèi)所有用戶故事的需求澄清、設(shè)計(jì)、開發(fā)、測(cè)試、用戶驗(yàn)收和上線,時(shí)間非常緊,回歸測(cè)試也必須在一、兩天內(nèi)完成。


如何實(shí)現(xiàn)既能充分保護(hù)生產(chǎn)環(huán)境,又能實(shí)現(xiàn)快速反饋的回歸測(cè)試,成為一個(gè)重要議題。


自動(dòng)化大量功能測(cè)試不可行


對(duì)于如何設(shè)計(jì)和實(shí)施覆蓋率高、執(zhí)行穩(wěn)定而且快速的自動(dòng)化回歸測(cè)試,一直是一個(gè)難題。


我們?cè)?jīng)的一個(gè)思路是把現(xiàn)有的功能測(cè)試用例進(jìn)行自動(dòng)化,但很快發(fā)現(xiàn)這個(gè)思路不可行,主要原因如下:


  1. 只能依賴UI測(cè)試——由于核心系統(tǒng)是供應(yīng)商產(chǎn)品,開發(fā)是由供應(yīng)商負(fù)責(zé)的,對(duì)我們來(lái)說(shuō)就是個(gè)黑盒子,我們只能通過(guò)UI進(jìn)行測(cè)試。眾所周知,UI的自動(dòng)化測(cè)試,開發(fā)、維護(hù)成本高,脆弱而且執(zhí)行時(shí)間長(zhǎng);


  2. 無(wú)法快速反饋——通過(guò)功能進(jìn)行覆蓋,要求不斷增加測(cè)試用例來(lái)提高覆蓋率,由于UI測(cè)試的執(zhí)行時(shí)間長(zhǎng),用例越多,整體執(zhí)行時(shí)間越長(zhǎng),如果執(zhí)行周期要數(shù)以天計(jì),則無(wú)法達(dá)到快速反饋的目的;


  3. 性價(jià)比低——功能測(cè)試用例的覆蓋率其實(shí)是不可見的,即使把所有功能測(cè)試都自動(dòng)化了,其實(shí)際覆蓋率依然不高,也就是說(shuō)這個(gè)投入的性價(jià)比很低。


我們必須要尋找一種方法,以最小的投入獲取最大的保障。


我們對(duì)回歸測(cè)試自動(dòng)化的預(yù)期進(jìn)行了重新定位。我們進(jìn)行回歸測(cè)試,就是要保護(hù)生產(chǎn)環(huán)境的關(guān)鍵業(yè)務(wù)可以照常進(jìn)行。我們要防止的,是新的特性發(fā)布造成生產(chǎn)環(huán)境災(zāi)難,也就是導(dǎo)致關(guān)鍵業(yè)務(wù)無(wú)法進(jìn)行的大面積故障。對(duì)于非災(zāi)難性的小故障,完全可以通過(guò)運(yùn)維手段來(lái)處理。


因此,我們不應(yīng)該把回歸測(cè)試定位為防止一切問(wèn)題。


以不變應(yīng)萬(wàn)變


基于以上對(duì)回歸測(cè)試預(yù)期的重新定位,我們和業(yè)務(wù)部門協(xié)商,請(qǐng)他們列舉出當(dāng)前在生產(chǎn)環(huán)境上最關(guān)鍵的業(yè)務(wù)過(guò)程有哪些。我們要保證的是,當(dāng)新的特性上線后的首個(gè)交易日,原有的最關(guān)鍵的業(yè)務(wù)過(guò)程不會(huì)受到嚴(yán)重影響。


基于這個(gè)預(yù)期,我們以業(yè)務(wù)部門提供的關(guān)鍵業(yè)務(wù)過(guò)程作為測(cè)試用例,并形成以下的回歸測(cè)試思路:


準(zhǔn)備階段:


  1. 在某個(gè)測(cè)試環(huán)境里,系統(tǒng)版本與生產(chǎn)環(huán)境版本相同;

  2. 備份環(huán)境數(shù)據(jù);

  3. 以某個(gè)交易日為基準(zhǔn),執(zhí)行相應(yīng)的測(cè)試用例;

  4. 備份輸入、輸出數(shù)據(jù)(包括生成的接口文件和報(bào)表)。


執(zhí)行階段:


  1. 在該測(cè)試環(huán)境里,導(dǎo)入在準(zhǔn)備階段備份的環(huán)境數(shù)據(jù);

  2. 升級(jí)系統(tǒng)到目標(biāo)版本;

  3. 以準(zhǔn)備階段相同的交易日和相同的輸入數(shù)據(jù)(在準(zhǔn)備階段已備份)執(zhí)行相同的測(cè)試用例,生成相應(yīng)的接口文件和報(bào)表;

  4. 與準(zhǔn)備階段的輸出(接口文件和報(bào)表)進(jìn)行比對(duì);

  5. 如果目標(biāo)版本的輸出與原版本的對(duì)比沒(méi)有非預(yù)期的差異,視為通過(guò)。


簡(jiǎn)單總結(jié),就是對(duì)比兩個(gè)系統(tǒng)版本在相同測(cè)試環(huán)境、相同環(huán)境數(shù)據(jù)、相同交易日、相同輸入的情況下,輸出是否有非預(yù)期的差異。


這個(gè)思路的最大特點(diǎn)是,以不變應(yīng)萬(wàn)變。生產(chǎn)環(huán)境的關(guān)鍵業(yè)務(wù)過(guò)程不會(huì)經(jīng)常變化,也就是說(shuō)測(cè)試用例基本上比較固定。通過(guò)反復(fù)運(yùn)行固定的測(cè)試用例實(shí)現(xiàn)回歸測(cè)試的目標(biāo),保護(hù)生產(chǎn)環(huán)境上的關(guān)鍵業(yè)務(wù)過(guò)程,避免災(zāi)難。以最少的用例實(shí)現(xiàn)最大的保護(hù)。


而且測(cè)試的結(jié)果驗(yàn)證是通過(guò)比對(duì)不同版本的輸出,我們不必在乎具體的輸出內(nèi)容,只需要關(guān)注輸出是否有非預(yù)期差異。


當(dāng)然,一旦有新的大客戶上線,也就是有新的關(guān)鍵業(yè)務(wù)過(guò)程,這些過(guò)程也應(yīng)該放入到回歸測(cè)試用例中,當(dāng)然,用例的選擇還是以避免災(zāi)難為準(zhǔn)則。


在前面提到的功能測(cè)試思路里,我們需要不斷增加測(cè)試用例以增加測(cè)試覆蓋率,但是由于測(cè)試只能在UI進(jìn)行,這樣無(wú)限增加功能測(cè)試用例是不可持續(xù)的。


通過(guò)實(shí)踐,我們發(fā)現(xiàn)要充分發(fā)揮這個(gè)新思路的價(jià)值,要注意以下幾點(diǎn):


  1. 專屬環(huán)境——由于這套環(huán)境需要反復(fù)整理環(huán)境數(shù)據(jù)和升級(jí),一定要為這個(gè)回歸測(cè)試準(zhǔn)備一套專屬的測(cè)試環(huán)境,不要在共享的環(huán)境里進(jìn)行;


  2. 明確檢查點(diǎn)——由于執(zhí)行測(cè)試輸出的接口文件、報(bào)表里一定有時(shí)間戳、自增ID等每次執(zhí)行都會(huì)變化的信息,不能簡(jiǎn)單通過(guò)文件來(lái)比對(duì)。在擬定測(cè)試用例時(shí),就應(yīng)該明確這些接口文件、報(bào)表里的有哪些數(shù)據(jù)需要檢查。在每個(gè)版本交付時(shí),開發(fā)人員也應(yīng)該明確告知哪些數(shù)據(jù)檢查點(diǎn)會(huì)有預(yù)期差異。否則對(duì)比工作將耗費(fèi)大量的時(shí)間和精力;


  3. 變更范圍要小——如果對(duì)比的兩個(gè)系統(tǒng)版本的變更范圍太大,會(huì)導(dǎo)致輸出有大量差異,比對(duì)意義不大。因此這個(gè)方法不太適合大的合并,比較適合落實(shí)了敏捷交付后,由于每個(gè)Sprint的變更范圍較小,兩個(gè)系統(tǒng)版本間的輸出差異不多,比對(duì)較容易。


以這個(gè)思路建立了回歸測(cè)試框架,我們便可以著手執(zhí)行過(guò)程的自動(dòng)化,從而提升其執(zhí)行的效率。


總結(jié)


我們的核心系統(tǒng)是一套單體復(fù)雜系統(tǒng),支撐全球多個(gè)國(guó)家和地區(qū)不同的業(yè)務(wù)。


為了實(shí)現(xiàn)敏捷交付,我們希望打破目前以大型項(xiàng)目為形式的各自為政,把各項(xiàng)目的所有需求放在統(tǒng)一的Backlog通過(guò)Scrum的方法進(jìn)行持續(xù)交付。


要實(shí)現(xiàn)這一點(diǎn),我們需要在每個(gè)Sprint都進(jìn)行有效的回歸測(cè)試,以保護(hù)生產(chǎn)環(huán)境的關(guān)鍵業(yè)務(wù)在新特性上線后不會(huì)有災(zāi)難性的故障。


通過(guò)對(duì)比兩個(gè)系統(tǒng)版本在相同測(cè)試環(huán)境、相同環(huán)境數(shù)據(jù)、相同交易日、相同輸入的情況下,執(zhí)行關(guān)鍵業(yè)務(wù)過(guò)程的有限的測(cè)試用例,輸出是否有非預(yù)期的差異的回歸測(cè)試方法,以少勝多,以不變應(yīng)萬(wàn)變,持續(xù)保護(hù)生產(chǎn)環(huán)境的核心業(yè)務(wù),為持續(xù)交付保駕護(hù)航。




特別推薦一個(gè)分享架構(gòu)+算法的優(yōu)質(zhì)內(nèi)容,還沒(méi)關(guān)注的小伙伴,可以長(zhǎng)按關(guān)注一下:

銀行持續(xù)交付實(shí)戰(zhàn):一個(gè)單體系統(tǒng)足以撐起全球大項(xiàng)目

長(zhǎng)按訂閱更多精彩▼

銀行持續(xù)交付實(shí)戰(zhàn):一個(gè)單體系統(tǒng)足以撐起全球大項(xiàng)目

如有收獲,點(diǎn)個(gè)在看,誠(chéng)摯感謝


免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見,不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉