測試左移與測試右移
測試左移以及測試右移,能夠讓測試擁有更多的主動權,有更充足的時間進行測試,同時不會像之前因為質量差風險高每次都延期上線,并且產品的線上質量也能有保證。
不管是測試左移還是測試右移,都是為產品質量服務。不要把提測認為是測試活動的開始,上線是測試活動的結束,更不要認為質量只是測試同學需要關注的。
測試左移
測試左移的思想,本質是越早的發(fā)現(xiàn)不合理的地方出問題的幾率就越低。
測試左移的原則支持測試團隊在軟件開發(fā)周期早期和所有干系人合作。因此他們能清晰地理解需求以及設計測試用例去幫助軟件“快速失敗”,促使團隊更早的修改所有的bug。
參與和理解會使測試人員獲取產品完整的知識,徹底想清楚各種場景,根據(jù)軟件行為設計實時的場景,這些都會幫助團隊在編碼完成之前識別出一些缺陷。
測試左移包含2個方面
提高質量上限
提高質量上限,其實是通過一系列活動,來避免問題或者本身就讓我們起步就變得很好的,一句話:良好的開始是成功的一半
提高質量下限
提高質量下限,其實是通過一系列的活動,讓我們的質量成果得以保證的
測試左移,其實就是通過一系列的活動,能提高質量的上限,縮短測試的周期,提高質量的下限,這樣子,我們就可以在不斷提高下限的過程中,始終將質量穩(wěn)定在一個水平線上,而和團隊一起追求更高的目標了。
從不重視代碼質量的第一天開始,就埋下了問題修復,定位的成本和修復問題再次引入問題的成本。
當測試在周期的早期開始時,團隊會更專注于質量,并且“讓我們在第一時間獲得正確的編碼”前景。這有助于節(jié)省大量時間,并減少軟件開發(fā)團隊必須為特定代碼執(zhí)行的迭代次數(shù)。
測試左移的實現(xiàn)步驟
在團隊的devops開發(fā)下,對于測試左移進行的操作:
編寫單元測試,通過單元測試提前進行測試
Code Review,通過代碼走讀發(fā)現(xiàn)一些基礎的問題
參與需求評審,提出需求不清晰、不合理、遺漏等意見,了解開發(fā)的實現(xiàn)方式
參與研發(fā)需求分解,協(xié)助梳理分解遺漏點
參與概要、接口設計評審,協(xié)助梳理遺漏邏輯
提早輸出測試導圖,開發(fā)編碼前進行評審
部分功能提測,提早開始測試
自動化測試,用于回歸確保舊版本功能正確性
對于測試左移,進行了相應的嘗試后,也發(fā)現(xiàn)了測試左移實踐的問題:
測試要求提供概要設計、接口文檔!?。?/p>
測試要求單元測試必須通過!??!
測試干預需求設計?。。?/p>
很多人都認為是測試在要求完成一些沒必要的事情,測試在干預我的工作。
其實問題的矛盾點在于前面說過的一句話:不管是測試左移還是測試右移,都是為產品質量服務。
不要把提測認為是測試活動的開始,上線是測試活動的結束,更不要認為質量只是測試人員需要關注的。
對于測試左移的落實,最重要的就是全員質量服務意識的培養(yǎng)
測試左移,還需改進的實踐
對于測試左移其實我們還有很多東西要做,就好像前面說到的都是為產品質量服務,那么在研發(fā)流程中的任何角色、人員都要為質量服務。
提高質量上限
健康的項目流程(合理并且嚴格遵守的項目流程)
合理的需求分析(評估需求的質量,分析需求的合理性以及完整性)
出色的系統(tǒng)架構
充分利用靜態(tài)代碼掃描
進行研發(fā)標準的定義
提高質量下限
健康的測試流程
優(yōu)秀的測試用例
合理的測試計劃
合適的自動化
適當?shù)奶剿魇綔y試
開發(fā)自測(TDD、BDD,測試提供更好的用例、技術支持)
盡早的測試
團隊質量意識的培養(yǎng)
對于測試左移,也需要一個重要的基礎,工程習慣,SDLC成熟度,測試分層,持續(xù)集成,鏈路上延展發(fā)布的節(jié)奏,縱深上需要貼合業(yè)務的專精領域的深度探索,代碼掃描(規(guī)范,問題,安全,異常等),CR, 代碼提交行為分析,test double(mock , fake, stub,dummy), UT, 自動化,驗收測試等。左移需要工程效率具備不亞于研發(fā)的代碼能力。
因此對于測試左移,可以圍繞質量服務思想展開,參與人員則不僅僅局限于測試人員
測試右移
左移是往測試之前的開發(fā)階段移,右移是往發(fā)布之后移。
也就是產品上線了之后也可以進行一些測試活動。當然在生產環(huán)境直接做測試是不推薦的,但是我們可以在生產環(huán)境做監(jiān)控,監(jiān)控線上性能和可用率,一旦線上發(fā)生任何問題,盡快反應,提前反應,給用戶良好的體驗。
技術人員要比業(yè)務方先發(fā)現(xiàn)問題,如果業(yè)務方已經(jīng)發(fā)現(xiàn)業(yè)務量明顯下降,說明問題已經(jīng)很嚴重了。
測試右移其實還可以理解為如果線上發(fā)生任何問題,我們有沒有能力第一時間發(fā)現(xiàn)問題并解決問題,并保證線上數(shù)據(jù)的一致性或盡可能少的影響線上用戶,以及并且實時獲取用戶反饋。
測試右移的實踐步驟
對于測試右移,線上監(jiān)控可以是突破點,:
閉環(huán)的線上問題反饋-檢查-解決-更新流程
更便捷的日志查看、回傳服務
豐富有效的log,便于問題的快速定位
豐富的監(jiān)控指標(例如業(yè)務異常點指標)
成本監(jiān)控(例如短信發(fā)送等)
關鍵指標每日監(jiān)控(服務器指標)
生產數(shù)據(jù)監(jiān)控(警報)(通過sql語句實現(xiàn)生產數(shù)據(jù)監(jiān)控,例如是否有多個訂單號一樣的訂單出現(xiàn)等)
因此對于測試右移,可以圍繞問題反饋、發(fā)現(xiàn)、定位、監(jiān)控展開,參與人員則不僅僅局限于運維人員
測試右移還需改進的實踐
一樣的,實踐起來也是存在問題,除了技術問題之外,還有例如:
線上監(jiān)控搭建后使用率不高
線上問題反饋機制,業(yè)務人員不配合等等
監(jiān)控指標不合理,反而被認為增加服務器負載
測試右移的落實,除了質量服務的培養(yǎng),更加重要的反而可能是:完善的反饋、發(fā)現(xiàn)、定位,在監(jiān)控- 架構完善后,怎么更好的與項目工作(流程)結合,不要讓其成為累贅
作 者:?自動化軟件測試
出 處:微信公眾號:自動化軟件測試平臺
版權說明:歡迎轉載,但必須注明出處,并在文章頁面明顯位置給出文章鏈接