軟件質(zhì)量沒有銀彈:阿里巴巴的25個技術(shù)實(shí)踐與坑

摘要:在歐洲中世紀(jì)的傳說中,有一種叫“人狼”的妖怪类浪,就是人面狼身。它們會講人話费就,專在月圓之夜去襲擊人類。而且傳說中對“人狼”用一般的槍彈是不起作用的睬澡,普通子彈都傷不到也打不死它艳汽,只有一種用銀子作成的特殊子彈才能把它殺死。

作者簡介:武小平(平曉)河狐,阿里巴巴測試專家瑟捣,在CICD迈套、自動化測試工具和質(zhì)量管理方面有較多的經(jīng)驗(yàn),目前負(fù)責(zé)阿里巴巴研發(fā)協(xié)同平臺阿里云RDC的測試桑李。

轉(zhuǎn)載來源:研發(fā)協(xié)同RDC微信公號(alirdc)

在歐洲中世紀(jì)的傳說中窿给,有一種叫“人狼”的妖怪,就是人面狼身崩泡。它們會講人話,專在月圓之夜去襲擊人類角撞。而且傳說中對“人狼”用一般的槍彈是不起作用的,普通子彈都傷不到也打不死它热康,只有一種用銀子作成的特殊子彈才能把它殺死。Brooks在他最著名的隨筆文章《No Silver Bullet》里引用了這個典故 姐军,說明在軟件開發(fā)過程里是沒有萬能的終殺性武器的剖踊,只有各種方法綜合運(yùn)用,才是解決之道歇攻。

那么在軟件研發(fā)過程中,哪怕沒有銀彈缴守,如何用各種方法去解決這些“人狼”帶來的威脅呢镇辉?阿里巴巴在多年的研發(fā)過程中,又是如何對付這頭“人狼”忽肛?這一路走來,又有哪些方法和實(shí)踐被沉淀础废?

1.阿里巴巴的研發(fā)平臺是一個怎樣的平臺?

阿里巴巴研發(fā)協(xié)同平臺(AONE)是云上企業(yè)級一站式智能研發(fā)協(xié)同平臺评腺,目前為阿里巴巴集團(tuán),下屬子公司以及生態(tài)合作伙伴提供從“需求->編碼->測試->發(fā)布->反饋”端到端的持續(xù)交付服務(wù)蒿讥,并解決研發(fā)過程中跨角色、跨組織媒殉、跨地區(qū)的協(xié)作問題,在此基礎(chǔ)上通過數(shù)據(jù)驅(qū)動度量分析為組織效能提升提供決策依據(jù)适袜,目前這一平臺已經(jīng)上云對外提供服務(wù)舷夺,稱為阿里云研發(fā)協(xié)同RDC给猾。(以下簡稱為RDC)

刪除

(選填) 圖片描述

上圖是整個RDC的業(yè)務(wù)框架颂跨,RDC采用微服務(wù)的架構(gòu),從規(guī)劃到運(yùn)營提供了業(yè)務(wù)全生命周期的服務(wù)恒削,眾多的服務(wù)造成了RDC的復(fù)雜度,另一方面作為一個面向用戶的平臺躯砰,RDC又涵蓋了阿里三個層次的技術(shù)服務(wù)棧携丁。

第一層,基礎(chǔ)資源層梦鉴,包括idc機(jī)房、網(wǎng)絡(luò)設(shè)施魄宏、OS、Docker宠互、數(shù)據(jù)庫等。

第二層名秀,平臺服務(wù)層,包括中間件匕得、調(diào)度層、應(yīng)用服務(wù)器等略吨。

第三層,RDC研發(fā)協(xié)同平臺翠忠,包括 項(xiàng)目乞榨、代碼、應(yīng)用吃既、測試、交付河质、運(yùn)營的管理。

三個層次加起來涉及的核心應(yīng)用達(dá)50+掀鹅,隨便一個風(fēng)吹草動就會對系統(tǒng)的穩(wěn)定性造成影響媒楼,這些影響最終體現(xiàn)到面向用戶的RDC,因此好的質(zhì)量保障才能為用戶提供一個穩(wěn)定匣砖,高可用性的研發(fā)協(xié)同平臺。

2.質(zhì)量保障策略

刪除

(選填) 圖片描述

總體采用 “事前預(yù)防”对人,“事中控制”拂共,“事后總結(jié)改進(jìn)”的思想,主要做的三件事情:

測試驅(qū)動持續(xù)交付測試驅(qū)動持續(xù)交付势告,每一次的持續(xù)集成和發(fā)布都從單元測試,API測試咱台,集成測試,UI測試進(jìn)行自動化測試覆蓋回溺;具體包括:單元測試,集成測試遗遵,WebUI測試,移動端UI測試允粤,壓測,線上引流的API測試类垫,線上冒煙測試登澜。

線上質(zhì)量監(jiān)控對線上質(zhì)量的保障,主要采用監(jiān)控的方式脑蠕,希望一有問題就能及時發(fā)現(xiàn)解決谴仙,避免問題的大面積擴(kuò)大。主要包括:

(1) 機(jī)器監(jiān)控報(bào)警晃跺,業(yè)務(wù)數(shù)據(jù)監(jiān)控毫玖。

(2) 對線上運(yùn)行日志的聚合分析,發(fā)現(xiàn)存在的錯誤付枫。

(3) SLA數(shù)據(jù)質(zhì)量提升,將業(yè)務(wù)數(shù)據(jù)可視化二打,指導(dǎo)改進(jìn)方向。

(4) 面向業(yè)務(wù)的監(jiān)控和故障演練继效,通過對線上7*24的監(jiān)控提前發(fā)現(xiàn)問題保障系統(tǒng)的穩(wěn)定運(yùn)行。

研發(fā)質(zhì)量提升通過代碼審核瑞信,集團(tuán)規(guī)約掃描,規(guī)范代碼和提升研發(fā)質(zhì)量凡简。

3. 持續(xù)交付流程

刪除

(選填) 圖片描述

上圖是測試驅(qū)動的的持續(xù)交付流程潘鲫,也是RDC各個應(yīng)用在發(fā)布時的持續(xù)交付流程,通過RDC的發(fā)布功能實(shí)現(xiàn)溉仑。

(1) 開發(fā)在變更(Change Request)中提交代碼后,觸發(fā)單元測試怨喘,檢查代碼中基本的邏輯問題,實(shí)踐中單測的覆蓋率和維護(hù)由開發(fā)同學(xué)自己保證必怜,目前RDC核心應(yīng)用的單測行覆蓋率在50%左右后频。

(2) 部署測試環(huán)境,開發(fā)進(jìn)行自測卑惜,主要對新的功能進(jìn)行基本的驗(yàn)證。測試環(huán)境與生產(chǎn)環(huán)境完全隔離更米,具有獨(dú)立的網(wǎng)絡(luò)環(huán)境,單獨(dú)的數(shù)據(jù)庫和中間件等依賴環(huán)境征峦。

(3) 自測完成后發(fā)布預(yù)發(fā)環(huán)境消请,由測試同學(xué)進(jìn)行集成測試,包括回歸測試和新功能的驗(yàn)證梯啤,以及對核心接口的小壓測。預(yù)發(fā)環(huán)境與生產(chǎn)環(huán)境在同一個網(wǎng)絡(luò)中七婴,共享同一個數(shù)據(jù)庫,數(shù)據(jù)隔離采用邏輯隔離打厘,但是它具有一個獨(dú)立的依賴環(huán)境,如獨(dú)立的上下游和中間件户盯。

(4) 接著進(jìn)入Beta測試環(huán)節(jié),通過截取一部分生產(chǎn)環(huán)境的流量到Beta環(huán)境回放來對核心接口做進(jìn)一步的驗(yàn)證吗伤。Beta環(huán)境與線上環(huán)境完全相同,不同的是Beta環(huán)境不對外提供服務(wù)足淆。

(5) Beta測試完成后礁阁,正式發(fā)布生產(chǎn)環(huán)境并對生產(chǎn)環(huán)境執(zhí)行冒煙測試。

以上是一個變更的生命周期姥闭,也是一次完整的持續(xù)交付流程。得益于RDC發(fā)布系統(tǒng)和RDC實(shí)驗(yàn)室的集成靠欢,我們可以在持續(xù)交付的流程中實(shí)現(xiàn)測試的卡點(diǎn),測試不通過掺涛,無法進(jìn)入下一個階段的發(fā)布疼进。

4.測試技術(shù)和方法

以下內(nèi)容重點(diǎn)討論測試方法和實(shí)現(xiàn)方案秧廉,以及如何通過RDC完成持續(xù)交付,不涉及代碼實(shí)現(xiàn)嚼锄,部分服務(wù)也會在未來上云提供給外部用戶試用。

4.1 分層的自動化測試


原文鏈接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末区丑,一起剝皮案震驚了整個濱河市沧侥,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宴杀,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件旷余,死亡現(xiàn)場離奇詭異,居然都是意外死亡正卧,警方通過查閱死者的電腦和手機(jī)跪解,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來砾跃,“玉大人,你說我怎么就攤上這事抽高。” “怎么了翘骂?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵帚豪,是天一觀的道長。 經(jīng)常有香客問我狸臣,道長,這世上最難降的妖魔是什么诈泼? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任煤禽,我火速辦了婚禮,結(jié)果婚禮上檬果,老公的妹妹穿的比我還像新娘唐断。我一直安慰自己杭抠,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布斤程。 她就那樣靜靜地躺著菩混,像睡著了一般。 火紅的嫁衣襯著肌膚如雪沮峡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天棍弄,我揣著相機(jī)與錄音,去河邊找鬼呼畸。 笑死,一個胖子當(dāng)著我的面吹牛蛮原,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播另绩,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蹦漠!你這毒婦竟也來了车海?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤侍芝,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體莺禁,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年楼熄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片可岂。...
    茶點(diǎn)故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖稚茅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情亚享,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布欺税,位于F島的核電站揭璃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏瘦馍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一哲银、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧荆责,春花似錦、人聲如沸做院。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽柑营。三九已至,卻和暖如春官套,著一層夾襖步出監(jiān)牢的瞬間蚁孔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工杠氢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留另伍,地道東北人。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓温艇,卻偏偏與公主長得像,于是被迫代替她去往敵國和親中贝。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評論 2 355

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

  • 提起小學(xué)階段的語文學(xué)習(xí)邻寿,大多數(shù)學(xué)生及家長都會擔(dān)憂“閱讀”和“寫作”兩個板塊视哑。如果說“寫作”水平體現(xiàn)了語文的綜合素養(yǎng)...
    一笑隨風(fēng)閱讀 410評論 4 3
  • 1. 軍小寶早熟,還在學(xué)“床前明月光”的時候就明白了“上床”的具體情節(jié)蒜撮,當(dāng)時她就在思考,爸爸到底有沒有跟媽媽嗯嗯嗯...
    飯盒君閱讀 313評論 0 1
  • 常見的CSS選擇器 基礎(chǔ)選擇器(*段磨,#id耗绿,.class苹支,element) 組合選擇器 屬性選擇器(h1误阻,p,a....
    王難道閱讀 215評論 0 0