先說一下,回答頻率最高的答案,就說“測試都通過了,沒有遺留bug了”。
確實,發(fā)布前我們要確保沒有遺留的bug,但是我們還要有過測試回歸,那通常測試回歸有幾輪呢?每個公司和自己的標準不一樣,于我而言:
●一輪回歸測試環(huán)境主功能,確保bug修復(fù)后的版本能正常運行;
●二輪回歸預(yù)發(fā)布環(huán)境(較穩(wěn)定版環(huán)境,一般預(yù)發(fā)布環(huán)境的數(shù)據(jù)和線上是一致的);
●三輪回歸生產(chǎn)環(huán)境,確保發(fā)布的內(nèi)容對主功能沒有影響。
線上的回歸可以依靠自動化來輔助測試。
看日志
那除了測試通過之外,我們還需要考慮什么呢?
個人覺得最重要的是看日志,在日志中能夠體現(xiàn)出很多我們在Postman、Jmeter中無法發(fā)現(xiàn)的錯誤,如空指針、連接超時等。而我們在工具中只能看到返回的值為空,不能確定是否存在異常。
那日志該怎么看呢?如果公司有日志平臺的話,就很簡單了,可以指定分支和機器號,查詢在測試階段的所有error日志。
那沒有日志平臺的呢?我們可以在Linux平臺中,進入對應(yīng)機器下的日志目錄下,cat xxx.log|grep ERROR查找打印error的日志,查看是否存在問題。
分支版本號
還有個要注意的是分支版本號。每次發(fā)布的時候,開發(fā)都會告訴我們對應(yīng)服務(wù)分支名,但是我們發(fā)布的時候千萬要注意以下幾點:
●本次發(fā)布的分支名是否正確;
●本次發(fā)布分支是否含線上最新的內(nèi)容;
●本次發(fā)布的內(nèi)容是否是提測的內(nèi)容,是否存在未提測或者其他開發(fā)的提測內(nèi)容。
那該怎么去看發(fā)布內(nèi)容呢?
首先,我們可以在git中找到對應(yīng)的分支,一般開發(fā)提交代碼都會有標識,我們可以通過提交的備注和提交的作者,來判斷是否含未提測的內(nèi)容。
那怎么去看是否含最新的代碼呢?很簡單,我們先找到上一次的發(fā)布分支,找到當時最新提交的commitid,然后在本次的發(fā)布分支中搜索是否存在該id,如果沒有找到的話,那我們就要注意了,是不是開發(fā)沒有最新的代碼,千萬要小心。
代碼覆蓋率
最后一點,對于看得懂代碼的測試同學很有益,就是代碼覆蓋率?,F(xiàn)在流行的框架就是JaCoCo,這個框架能夠識別我們的對應(yīng)分支的測試覆蓋率,生成對應(yīng)的測試報告。
通過報告我們可以看到有沒有開發(fā)提測的代碼沒有覆蓋的,具體是什么場景,對于防止漏測場景非常有幫助。
一般覆蓋率都是精確到類下面的所有方法,這樣就能檢測出本次影響的這個類的所有方法是否測試過,當然這樣會導致測試場景會很多,所以我們可以借助自動化,把平時需要回歸的用例全都跑一遍,一般上線要求覆蓋率90%以上。
到這里,系統(tǒng)發(fā)布時候的坑基本能夠杜絕80%以上,希望各位同學每次發(fā)布都能順順利利,!