阿里巴巴分層自動(dòng)化實(shí)踐之路

該文章為轉(zhuǎn)載垢啼,如有侵權(quán) 請(qǐng)聯(lián)系本人郵箱:bxf0321@qq.com

自動(dòng)化測(cè)試是軟件測(cè)試技術(shù)上的一大進(jìn)步窜锯,我們都知道自動(dòng)化測(cè)試可以給工作提效,減少重復(fù)勞動(dòng)芭析,但在實(shí)踐過(guò)程中衬浑,卻總是碰到各種各樣的問(wèn)題,導(dǎo)致進(jìn)入自動(dòng)化測(cè)試盲區(qū)放刨。如何做好自動(dòng)化測(cè)試,是很多企業(yè)迫切想要解決的問(wèn)題尸饺。阿里巴巴旗下一站式研發(fā)提效平臺(tái)——云效进统,將于12月8日16:00開(kāi)啟《阿里巴巴持續(xù)集成持續(xù)交付之分層自動(dòng)化》直播分享,為企業(yè)提供自動(dòng)化測(cè)試解決方案浪听。今天我們先來(lái)看看阿里巴巴嘉賓的部分解讀螟碎。

嘉賓介紹:金桐:阿里巴巴B2B事業(yè)群高級(jí)產(chǎn)品經(jīng)理。從事多年互聯(lián)網(wǎng)系統(tǒng)的研發(fā)和測(cè)試工作〖Kǎ現(xiàn)在主要負(fù)責(zé)云效分層自動(dòng)化測(cè)試的產(chǎn)品設(shè)計(jì)掉分。

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

所謂自動(dòng)化測(cè)試,就是用程序模擬用戶手工操作的一種測(cè)試方法克伊,能夠幫助測(cè)試人員從重復(fù)酥郭、枯燥的手工測(cè)試中解放出來(lái)。但在自動(dòng)化實(shí)踐過(guò)程中愿吹,測(cè)試人員往往發(fā)現(xiàn)理想和現(xiàn)實(shí)之間差距很大不从。

圖1

上圖不難看出,阿里該部門(mén)這一周的自動(dòng)化失敗次數(shù)不僅沒(méi)有與發(fā)現(xiàn)bug數(shù)成正比犁跪,還浪費(fèi)了測(cè)試人員41次自動(dòng)化失敗的排查時(shí)間椿息,而這些時(shí)間對(duì)于做自動(dòng)化查bug的初衷,都是無(wú)意義坷衍、不必要寝优、也無(wú)技術(shù)含量之舉。

為什么外部環(huán)境枫耳、業(yè)務(wù)變更乏矾、應(yīng)用環(huán)境問(wèn)題、執(zhí)行機(jī)問(wèn)題、數(shù)據(jù)問(wèn)題妻熊、框架問(wèn)題這些都能引起這么多失敗呢夸浅?而單單真正查出bug的概率這么低呢?

結(jié)合我們的多年自動(dòng)化實(shí)踐與總結(jié)扔役,自動(dòng)化存在如下圖這些缺點(diǎn):

圖2

成本:

人員成本高:基本要懂某種自動(dòng)化框架的代碼語(yǔ)言帆喇,要有一定的編碼能力,同時(shí)代碼邏輯要清晰亿胸,否則如何能保證合理性坯钦、邏輯性、業(yè)務(wù)性與健壯性這些大大影響自動(dòng)化成功率的因素侈玄?如何能保證自動(dòng)化測(cè)試腳本本身沒(méi)有bug婉刀?

環(huán)境成本高:開(kāi)發(fā)環(huán)境、運(yùn)行環(huán)境序仙、調(diào)度環(huán)境等等突颊,接觸過(guò)代碼的同學(xué)都知道,一次環(huán)境的安裝潘悼,沒(méi)有大半天甚至一天是完不成的律秃。同時(shí)要讓自動(dòng)化對(duì)接到項(xiàng)目自動(dòng)化流程中,或定時(shí)監(jiān)控等治唤,都需要再開(kāi)發(fā)調(diào)度平臺(tái)棒动,這些成本對(duì)于從0到有的測(cè)試組,甚至是一家公司宾添,將會(huì)是多大船惨?需要投入多少人日的工作量可以完成這些?

效果:

從圖1分析就知道效果如何缕陕,然而圖1還只是阿里某部門(mén)單周的一個(gè)采樣粱锐,就已經(jīng)浪費(fèi)了41次排查時(shí)間,這樣的自動(dòng)化測(cè)試扛邑,若運(yùn)行一年卜范,那效果又會(huì)如何?能確保后面沒(méi)有這些干擾的失敗嗎鹿榜?失敗次數(shù)可以和bug數(shù)成正比嗎海雪?

覆蓋率:

經(jīng)常有同學(xué)抱怨自動(dòng)化的覆蓋率低,很多分支和邏輯無(wú)法覆蓋舱殿,這大部分原因是這些同學(xué)的理解偏差奥裸,很多人都將UI自動(dòng)化作為自動(dòng)化測(cè)試的全部。然而沒(méi)有一種自動(dòng)化測(cè)試框架可以覆蓋一個(gè)系統(tǒng)的所有功能點(diǎn)的測(cè)試沪袭,所以出現(xiàn)“自動(dòng)化”覆蓋率低的觀點(diǎn)湾宙。那該如何提高自動(dòng)化的覆蓋率呢樟氢?

及時(shí)性:

其實(shí)從圖1中的10次業(yè)務(wù)變更引起的自動(dòng)化失敗,就是這一缺點(diǎn)的佐證侠鳄。所謂業(yè)務(wù)變更埠啃,是指正常的項(xiàng)目變更,但腳本未及時(shí)更新引起的自動(dòng)化失敗伟恶。這種失敗恰恰又證明自動(dòng)化測(cè)試是有用的碴开,只要測(cè)試覆蓋到的內(nèi)容,一旦有變博秫,自動(dòng)化就能測(cè)試出來(lái)潦牛。那如何提高我們的腳本及時(shí)性呢?

面對(duì)這些問(wèn)題挡育,我們不禁自問(wèn):做自動(dòng)化測(cè)試真的有必要嗎巴碗?如果有必要,那如何降低這些成本即寒,如何提高測(cè)試效果呢橡淆?經(jīng)過(guò)不斷的實(shí)踐,我們引入了分層自動(dòng)化測(cè)試的策略母赵。

分層自動(dòng)化的理念是什么明垢?

在理解分層自動(dòng)化之前寺晌,我們先看自動(dòng)化測(cè)試金字塔。自動(dòng)化測(cè)試金字塔在測(cè)試領(lǐng)域耳熟能詳办桨,其中ui代表頁(yè)面級(jí)系統(tǒng)測(cè)試事扭,service代表服務(wù)業(yè)務(wù)測(cè)試(接口測(cè)試),unit代表單元測(cè)試妒穴。金字塔越高,表示需要投入的精力和工作量越大。

單元測(cè)試(unit):它可以通過(guò)mock框架谷醉,模擬各種異常場(chǎng)景,外部依賴(lài)最少冈闭,且可以做到測(cè)試粒度到最小的一種測(cè)試方法俱尼。也因?yàn)橐蕾?lài)少,可方便隨時(shí)隨地執(zhí)行萎攒,也讓問(wèn)題排查很簡(jiǎn)單遇八。這是一切測(cè)試的地基。

接口測(cè)試(service):這里要求測(cè)試人員對(duì)系統(tǒng)的結(jié)構(gòu)和系統(tǒng)間的調(diào)度非常清楚耍休,同時(shí)要了解接口邏輯關(guān)系刃永,否則接口測(cè)試代碼很容易遺漏一些異常場(chǎng)景。這一層由于含有一些業(yè)務(wù)邏輯和多接口的一個(gè)集成羊精,所以相對(duì)單元測(cè)試來(lái)說(shuō)斯够,多了一些外界依賴(lài),導(dǎo)致問(wèn)題定位不會(huì)有單元測(cè)試層那么準(zhǔn)確。因此投入會(huì)比單元測(cè)試多一些读规。

頁(yè)面測(cè)試(ui):是常見(jiàn)的黑盒自動(dòng)化測(cè)試場(chǎng)景抓督。它最接近用戶真實(shí)場(chǎng)景,也容易發(fā)現(xiàn)問(wèn)題束亏,但它的實(shí)現(xiàn)成本較高且太容易受外部依賴(lài)铃在,影響腳本成功率,所以處在金字塔的頂端枪汪,但它不是金字塔的全部涌穆。自動(dòng)化測(cè)試的劣勢(shì),其中80%都是因?yàn)閡i自動(dòng)化雀久。

以上就是分層自動(dòng)化的主體三層宿稀,由此可見(jiàn),分層自動(dòng)化測(cè)試倡導(dǎo)的就是赖捌,將系統(tǒng)分層祝沸,不同層次用合適的自動(dòng)化方法進(jìn)行測(cè)試的一種測(cè)試策略。某個(gè)項(xiàng)目是否都能用自動(dòng)化覆蓋越庇,那就要看測(cè)試負(fù)責(zé)人的分層策略是否合理罩锐、全面。

通過(guò)實(shí)踐發(fā)現(xiàn)卤唉,如果只是簡(jiǎn)單使用分層自動(dòng)化測(cè)試涩惑,研發(fā)測(cè)試比最多提升到4:1,那么阿里巴巴研發(fā)測(cè)試比平均8:1桑驱,這是怎么實(shí)現(xiàn)的呢竭恬?

阿里巴巴分層自動(dòng)化實(shí)踐

阿里巴巴分層自動(dòng)化在經(jīng)過(guò)長(zhǎng)期實(shí)踐中,從自動(dòng)化成本和效果這兩個(gè)重要缺點(diǎn)

上突破熬的,進(jìn)行分層自動(dòng)化工具和項(xiàng)目流程的雙重革命痊硕,最終達(dá)到業(yè)內(nèi)領(lǐng)先的研發(fā)測(cè)試比。

首先押框,分層自動(dòng)化工具革命

自動(dòng)化測(cè)試框架岔绸,無(wú)論ui,接口還是單元橡伞,外部開(kāi)源框架盒揉、收費(fèi)軟件等很多,各有利弊兑徘。阿里測(cè)試綜合多種框架的實(shí)踐预烙,對(duì)其進(jìn)行改良與創(chuàng)新,突破了傳統(tǒng)自動(dòng)化框架的眾多難題道媚,大大降低了自動(dòng)化的成本扁掸、提升了自動(dòng)化效果翘县。如下圖所示的四款重要工具,AUI主攻UI自動(dòng)化谴分,SAT主攻接口自動(dòng)化锈麸,Amon主攻單元測(cè)試,以及Perf主攻性能牺蹄,在傳統(tǒng)測(cè)試框架基礎(chǔ)的弱點(diǎn)上進(jìn)行全面攻克與改造忘伞,最終實(shí)現(xiàn)鳥(niǎo)槍換大炮,全面提升測(cè)試工作效率沙兰。

不僅如此氓奈,阿里云效還從需求-開(kāi)發(fā)-測(cè)試-發(fā)布整個(gè)項(xiàng)目流程中可工具化、平臺(tái)化的手工工作鼎天,全面進(jìn)行工具化舀奶、平臺(tái)化的改造,如圖所示斋射。

開(kāi)發(fā)環(huán)節(jié)育勺,從拉分支開(kāi)始,到自測(cè)的部署環(huán)境與單元測(cè)試罗岖,全部平臺(tái)工具化涧至。一鍵拉分支、一鍵部署桑包、一鍵觸發(fā)單測(cè)集成南蓬,不到喝杯咖啡的時(shí)間,即可查看環(huán)境部署結(jié)果和findbugs哑了、PMD赘方、Sonar等代碼掃描結(jié)果。

測(cè)試環(huán)節(jié)垒手,手工測(cè)試中有用例和缺陷兩款主打產(chǎn)品,平臺(tái)沉淀倒信,無(wú)需再做一些文件傳輸科贬,加上前面介紹的分層自動(dòng)化相關(guān)測(cè)試平臺(tái)與工具,在自動(dòng)化測(cè)試工作上的效率提升鳖悠,最終實(shí)現(xiàn)整體測(cè)試工作的平臺(tái)與工具化榜掌。

其次,項(xiàng)目流程革命

除了單個(gè)工具的成本減少與效果提升乘综,云效還優(yōu)化了項(xiàng)目流程憎账。

如下圖是我們常見(jiàn)的項(xiàng)目流程,其中自動(dòng)化測(cè)試工作經(jīng)常只有單一自動(dòng)化測(cè)試框架進(jìn)行測(cè)試卡辰。

通過(guò)前文的分析胞皱,分層自動(dòng)化才能全面覆蓋我們整個(gè)項(xiàng)目功能邪意,因此,我們將流程改為如下圖所示流程反砌。

這樣的流程雾鬼,經(jīng)過(guò)長(zhǎng)期實(shí)踐發(fā)現(xiàn),研發(fā)測(cè)試比最多提升到3:1宴树,是否還有改進(jìn)空間呢策菜?

我們?cè)倏催@些流程,可以看到測(cè)試工作酒贬,尤其是自動(dòng)化測(cè)試工作又憨,獨(dú)立于開(kāi)發(fā)項(xiàng)目流程。這種流程帶來(lái)最直接的問(wèn)題就是自動(dòng)化發(fā)現(xiàn)問(wèn)題不及時(shí)锭吨,對(duì)于開(kāi)發(fā)自測(cè)項(xiàng)目也沒(méi)有很好的介入保障蠢莺,同時(shí)全手工觸發(fā),人為因素影響非常大耐齐,這是限制開(kāi)發(fā)測(cè)試比大幅提升的重要原因浪秘。

假設(shè)我們的項(xiàng)目在合理運(yùn)用分層自動(dòng)化的測(cè)試策略后,并將其觸發(fā)-問(wèn)題排查-結(jié)果反饋都平臺(tái)化地納入到整個(gè)需求-開(kāi)發(fā)-測(cè)試-發(fā)布這個(gè)項(xiàng)目流程中埠况,會(huì)產(chǎn)生什么樣的效果呢耸携?

將自動(dòng)化的結(jié)果反饋?zhàn)兂闪税l(fā)布的必要環(huán)節(jié),每一項(xiàng)自動(dòng)化測(cè)試結(jié)果都變成發(fā)布環(huán)節(jié)的重要開(kāi)發(fā)辕翰,又會(huì)產(chǎn)生什么樣的效果夺衍?

我們的自動(dòng)化測(cè)試,只能用于測(cè)試介入的項(xiàng)目測(cè)試么喜命,只能用于測(cè)試介入的發(fā)布么沟沙?我們是否還能用做日常業(yè)務(wù)保障?是否可以在項(xiàng)目中的bug出現(xiàn)初期就發(fā)現(xiàn)問(wèn)題呢壁榕?

無(wú)論是測(cè)試工具革命還是測(cè)試流程改進(jìn)矛紫,都留給我們很多疑問(wèn),正是這些疑問(wèn)牌里,讓自動(dòng)化測(cè)試成為一把雙刃劍颊咬,用的好可以大幅提升效率,降低成本投入牡辽,用的不好則可能成為雞肋喳篇,阻礙效率提升。所以學(xué)習(xí)如何進(jìn)行自動(dòng)化測(cè)試态辛,如何把握分層自動(dòng)化的分層策略麸澜,如何將分層自動(dòng)化融入到項(xiàng)目流程中,是企業(yè)必須掌握的測(cè)試技巧奏黑。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末炊邦,一起剝皮案震驚了整個(gè)濱河市编矾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌铣耘,老刑警劉巖洽沟,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蜗细,居然都是意外死亡裆操,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)炉媒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)踪区,“玉大人,你說(shuō)我怎么就攤上這事吊骤《懈冢” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵白粉,是天一觀的道長(zhǎng)传泊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)鸭巴,這世上最難降的妖魔是什么眷细? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮鹃祖,結(jié)果婚禮上溪椎,老公的妹妹穿的比我還像新娘。我一直安慰自己恬口,他們只是感情好校读,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著祖能,像睡著了一般歉秫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上养铸,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天雁芙,我揣著相機(jī)與錄音,去河邊找鬼揭厚。 笑死却特,一個(gè)胖子當(dāng)著我的面吹牛扶供,可吹牛的內(nèi)容都是我干的筛圆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼椿浓,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼太援!你這毒婦竟也來(lái)了闽晦?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤提岔,失蹤者是張志新(化名)和其女友劉穎仙蛉,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體碱蒙,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荠瘪,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赛惩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片哀墓。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖喷兼,靈堂內(nèi)的尸體忽然破棺而出篮绰,到底是詐尸還是另有隱情,我是刑警寧澤季惯,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布吠各,位于F島的核電站,受9級(jí)特大地震影響勉抓,放射性物質(zhì)發(fā)生泄漏贾漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一琳状、第九天 我趴在偏房一處隱蔽的房頂上張望磕瓷。 院中可真熱鬧,春花似錦念逞、人聲如沸困食。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)硕盹。三九已至,卻和暖如春叨咖,著一層夾襖步出監(jiān)牢的瞬間瘩例,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工甸各, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留垛贤,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓趣倾,卻偏偏與公主長(zhǎng)得像聘惦,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子儒恋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

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

  • 主講人介紹 金桐 阿里巴巴高級(jí)產(chǎn)品經(jīng)理善绎,從事多年互聯(lián)網(wǎng)系統(tǒng)的研發(fā)和測(cè)試工作黔漂,現(xiàn)在主要負(fù)責(zé)云效分層自動(dòng)化測(cè)試的產(chǎn)品設(shè)...
    肆虐的悲傷閱讀 212評(píng)論 0 0
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,079評(píng)論 25 707
  • 心與大腦對(duì)話的開(kāi)始 關(guān)注這個(gè)清單體主題營(yíng)的活動(dòng)通知已經(jīng)很久了,一直無(wú)法下決心參加禀酱。因?yàn)閾?dān)心自己的時(shí)間不夠用炬守,也擔(dān)心...
    grace_66b9閱讀 299評(píng)論 0 0
  • 昨夜行車(chē)月色澄,風(fēng)馳電騁過(guò)半程剂跟。 忽見(jiàn)前車(chē)骷髏擺减途,頓時(shí)車(chē)速慢三成。
    老槐樹(shù)閱讀 130評(píng)論 2 2