devops架構(gòu)的優(yōu)點(diǎn)

一、測試架構(gòu)的演進(jìn)

  • 從有測試開始之初,是比較偏純手工測試的方式,那就是大家說的“測試就是點(diǎn)點(diǎn)嘛”,這時候的測試“龜縮在測試階段”,還經(jīng)常被產(chǎn)品、研發(fā)壓縮時間,可謂慘不忍睹。此時的測試階段,效率低下,覆蓋度不高,重復(fù)工作高,以黑盒測試為主,整體測試效率不高。
  • 然后測試團(tuán)隊(duì)意識到,不能一直這樣的,麻木的重復(fù)性點(diǎn)點(diǎn),沒有技術(shù)含量,自身成長也不高。此時,測試團(tuán)隊(duì)里有想法的小伙伴,開始把部分重復(fù)性工作,寫成一些腳本工具,測試團(tuán)隊(duì)開始有部分工具支持,提升了部分測試效率。但從測試的深度和廣度,并沒有得到提升。還是停留在功能、UI層面測試。
  • 接著為了提升深度和廣度,開始有白盒測試,重新定義測試方法,深入代碼級別的測試,此時從功能的黑盒測試,流轉(zhuǎn)到了對代碼的測試,然后測試和研發(fā)不在功能的bug上去溝通,而是測試指著代碼給研發(fā)說,看這里有bug,應(yīng)該怎么怎么改
  • 這時候,測試發(fā)現(xiàn)我怎么比以前還累了,以前只要測試功能,不需要review代碼。隨著白盒測試的深入,codereview的時間占據(jù)了大部分時間,研發(fā)和產(chǎn)品說,你們能提升效率嗎?然后測試開始思考,如何提升效率和質(zhì)量,然后開始搭建自動化測試,持續(xù)集成,持續(xù)部署。部署流pipeline 隨時檢測業(yè)務(wù)代碼。如此,降低了功能測試的覆蓋,這時候測試同學(xué),大部分時間在完善pipeline 和codereview。
  • 此時團(tuán)隊(duì)來了一位架構(gòu)師,開始思考,團(tuán)隊(duì)的質(zhì)量體系如何建設(shè),難道一直是流水線完善,怎么做到研發(fā)自測,測試不參與到具體的項(xiàng)目,提測研發(fā)測試比,從1:3 => 1:5 => 1:10 ,甚至部分業(yè)務(wù)無測試。這就需要研發(fā)在不斷ci代碼的同時,項(xiàng)目不斷推進(jìn)時,質(zhì)量體系是一直默默的在“保護(hù)”項(xiàng)目的質(zhì)量,要求對線下和線上,都能快速無感知的,發(fā)現(xiàn)問題,也就是devops開始了。


    質(zhì)量模型演化進(jìn)程

二、devops是什么

devOps(Development和Operations的組合)是一組過程、方法與系統(tǒng)的統(tǒng)稱,用于促進(jìn)開發(fā)(RD)、產(chǎn)品運(yùn)營(PM)和質(zhì)量保障(QA)部門之間的溝通、協(xié)作與整合。

devops能力模型

簡單來說,其核心理念是提倡開發(fā)、測試、運(yùn)維人員之間的高度協(xié)同,在高頻率部署的同時,保證生產(chǎn)環(huán)境的可靠性、穩(wěn)定性和安全性。

三、devops解決了什么問題

“升級”到devops后,有幾個特點(diǎn),線下有完整的質(zhì)量流水線在檢測項(xiàng)目和代碼,從多維度去檢測質(zhì)量,同時不需要測試人員干預(yù),可以說devops將會干掉測試,干掉那些純手工測試的測試,因?yàn)閐evops的高度自動化,解決了很多功能測試所能覆蓋的問題,而且在功能、性能、安全、兼容性等層面測試保障。具體幾個特點(diǎn),

1. 標(biāo)準(zhǔn)化的流程

如果需要做到devops,重要的前提是把項(xiàng)目和代碼的流程標(biāo)準(zhǔn)化,各角色如何配合,各項(xiàng)目階段如何做到準(zhǔn)入。同時需要把人為的執(zhí)行流程,使用工具管理起來。既保證了流程標(biāo)準(zhǔn)化,也同時對于項(xiàng)目的數(shù)據(jù)做到集中共享。推薦使用jira。

2. 增加測試廣度寬度

devops是一種框架,類似于一艘航母,需要裝備“電磁炮”,“戰(zhàn)斗機(jī)”,“核潛艇”等等,才能發(fā)揮最大作用。從項(xiàng)目開始,devops這艘航母就開始保障項(xiàng)目質(zhì)量。從深度上講,單測、模塊自動化、集成自動化、系統(tǒng)自動化,多層覆蓋;從廣度上講,功能測試、性能測試、兼容性測試、靜(動)態(tài)代碼掃描,多維度覆蓋。這些測試組件,有的叫測試服務(wù)化,是devops最尖端的武器。在配合項(xiàng)目流程場景下,分別從代碼開發(fā)、提測準(zhǔn)入、功能回歸、全鏈路壓測、線上回歸等等,對項(xiàng)目提供質(zhì)量保障

3. 提升整體質(zhì)量

沒有devops時,測試服務(wù)(工具/平臺)是游離在項(xiàng)目之外的,即使有工具平臺,但缺少完善的使用場景,對于不同的業(yè)務(wù),不同的端,不同的測試同學(xué),所使用的工具平臺是不一樣的,同時對測試場景的制定,也需要線下制定,然后手動,非常費(fèi)時成本較高。而devops是無需人力干預(yù),從項(xiàng)目開始就在保障了,整個流程中,都是自動的,且在每個環(huán)節(jié)都有標(biāo)準(zhǔn),保證質(zhì)量的持續(xù)提升。此外,在不停地持續(xù)構(gòu)建部署中,做到測試前置,在交付給QA的代碼,是保證高質(zhì)量的。

4. 質(zhì)量可度量

一般評估項(xiàng)目的質(zhì)量,是從項(xiàng)目效率、代碼質(zhì)量、服務(wù)穩(wěn)定性、線上事故、用戶反饋等幾個維度來評估的。在devops中的各個武器,都需要對質(zhì)量檢測做數(shù)據(jù)輸出,比如說自動化測試的代碼覆蓋度率、接口覆蓋率、bug率等等;而項(xiàng)目管理工具,可以對項(xiàng)目的各階段效率數(shù)據(jù)化;從線上監(jiān)控,可以拿到事故的數(shù)據(jù)指標(biāo),什么級別,什么原因,影響面等等;用戶反饋接口,獲取用戶的數(shù)據(jù),并通過一定算法(后續(xù)文章可以解答),抽取有效信息并聚合。如此,線上、線下、用戶側(cè)多個場景拿到數(shù)據(jù),評估整體項(xiàng)目的質(zhì)量。

5. 提高研發(fā)測試比

基于高效,高質(zhì)的持續(xù)部署方式,測試同學(xué)不用在執(zhí)行重復(fù)低效的點(diǎn)點(diǎn)工作,而更多關(guān)注在如何提高devops的測試賦能(后續(xù)也會提到),這樣devops第一批干掉了純測試的同學(xué)(說真的,這些同學(xué)前景堪憂),這時候從常規(guī)的比例提高(1:3 => 1:5),而測試賦能,把測試技能輸出給研發(fā),這時候研發(fā)自測的效率和質(zhì)量更高了,新功能測試的工作量降低了,測試的排期進(jìn)一步壓縮(1:5 => 1:7),而devops的武器庫使得更多的項(xiàng)目,無需測試參與,極限情況下可以把比例壓縮到1:10.這就是阿里之前提過的,干掉QA。正式通過devops方式,干掉了QA

四、總結(jié)

現(xiàn)在大廠都在實(shí)施devops,bat依托于各自的云計(jì)算,優(yōu)秀的團(tuán)隊(duì),快速地搭建地devops。這方面,阿里做的最好(個人感覺)。而小廠比大廠缺少搭建devops條件,devops實(shí)施的成本非常高。后續(xù)會講到如何devops更多內(nèi)容。
參考資料:

  1. 阿里
    https://yq.aliyun.com/articles/152037
  2. 騰訊
    https://blog.csdn.net/TXYunJiSuan/article/details/80899224
  3. 百度
    https://dbaplus.cn/news-21-471-1.html
    https://www.cnblogs.com/hofmann/p/9259968.html
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容