持續(xù)交付發(fā)布可靠軟件的系統(tǒng)方法(部署流水線)第九章:非功能需求的測試

《持續(xù)交付發(fā)布可靠軟件的系統(tǒng)方法》讀書筆記

性能、吞吐量漠嵌、容量概念

性能:對處理單一事務(wù)所花時間的一種度量嚼黔,既可以單獨衡量,也可以在一定的負(fù)載下衡量禁灼。
吞吐量:系統(tǒng)在一定時間內(nèi)處理事務(wù)的數(shù)量管挟,通常它受限于系統(tǒng)中的某個瓶頸
容量:一定的負(fù)載下,當(dāng)每個單獨請求的響應(yīng)時間維持在可接受范圍內(nèi)時弄捕,系統(tǒng)所能承擔(dān)的最大吞吐量。
非功能性:有效性导帝、容量守谓、安全性、可維護性等您单。

非功能需求管理

將非功能需求與功能需求一樣對待斋荞。

  • 創(chuàng)建一些具體任務(wù)來管理非功能需求
  • 有必要的話,向功能需求中加入非功能需求的驗收條件

如何為容量編程

  1. 為何要做容量測試
    高德納著名格言:
    在97%的時間里虐秦,我們都應(yīng)該忘記那種小的效率提升:過早優(yōu)化是所有罪惡之根平酿。然而,我們也不能讓另外非常關(guān)鍵的3%的機會與我們擦肩而過悦陋。一個優(yōu)秀程序員不會因為這個原則而對其置之不理蜈彼,他們非常聰明,只會在識別出那段關(guān)鍵代碼后俺驶,才會非常細(xì)心地去查看幸逆。
    在找到解決方案之前,必須先找出問題的根源暮现。容量測試會告訴我們是否存在問題还绘,以便我們可以修復(fù)它。不要枉自猜測栖袋,而要先進行度量拍顷。
  2. 解決容量問題
    現(xiàn)代軟件系統(tǒng)中,最昂貴的是網(wǎng)絡(luò)通信或磁盤存儲塘幅,在性能和應(yīng)用程序的穩(wěn)定性方面昔案,跨進程或網(wǎng)絡(luò)邊界的通信是昂貴的,所以這類通信應(yīng)該盡量最小化晌块。
    讓業(yè)務(wù)干系人決定系統(tǒng)的容量特性極其重要爱沟,以免方案過度設(shè)計 。
    為解決容量問題匆背,可采取的策略:
  • 為應(yīng)用程序決定一種架構(gòu)呼伸。通常要特別注意進程、網(wǎng)絡(luò)邊界和I/O。
  • 了解并使用正確的模式括享,避免使用那些影響系統(tǒng)容量和穩(wěn)定性的反模式搂根。
  • 確保團隊在已經(jīng)明確的應(yīng)用架構(gòu)下進行開發(fā),不要為容量做無謂的優(yōu)化铃辖。在沒有明確測試結(jié)果表明有容量問題時剩愧,堅決不能在代碼可讀性上讓步。
  • 注意在數(shù)據(jù)結(jié)構(gòu)和算法方面的選擇娇斩,確保它們的屬性與應(yīng)用程序相吻合仁卷。
  • 處理線程時要特別注意。
  • 創(chuàng)建一些自動化測試來斷言所期望的容量級別犬第。當(dāng)這些測試失敗時锦积,用它們作為向?qū)硇迯?fù)這些問題。
  • 使用調(diào)測工具主要關(guān)注測試中發(fā)現(xiàn)的問題歉嗓,并修復(fù)它丰介。
  • 只要有可能,就使用真實的容量數(shù)據(jù)來做度量鉴分。

容量度量

  • 擴展性測試:隨著服務(wù)器數(shù)哮幢、服務(wù)等的增加,單個請求的響應(yīng)時間和并發(fā)用戶數(shù)的支持會如何變化志珍。
  • 持久性測試:長時間運行應(yīng)用程序橙垢,是否有性能上的變化。
  • 吞吐量測試:系統(tǒng)每秒能處理多少事務(wù)碴裙、消息或頁面點擊钢悲。
  • 負(fù)載測試:當(dāng)系統(tǒng)負(fù)載增加到類似生產(chǎn)環(huán)境大小時,系統(tǒng)的容量如何舔株。

容量度量測試遵行有兩種策略

  • 把目標(biāo)設(shè)定為得到穩(wěn)定莺琳、可重現(xiàn)的結(jié)果。專為容量測試準(zhǔn)備一個環(huán)境载慈。
  • 一旦某個測試通過了最低驗收標(biāo)準(zhǔn)惭等,就把驗收標(biāo)準(zhǔn)提高一點,調(diào)整該測試的成功門檻
  • 每個測試都必須體現(xiàn)一個具體的場景办铡,并且只有達到某個標(biāo)準(zhǔn)門檻時辞做,才能認(rèn)為該測試通過

容量測試環(huán)境

  • 容量測試環(huán)境與生產(chǎn)環(huán)境一致。
  • 如果無法提供與生產(chǎn)環(huán)境相似的環(huán)境寡具,可以把容量測試作為金絲雀發(fā)布策略的一部分來執(zhí)行秤茅。更頻繁的發(fā)布可以減小影響應(yīng)用程序容量的修改所帶來的風(fēng)險
  • 容量測試環(huán)境盡可能與生產(chǎn)環(huán)境相似。這樣雖然無法滿足容量目標(biāo)童叠,但是可以把那些嚴(yán)重的問題突顯出來
  • 不要依據(jù)硬件的某種特定參數(shù)對程序的擴展性作出線性推論
  • 復(fù)制應(yīng)用程序一小部分的服務(wù)器進行容量測試框喳,是一個既可以降低環(huán)境成本又能提供適當(dāng)準(zhǔn)確度量的策略

自動化容量測試

  • 一般我們都是把容量測試當(dāng)作一項獨立的工作,但是當(dāng)容量非常重要時,那么就暫且忽視這些時間成本 五垮。這時需要在部署流水線中加入容量測試階段乍惊。
  • 創(chuàng)建一個自動化容量測試套件,且每次對應(yīng)用程序進行修改后放仗,通過了提交測試和驗收測試就應(yīng)該執(zhí)行容量測試润绎。
  • 容量測試要達到如下6個目標(biāo)
  1. 測試具體的現(xiàn)實場景
  2. 預(yù)先設(shè)定成功的門檻
  3. 盡可能讓測試運行時間短一些
  4. 在變更面前要更健壯一些
  5. 組合成大規(guī)模的復(fù)雜場景
  6. 可重復(fù)的,并且既能串行執(zhí)行诞挨,也能并行執(zhí)行

容量測試系統(tǒng)的附加價值

容量測試系統(tǒng)是一個試驗場所莉撇,可以根據(jù)需要有效地控制時間,設(shè)計和執(zhí)行所有的試驗場景來幫助診斷問題惶傻、預(yù)測問題并找到觸發(fā)問題辦法稼钩。

  • 重現(xiàn)生產(chǎn)環(huán)境中發(fā)現(xiàn)的復(fù)雜缺陷
  • 探測并調(diào)試內(nèi)存泄漏
  • 持久性測試
  • 評估垃圾回收的影響
  • 垃圾回收的調(diào)優(yōu)
  • 應(yīng)用程序參數(shù)的調(diào)優(yōu)
  • 第三方應(yīng)用程序配置的調(diào)優(yōu),如操作系統(tǒng)
  • 模擬非正常达罗、最糟糕的情況
  • 評估一些復(fù)雜問題的不同解決方案
  • 模擬集成失敗的情況
  • 度量應(yīng)用程序在不同硬件配置下的可擴展性
  • 與外部系統(tǒng)進行交互的負(fù)載測試
  • 復(fù)雜部署的回滾演練
  • 有選擇地使系統(tǒng)部分或全部癱瘓,從而評估服務(wù)優(yōu)雅降級
  • 在短期可用的生產(chǎn)硬件上執(zhí)行真實世界的容量基準(zhǔn)静秆,以便計算出長期且低配的容量測試環(huán)境中更準(zhǔn)確的擴展因素粮揉。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市抚笔,隨后出現(xiàn)的幾起案子扶认,更是在濱河造成了極大的恐慌,老刑警劉巖殊橙,帶你破解...
    沈念sama閱讀 211,042評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件辐宾,死亡現(xiàn)場離奇詭異,居然都是意外死亡膨蛮,警方通過查閱死者的電腦和手機叠纹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來敞葛,“玉大人誉察,你說我怎么就攤上這事∪切常” “怎么了持偏?”我有些...
    開封第一講書人閱讀 156,674評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長氨肌。 經(jīng)常有香客問我鸿秆,道長,這世上最難降的妖魔是什么怎囚? 我笑而不...
    開封第一講書人閱讀 56,340評論 1 283
  • 正文 為了忘掉前任卿叽,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘附帽。我一直安慰自己埠戳,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,404評論 5 384
  • 文/花漫 我一把揭開白布蕉扮。 她就那樣靜靜地躺著整胃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪喳钟。 梳的紋絲不亂的頭發(fā)上屁使,一...
    開封第一講書人閱讀 49,749評論 1 289
  • 那天,我揣著相機與錄音奔则,去河邊找鬼蛮寂。 笑死,一個胖子當(dāng)著我的面吹牛易茬,可吹牛的內(nèi)容都是我干的酬蹋。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼抽莱,長吁一口氣:“原來是場噩夢啊……” “哼范抓!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起食铐,我...
    開封第一講書人閱讀 37,662評論 0 266
  • 序言:老撾萬榮一對情侶失蹤匕垫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后虐呻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體象泵,經(jīng)...
    沈念sama閱讀 44,110評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年斟叼,在試婚紗的時候發(fā)現(xiàn)自己被綠了偶惠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,577評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡犁柜,死狀恐怖洲鸠,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情馋缅,我是刑警寧澤扒腕,帶...
    沈念sama閱讀 34,258評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站萤悴,受9級特大地震影響瘾腰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜覆履,卻給世界環(huán)境...
    茶點故事閱讀 39,848評論 3 312
  • 文/蒙蒙 一蹋盆、第九天 我趴在偏房一處隱蔽的房頂上張望费薄。 院中可真熱鬧,春花似錦栖雾、人聲如沸楞抡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽召廷。三九已至,卻和暖如春账胧,著一層夾襖步出監(jiān)牢的瞬間竞慢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評論 1 264
  • 我被黑心中介騙來泰國打工治泥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留筹煮,地道東北人。 一個月前我還...
    沈念sama閱讀 46,271評論 2 360
  • 正文 我出身青樓居夹,卻偏偏與公主長得像败潦,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子准脂,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,452評論 2 348

推薦閱讀更多精彩內(nèi)容