爛大街的測(cè)試左移和右移

測(cè)試左移與右移的定義
通俗的講:左移是往開發(fā)階段移,右移是往發(fā)布之后移。
正常測(cè)試:提測(cè)后的測(cè)試工作——到——發(fā)布驗(yàn)證完成階段。
測(cè)試左移:提測(cè)之前的測(cè)試。
如:代碼單元測(cè)試,代碼質(zhì)量檢測(cè),代碼接口持續(xù)測(cè)試 等。
測(cè)試右移:發(fā)布驗(yàn)證之后的測(cè)試。
如:灰度發(fā)布測(cè)試的問題,生產(chǎn)服務(wù)監(jiān)測(cè)處理,用戶反饋問題處理,對(duì)客戶的技術(shù)支持等。
1、什么是測(cè)試左移?
測(cè)試左移的思想本質(zhì)是越早的發(fā)現(xiàn)不合理的地方,出問題的幾率就越低。測(cè)試左移的原則支持測(cè)試團(tuán)隊(duì)在軟件開發(fā)周期早期和所有干系人合作,因此他們能清晰地理解需求以及設(shè)計(jì)測(cè)試用例去幫助軟件“快速失敗”,促使團(tuán)隊(duì)更早的修改所有的bug。
參與和理解會(huì)使測(cè)試人員獲取產(chǎn)品完整的知識(shí),徹底想清楚各種場(chǎng)景,根據(jù)軟件行為設(shè)計(jì)實(shí)時(shí)的場(chǎng)景,這些都會(huì)幫助團(tuán)隊(duì)在編碼完成之前識(shí)別出一些缺陷。
2、什么是測(cè)試右移?
測(cè)試右移是產(chǎn)品上線了之后也可以進(jìn)行一些測(cè)試活動(dòng)。當(dāng)然在生產(chǎn)環(huán)境直接做測(cè)試是不推薦的,但是我們可以在生產(chǎn)環(huán)境做監(jiān)控,監(jiān)控線上性能和可用率,一旦線上發(fā)生任何問題,盡快反應(yīng),提前反應(yīng),給用戶良好的體驗(yàn)。盡量做到技術(shù)人員要比業(yè)務(wù)方先發(fā)現(xiàn)問題。
測(cè)試右移其實(shí)還可以理解為如果線上發(fā)生任何問題,我們有沒有能力第一時(shí)間發(fā)現(xiàn)問題并解決問題,并保證線上數(shù)據(jù)的一致性或盡可能少的影響線上用戶,以及并且實(shí)時(shí)獲取用戶反饋

測(cè)試左移:本質(zhì)上是借助工具和測(cè)試手段更早地發(fā)現(xiàn)問題和預(yù)防問題。
需求:對(duì)需求、架構(gòu)和設(shè)計(jì)模型的測(cè)試;
開發(fā):著重增加對(duì)單元、組件和服務(wù)層的測(cè)試;
持續(xù)測(cè)試:自動(dòng)化測(cè)試。
測(cè)試右移:對(duì)測(cè)試同學(xué)來(lái)說,版本上線后需要持續(xù)關(guān)注線上監(jiān)控和預(yù)警,及時(shí)發(fā)現(xiàn)問題并跟進(jìn)解決,將影響范圍降到最低。
灰度發(fā)布:新版本線上測(cè)試;
監(jiān)控:合理的性能監(jiān)測(cè)、數(shù)據(jù)監(jiān)控和預(yù)警機(jī)制;
用戶反饋:線上問題處理、跟蹤機(jī)制。
測(cè)試左移內(nèi)容

1、PRD評(píng)審
這一點(diǎn)相信很多測(cè)試同學(xué)都有參與過,需求的PRD評(píng)審,但是很多時(shí)候可能只是局限于聽需求,而缺少了分析or測(cè)試需求的部分。測(cè)試一方面是熟悉需求的內(nèi)容,另一方面也是找出需求的問題,確認(rèn)需求的合理性,判斷需求是否全面、正確,上下文具備不二性。
2、研發(fā)設(shè)計(jì)評(píng)審
這一點(diǎn)當(dāng)我們測(cè)試在做測(cè)試方案、用例設(shè)計(jì)的時(shí)候,研發(fā)也在做研發(fā)設(shè)計(jì),做好了之后通常會(huì)有研發(fā)設(shè)計(jì)的評(píng)審。測(cè)試在這個(gè)階段是非常有必要參與研發(fā)設(shè)計(jì)的評(píng)審的。
避免純粹從黑盒的角度去設(shè)計(jì)測(cè)試用例,導(dǎo)致有一些個(gè)別情況下的缺失測(cè)試用例覆蓋的情況。當(dāng)然,如果測(cè)試具備走讀研發(fā)代碼的能力,參與研發(fā)的設(shè)計(jì)評(píng)審,對(duì)于提升測(cè)試用例覆蓋率,會(huì)更加的事半功倍
3、單元測(cè)試
這一點(diǎn)現(xiàn)在應(yīng)該只有一些大廠會(huì)執(zhí)行得好一些,很多中小公司都沒有嚴(yán)格要求研發(fā)必須做單元測(cè)試。一方面是中小公司流程上要求普遍不會(huì)那么嚴(yán)格,另一方面也是需求開發(fā)時(shí)間越來(lái)越短,導(dǎo)致研發(fā)們普遍都沒有很多的時(shí)間去執(zhí)行單元測(cè)試的工作,為保障按時(shí)交貨,都直接開發(fā)完成就扔給測(cè)試去做相應(yīng)的測(cè)試。
在這一點(diǎn)上我依然堅(jiān)持研發(fā)為主、測(cè)試為輔的思路。測(cè)試輔助研發(fā)更好的完成單元測(cè)試。為什么不是測(cè)試直接去做單元測(cè)試呢?因?yàn)檫@一方面需要測(cè)試具備白盒測(cè)試
4、模塊集成聯(lián)調(diào)測(cè)試
這一點(diǎn)我們測(cè)試可以做一個(gè)mock平臺(tái)或者mock服務(wù)提供給研發(fā),幫助研發(fā)可以快速mock接口內(nèi)容,提高聯(lián)調(diào)測(cè)試的效率。

5、代碼規(guī)范檢查
這一點(diǎn)也是提高研發(fā)提測(cè)質(zhì)量的手段,可以通過各類代碼檢查工具來(lái)規(guī)范提高研發(fā)的代碼質(zhì)量。比如Java系比較流行的SonarQube, 可以結(jié)合進(jìn)CICD的流程,作為代碼提測(cè)的必查項(xiàng)。
6、代碼復(fù)雜度檢查
這一點(diǎn)也一樣,只是很多公司目前不太在意這一點(diǎn)。其實(shí)越復(fù)雜的代碼,也就意味著其存在bug的可能性越高。同樣代碼越復(fù)雜,也意味著編碼質(zhì)量可能不高或者后期代碼維護(hù)成本的升高。SonarQube目前也能掃描代碼的復(fù)雜度,編譯器Idea的也有類似的插件提供該項(xiàng)檢查,因此這一點(diǎn)也可以列為流程中的必查項(xiàng)。
7、自動(dòng)化測(cè)試
這一點(diǎn)就是測(cè)試最熟悉的了,自動(dòng)化測(cè)試,目前主要包括UI自動(dòng)化和接口自動(dòng)化,實(shí)現(xiàn)的方式也是多種多樣,編寫腳本的方式、錄制回放的方式,用平臺(tái)、不用平臺(tái)都OK。重點(diǎn)在于選擇適合自身組織的方式,以及如何自動(dòng)化是否真的提升了測(cè)試的效率,避免為了自動(dòng)化而自動(dòng)化。

測(cè)試右移內(nèi)容

1、灰度發(fā)布
又稱為“金絲雀發(fā)布”,本質(zhì)就是另外構(gòu)造一套環(huán)境,先把代碼發(fā)布到這套環(huán)境中,只放少量指定的流量進(jìn)來(lái)試用一段時(shí)間,通常為試用一周或兩周,達(dá)到以實(shí)際的線上流量檢測(cè)代碼是否存在問題的目的,減少上線后大量流量運(yùn)行下出問題的概率。引入這樣的一個(gè)過程,那么測(cè)試就會(huì)先在灰度環(huán)境上做驗(yàn)證,也是目前大廠都必有的一個(gè)環(huán)節(jié)。

2、線上監(jiān)控
項(xiàng)目上線后仍然需要關(guān)注服務(wù)的運(yùn)行情況,以便在出現(xiàn)系統(tǒng)問題時(shí)能夠快速做出反應(yīng)。這一點(diǎn)主要是測(cè)試可以右移參與線上環(huán)境監(jiān)控工具的部署,讓整個(gè)線上的監(jiān)控體系更加完善。
即使部署的工作都是運(yùn)維在做,監(jiān)控體系已經(jīng)非常完善,測(cè)試也可以接入告警,當(dāng)業(yè)務(wù)接口出錯(cuò)或者調(diào)用量超過閾值時(shí),測(cè)試可以接收到對(duì)應(yīng)的告警信息,和研發(fā)一起定位解決問題。

3、用戶反饋
測(cè)試參與到線上用戶反饋的問題中去,幫助復(fù)現(xiàn)和定位各類線上用戶反饋的問題,既可以解決問題,也可以更多的了解用戶實(shí)際使用過程中的問題和需求,幫助后續(xù)更好的做好需求評(píng)審和測(cè)試覆蓋工作。
4、混沌工程
類似于“故障演練”,通過構(gòu)造各類異常,驗(yàn)證系統(tǒng)在碰到這些異常時(shí)是否有做好對(duì)應(yīng)的監(jiān)控告警、預(yù)案處理,針對(duì)性地進(jìn)行加固,防范,從而避免故障發(fā)生時(shí)所帶來(lái)的嚴(yán)重后果。通過對(duì)各類異常提前做好監(jiān)控告警和預(yù)案處理,增強(qiáng)系統(tǒng)的健壯性,增強(qiáng)分布式系統(tǒng)的信心。目前已經(jīng)成為各大廠測(cè)試右移
5、A/B測(cè)試
ABTest 實(shí)驗(yàn),其實(shí)本質(zhì)上就是把平臺(tái)的流量均勻分為幾個(gè)組,每個(gè)組添加不同的策略,然后根據(jù)這幾個(gè)組的用戶數(shù)據(jù)指標(biāo),例如:留存、人均觀看時(shí)長(zhǎng)、基礎(chǔ)互動(dòng)率等等核心指標(biāo),最終選擇一個(gè)最好的組上線。常用于驗(yàn)證不同的方案設(shè)計(jì)、算法設(shè)計(jì)的效果。

我們可以做什么
1,測(cè)試左移,我們可以做什么
在需求評(píng)審時(shí)不只是了解需求,更是要去評(píng)估需求的質(zhì)量,分析需求的合理性以及完整性。
代碼掃描,代碼質(zhì)量檢查,進(jìn)行單元測(cè)試,測(cè)試驅(qū)動(dòng)開發(fā),這些都是在開發(fā)階段就引入測(cè)試的手段。
測(cè)試人員盡早介入測(cè)試,參加需求分析,評(píng)審。
持續(xù)測(cè)試:自動(dòng)化測(cè)試。
對(duì)于測(cè)試左移其實(shí)我們還有很多東西要做,就好像一開始說到的都是為產(chǎn)品質(zhì)量服務(wù),那么在研發(fā)流程中的任何角色、人員都要為質(zhì)量服務(wù)。
有哪些活動(dòng)可以提高質(zhì)量上限(舉例)?
健康的項(xiàng)目流程(合理并且嚴(yán)格遵守的項(xiàng)目流程)
合理的需求分析(評(píng)估需求的質(zhì)量,分析需求的合理性以及完整性)
出色的系統(tǒng)架構(gòu)
完整的系統(tǒng)設(shè)計(jì)(評(píng)估設(shè)計(jì)的質(zhì)量,分析需求的合理性以及完整性)
充分利用靜態(tài)代碼掃描
進(jìn)行研發(fā)標(biāo)準(zhǔn)的定義
更早的測(cè)試分析(先于開發(fā)完成需求的分析,做好各種評(píng)審的準(zhǔn)備)
盡早的測(cè)試執(zhí)行(提早參與測(cè)試執(zhí)行,在集成前就發(fā)現(xiàn)一些問題)
有哪些活動(dòng)可以提高質(zhì)量下限(舉例)?
健康的測(cè)試流程
優(yōu)秀的測(cè)試用例
合理的測(cè)試計(jì)劃
合適的自動(dòng)化
適當(dāng)?shù)奶剿魇綔y(cè)試
開發(fā)自測(cè)(TDD、BDD,測(cè)試提供更好的用例、技術(shù)支持)
團(tuán)隊(duì)質(zhì)量意識(shí)的培養(yǎng)
對(duì)于測(cè)試左移,也需要一個(gè)重要的基礎(chǔ),工程習(xí)慣,SDLC成熟度,測(cè)試分層,持續(xù)集成,鏈路上延展發(fā)布的節(jié)奏,縱深上需要貼合業(yè)務(wù)的專精領(lǐng)域的深度探索,代碼掃描(規(guī)范,問題,安全,異常等),CR, 代碼提交行為分析,test double(mock , fake, stub,dummy), UT, 自動(dòng)化,驗(yàn)收測(cè)試等。左移需要工程效率具備不亞于研發(fā)的代碼能力。
因此對(duì)于測(cè)試左移,筆者認(rèn)為可以圍繞質(zhì)量服務(wù)思想展開,參與人員則不僅僅局限于測(cè)試人員當(dāng)然實(shí)踐起來(lái)會(huì)存在一些問題,例如筆者團(tuán)隊(duì)實(shí)踐起來(lái),就出現(xiàn)了
測(cè)試要求提供概要設(shè)計(jì)、接口文檔?。。?/p>
測(cè)試要求單元測(cè)試必須通過?。?!
測(cè)試干預(yù)需求設(shè)計(jì)?。。?/p>
很多人都認(rèn)為是測(cè)試在要求完成一些沒必要的事情,測(cè)試在干預(yù)我的工作。其實(shí)問題的矛盾點(diǎn)在于前面說過的一句話:
不管是測(cè)試左移還是測(cè)試右移,都是為產(chǎn)品質(zhì)量服務(wù)。不要把提測(cè)認(rèn)為是測(cè)試活動(dòng)的開始,上線是測(cè)試活動(dòng)的結(jié)束,更不要認(rèn)為質(zhì)量只是測(cè)試同學(xué)需要關(guān)注的。對(duì)于測(cè)試左移的落實(shí),最重要的就是全員質(zhì)量服務(wù)意識(shí)的培養(yǎng)
2,測(cè)試右移,我們可以做什么
測(cè)試上線及時(shí)驗(yàn)證,有問題,開發(fā)快速回滾代碼
上線后開發(fā)監(jiān)控服務(wù)日志,日志報(bào)錯(cuò),代碼回滾
監(jiān)控服務(wù)流量,出現(xiàn)流量報(bào)警快速定位問題
閉環(huán)的線上問題反饋-檢查-解決-更新流程
更便捷的日志查看、回傳服務(wù)?
豐富有效的log,便于問題的快速定位
豐富的監(jiān)控指標(biāo)(例如業(yè)務(wù)異常點(diǎn)指標(biāo))
成本監(jiān)控(例如短信發(fā)送等)
關(guān)鍵指標(biāo)每日監(jiān)控(服務(wù)器指標(biāo))
生產(chǎn)數(shù)據(jù)監(jiān)控(警報(bào))(通過sql語(yǔ)句實(shí)現(xiàn)生產(chǎn)數(shù)據(jù)監(jiān)控,例如是否有多個(gè)訂單號(hào)一樣的訂單出現(xiàn)等)
用戶反饋問題及時(shí)跟進(jìn),針對(duì)缺陷,通知開發(fā)盡快解決,針對(duì)體驗(yàn),通知產(chǎn)品打磨細(xì)節(jié)。
因此對(duì)于測(cè)試右移,我認(rèn)為可以圍繞問題反饋、發(fā)現(xiàn)、定位、監(jiān)控展開,參與人員則不僅僅局限于運(yùn)維人員當(dāng)然一樣的,實(shí)踐起來(lái)也是存在問題,除了技術(shù)問題之外,還有例如:? ?
線上監(jiān)控搭建后無(wú)人使用
線上問題反饋機(jī)制,業(yè)務(wù)人員不配合等等
監(jiān)控指標(biāo)不合理,反而被認(rèn)為增加服務(wù)器負(fù)載
測(cè)試右移的落實(shí),除了質(zhì)量服務(wù)的培養(yǎng),更加重要的反而可能是:完善的反饋、發(fā)現(xiàn)、定位,在監(jiān)控架構(gòu)完善后,怎么更好的與項(xiàng)目流程結(jié)合,不要讓其成為累贅。
最后:這些資料,對(duì)于【軟件測(cè)試】的朋友來(lái)說應(yīng)該是最全面最完整的備戰(zhàn)倉(cāng)庫(kù),這個(gè)倉(cāng)庫(kù)也陪伴上萬(wàn)個(gè)測(cè)試工程師們走過最艱難的路程,希望也能幫助到你!

包括,測(cè)試人技術(shù)進(jìn)階路徑圖,50多天的視頻教程、16個(gè)項(xiàng)目實(shí)例,30多個(gè)測(cè)試工具,37份測(cè)試文檔,70個(gè)軟件測(cè)試相關(guān)問題,40篇測(cè)試經(jīng)驗(yàn)級(jí)文章分享,還有軟件測(cè)試面試小程序,求職簡(jiǎn)歷的優(yōu)化模板。
加油吧,如果你需要提升技術(shù)儲(chǔ)備,那就行動(dòng),在路上總比在起點(diǎn)觀望的要好。一切的迷茫都是因?yàn)橄氲锰喽龅奶伲?/p>
你可以在公眾號(hào):傷心的辣條?! 自行領(lǐng)取一份216頁(yè)軟件測(cè)試工程師面試寶典文檔資料【免費(fèi)的】。以及相對(duì)應(yīng)的視頻學(xué)習(xí)教程免費(fèi)分享!,其中包括了有基礎(chǔ)知識(shí)、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫(kù)、抓包工具專題、接口測(cè)試工具、測(cè)試進(jìn)階-Python編程、Web自動(dòng)化測(cè)試、APP自動(dòng)化測(cè)試、接口自動(dòng)化測(cè)試、測(cè)試高級(jí)持續(xù)集成、測(cè)試架構(gòu)開發(fā)測(cè)試框架、性能測(cè)試、安全測(cè)試等。
現(xiàn)在我邀請(qǐng)你進(jìn)入我們的軟件測(cè)試學(xué)習(xí)交流群:【746506216】,備注“入群”, 大家可以一起探討交流軟件測(cè)試,共同學(xué)習(xí)軟件測(cè)試技術(shù)、面試等軟件測(cè)試方方面面,還會(huì)有免費(fèi)直播課,收獲更多測(cè)試技巧,我們一起進(jìn)階Python自動(dòng)化測(cè)試/測(cè)試開發(fā),走向高薪之路。