如何做好開發自測
- 2019 年 10 月 15 日
- 筆記
最近做研發品質分析,大家共同提到了一個改進措施:加強開發自測!
但是如何加強開發自測、怎麼做好開發自測?帶著這個問題,進入我們今天的分享:
一、開發測試小記
開發同學功能開發完成後,簡單自測通過後,填寫提交單提交測試,然後:
製作的修補程式,打到測試環境,發現丟了一些SQL、Dll、配置,然後提交單被測試無情地打回。
即便修補程式更新成功,扛不住測試用例的第一輪飽和測試,出現影響測試進展的Bug,或者Bug太多,滿足打回標準,提交單繼續被無情打回。
提交單打回後,開發同學集中修復了Bug,再次提交測試。正常情況下,第二輪功能測試發現的Bug會大幅減少,如果重新提交的修補程式品質不佳,修復Bug的同時,帶來了更多新的Bug,提交單還是有可能繼續被打回。
功能測試通過後,進行性能測試,並發壓力上來後,功能被打爆、資料庫被打爆、MQ被打爆,提交單再次被打回。
……
上面的場景,大家都很熟悉,很多開發、測試同學通過都經歷過。我們如何用真正的行動來加強開發自測,提升交付品質?我們需要有一套開發自測方法論:
二、開發自測方法論
我們詳細展開講一下:
1. 思想意識上,提升對自測的重視程度
-
- 開發階段不僅是程式碼開發完成,編譯通過,更重要的是自測通過。
- 自測工作投入應該占開發階段整體投入的30%,如果保證不了資源投入,自測只是一個形式;
- 自測工作必須覆蓋全面的自測場景:正向、逆向、正常、異常、並發性能等等;
- 自測是開發階段最重要的一環,如果不重視自測,測試階段可能會產生大量的Bug、提交單被打回、直接影響研發進度。
- 自測直接決定了產品的品質。
2. 自測的PDCA之-Plan計劃
開發階段,要加強自測工作的詳細規劃和資源投入:
這裡我們用的Scrum 迭代研發,以下是自測任務計劃情況:
自測工作在迭代拆分計劃時,要儘可能的覆蓋環境搭建、單元測試、聯調測試等工作,併合理估計投入時間。
同時具備完整的自測表,功能覆蓋度儘可能全。
3. 自測的PDCA之-Do執行
自測環境搭建:本機自測環境、Docker聯調環境
單元測試:保證核心方法、介面、場景都能覆蓋到,必須有完整的斷言。主要包含:
-
- 測試數據準備、準備Mock方法
- 主流程正向測試
- 主流程逆向測試
- 詳細功能-正常場景測試
- 詳細功能-異常場景測試
- 並發性能測試
- 測試數據清理
介面自動化測試:基於介面自動化測試工具,實現介面的自動化測試
集成測試:修補程式更新後全面功能測試,前後端聯調,保證自測功能表上所有功能都能自測通過。
同時,自測儘可能的保證自動化、可重複執行!
3. 自測的PDCA之-Check評估
如何評估、衡量自測的品質:以關鍵結果為導向!
測試Bug檢出率:
-
- 通過測試發現的Bug,要低於自測發現的Bug
- 如果測試檢出率過高,需要詳細做5why分析,為什麼自測未發現
單元測試程式碼覆蓋度
-
- 核心方法是否都通過了單元測試
- 單元測試程式碼覆蓋度
單元測試通過率
-
- 所有單元測試必須包含完整的斷言
- 所有單元測試必須全部測試通過
自測功能覆蓋度
-
- 自測表是否覆蓋所有的功能點
- 自測表功能測試全部通過
4. 自測的PDCA之-Act處理、完善
-
- 完善單元測試:增加核心方法測試覆蓋、測試數據覆蓋、單元測試場景覆蓋
- 增加自測功能覆蓋度:覆蓋更多自測功能,很多沒想到的測試點,增加到自測功能點中
- 增加資源投入和工作規劃:通過實際評估,合理加大自測資源投入和工作規劃
- 結對測試:自己開發的功能很多Bug可能測試不出來,結對測試,可以發現更多的Bug
- 功能演示&Review:以用戶的視角、需求的視角,Review已實現的功能,發現更多的Bug,完善到自測場景中。
其實還有很多其他的方法和討論來提升開發自測,同時提升自測的品質是一個不斷完善和改進的過程!
以上是近期做開發自測的總結,歡迎大家繼續補充。
周國慶
2019/10/15