一、測(cè)試架構(gòu)的演進(jìn)
- 從有測(cè)試開(kāi)始之初偎快,是比較偏純手工測(cè)試的方式冯乘,那就是大家說(shuō)的“測(cè)試就是點(diǎn)點(diǎn)嘛”,這時(shí)候的測(cè)試“龜縮在測(cè)試階段”晒夹,還經(jīng)常被產(chǎn)品裆馒、研發(fā)壓縮時(shí)間,可謂慘不忍睹丐怯。此時(shí)的測(cè)試階段喷好,效率低下,覆蓋度不高读跷,重復(fù)工作高梗搅,以黑盒測(cè)試為主,整體測(cè)試效率不高。
- 然后測(cè)試團(tuán)隊(duì)意識(shí)到无切,不能一直這樣的荡短,麻木的重復(fù)性點(diǎn)點(diǎn),沒(méi)有技術(shù)含量哆键,自身成長(zhǎng)也不高掘托。此時(shí),測(cè)試團(tuán)隊(duì)里有想法的小伙伴洼哎,開(kāi)始把部分重復(fù)性工作烫映,寫(xiě)成一些腳本工具,測(cè)試團(tuán)隊(duì)開(kāi)始有部分工具支持噩峦,提升了部分測(cè)試效率锭沟。但從測(cè)試的深度和廣度,并沒(méi)有得到提升识补。還是停留在功能族淮、UI層面測(cè)試。
- 接著為了提升深度和廣度凭涂,開(kāi)始有白盒測(cè)試祝辣,重新定義測(cè)試方法,深入代碼級(jí)別的測(cè)試切油,此時(shí)從功能的黑盒測(cè)試蝙斜,流轉(zhuǎn)到了對(duì)代碼的測(cè)試,然后測(cè)試和研發(fā)不在功能的bug上去溝通澎胡,而是測(cè)試指著代碼給研發(fā)說(shuō)孕荠,看這里有bug,應(yīng)該怎么怎么改
- 這時(shí)候攻谁,測(cè)試發(fā)現(xiàn)我怎么比以前還累了稚伍,以前只要測(cè)試功能,不需要review代碼戚宦。隨著白盒測(cè)試的深入个曙,codereview的時(shí)間占據(jù)了大部分時(shí)間,研發(fā)和產(chǎn)品說(shuō)受楼,你們能提升效率嗎垦搬?然后測(cè)試開(kāi)始思考,如何提升效率和質(zhì)量艳汽,然后開(kāi)始搭建自動(dòng)化測(cè)試猴贰,持續(xù)集成,持續(xù)部署骚灸。部署流pipeline 隨時(shí)檢測(cè)業(yè)務(wù)代碼糟趾。如此慌植,降低了功能測(cè)試的覆蓋甚牲,這時(shí)候測(cè)試同學(xué)义郑,大部分時(shí)間在完善pipeline 和codereview。
-
此時(shí)團(tuán)隊(duì)來(lái)了一位架構(gòu)師丈钙,開(kāi)始思考非驮,團(tuán)隊(duì)的質(zhì)量體系如何建設(shè),難道一直是流水線(xiàn)完善雏赦,怎么做到研發(fā)自測(cè)劫笙,測(cè)試不參與到具體的項(xiàng)目,提測(cè)研發(fā)測(cè)試比星岗,從1:3 => 1:5 => 1:10 ,甚至部分業(yè)務(wù)無(wú)測(cè)試填大。這就需要研發(fā)在不斷ci代碼的同時(shí),項(xiàng)目不斷推進(jìn)時(shí)俏橘,質(zhì)量體系是一直默默的在“保護(hù)”項(xiàng)目的質(zhì)量允华,要求對(duì)線(xiàn)下和線(xiàn)上,都能快速無(wú)感知的寥掐,發(fā)現(xiàn)問(wèn)題靴寂,也就是devops開(kāi)始了。
二召耘、devops是什么
devOps(Development和Operations的組合)是一組過(guò)程百炬、方法與系統(tǒng)的統(tǒng)稱(chēng),用于促進(jìn)開(kāi)發(fā)(RD)污它、產(chǎn)品運(yùn)營(yíng)(PM)和質(zhì)量保障(QA)部門(mén)之間的溝通剖踊、協(xié)作與整合。
簡(jiǎn)單來(lái)說(shuō)轨蛤,其核心理念是提倡開(kāi)發(fā)蜜宪、測(cè)試、運(yùn)維人員之間的高度協(xié)同祥山,在高頻率部署的同時(shí)圃验,保證生產(chǎn)環(huán)境的可靠性、穩(wěn)定性和安全性缝呕。
三澳窑、devops解決了什么問(wèn)題
“升級(jí)”到devops后,有幾個(gè)特點(diǎn)供常,線(xiàn)下有完整的質(zhì)量流水線(xiàn)在檢測(cè)項(xiàng)目和代碼摊聋,從多維度去檢測(cè)質(zhì)量,同時(shí)不需要測(cè)試人員干預(yù)栈暇,可以說(shuō)devops將會(huì)干掉測(cè)試麻裁,干掉那些純手工測(cè)試的測(cè)試,因?yàn)閐evops的高度自動(dòng)化,解決了很多功能測(cè)試所能覆蓋的問(wèn)題煎源,而且在功能色迂、性能、安全手销、兼容性等層面測(cè)試保障歇僧。具體幾個(gè)特點(diǎn),
1. 標(biāo)準(zhǔn)化的流程
如果需要做到devops锋拖,重要的前提是把項(xiàng)目和代碼的流程標(biāo)準(zhǔn)化诈悍,各角色如何配合,各項(xiàng)目階段如何做到準(zhǔn)入兽埃。同時(shí)需要把人為的執(zhí)行流程侥钳,使用工具管理起來(lái)。既保證了流程標(biāo)準(zhǔn)化柄错,也同時(shí)對(duì)于項(xiàng)目的數(shù)據(jù)做到集中共享慕趴。推薦使用jira。
2. 增加測(cè)試廣度寬度
devops是一種框架鄙陡,類(lèi)似于一艘航母冕房,需要裝備“電磁炮”,“戰(zhàn)斗機(jī)”趁矾,“核潛艇”等等耙册,才能發(fā)揮最大作用。從項(xiàng)目開(kāi)始毫捣,devops這艘航母就開(kāi)始保障項(xiàng)目質(zhì)量详拙。從深度上講,單測(cè)蔓同、模塊自動(dòng)化饶辙、集成自動(dòng)化、系統(tǒng)自動(dòng)化斑粱,多層覆蓋弃揽;從廣度上講,功能測(cè)試则北、性能測(cè)試矿微、兼容性測(cè)試、靜(動(dòng))態(tài)代碼掃描尚揣,多維度覆蓋涌矢。這些測(cè)試組件,有的叫測(cè)試服務(wù)化快骗,是devops最尖端的武器娜庇。在配合項(xiàng)目流程場(chǎng)景下塔次,分別從代碼開(kāi)發(fā)、提測(cè)準(zhǔn)入名秀、功能回歸俺叭、全鏈路壓測(cè)、線(xiàn)上回歸等等泰偿,對(duì)項(xiàng)目提供質(zhì)量保障
3. 提升整體質(zhì)量
沒(méi)有devops時(shí),測(cè)試服務(wù)(工具/平臺(tái))是游離在項(xiàng)目之外的蜈垮,即使有工具平臺(tái)耗跛,但缺少完善的使用場(chǎng)景,對(duì)于不同的業(yè)務(wù)攒发,不同的端调塌,不同的測(cè)試同學(xué),所使用的工具平臺(tái)是不一樣的惠猿,同時(shí)對(duì)測(cè)試場(chǎng)景的制定羔砾,也需要線(xiàn)下制定,然后手動(dòng)偶妖,非常費(fèi)時(shí)成本較高姜凄。而devops是無(wú)需人力干預(yù),從項(xiàng)目開(kāi)始就在保障了趾访,整個(gè)流程中态秧,都是自動(dòng)的腋么,且在每個(gè)環(huán)節(jié)都有標(biāo)準(zhǔn)撼短,保證質(zhì)量的持續(xù)提升醇滥。此外铅歼,在不停地持續(xù)構(gòu)建部署中吁峻,做到測(cè)試前置泡嘴,在交付給QA的代碼骡技,是保證高質(zhì)量的钾菊。
4. 質(zhì)量可度量
一般評(píng)估項(xiàng)目的質(zhì)量溃槐,是從項(xiàng)目效率匣砖、代碼質(zhì)量、服務(wù)穩(wěn)定性昏滴、線(xiàn)上事故脆粥、用戶(hù)反饋等幾個(gè)維度來(lái)評(píng)估的。在devops中的各個(gè)武器影涉,都需要對(duì)質(zhì)量檢測(cè)做數(shù)據(jù)輸出变隔,比如說(shuō)自動(dòng)化測(cè)試的代碼覆蓋度率、接口覆蓋率蟹倾、bug率等等匣缘;而項(xiàng)目管理工具猖闪,可以對(duì)項(xiàng)目的各階段效率數(shù)據(jù)化;從線(xiàn)上監(jiān)控肌厨,可以拿到事故的數(shù)據(jù)指標(biāo)培慌,什么級(jí)別,什么原因柑爸,影響面等等吵护;用戶(hù)反饋接口,獲取用戶(hù)的數(shù)據(jù)表鳍,并通過(guò)一定算法(后續(xù)文章可以解答)馅而,抽取有效信息并聚合。如此譬圣,線(xiàn)上瓮恭、線(xiàn)下、用戶(hù)側(cè)多個(gè)場(chǎng)景拿到數(shù)據(jù)厘熟,評(píng)估整體項(xiàng)目的質(zhì)量屯蹦。
5. 提高研發(fā)測(cè)試比
基于高效,高質(zhì)的持續(xù)部署方式绳姨,測(cè)試同學(xué)不用在執(zhí)行重復(fù)低效的點(diǎn)點(diǎn)工作登澜,而更多關(guān)注在如何提高devops的測(cè)試賦能(后續(xù)也會(huì)提到),這樣devops第一批干掉了純測(cè)試的同學(xué)(說(shuō)真的飘庄,這些同學(xué)前景堪憂(yōu))帖渠,這時(shí)候從常規(guī)的比例提高(1:3 => 1:5),而測(cè)試賦能竭宰,把測(cè)試技能輸出給研發(fā)空郊,這時(shí)候研發(fā)自測(cè)的效率和質(zhì)量更高了,新功能測(cè)試的工作量降低了切揭,測(cè)試的排期進(jìn)一步壓縮(1:5 => 1:7)狞甚,而devops的武器庫(kù)使得更多的項(xiàng)目,無(wú)需測(cè)試參與廓旬,極限情況下可以把比例壓縮到1:10.這就是阿里之前提過(guò)的哼审,干掉QA。正式通過(guò)devops方式孕豹,干掉了QA
四涩盾、總結(jié)
現(xiàn)在大廠(chǎng)都在實(shí)施devops,bat依托于各自的云計(jì)算励背,優(yōu)秀的團(tuán)隊(duì)春霍,快速地搭建地devops。這方面叶眉,阿里做的最好(個(gè)人感覺(jué))址儒。而小廠(chǎng)比大廠(chǎng)缺少搭建devops條件芹枷,devops實(shí)施的成本非常高。后續(xù)會(huì)講到如何devops更多內(nèi)容莲趣。
參考資料: