【軟件測試】老說左移右移?實際我們做了什麼

最近公司晉升季,聽參加的小夥伴提到一些概念性的東西,其中就包括測試左移和右移。

這裏就藉着測試左移和右移的概念,覆盤一下測試工作中的內容。

一、左移右移是什麼

首先簡述一下左移右移的概念。

左移

說白了就是儘早的進行測試。比如在正式提測之前,可以對需求、代碼等進行評估或測試。

右移

這裏是針對發佈上線之後,再進行一系列的手段能夠及時發現問題,降低影響範圍。比如線上迴歸、監控等。

相比之下,右移可做的事情可能不少人都沒有注意。

其實真正要做得好的話,右移或許要比左移更有挑戰性。因爲那是在線上,考驗我們是否有能力第一時間發現問題,解決問題降低影響。

二、實際中做了什麼

總體來看,目前從左到右的過程中基本都有做一些工作。下面盤點一下可做的、已做的,以及實際中的一些問題等等。

1. 需求評審

預期狀態下是測試人員能夠主動參與需求的設計討論中,這個環節基本上都是做到的。
但是這裏重要的是,我們參與需求會不能僅僅“聽需求”,更重要的是能認真的分析需求,判斷需求的合理性、上下文是哪些,以及需求覆蓋的場景是否全面等。

2. 開發設計評審

這個環節也是很重要的,形式上或許不用那麼嚴謹。

比如我們通常在大的需求、項目時候會有正式的會議討論,但是日常大多迭代中,可能直接跟開發面對面碰一下就好了。

所以說形式不重要,但是環節必須有。

通常來說,開發人員會告訴你自己的設計,以及自己覺得會影響到的點有哪些,我們可以進行參考並進行補充。

對於開發提到的技術,我們不一定要全部都懂,但是設計思路還是需要理解的,有助於我們提高測試設計的覆蓋度。

有些涉及到一些中間件交互,比如緩存、MQ等,還需要結合中間件特性引入一些針對性的測試。

3. 單元測試

這個環節我目前所參與過的項目都是沒有做的,可能某些團隊有一些少量的要求,但是通常業務類的系統都不會要求的,需求可能經常會變,投入回報比太低。

另外,單元測試通常開發來做比較合適,但是工期往往都是很短,根本沒有時間去做單測。如果讓測試人員來做,那麼對測試人員的技能要求又是太高了些。

那麼是不是啥都做不了呢?

也不是,個人覺得條件允許的可以嘗試進行代碼走讀,好處如下:

  • 更加清晰開發代碼的改動範圍
  • 清楚具體代碼邏輯
  • 倒逼自己學習

我個人目前也在嘗試做,中間會遇到一些寫法、封裝、設計模式等問題。有問題就需要去解決,解決了就學到了。

4. 代碼檢查

這裏可以引入一些工具來進行代碼檢查,目前經手的java項目會集成 SonarQube,在代碼提測的時候自動進行。

5. 自動化測試

這部分就很熱門了,現在也成了老生常談的話題。

目前我的項目裏是做了接口自動化集成,使用的是組內的一個平臺。但是個人覺得形式不重要,重要的是能否真正的提效。

實際中其實也發現有些人是爲了自動化而自動化,接口斷言不嚴謹,基本上檢查不出問題,那麼這種自動化用例就沒有存在的必要了。

其實除了自動化測試用例之外,某些場景下的高效造數據的腳本也是很有必要的。

6. 發佈監控

首先要注意平滑發佈。

另外在發佈的時候,通知相關開發人員一起進行監控。通常我會看應用日誌、以及對應服務器的指標狀況。

關於日誌,如果在測試過程中發現有些地方需要輸出日誌,可以提建議給開發。

7. 線上監控

發佈上線後,還是需要做一些措施來監控線上服務運行狀況。

目前公司是有統一的監控系統的,在裏面可以方便的查看應用的各項指標,比如:

  • 請求量
  • 失敗率
  • CPU
  • 內存
  • JVM
    ...

如果公司還沒有一套完善的監控體系,那還是有必要建設一套的,有機會的話可以積極參與其中。

另外,必要的監控也是需要加上的。比如某個重要接口的調用量或錯誤率超過了設置的閾值,對應人員就可以收到警告,第一時間來關注解決問題。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章