如何保障研发质量不踩坑?阿里技术专家教你几招
摘要: 面對(duì)自動(dòng)化測(cè)試成本高、測(cè)試不穩(wěn)定、測(cè)試無(wú)法嚴(yán)控發(fā)布質(zhì)量等常見(jiàn)研發(fā)過(guò)程中的測(cè)試問(wèn)題時(shí),企業(yè)如何避免?如何保障研發(fā)質(zhì)量?阿里巴巴研發(fā)效能事業(yè)部-研發(fā)協(xié)同平臺(tái)高級(jí)技術(shù)專家李帥(花名焦霸),通過(guò)阿里巴巴實(shí)踐經(jīng)驗(yàn)總結(jié),為大家支招,并提供詳細(xì)可落地的解決方案。
點(diǎn)此查看原文:http://click.aliyun.com/m/40558/
導(dǎo)讀:面對(duì)自動(dòng)化測(cè)試成本高、測(cè)試不穩(wěn)定、測(cè)試無(wú)法嚴(yán)控發(fā)布質(zhì)量等常見(jiàn)研發(fā)過(guò)程中的測(cè)試問(wèn)題時(shí),企業(yè)如何避免?如何保障研發(fā)質(zhì)量?阿里巴巴研發(fā)效能事業(yè)部-研發(fā)協(xié)同平臺(tái)高級(jí)技術(shù)專家李帥(花名焦霸),通過(guò)阿里巴巴實(shí)踐經(jīng)驗(yàn)總結(jié),為大家支招,并提供詳細(xì)可落地的解決方案。
直播回顧:https://yq.aliyun.com/webinar/play/370
研發(fā)過(guò)程中常見(jiàn)的測(cè)試問(wèn)題
自動(dòng)化測(cè)試成本高
在持續(xù)集成持續(xù)交付這樣的過(guò)程中,自動(dòng)化測(cè)試往往是非常重要的一環(huán),但是在互聯(lián)網(wǎng)高速迭代的研發(fā)模式下,往往沒(méi)有時(shí)間和精力去投入,開(kāi)發(fā)的時(shí)間都不夠,更別說(shuō)測(cè)試了。即使開(kāi)始有自動(dòng)化測(cè)試,后期也很難有毅力繼續(xù)去維護(hù)。
積累的問(wèn)題太多
自動(dòng)化測(cè)試開(kāi)始的晚,往往是在應(yīng)用穩(wěn)定了之后,我們才有精力去投入到自動(dòng)化測(cè)試,這樣造成的局面是積累的歷史問(wèn)題一大堆。對(duì)于測(cè)試用例失敗還會(huì)去解決,但對(duì)于覆蓋率低,代碼不規(guī)范等等這樣的問(wèn)題,通常都是無(wú)力修復(fù)和解決的,但這些問(wèn)題又和研發(fā)質(zhì)量息息相關(guān)。
測(cè)試不穩(wěn)定
這是一個(gè)老大難的問(wèn)題了。測(cè)試環(huán)境不穩(wěn)定,通常會(huì)導(dǎo)致測(cè)試本身不穩(wěn)定,測(cè)試失敗無(wú)法復(fù)現(xiàn),因?yàn)樗赡苁怯啥喾N原因?qū)е碌摹Mǔ?huì)有很多非代碼原因的失敗頻現(xiàn),這樣會(huì)干擾我們整個(gè)測(cè)試執(zhí)行過(guò)程。那整個(gè)的研發(fā)團(tuán)隊(duì)呢,就會(huì)對(duì)自動(dòng)化測(cè)試喪失信心,通常他們發(fā)現(xiàn)一個(gè)測(cè)試失敗了,結(jié)果不是因?yàn)榇a原因,他們就會(huì)很沮喪。另外,多人共享一套測(cè)試環(huán)境,調(diào)試是非常不方便的。
測(cè)試無(wú)法嚴(yán)控發(fā)布質(zhì)量
測(cè)試和發(fā)布,在一些初創(chuàng)團(tuán)隊(duì),或者使用開(kāi)源系統(tǒng)搭建起來(lái)的系統(tǒng)里面,往往只有兩套或者多套系統(tǒng),那么存在的問(wèn)題是測(cè)試和發(fā)布通常是不能自動(dòng)關(guān)聯(lián)的,要么能關(guān)聯(lián),但是無(wú)法管控,這都是常見(jiàn)的問(wèn)題。
阿里巴巴實(shí)踐經(jīng)驗(yàn)和解決方案
面對(duì)上述問(wèn)題,阿里巴巴是如何解決的呢?經(jīng)過(guò)這些年的積累,阿里巴巴總結(jié)了一些實(shí)踐經(jīng)驗(yàn)和解決方法,在這里分享給大家。
用例錄制
面對(duì)自動(dòng)化成本高的問(wèn)題,阿里目前是通過(guò)用例錄制的方式解決。首先,通過(guò)錄制能夠去降低開(kāi)發(fā)成本;其次,錄制一定是用例級(jí)別錄制,這樣可以降低測(cè)試的維護(hù)成本。另外,要包含多維度錄制手段,包括WebUI錄制,移動(dòng)端錄制,流量錄制等,通過(guò)錄制的方式解決自動(dòng)化測(cè)試時(shí)用例撰寫(xiě)成本高的問(wèn)題。
基線測(cè)試
面對(duì)積累的問(wèn)題太多,在阿里內(nèi)部,我們提出一個(gè)測(cè)試?yán)砟罱凶龌€測(cè)試,什么是基線測(cè)試呢?實(shí)際上它是把目前線上的版本視為基線,每次發(fā)布過(guò)程都基于當(dāng)前的基線進(jìn)行測(cè)試,發(fā)布成功之后會(huì)更新這個(gè)基線。那如何進(jìn)行這個(gè)基線測(cè)試呢?首先我們會(huì)取基線和發(fā)布版本diff為增量,基于這個(gè)增量,進(jìn)行增量代碼掃描,增量測(cè)試覆蓋率,增量的測(cè)試用例的測(cè)試,所有的數(shù)據(jù)產(chǎn)生的問(wèn)題、缺陷數(shù)據(jù)等等都是以增量部分進(jìn)行的,這樣有利于我們整個(gè)質(zhì)量管控推進(jìn)。
我們首先要求團(tuán)隊(duì),新的代碼不能存在問(wèn)題,比如覆蓋率一定要達(dá)標(biāo),代碼掃描不能有問(wèn)題,我們用例部分的缺陷是優(yōu)先修復(fù)的,這樣有利于保證新的部分是經(jīng)過(guò)驗(yàn)證的。同時(shí)在新的部分比較穩(wěn)定的情況下,我們可以將舊的問(wèn)題先擱置起來(lái),有精力有時(shí)間的情況下再去修復(fù)。
云測(cè)試
面對(duì)測(cè)試不穩(wěn)定這個(gè)問(wèn)題的時(shí)候,在阿里內(nèi)部已經(jīng)打造了一套云測(cè)試系統(tǒng)。它包含了測(cè)試引擎,以及背后的資源調(diào)度。通常是使用ECS或者Docker為每次測(cè)試運(yùn)行,提供一套唯一的測(cè)試環(huán)境,這樣的好處是整個(gè)測(cè)試過(guò)程都是有動(dòng)態(tài)隔離的環(huán)境去執(zhí)行的,保證了測(cè)試的穩(wěn)定性。另外,我們測(cè)試執(zhí)行完之后,往往有一些調(diào)試的需求,這時(shí)候我們就會(huì)保留幾個(gè)小時(shí)用于調(diào)試。
流程管控
第四個(gè)問(wèn)題是測(cè)試無(wú)法嚴(yán)控發(fā)布質(zhì)量。在阿里內(nèi)部有一套一站式的研發(fā)協(xié)同平臺(tái),從需求、代碼、發(fā)布、測(cè)試、度量全鏈路打通,自然而然所有環(huán)節(jié)都是管控在一起的,云效就是以這套系統(tǒng)打造的。同時(shí),我們?cè)诎l(fā)布環(huán)節(jié),就通過(guò)發(fā)布流水線和測(cè)試服務(wù)這兩個(gè)功能,嚴(yán)控質(zhì)量紅線。
云效體驗(yàn)
云效,一站式企業(yè)協(xié)同研發(fā)云,源于阿里巴巴多年先進(jìn)的管理理念和工程實(shí)踐,提供從“需求->開(kāi)發(fā)->測(cè)試->發(fā)布->運(yùn)維->運(yùn)營(yíng)”端到端的協(xié)同服務(wù)和研發(fā)工具支撐。支持公有云、專有云和混合云的協(xié)同研發(fā),助力企業(yè)產(chǎn)品快速創(chuàng)新迭代和研發(fā)效能升級(jí)。
最近云效公有云上線三個(gè)功能,一個(gè)是測(cè)試服務(wù),包含了單元測(cè)試、接口測(cè)試和安全掃描這三個(gè)測(cè)試服務(wù);第二個(gè)是測(cè)試集合,是跟流水線緊密結(jié)合的功能;第三個(gè)是測(cè)試報(bào)表功能,測(cè)試報(bào)表會(huì)把我們以往的測(cè)試記錄都記錄下來(lái),大家可以經(jīng)過(guò)一些搜索條件進(jìn)行簡(jiǎn)單的搜索篩選。
作者介紹:李帥(花名焦霸):阿里巴巴研發(fā)效能事業(yè)部-研發(fā)協(xié)同平臺(tái)高級(jí)技術(shù)專家。2010年入職阿里巴巴,一直從事自動(dòng)化測(cè)試工具、研發(fā)協(xié)同平臺(tái)相關(guān)產(chǎn)品開(kāi)發(fā)和架構(gòu)設(shè)計(jì)工作,目前負(fù)責(zé)阿里巴巴研發(fā)協(xié)同平臺(tái)測(cè)試域及效能度量域相關(guān)工作。
總結(jié)
以上是生活随笔為你收集整理的如何保障研发质量不踩坑?阿里技术专家教你几招的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Tensorflow快餐教程(6) -
- 下一篇: 阿里云MaxCompute被Forres