精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

微服務測試的思考與項目演進實踐

開發 開發工具
本文將介紹微服務架構下的測試策略,并結合分享在業務和架構演變過程中,一個歷經九年的項目測試策略的演進。

最近幾年,微服務架構越來越火爆,逐漸被企業所采用。隨著軟件架構的變化,對應的軟件測試策略需要作何調整呢?本文將介紹微服務架構下的測試策略,并結合分享在業務和架構演變過程中,一個歷經九年的項目測試策略的演進。

關于微服務

微服務架構是一種架構模式,它提倡將單一應用程序劃分成一組小的服務,每個服務運行在其獨立的進程中,服務間采用輕量級通信機制互相溝通(通常是基于HTTP協議的RESTful API)。每個服務都圍繞著具體的業務進行構建,并且能夠被獨立部署到生產環境、預生產環境。

從微服務的概念可以看出它有如下好處:

  • 每個服務可以獨立開發
  • 處理的單元粒度更細
  • 單個服務支持獨立部署和發布
  • 更有利于業務的擴展

同時,獨立開發導致技術上的分離,HTTP通信加上Queue的機制增加了問題診斷的復雜度,對系統的功能、性能和安全方面的質量保障帶來了很大的挑戰。另外,服務間的復雜依賴關系帶來了很多的不確定性,要實現獨立部署,對運維也提出了更高的要求。微服務架構的系統要特別關注這幾個方面:

  • 服務間的依賴、連通性
  • 服務的容錯、可用性
  • 數據的最終一致性
  • 獨立部署
  • 不確定性

測試策略的選擇

談到微服務的測試策略,很容易就想到了老馬推薦的文章《Microservices Testing》,該文推薦的微服務框架下的測試策略是這樣的:

經典策略模型

經典策略模型

這個策略模型強調測試分層以及每一層的恰當覆蓋,整體符合金字塔結構。它是最優的嗎?

有人對此提出了質疑...認為策略模型應該是蜂巢形狀的:

蜂巢模型

蜂巢模型

這個模型重點關注服務間的集成測試,兩端的單元測試和UI層E2E測試較少。

也有同事提出微服務下的測試結構應該是鉆石形狀的,服務間的集成依然是重點,單元測試較少,而頂層增加了安全和性能等非功能測試。

鉆石模型

鉆石模型

好像都有道理,到底選擇什么樣的策略模型好呢?不禁陷入了困境…...怎么辦?不妨先來聽聽我們項目的故事吧!

項目的故事

1. 測試策略的演進

還是那個藍鯨項目,不知不覺進入了第九個年頭。在這九年里,隨著業務的不斷發展,系統架構也進行了多次演進和調整。相應的,測試策略也發生了有意思的演進變化。

測試策略的演進

測試策略的演進

最初單一用戶系統、單體架構的時候,嚴格按照測試金字塔來組織各層的自動化測試。隨著功能的擴展,大量mock的單元測試給重構帶來了很大的不便。

企業系統開始開發的時候,我們調整了策略,減少單元測試的編寫,增加UI層E2E測試的覆蓋,測試結構由原來的金字塔演變成上面梯形下面倒三角的形式。

后來,架構調整,開始服務化。此時,大量的E2E測試漸漸暴露出問題:

  • CI上的測試執行時間越來越長,而且定位問題的能力很弱,測試一旦失敗需要很長時間修復,測試人員好幾天也拿不到可以測試的版本,反饋周期過長;
  • 由于服務化帶來的不穩定因素增加,E2E測試沒法很好的覆蓋到需要的場景,測試人員就算拿到可測的版本也總有各種缺陷發生。

因此,項目引入契約測試,停止編寫新的E2E測試,將測試下移,分別用API測試和契約測試取代。

隨著功能的不斷增加,雖然E2E測試的量并不增加,但是其不穩定性、維護難、定位難的問題有增無減,此時已經很難由自動化測試來保證產品的質量。為了平衡成本和收益,項目考慮去掉大部分E2E測試,只保留少量的Smoke測試,將更多的測試下移。

同時,技術雷達上新的技術“生產環境下的QA”出現,項目也開始關心生產環境,并且在QA測試階段結合微服務的特點進行對應的探索式測試。

2. 應對微服務的挑戰

前文提到過微服務帶來的挑戰,下面來看項目是如何應對這些挑戰的。

(1) 服務間的依賴、連通性

微服務架構下,獨立開發的服務要整合起來最具挑戰,如何保證服務間的依賴關系和連通性非常關鍵。前面已經講過E2E集成測試有很大的挑戰,并不適合,而消費端驅動的契約測試是個不錯的選擇。項目正是利用契約測試去保證服務間的連通性,取代一部分E2E集成測試。

(2) 服務的容錯、可用性

在系統負荷達到一定程度或者某個服務出現故障的時候,微服務架構有兩種技術來確保系統的可用性:服務的熔斷和降級。服務的熔斷是指當某個服務出現故障時,為了保證系統整體的可用性,會關閉掉出現故障的服務;服務的降級則是當系統整體負荷過載的時候,考慮關閉某些外圍服務來保證系統的整體可用性。

對應的測試包括:

  • 熔斷:從性能角度,當系統負載達到某個熔斷狀態的時候,服務是否能正確熔斷;同時,從功能角度驗證熔斷后系統的行為是否跟預期相符;
  • 降級:從業務的角度,要能區分出核心業務和外圍業務,在需要降級的時候不能影響核心業務;當某個服務降級后,從功能角度驗證系統行為是否跟預期相符。

(3) 數據的最終一致性

數據一致性

數據一致性

數據一致性是微服務特別需要關注的。舉個例子,電商平臺某個訂單支付成功以后,需要更新積分和訂單狀態,當訂單服務或者積分服務其中有一個出現故障的時候,就會導致最終的數據不一致性。

測試這種情況,從業務的角度分析哪些服務會導致數據不一致性,制造對應的異常情況去測試數據的最終一致性。

(4) 獨立部署

微服務的獨立部署需要有CI、CD的支持,跟DevOps實踐分不開。同時,更為關鍵的是需要契約測試來驗證獨立部署后服務行為的正確性。項目在這方面的工作,請參考王健的文章:你的微服務敢獨立交付嗎?

(5) 不確定性

微服務架構使得系統復雜度增加不少,很多的事情發生都是不可預測的,只能在其發生以后找到產生的原因。因此,也就沒法在預生產環境通過測試去發現在真實生產環境才會發生的issue,我們需要把目光轉移到生產環境,利用生產環境的不確定性、微服務的不可預測性來構建反脆弱的系統。

項目在這方面主要采用的技術是生產環境下的QA。

3. 項目測試策略

從前面介紹的演進過程可以看到,項目測試策略在不同階段結合參考了不同的策略模型:金字塔->近似鉆石(除非功能測試外,類似于鉆石模型)->蜂巢。后期全面服務化的時候,我們認為蜂巢模型是比較適合的。

當然,光有符合這個策略模型的自動化測試是遠遠不夠的,我們項目還采用了針對微服務特點的探索式測試,保持持續交付節奏,踐行DevOps實踐,結合生產環境下的QA等技術把關注點右移到生產環境。

現在,項目整體測試策略演變成下圖的形式:

項目測試策略

項目測試策略

  • 項目采用的是敏捷迭代開發和持續交付的模式,每四周一個發布周期。
  • 在開發過程中實現的自動化測試是分層實現的:底層少量的單元測試,中間量最多的是API測試(類似于老馬策略模型里的組件測試),上面有一部分契約測試和少量的Smoke測試來保證服務間的契約和集成。除此之外,QA有手動的探索式測試,其中包括針對微服務特點進行的一些測試。整個測試結構是類似于蜂巢模型的。
  • 采用生產環境下的QA技術,利用生產環境,進行error監控、用戶行為分析、用戶反饋收集,從而來影響和指導預生產環境的開發和測試工作。
  • 利用DevOps實踐,做到高效的部署和監控,跟生產環境下的QA結合,形成良性的環路,保證項目的正常交付。

測試策略再思考

項目上多次測試策略的調整,看似很簡單,其實每次調整并不是一個輕松的過程,都是平衡利弊、綜合考慮多個因素才做出的決定。

分析整個調整過程,最后突然發現:當我們面對多個策略模型不知道如何選擇的時候,其實我們陷入了一個太過于關注測試結構的誤區,忘記了最初的目標是什么。

1. 影響測試策略的因素

跳出誤區,回到原點,重新思考測試策略的目標。影響策略的最關鍵因素是業務價值、質量要求、痛點。

影響測試策略的因素

影響測試策略的因素

(1) 業務價值

帶來更大的業務價值、幫企業贏得更多的利潤,是軟件系統的目標;軟件測試是軟件系統成功的保障之一,業務價值也是測試策略的終極目標。所有測試活動都要圍繞這個目標開展,考慮業務優先級,有效規避業務風險。

(2) 質量要求

不同的系統、同一系統的不同利益干系人(參與的不同角色)對于質量的定義和要求都可能是不同的,這毫無疑問是影響測試策略的一個關鍵因素。

對于僅有內部用戶的系統,關注的重心可能是系統的功能;而對外發布的產品,則要求更高,一個按鈕位置的不恰當都可能帶來大量用戶的流失。

(3) 痛點

真正的痛點往往也是優先級最高,迫切需要解決的。那些可以通過測試策略的調整來解決的痛點,自然成為了關鍵的影響因素之一。比如,CI Pipeline出包太慢,為了提高出包的效率,一方面在Pipeline本身想辦法,另一方面調整自動化測試的比例、執行頻率等也是解決方案之一。

演進式測試策略

處在不同階段的項目,在業務價值這個大目標下,其他影響因素也是會不一樣的,跟技術架構的演進一樣,測試策略也應該是演進式的。

從目標出發,綜合所處階段各個方面的影響因素,制定出適合當時的測試策略。隨著時間的推移,對策略進行評估和度量,并進一步改進、提高,以更好的滿足需求。這就是目標驅動的演進式測試策略。

演進式測試策略

演進式測試策略

總結

微服務架構下多個服務的整合是最具有挑戰的,對此最重要的是契約測試。契約測試有效保證服務間的契約關系不被破壞,確保服務的連通性,有助于實現真正的獨立部署和獨立交付。

微服務架構引入的不確定性并不是壞事,可以利用這些不確定性,采用生產環境下的QA等技術,增強系統的反脆弱性,從中獲益。

測試策略的影響因素不是唯一的,技術架構并不是最關鍵的因素。微服務架構下的測試策略跟其他架構下的并不會有本質的區別。

業務價值始終是我們的終極目標。在這個終極目標的驅動下,測試策略不是制定完了就可以束之高閣的,需要在整個軟件系統構建過程中不斷的度量和改進,是演進式的。

【本文是51CTO專欄作者“ThoughtWorks”的原創稿件,微信公眾號:思特沃克,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2021-08-09 11:35:40

設計實踐應用

2020-05-19 08:52:31

APP滲透測試終端安全

2020-12-28 12:22:12

微服務架構微服務API

2019-12-26 15:49:14

微服務架構業務

2022-05-25 10:47:01

淘寶開發模式

2023-12-30 08:27:13

2022-03-02 09:31:42

Serverless微服務架構

2024-06-05 12:03:43

微服務架構場景

2020-08-28 08:29:40

云原生微服務編程

2020-04-03 13:12:09

函數架構 Serverless

2022-04-25 10:44:08

微服務架構設計

2012-03-21 10:09:12

2022-12-30 15:27:13

2023-09-27 07:28:02

CQRS架構直播房間

2025-04-30 05:00:00

批量運維系統

2023-11-21 08:37:09

2024-06-03 10:19:05

2018-04-20 10:38:25

2021-08-03 07:21:14

架構微服務開發

2023-11-20 16:06:34

軟件開發微服務架構Spring
點贊
收藏

51CTO技術棧公眾號

日韩不卡一二区| 午夜精品在线观看| 欧美特黄aaa| 欧美性video| 久久久亚洲高清| 成人黄色av网站| 日本一级黄色录像| 欧美精品一区二区三区中文字幕| 欧美日韩一级视频| www.国产二区| 国产粉嫩一区二区三区在线观看| 久久成人久久鬼色| 国内精品视频一区| 日本不卡一区视频| 日韩欧美中文字幕电影| 在线播放视频一区| 韩国日本美国免费毛片| 性欧美ⅴideo另类hd| 国产日韩一级二级三级| 粉嫩高清一区二区三区精品视频| 免费在线不卡av| 最新日韩欧美| 欧美床上激情在线观看| 一级黄色片网址| 日本欧美高清| 欧美精品一区二区三区在线| 日本美女视频一区| 日产精品一区| 福利二区91精品bt7086| 欧美日韩久久一区二区| 亚洲欧美日韩精品在线| 亚洲色图 激情小说| 荡女精品导航| 日韩欧美一级二级三级久久久| 日韩一级在线免费观看| 人在线成免费视频| 亚洲成人免费av| a级片一区二区| 男人和女人做事情在线视频网站免费观看 | 久久se这里有精品| 国产成人一区二区| 无码人妻熟妇av又粗又大| 亚洲黄色成人| 亚洲91av视频| 国产成人无码精品| 99精品视频免费全部在线| 色综合五月天导航| 欧美三级 欧美一级| 97国产成人高清在线观看| 国产亚洲精品美女久久久| 一区二区三区四区免费| 视频一区欧美| 中文字幕av日韩| 女人十八毛片嫩草av| 欧美日中文字幕| 在线观看视频亚洲| 影音先锋男人看片资源| 91亚洲国产成人久久精品| 久久精品成人动漫| 91高清免费观看| 中文乱码免费一区二区三区下载| 久久精品亚洲一区| 久久久久久久久久99| 国内视频精品| 17婷婷久久www| 好吊色在线视频| 麻豆精品国产91久久久久久| 成人激情综合网| a级片免费视频| 成人久久久精品乱码一区二区三区| 国产精品久久精品视| 婷婷在线免费观看| 无码人妻精品一区二区三区夜夜嗨 | 欧美日韩精品专区| www.桃色.com| 精品人人人人| 一本色道久久综合狠狠躁篇怎么玩| 日本一区二区视频在线播放| 99国产**精品****| 欧美精品18videosex性欧美| 日本三级网站在线观看| 丝袜亚洲另类丝袜在线| 91久久国产精品91久久性色| 午夜美女福利视频| 久久久国产午夜精品| 在线成人性视频| a毛片不卡免费看片| 色婷婷综合久色| 亚洲一区二区三区四区精品 | 欧美国产综合视频| 免费在线观看av网站| 亚洲女女做受ⅹxx高潮| 日韩精品一区二区免费| 色老太综合网| 欧美一区二区三区视频在线观看| 日本护士做爰视频| 欧美国产一区二区三区激情无套| 欧美黄色三级网站| 日批视频免费观看| 成人美女视频在线观看18| 视频一区三区| sm久久捆绑调教精品一区| 欧美三级电影在线观看| 亚洲激情 欧美| 久久亚洲国产| 欧美一级免费看| 亚洲国产福利视频| 国产精品传媒入口麻豆| 国产精品一区二区免费在线观看| 亚洲一区二区三区久久久| 亚洲精品国精品久久99热一| 天堂网avav| 日韩高清中文字幕一区| 好吊色欧美一区二区三区| 欧美a免费在线| 在线视频一区二区免费| 男女一区二区三区| 欧美精品观看| 91九色视频导航| 中国丰满人妻videoshd| 国产aⅴ一区二区三区| 国产欧美精品一区| 精品视频免费在线播放| 亚洲三区欧美一区国产二区| 中文字幕在线日韩 | 久久久天天操| 国产一区精品在线| 日本在线视频中文有码| 在线91免费看| 国产一区二区三区视频播放| 天堂成人国产精品一区| 好吊色欧美一区二区三区视频| 污污在线观看| 欧美一级电影网站| 国产免费一区二区三区四区| 美国十次了思思久久精品导航| 欧美高清性xxxxhd| 成人影院网站| 亚洲欧美在线x视频| 免费在线不卡视频| 97精品国产露脸对白| 欧美变态另类刺激| 狼人天天伊人久久| 激情综合在线| 欧美视频国产精品| 国产高清成人久久| 99精品热视频只有精品10| 成人av免费在线看| 亚洲综合影视| 欧美第一区第二区| 免费毛片一区二区三区| 丰满白嫩尤物一区二区| 大西瓜av在线| 欧美美女在线直播| 日产日韩在线亚洲欧美| 激情福利在线| 欧美日韩一区不卡| 天天操天天操天天操天天操天天操| 久久国产生活片100| 在线视频一二三区| 成人av综合网| 清纯唯美亚洲激情| 成a人片在线观看www视频| 欧美日韩久久一区二区| 国产一二三区精品| www.亚洲在线| 成人羞羞国产免费网站| gogogo高清在线观看一区二区| 国产精品第七影院| 蜜桃视频在线观看免费视频网站www | 新呦u视频一区二区| 老司机精品视频网| 欧美激情国产精品| 日韩二区三区| 欧美日韩国产影片| 国产亚洲欧美精品久久久www| youjizz国产精品| 黄色片在线免费| 欧美二区不卡| 久久综合婷婷综合| www一区二区三区| 91av视频在线| 日本免费在线观看| 亚洲精品一线二线三线| 久久久久久亚洲av无码专区| 亚洲欧美日韩在线| 99久久人妻精品免费二区| 日本大胆欧美人术艺术动态| 日本a级片在线观看| 中文字幕中文字幕精品| 亚洲aⅴ日韩av电影在线观看 | 激情欧美日韩| 亚洲精品美女久久7777777| 亚洲国产中文在线| 国产精品久久久久久亚洲影视| v片在线观看| 国产亚洲一区二区在线| 精品国产亚洲AV| 欧美在线一区二区| 欧美福利视频一区二区| 亚洲视频小说图片| 中文字幕人妻一区二区三区在线视频| 国产高清在线观看免费不卡| 宅男噜噜噜66国产免费观看| 国产综合激情| 中文字幕一区二区三区四区五区六区| 女人抽搐喷水高潮国产精品| 91在线精品播放| 欧美日韩国产网站| 2021久久精品国产99国产精品| 黄a在线观看| 中国china体内裑精亚洲片| 香蕉av在线播放| 精品欧美久久久| 国产精品探花视频| 欧美在线你懂得| 亚洲精品男人的天堂| 亚洲国产一区二区三区青草影视| 91n在线视频| 欧美国产日韩一二三区| 国产精品亚洲无码| 91蜜桃婷婷狠狠久久综合9色| 国产精品19p| 国产一区二区不卡| 不用播放器的免费av| 欧美aa在线视频| 北条麻妃在线一区| 久久精品天堂| 欧美三级一级片| 亚洲一区图片| 116极品美女午夜一级| 亚洲毛片在线| 亚洲熟妇av日韩熟妇在线| 狠久久av成人天堂| 日本香蕉视频在线观看| 欧美1级日本1级| 免费高清一区二区三区| 黄色欧美日韩| 国内精品在线观看视频| 伊人久久综合| 男人添女人下面高潮视频| 亚洲免费成人| 人妻熟女一二三区夜夜爱| 免费日韩一区二区| 天天操天天爽天天射| 免费在线成人网| 天堂av8在线| 国产乱淫av一区二区三区 | 久久综合网色—综合色88| 中文在线永久免费观看| 99精品1区2区| 91精品人妻一区二区| 国产日韩欧美不卡| 亚洲av毛片基地| 综合亚洲深深色噜噜狠狠网站| 日本黄色免费片| 一区二区免费在线| 1级黄色大片儿| 色婷婷亚洲综合| 中文文字幕一区二区三三| 欧美日韩国产欧美日美国产精品| 91久久久久久久久久久久| 日韩视频在线永久播放| 黄色av免费观看| 亚洲一区二区国产| 日p在线观看| 欧美精品第一页在线播放| 中文在线а√天堂| 国产精品永久免费观看| 视频成人永久免费视频| 久久精品国产美女| 色综合天天爱| 久草视频这里只有精品| 久久一二三四| 日韩视频在线观看一区二区三区| jizz一区二区| 国产黄a三级三级| 亚洲成在人线在线播放| 尤物视频免费观看| 日韩一区二区三| 邻居大乳一区二区三区| 日韩在线观看免费高清| 91福利在线免费| 国产精品成人观看视频国产奇米| 精品一区二区三区在线观看视频| 国产欧美一区二区三区不卡高清| 欧美日韩一二| 日韩国产一级片| 蜜臀av一级做a爰片久久| 最新日本中文字幕| 国产精品三级av| 日韩精品视频免费看| 欧美高清精品3d| 日韩电影免费| 欧美成人免费一级人片100| 欧美成人ⅴideosxxxxx| 欧美性xxxx极品hd欧美风情| 一区二区三区亚洲视频| 亚洲精品一区二区三区99| 成年人视频在线看| 91po在线观看91精品国产性色| 日韩av黄色| 欧美高清性xxxxhd| 亚洲东热激情| www.成人黄色| 国产欧美日韩在线看| 国产福利电影在线播放| 亚洲欧美国产高清va在线播| 麻豆视频在线播放| 欧美做爰性生交视频| 一区二区日韩| 亚洲欧洲日韩精品| 快she精品国产999| 免费的av网站| 亚洲第一综合色| 国产同性人妖ts口直男| 自拍偷拍免费精品| 亚洲成人激情社区| 成人激情视频在线播放| 欧美性xxx| 成人欧美一区二区三区视频xxx| 成人免费看片39| av天堂永久资源网| www.亚洲国产| 国产一级片免费| 欧美一区二区三区爱爱| porn视频在线观看| 国产精品高潮呻吟久久av无限| 麻豆国产欧美一区二区三区r| 欧美一级中文字幕| 国产精品亚洲视频| 国产日韩欧美在线观看视频| 欧美福利一区二区| 免费超碰在线| 成人做爽爽免费视频| 99久久www免费| 午夜av中文字幕| 伊人婷婷欧美激情| a网站在线观看| 九九精品在线观看| 日韩精品中文字幕吗一区二区| 日本高清xxxx| 国产v综合v亚洲欧| 国产精品变态另类虐交| 亚洲国产成人91精品| bl在线肉h视频大尺度| 久久艳妇乳肉豪妇荡乳av| 亚洲一区二区免费看| 少妇大叫太粗太大爽一区二区| 欧美日韩亚洲一区二| 黄色在线播放| 国产日本欧美在线观看| 婷婷激情综合| 亚洲少妇一区二区三区| 亚洲另类中文字| 成人黄色在线观看视频| 久久久久久久久91| 香蕉久久夜色精品国产使用方法| 日本三级免费网站| 中文字幕精品一区二区三区精品| 亚洲一级片免费看| 欧美成人精品在线| 红杏aⅴ成人免费视频| 欧美日韩第二页| 国产精品另类一区| 精品久久久久久亚洲综合网站| 久久久亚洲福利精品午夜| 亚洲人成网站77777在线观看| 成年人在线观看视频免费| 中文字幕一区在线观看视频| 亚洲国产剧情在线观看| 欧洲亚洲在线视频| 91亚洲成人| 中文字幕在线播放视频| 欧美系列在线观看| 日韩电影免费观看| 日本视频精品一区| 国产精品亚洲一区二区三区在线 | 国产精品激情av在线播放| 91欧美在线| 国产国语性生话播放| 欧美日韩国产成人在线免费| 免费影视亚洲| 日韩中文不卡| 成人午夜在线免费| 亚洲无码久久久久久久| 久久久久久久久久国产| 中日精品一色哟哟| 久久精品久久久久久国产 免费| 黑人久久a级毛片免费观看| 久久久精品三级| 亚洲曰韩产成在线| 成人全视频高清免费观看| 99久久99久久精品国产片| 首页亚洲欧美制服丝腿| 九九热国产在线| 中文字幕日韩av综合精品| 欧美天堂社区| 久久久久久久久久久久国产精品| 91久久香蕉国产日韩欧美9色|