做ToB軟件質(zhì)量保障的這兩年
原創(chuàng)作者 | 老壯
眼中的ToB業(yè)務(wù)
自己算是阿里的老兵了,從實(shí)習(xí)開始一直投身在 toB 業(yè)務(wù)的質(zhì)量保障領(lǐng)域內(nèi),不能說是資深的專家,但所經(jīng)歷的、感受的業(yè)務(wù)特點(diǎn)和體會還是具有一定的代表性,希望能通過這篇文章,總結(jié)一下過往,并能和已經(jīng)躬身進(jìn)入這個(gè)業(yè)務(wù)領(lǐng)域,以及將要進(jìn)入的同學(xué)們產(chǎn)生一些共鳴。
服務(wù)專有釘客戶的這兩年,更像是場戰(zhàn)斗,只有躬身入局的勝利者才能這個(gè)競爭激烈的市場上存活。專有釘?shù)纳疃扔脩粢呀?jīng)將專有釘作為日常工作的一部分,跟我們使用釘釘一樣,是生產(chǎn)力工具;再小的體驗(yàn)問題,再小概率出現(xiàn)的偶發(fā)問題,在大規(guī)模日活下,都極易被放大和激化。
即便都是協(xié)同辦公的業(yè)務(wù)訴求,也會因?yàn)榭蛻粜袠I(yè)特性不同而大相徑庭。所帶來的定制化需求量會隨著不同行業(yè)客戶的增加出現(xiàn)指數(shù)上升,這對產(chǎn)品架構(gòu)的適配、產(chǎn)品研發(fā)交付服務(wù)鏈路上的資源投入均帶來巨大的挑戰(zhàn)。
雖然服務(wù)這些不同行業(yè)的頭部客戶很艱難,但是一旦認(rèn)可我們,口碑就會在這些行業(yè)內(nèi)迅速傳播,帶動客戶的增長。
結(jié)合跟 ToC 產(chǎn)品的對比,我眼中 ToB 業(yè)務(wù)特別明顯的特點(diǎn)有如下幾個(gè):

質(zhì)量保障的難度
2年的建設(shè),專有釘已經(jīng)成為國內(nèi)第一大政務(wù)協(xié)同辦公平臺產(chǎn)品。對于這份答卷很驕傲,組織也給予了認(rèn)可,但同時(shí),焦慮、壓力也在持續(xù)積累,因?yàn)檫@個(gè)業(yè)務(wù)實(shí)在是太難做了。
1.客戶對質(zhì)量容忍度極低
專有釘在釘釘產(chǎn)品矩陣中,所承擔(dān)的責(zé)任是服務(wù)好政府客戶、行業(yè)頭部大型企業(yè)客戶。這些客戶最大的特點(diǎn),對數(shù)字化是有較深的理解和應(yīng)用,并非小白客戶。我們需要展現(xiàn)出較他們更強(qiáng)的專業(yè)性,較之前他們所使用產(chǎn)品更好的體驗(yàn),他們才能接受我們,認(rèn)可我們,把我們當(dāng)成數(shù)字化改革的同路人。
原先做公司內(nèi)部產(chǎn)品,在項(xiàng)目周期緊張的情況下,最先想到的解決方案就是保障主干業(yè)務(wù),但做專有釘不能固化這樣的意識,因?yàn)橛?VIP 客戶這種角色存在。他們是決策者,但也是一個(gè)個(gè)人,不同人的產(chǎn)品使用路徑、所認(rèn)為的核心產(chǎn)品功能均不同,但有一個(gè)相同點(diǎn),就是對質(zhì)量的容忍度都極低,客戶認(rèn)為,已經(jīng)為產(chǎn)品買單了,高質(zhì)量就應(yīng)該是標(biāo)配。這帶來的結(jié)果是“主干業(yè)務(wù)”的定義變得邊界模糊,在有限的項(xiàng)目周期內(nèi),如何做到測全?
另一個(gè)特點(diǎn),是出現(xiàn)問題時(shí),有人可能會質(zhì)疑,這明顯是你們系統(tǒng)運(yùn)行指標(biāo)監(jiān)控沒做好。但公有云上常規(guī)的系統(tǒng)指標(biāo)監(jiān)控方案在專有云環(huán)境下,通常無法運(yùn)轉(zhuǎn)。問題排查難度大,造成口碑積累的難度也極大。
2.安全生產(chǎn)難做
專有釘跑在專有云環(huán)境中,資源、數(shù)據(jù)、產(chǎn)品,所有的一切都屬于客戶所有,做安全生產(chǎn),一要嚴(yán)守用戶信息安全,二要嚴(yán)控方案所消耗的資源成本。專有云網(wǎng)絡(luò)基礎(chǔ)設(shè)施復(fù)雜,目前尚無成熟的全鏈路問題排查工具,且不同客戶環(huán)境的云底座、中間件差異大,方案復(fù)用度低。
組織協(xié)同配合困難,安全生產(chǎn)會涉及產(chǎn)研、交付、一線運(yùn)維、二線運(yùn)維、三方isv,且后四者在不同的項(xiàng)目也通常會由不同的公司組織來承接。能力參差不齊,職責(zé)清晰的難度大。
3.測試技術(shù)融入研發(fā)過程的迫切性高
專有釘產(chǎn)品在極其有限的版本周期內(nèi),既要實(shí)現(xiàn) 70~80 個(gè)業(yè)務(wù)需求,又要嚴(yán)格遵守質(zhì)量門禁,壓力極大。質(zhì)量團(tuán)隊(duì)在堅(jiān)守質(zhì)量原則的基礎(chǔ)上,需要在研發(fā)自測階段提供給研發(fā)效率高、覆蓋廣的測試能力,以此將質(zhì)量風(fēng)險(xiǎn)消滅在項(xiàng)目前期。
開放生態(tài)的背景下,大規(guī)模的isv產(chǎn)出物將融入專有釘產(chǎn)品,質(zhì)量團(tuán)隊(duì)需要做質(zhì)量兜底。將 isv 納入到質(zhì)量保障體系中,任重而道遠(yuǎn)。
4.云原生適配難度大
專有云發(fā)展了多年,市場上不乏競品??蛻艨粗袑S嗅?shù)膶I(yè)性,但要讓他替換昂貴的云底座成阿里云飛天底座,可能就會迎難而退,發(fā)展云原生是出路之一。 當(dāng)前云原生產(chǎn)品缺少標(biāo)準(zhǔn)化,這對測試工作就是場災(zāi)難。辛苦完成了測試,由于客戶現(xiàn)場部署架構(gòu)不同,所用的云原生產(chǎn)品規(guī)格不同,導(dǎo)致 bug 頻出,打臉的同時(shí)也無奈。非標(biāo)下,測試結(jié)論無法復(fù)用,甚至顯得無意義。
當(dāng)前缺少成熟的安全生產(chǎn)、質(zhì)量保障的云原生產(chǎn)品,線上可運(yùn)維性差,穩(wěn)定性保障能力不足,巧婦難為無米之炊。
5.測試工作具有專業(yè)性難度
除了要攻克專有云的技術(shù)屏障,在其之上測試功能、性能、安全生產(chǎn)能力建設(shè)外,還需要針對核心業(yè)務(wù)做業(yè)務(wù)專項(xiàng)測試,比如 IM、音視頻、文檔等。
略有成效的方法
上述難點(diǎn)有些是做專有釘產(chǎn)品第一天就要面對的,比如專有云的技術(shù)屏障,而有些是在業(yè)務(wù)發(fā)展中逐漸出現(xiàn),比如云原生的適配難度。應(yīng)對這些難點(diǎn)的策略方法也同樣并非一蹴而就,在攻克老問題,迎接新問題的反復(fù)中,專有釘質(zhì)量團(tuán)隊(duì)也沉淀了一套適配當(dāng)前 ToB 業(yè)務(wù)的質(zhì)量保障體系,體系取名“定坤”。

1.數(shù)據(jù)為基礎(chǔ)
專有釘產(chǎn)品從誕生便以推動政企客戶數(shù)字化改革為己任,高質(zhì)量、高穩(wěn)定、優(yōu)體驗(yàn)是這個(gè)產(chǎn)品必有的特性,保障體系從建設(shè)之初便和產(chǎn)品本身一樣,以數(shù)字化來驅(qū)動,把所有可定義的過程、結(jié)果均盡可能地做了結(jié)構(gòu)化,并在其基礎(chǔ)上做加工、分析、決策、驅(qū)動。
數(shù)字化驅(qū)動質(zhì)量風(fēng)險(xiǎn)防控
質(zhì)量/過程風(fēng)險(xiǎn)數(shù)據(jù)的結(jié)構(gòu)化,需要標(biāo)準(zhǔn)化的研發(fā)流程、缺陷流轉(zhuǎn)規(guī)則做匹配,讓離散的數(shù)據(jù)通過規(guī)則分析,具備決策和驅(qū)動能力。專有釘?shù)难邪l(fā)流程將集團(tuán)產(chǎn)品 Aone 的能力用到了極致,需求管理、版本管理、缺陷管理全部標(biāo)準(zhǔn)化執(zhí)行,完全可以作為 Aone 的樣板工程存在。
數(shù)字化推動研發(fā)測試能效提升
專有釘?shù)目蛻魧?shù)據(jù)極其敏感,數(shù)據(jù)安全等級極高,引流回放等的獲取均存在天然屏障,如何獲取盡可能多的脫敏數(shù)據(jù),用到質(zhì)量保障策略和方案中,是急需但必須謹(jǐn)慎對待的課題。
線上客戶數(shù)據(jù)獲取困難,但線下每一個(gè)功能用例的執(zhí)行流量卻蘊(yùn)含著價(jià)值,流量基于 jvm-sandbox 獲取。可以從中挖掘出sql執(zhí)行、緩存使用等過程中的性能隱患;也可以沉淀出業(yè)務(wù)調(diào)用鏈路,基于此,結(jié)合故障等級定義、監(jiān)控覆蓋情況、預(yù)案覆蓋情況,形成產(chǎn)品安全生產(chǎn)能力視圖和工作臺,直觀、高效地開展安全生產(chǎn)工作。下圖就是其中一條流量,存在緩存重復(fù)調(diào)用的性能隱患。

數(shù)字化推動產(chǎn)品體驗(yàn)提升
專有釘產(chǎn)品以客戶端作為用戶體驗(yàn)的前沿陣地,集團(tuán)提供了較為成熟、豐富的移動端專項(xiàng)評測能力,我們在此基礎(chǔ)上完善了整體調(diào)度、自動觸發(fā)執(zhí)行,以及自動生成競品報(bào)告等能力,用競品分析數(shù)據(jù)來推動客戶端體驗(yàn)的提升。專有釘在 PC 端有著更加廣泛的應(yīng)用前景,科創(chuàng)端是當(dāng)前國家大力發(fā)展的方向,而集團(tuán)缺少相應(yīng)的專項(xiàng)評測能力,我們采取了自建的模式,目前已具備端穩(wěn)定性、端性能的PC端專項(xiàng)評測能力。
2.風(fēng)險(xiǎn)防控為基調(diào)
由于客戶的容忍度低下,交付周期又極短,無法通過長時(shí)間的灰度或者靠出現(xiàn)問題后做改進(jìn)的方式來提升產(chǎn)品穩(wěn)定性,而必須在轉(zhuǎn)交付前做好充足的測試、防控工作。
高可用測試防控穩(wěn)定性風(fēng)險(xiǎn)
阿里云飛天底座相對成熟,但云原生不同,商用剛開始,尚未經(jīng)受過磨煉,在交付前必須進(jìn)行高可用測試。這里要給阿里云 ADP 團(tuán)隊(duì)做個(gè)廣告,他們已有相對成熟的平臺來進(jìn)行中間件的高可用測試,業(yè)務(wù)團(tuán)隊(duì)只需整理出基于業(yè)務(wù)的測試場景即可。
故障演練防控安全生產(chǎn)能力不足帶來的風(fēng)險(xiǎn)
最理想的狀態(tài)是在每個(gè)版本轉(zhuǎn)交付前,將增量業(yè)務(wù)的故障等級定義做完善,同時(shí)梳理出增量業(yè)務(wù)的全鏈路,并進(jìn)行故障演練,推動完善安全生產(chǎn)能力,包括監(jiān)控、故障降級/恢復(fù)預(yù)案、強(qiáng)弱依賴治理等等(當(dāng)然現(xiàn)實(shí)比較殘酷,項(xiàng)目周期過于緊張,無法每個(gè)版本都進(jìn)行常態(tài)化演練)。專有云上缺少免費(fèi)的演練平臺支持(富裕的可以參考下AHAS),我們采用專有化chaosblade的方案來實(shí)現(xiàn)能力,同時(shí)搭建平臺用來沉淀演練場景,便于常態(tài)化高效執(zhí)行。

容量規(guī)劃防控機(jī)器資源風(fēng)險(xiǎn)
專有云上的容量規(guī)劃完全是理想很美好,現(xiàn)實(shí)很殘酷的工作。最早做容量規(guī)劃的時(shí)候,過于單純,將“具備線性擴(kuò)容”能力認(rèn)為是云上機(jī)器的標(biāo)配能力。但現(xiàn)實(shí)十足的打臉,實(shí)際測試下來完全不具備線性擴(kuò)容能力,這導(dǎo)致在實(shí)驗(yàn)室環(huán)境測試下來的容量需求,做推算后和實(shí)際不符,必須在每個(gè)專有云環(huán)境下做真實(shí)的性能壓測,成本和可行性都備受挑戰(zhàn)。當(dāng)前雖然用了各種算法來做盡可能接近的估算,但依然無法減少真實(shí)壓測這一環(huán)節(jié)的資源消耗。
項(xiàng)目研發(fā)過程質(zhì)量風(fēng)險(xiǎn)管理
基于質(zhì)量、風(fēng)險(xiǎn)數(shù)據(jù),結(jié)合標(biāo)準(zhǔn)化的研發(fā)、交付、服務(wù)流程,制定了全生命周期軟件質(zhì)量分體系,覆蓋了版本研發(fā)階段、交付階段以及上線使用階段整個(gè)生命周期,分成準(zhǔn)入準(zhǔn)出標(biāo)準(zhǔn)和質(zhì)量分兩個(gè)載體。當(dāng)前版本研發(fā)階段的質(zhì)量分和標(biāo)準(zhǔn)相對成熟,質(zhì)量分用于事后總結(jié),做后續(xù)版本的問題規(guī)避,而標(biāo)準(zhǔn)則代表著能否進(jìn)入集成回歸,能否轉(zhuǎn)交付。

要達(dá)到標(biāo)準(zhǔn),獲得質(zhì)量高分,均是有前人總結(jié)的方法論,結(jié)合這些方法論,并融合質(zhì)量分?jǐn)?shù)據(jù)現(xiàn)狀,“在合適的時(shí)機(jī)智能化地提供解決方案,規(guī)避風(fēng)險(xiǎn)”,這是當(dāng)前建設(shè)中的質(zhì)量風(fēng)險(xiǎn)管理能力的目標(biāo)。
3.研發(fā)效能做加持
2年,我們一直在為業(yè)務(wù)奔跑,但只要有間隙,提升研發(fā)效能必定被提上日程,因?yàn)槲覀儓?jiān)信這是提升幸福感的出路之一。
自測工作臺提升自測效能
要做好開發(fā)自測,首先要做的是聯(lián)合開發(fā),跟PM爭取到固定的、合適的自測時(shí)間。我們提供了開發(fā)主動要求的功能自動化、測試用例,同時(shí)提供了專有云下的服務(wù)鏈路調(diào)試、版本前后鏈路對比、測試數(shù)據(jù)工廠、服務(wù)MOCK、基于流量數(shù)據(jù)的性能隱患識別、性能問題初步篩查等增值能力?!霸皆绨l(fā)現(xiàn) bug,修復(fù)成本越低”,這乃亙古不變的道理。未來要思考的是,即使自測時(shí)間被榨干,也能在提測前充分自測。

分層自動化提升測試效能
自動化從來沒有像當(dāng)前如此被需要,測試團(tuán)隊(duì)需要,研發(fā)團(tuán)隊(duì)也需要,交付團(tuán)隊(duì)更需要,根本還是業(yè)務(wù)特性和當(dāng)前所處階段決定。互聯(lián)網(wǎng)產(chǎn)品搬的迭代周期,軍工級的產(chǎn)品品質(zhì)要求。通過自動化做越多的內(nèi)容,就有越多的人力出來覆蓋那些原本無人力、無技術(shù)覆蓋的部分。自動化測試我們認(rèn)定分層的理念,不同層就應(yīng)該用合適的自動化手段。
專有云服務(wù)端低代碼自動化平臺具備支持 LWP、HSF、HTTP接口測試的能力,同時(shí)能支持服務(wù)端SDK的自動化測試。之所以叫“低代碼”,是因?yàn)檫@個(gè)平臺從孕育開始(在宜搭出現(xiàn)之前)就開始秉承“低代碼”的理念,讓所有想做接口自動化的同學(xué)能上手,無關(guān)編碼能力,目前提供了簡單配置實(shí)現(xiàn)、流量自動生成兩種用例生成方式。下圖是配置頁面:

客戶端不僅采用了 UI 自動化做端到端的功能覆蓋,同時(shí)對 JSAPI、端上 SDK支持自動化測試。UI自動化還需要考慮一碼多端適配,即一套代碼能在不同的端穩(wěn)定運(yùn)行,端越多,自動化發(fā)揮的價(jià)值就越顯著,節(jié)省的人工投入就越可觀。
自動化不僅僅體現(xiàn)在功能測試上,在性能測試、客戶端體驗(yàn)專項(xiàng)測試,均是優(yōu)先考慮通過自動化來實(shí)現(xiàn)。一站式性能測試平臺實(shí)現(xiàn)從執(zhí)行、結(jié)果分析、瓶頸定位、基線控制的閉環(huán)自動化??蛻舳梭w驗(yàn)的大多數(shù)專項(xiàng)測試均能自動觸發(fā)執(zhí)行,自動生成競品對比分析報(bào)告。在產(chǎn)品版本質(zhì)量保障過程中,自動化也無所不在,自動生成質(zhì)量日報(bào)、自動生成轉(zhuǎn)交付申請、自動生成版本質(zhì)量報(bào)告、每天定時(shí)自動播報(bào)風(fēng)險(xiǎn)......
質(zhì)量標(biāo)準(zhǔn)提升組織協(xié)同效能
釘釘希望攜手合作伙伴一起投入數(shù)字化改革的浪潮中,隨著生態(tài)開放,釘釘提供底層能力,讓 ISV 在上面隨意暢享,實(shí)現(xiàn)他們的夢想。夢想的實(shí)現(xiàn)不能務(wù)虛,而是需要實(shí)實(shí)在在的協(xié)同機(jī)制、約定來保障,質(zhì)量就是所需要保障的其中一塊。專有釘?shù)拈_放平臺上連接了數(shù)千個(gè) ISV 產(chǎn)出的應(yīng)用、數(shù)量龐大的 SDK 和 API,為了保護(hù)自己,也更好的協(xié)助 ISV 提供高質(zhì)量的產(chǎn)品,測試團(tuán)隊(duì)制定了ISV 產(chǎn)物的質(zhì)量準(zhǔn)入標(biāo)準(zhǔn),同時(shí)逐步將我們用的成熟的測試能力提供給 ISV,讓質(zhì)量保障更加的容易,更加的公平。
結(jié)語
專有釘產(chǎn)品當(dāng)前的質(zhì)量保障體系勢必需要應(yīng)對更深層次的挑戰(zhàn),以持續(xù)保障我們的專有釘以軍工級的質(zhì)量來幫助到我們的客戶,始終讓體系的名字“定坤”實(shí)至名歸。















 
 
 





 
 
 
 