精確測試

# 定義

直接引用百度的 :

精準測試是一套計算機測試輔助分析系統。精準測試的核心組件包含的軟件測試示波器、用例和代碼的雙向追溯、智能迴歸測試用例選取、覆蓋率分析、缺陷定位、測試用例聚類分析、測試用例自動生成系統,這些功能完整的構成了精準測試技術體系

# 背景

集團的同學分享了關於精準測試的文章,看了下簡單記錄一下

# 正文

(以下都是個人理解,如果有不對歡迎留言討論)

1. 做測試的朋友都可能碰到過:漏測/少測,根本原因是不知道研發改動了什麼/影響到什麼 or 是知道了改動了什麼但因爲一些需求歷史不清楚,導致不知道影響到了什麼;

1. 精準的對立就是模糊,精準測試說白了就是當研發提交一個新版本過來的時候,你知道它改動了什麼,影響到哪些接口/方法,然後針對改動點去測試。是從測試的角度去看待問題,提高測試的效率,畢竟之前是要求全量回歸的,現在只需要測試部分;

2. 精準測試 跟 迴歸測試有沒有悖論呢 ?迴歸測試,驗證新功能會不會對其他原有功能造成影響;而精準測試貌似說是可以發現這些影響面? 瞭解了精準測試的大致原理,我只能說很難發現,why?

3. 精準測試的大致思路:研發改動了什麼 --> 影響面評估 -->  篩選用例 --> 用例執行 ;

# 沒有精確測試

1. 提測 -- 研發提交代碼,告知改動點,可能的影響面,自測點,測試重點(這裏需要靠譜的研發!!)

2. 用例編寫 -- 針對這次需求/改動點編寫用例,用業務經驗/技術經驗來評估影響面來新增用例;

3. 用例review -- 用例發給組內同學一起討論下,從別人的角度看待問題;

4. 用例執行 ;

總結: 其實用業務經驗、技術經驗、用例組內review就是一種精確測試,只是人工的形式罷了

# 有了精確測試

1. 提測 -- 通過git工具獲取本次提交的變更記錄,獲取改動的情況,可具體到哪個文件;

2. diff --  通過diff工具,git也有diff功能,class文件的diff,目的就是找出方法級別的改動;

3. 分析調用鏈路 -- 通過分析源碼,找到入口,也就是top方法,java的service層,controller層

4. 篩選用例 --  根據鏈路上的影響分析需要回歸哪些用例;

總結:整體大致流程就是:代碼push --> 觸發精準測試任務 --> 通過git工具獲取改動詳情(文件,方法,入口)--> 在用例庫中篩選用例自動化執行 --> 報告輸出(用例+覆蓋率)

# 精確測試好處

1. 評估影響面,對長鏈路測試有幫助,A-B-C-D,修改了C,能評估中ABD中方法級別的影響;

2. 提高測試效率,避免了不必要的用例執行;

# 精確測試的疑問

1. 如果同一個工程中的鏈路,用精確測試確實可以精確的發現影響面,提供測試效率,但是多系統之間呢 ?如購物車系統 + 訂單系統,兩個不同的團隊之間的鏈路,只能評估到比較粗的粒度;

2. 數據依賴的,無法解決;A系統的代碼變更導致寫入DB中的數據變化了,B系統知識根據數據來走業務流程,那麼A跟B的聯繫 就斷開了,目前看到的文章只能在代碼級別做關聯;

# 可借鑑的

1. 思路:從代碼追溯到接口級別的改動來篩選用例,可以幫忙評估影響面,結合CI流程,是不是每次代碼push可以有個大致的影響面評估圖呢?

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