什麼是測試左移和測試右移

爱学习的饲养员發表於2024-09-25

測試左移和測試右移是現在比較熱門的概念,今天我們主要介紹一下測試左右移。我們在討論測試左移和測試右移之前,先將業內最典型的軟體開發過程視覺化出來,要說最典型的開發過程模型要數瀑布模型了,大概如下圖:

在瀑布模型裡,測試人員會在整個開發週期快結束的時候才介入。如果發現 bug 後,又要回過頭開發進行修改,測試再進行測試,整個軟體開發生命週期非常長。測試過程經常成為整個開發週期的瓶頸,隨著越來越多的公司開展敏捷開發模式,測試左移就成了軟體開發過程的關鍵實踐。

左移是向軟體開發週期中的早期移動,測試左移則是將測試向開發階段,甚至是需求階段移動。測試左移的目的其實是想在軟體開發週期中更早的階段開展測試活動,比如說我們想在開發階段就進行測試。測試左移不是等待軟體全部可以整合後才進行測試,而是以更小的單元並且更快的頻率進行測試。

右移是向軟體開發過程的後期移動,比如說在系統部署時和上線後。測試右移就是應用在部署、線上監控的一系列實踐活動。隨著 DevOps 的興趣,測試右移的理念也越來越被很多團隊引入、發展和壯大。在 DevOps 中,研發和運維是緊密的進行配合,研發人員的角色從之前只完成程式的部署伸展到了運維端,要承擔系統線上執行的更多責任。

需要說明的是測試右移絕不僅僅是指研發人員對線上系統的監控,測試右移要進行的活動不但包括研發人員對於線上程式的監控、功能切換、使用線上流量來進行測試等,還包括將持續測試的理念發展到更廣闊的空間中,比如基於前端的埋點、全網範圍內 App 端的監控、灰度測試等。

在這裡舉一些我們實踐中的一些方法:

測試左移

  • 靜態程式碼掃描
  • 微服務
  • 單元測試
  • 測試驅動開發

測試右移

  • App 監控
  • 前端監控
  • 程式日誌監控
  • http 狀態監控
  • 撥測監控
  • A/B 測試
  • 灰度釋出

測試右移改變了研發團隊如何看待上線後的應用,測試右移會產生一個從線上使用者對系統的真正使用到開發過程的持續反饋迴圈。現在各大網際網路公司中的釋出效率是極快的,可能很多開發人員經歷過從之前的每月或者每週釋出一次到現在的每天、每小時釋出,或者任何時間都會發布,相信你第一次接觸一定會對你產生足夠的衝擊。正是線上使用者和開發人員這種快速、持續反饋的迴圈才能支撐著這一切。

線上上系統進行測試意味著我們要做到對使用者影響到最低,我們要全盤考慮線上使用者對系統的使用情況,以及一些資料安全、使用者隱私相關的因素。現在有些公司會將線上流量複製到線下,使用線上充分的使用者行為對系統進行充分的測試。

透過在使用者和研發人員建立反饋系統,可以收集使用者的反饋,從而我們能夠修復和改進我們的系統使使用者滿意度更高。藉助自動化監控系統,我們可以第一時間獲取系統的執行狀態,我們對於系統的故障恢復能力更有信心。

持續測試就是透過測試左移、測試右移實踐在整個開發週期的每個階段都進行測試。所以,我們說測試左移和測試右移其實就是在透過各種手段在開發過程的各個階段裡進行測試的實踐,每個團隊會有每個團隊不同的方法。

測試左移和測試右移,是一種理念,是一種文化。

相關文章