DevOps中的測(cè)試

本文為《DevOps軟件架構(gòu)師行動(dòng)指南》一書測(cè)試相關(guān)章節(jié)的學(xué)習(xí)筆記。

DevOps

DevOps是一套實(shí)踐方法瑟啃,在保證高質(zhì)量的前提下,縮短系統(tǒng)變更從提交到部署至生產(chǎn)環(huán)境的時(shí)間。

DevOps五要素

  • 敏捷
  • 持續(xù)
  • 協(xié)作
  • 系統(tǒng)性
  • 自動(dòng)化

部署流水線

部署流水線是從開發(fā)提交代碼篮奄,到代碼實(shí)際部署到正式生產(chǎn)環(huán)境的流程展氓。

部署流水線.jpeg
  1. 開始:開發(fā)人員把代碼提交至聯(lián)合版本(dev穆趴、test、master)
  2. 在本地環(huán)境執(zhí)行提交前測(cè)試
  3. 測(cè)試通過后遇汞,提交代碼未妹,提交操作觸發(fā)集成構(gòu)建簿废,并進(jìn)行集成測(cè)試
  4. 集成測(cè)試通過,提升到準(zhǔn)生產(chǎn)環(huán)境(預(yù)發(fā)布環(huán)境)络它,再次測(cè)試
  5. 測(cè)試通過后族檬,部署到生產(chǎn)環(huán)境,并進(jìn)行密切監(jiān)控
  6. 經(jīng)過一段時(shí)間的密切監(jiān)控后化戳,部署到正式生產(chǎn)環(huán)境
  7. 結(jié)束
  • 持續(xù)集成:通過自動(dòng)觸發(fā)器進(jìn)行集成单料,直到集成測(cè)試
  • 持續(xù)交付:使用自動(dòng)觸發(fā)器,直到預(yù)發(fā)布系統(tǒng)
  • 持續(xù)部署:直到部署到生產(chǎn)系統(tǒng)点楼,都是自動(dòng)化的

環(huán)境

不同環(huán)境用于不同的測(cè)試類型扫尖。成功完成的測(cè)試越多,對(duì)系統(tǒng)版本質(zhì)量更有信心掠廓。

  • 提交前:開發(fā)本地環(huán)境或開發(fā)服務(wù)器换怖,有更詳細(xì)的日志記錄以幫助發(fā)現(xiàn)缺陷
  • 構(gòu)建與集成測(cè)試:持續(xù)集成服務(wù)器,有足夠多的測(cè)試數(shù)據(jù)
  • 用戶驗(yàn)收測(cè)試/預(yù)發(fā)布/性能測(cè)試:盡可能接近生產(chǎn)環(huán)境蟀瞧。數(shù)據(jù)庫應(yīng)包含真實(shí)生產(chǎn)數(shù)據(jù)的一個(gè)子集
  • 生產(chǎn):正式生產(chǎn)環(huán)境沉颂,應(yīng)有足夠的資源以滿足其日常需要

測(cè)試關(guān)注點(diǎn)

  • 測(cè)試框架
    軟件以及配置的測(cè)試數(shù)據(jù),通過在各種條件下運(yùn)行它悦污,并對(duì)行為和輸出進(jìn)行監(jiān)控铸屉,來測(cè)試一個(gè)程序單元。測(cè)試框架會(huì)產(chǎn)生報(bào)表塞关,并識(shí)別測(cè)試失敗的測(cè)試用例抬探。
  • 負(fù)面測(cè)試
    即異常測(cè)試。違背正確輸入和執(zhí)行順序操作的測(cè)試帆赢。在進(jìn)行異常測(cè)試時(shí)小压,常見期望是程序可能優(yōu)雅地降級(jí)或失敗。若故障不可避免椰于,反饋有意義的錯(cuò)誤信息怠益,并以可控方式退出。
  • 回歸測(cè)試:
    ①在程序變更后力求發(fā)現(xiàn)新的缺陷
    ②確保已經(jīng)被修復(fù)的缺陷不再被引入

部署流水線的不同測(cè)試

在部署流水線流程中瘾婿,代碼提交前蜻牢、構(gòu)建后、預(yù)發(fā)布環(huán)境偏陪、生產(chǎn)環(huán)境都有測(cè)試參與抢呆。

在開發(fā)和提交前測(cè)試中的測(cè)試

在開發(fā)過程中有兩種類型的測(cè)試過程。測(cè)試驅(qū)動(dòng)開發(fā)和單元測(cè)試笛谦。

  • 測(cè)試驅(qū)動(dòng)開發(fā)
    傳統(tǒng)開發(fā)流程:先概要設(shè)計(jì)抱虐,再詳細(xì)設(shè)計(jì),編碼完成后進(jìn)行測(cè)試饥脑。
    測(cè)試驅(qū)動(dòng)開發(fā):先開發(fā)自動(dòng)化測(cè)試恳邀,再編碼開發(fā)功能懦冰,直到測(cè)試通過。

  • 單元測(cè)試
    在知曉系統(tǒng)代碼的前提下谣沸,對(duì)單獨(dú)類或方法進(jìn)行測(cè)試刷钢。

在執(zhí)行提交前,自動(dòng)地運(yùn)行以上測(cè)試乳附。提交前測(cè)試通常包含一組相關(guān)的單元測(cè)試内地,還有幾個(gè)冒煙測(cè)試。目標(biāo)是在集成測(cè)試前可以發(fā)現(xiàn)通過單元測(cè)試但未破壞整體系統(tǒng)的缺陷许溅。一旦測(cè)試通過瓤鼻,就可以執(zhí)行代碼提交操作了。

集成測(cè)試

對(duì)系統(tǒng)已構(gòu)建的可執(zhí)行部分的測(cè)試贤重。

功能測(cè)試

對(duì)已構(gòu)建提交的整體系統(tǒng)的功能進(jìn)行逐個(gè)測(cè)試茬祷,測(cè)試是否滿足需求,功能能否正常并蝗,滿足用戶使用需求祭犯。

接口測(cè)試

對(duì)已提交的功能對(duì)應(yīng)的接口進(jìn)行測(cè)試,從接口層面底層是否滿足健壯性滚停,容錯(cuò)性沃粗,易用性。

自動(dòng)化測(cè)試

豐富自動(dòng)化測(cè)試用例键畴,將測(cè)試過的主流測(cè)試功能轉(zhuǎn)化為自動(dòng)化腳本最盅,在后期的回歸測(cè)試中更加容易減少人工投入,豐富測(cè)試手段起惕。

用戶驗(yàn)收測(cè)試/預(yù)發(fā)布/性能測(cè)試

預(yù)發(fā)布是系統(tǒng)部署到生產(chǎn)環(huán)境前的最后一步涡贱,因此預(yù)發(fā)布環(huán)境應(yīng)盡可能貼近生產(chǎn)環(huán)境。在這個(gè)步驟中有以下測(cè)試類型:

  • 用戶驗(yàn)收測(cè)試(UAT)
    相關(guān)的用戶或獨(dú)立測(cè)試人員根據(jù)測(cè)試計(jì)劃和結(jié)果對(duì)系統(tǒng)進(jìn)行測(cè)試和接收惹想。
    可根據(jù)測(cè)試腳本測(cè)試问词,也可使用探索性測(cè)試。
  • 自動(dòng)化驗(yàn)收測(cè)試
    對(duì)最重要的嘀粱、需要重復(fù)執(zhí)行的激挪,且不太需要做很多維護(hù)的檢查點(diǎn)實(shí)現(xiàn)自動(dòng)化
  • 冒煙測(cè)試
    是自動(dòng)化驗(yàn)收測(cè)試的一個(gè)自己,用于快速分析提交的代碼是否影響到系統(tǒng)的某些核心功能
  • 非功能測(cè)試
    對(duì)性能锋叨、安全垄分、容量以及可用性等方面的測(cè)試

生產(chǎn)環(huán)境

在系統(tǒng)部署到生產(chǎn)環(huán)境后,還會(huì)繼續(xù)進(jìn)行觀察和測(cè)試娃磺。

早期發(fā)布

  • beta發(fā)布
    將產(chǎn)品有計(jì)劃地發(fā)布給特定用戶锋喜,讓用戶大量使用來發(fā)現(xiàn)軟件存在的問題與錯(cuò)誤,再把信息反饋給開發(fā)者修改。

  • 金絲雀發(fā)布
    若系統(tǒng)部署有多臺(tái)服務(wù)器嘿般,先將新版本部署到其中幾臺(tái)服務(wù)器上,然后觀察驗(yàn)證涯冠。確認(rèn)沒有異常后炉奴,后續(xù)再更新剩余的所有服務(wù)器。
    若只有一臺(tái)服務(wù)器蛇更,不可以使用金絲雀發(fā)布瞻赶。

  • A/B測(cè)試
    beta發(fā)布與金絲雀發(fā)布是發(fā)布策略,A/B測(cè)試關(guān)注的是發(fā)布效果派任。
    線上同時(shí)運(yùn)行多個(gè)版本的服務(wù)砸逊,不同服務(wù)會(huì)有一些體驗(yàn)上的差異。相關(guān)人員通過分析各個(gè)版本的實(shí)際效果確定哪個(gè)版本執(zhí)行得更好掌逛。
    例如:推薦算法师逸、用戶界面

錯(cuò)誤檢測(cè)

即使系統(tǒng)通過所有測(cè)試,還是有可能存在缺陷豆混。
對(duì)于檢測(cè)非功能的錯(cuò)誤篓像,可以對(duì)系統(tǒng)信息進(jìn)行監(jiān)控。監(jiān)控包括:用戶請(qǐng)求的響應(yīng)時(shí)間皿伺、隊(duì)列長(zhǎng)度等员辩。當(dāng)監(jiān)控?cái)?shù)據(jù)與歷史數(shù)據(jù)有偏差時(shí),會(huì)觸發(fā)報(bào)警并通知給相關(guān)人員鸵鸥。
在檢測(cè)到錯(cuò)誤后奠滑,為了對(duì)錯(cuò)誤進(jìn)行跟蹤溯源,一般要求系統(tǒng)日志有合適的記錄妒穴。
在錯(cuò)誤診斷并修復(fù)后宋税,會(huì)在未來發(fā)布的版本進(jìn)行回歸測(cè)試。

現(xiàn)場(chǎng)測(cè)試

在系統(tǒng)部署后宰翅,通過特殊手段干擾正在運(yùn)行的系統(tǒng)弃甥。例如:宕服務(wù)、宕虛擬機(jī)汁讼、模擬網(wǎng)絡(luò)變慢等淆攻。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市嘿架,隨后出現(xiàn)的幾起案子瓶珊,更是在濱河造成了極大的恐慌,老刑警劉巖耸彪,帶你破解...
    沈念sama閱讀 221,548評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件伞芹,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)唱较,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,497評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門扎唾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人南缓,你說我怎么就攤上這事胸遇。” “怎么了汉形?”我有些...
    開封第一講書人閱讀 167,990評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵纸镊,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我概疆,道長(zhǎng)逗威,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,618評(píng)論 1 296
  • 正文 為了忘掉前任岔冀,我火速辦了婚禮凯旭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘楣颠。我一直安慰自己尽纽,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,618評(píng)論 6 397
  • 文/花漫 我一把揭開白布童漩。 她就那樣靜靜地躺著弄贿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪矫膨。 梳的紋絲不亂的頭發(fā)上差凹,一...
    開封第一講書人閱讀 52,246評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音侧馅,去河邊找鬼危尿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛馁痴,可吹牛的內(nèi)容都是我干的谊娇。 我是一名探鬼主播,決...
    沈念sama閱讀 40,819評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼罗晕,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼济欢!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起小渊,我...
    開封第一講書人閱讀 39,725評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤法褥,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后酬屉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體半等,經(jīng)...
    沈念sama閱讀 46,268評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡揍愁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,356評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了杀饵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片莽囤。...
    茶點(diǎn)故事閱讀 40,488評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖凹髓,靈堂內(nèi)的尸體忽然破棺而出烁登,到底是詐尸還是另有隱情,我是刑警寧澤蔚舀,帶...
    沈念sama閱讀 36,181評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站锨络,受9級(jí)特大地震影響赌躺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜羡儿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,862評(píng)論 3 333
  • 文/蒙蒙 一礼患、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧掠归,春花似錦缅叠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,331評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至厨相,卻和暖如春领曼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蛮穿。 一陣腳步聲響...
    開封第一講書人閱讀 33,445評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工庶骄, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人践磅。 一個(gè)月前我還...
    沈念sama閱讀 48,897評(píng)論 3 376
  • 正文 我出身青樓单刁,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親府适。 傳聞我的和親對(duì)象是個(gè)殘疾皇子羔飞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,500評(píng)論 2 359

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

  • 軟件行業(yè)正在向更加快速交付轉(zhuǎn)型,新的工具和技術(shù)對(duì)測(cè)試人員構(gòu)成更大的挑戰(zhàn)细溅,適應(yīng)這種快節(jié)奏有太多內(nèi)容需要學(xué)習(xí)褥傍,而且常常...
    城下秋草閱讀 868評(píng)論 0 0
  • 原文:https://www.tricentis.com/wp-content/作者:Wayne Ariola碎碎...
    CC先生之簡(jiǎn)書閱讀 2,949評(píng)論 0 5
  • 盡管DevOps仍需要手動(dòng)測(cè)試,但測(cè)試人員能做的還有很多喇聊。 DevOps需要在各個(gè)階段進(jìn)行協(xié)作恍风,因此,使開發(fā)人員和...
    FunTester閱讀 230評(píng)論 0 0
  • DevOps四大能力的建設(shè)需要實(shí)踐與工具進(jìn)行支撐,結(jié)合能力建設(shè)的要求朋贬,實(shí)踐主要分布在持續(xù)交付和技術(shù)運(yùn)營(yíng)兩大領(lǐng)域凯楔,包...
    AIOPstack閱讀 2,863評(píng)論 1 12
  • 我是黑夜里大雨紛飛的人啊 1 “又到一年六月,有人笑有人哭锦募,有人歡樂有人憂愁摆屯,有人驚喜有人失落,有的覺得收獲滿滿有...
    陌忘宇閱讀 8,542評(píng)論 28 53