国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

CI做到90%的行覆蓋率,真能發現BUG嗎?

開發 項目管理
這么多的CASE,花了大量時間和資源去運行,真能發現BUG嗎?CI做到90%的行覆蓋率,能發現問題嗎?測試用例越來越多,刪一些,會不會就發現不了問題了?今天,我們談談如何評估測試用例的有效性?

 這么多的CASE,花了大量時間和資源去運行,真能發現BUG嗎?CI做到90%的行覆蓋率,能發現問題嗎?測試用例越來越多,刪一些,會不會就發現不了問題了?今天,我們談談如何評估測試用例的有效性?

我們的測試用例有兩個比較關鍵的部分:

1)調用被測代碼:例如下面的RuleService.getLastRuleByClientId(ClientId)。2)進行結果Check:例如下面的AssertEqual(OrderId,"ABCD1234")。

  1. TestCaseA 
  2. ... 
  3.   RuleService.createRuleByClientId(ClientId,RuleDO); 
  4.   StringOrderId=RuleService.getLastRuleByClientId(ClientId); 
  5. ... 
  6.    
  7. TestCaseB 
  8. ... 
  9.   RuleService.createRuleByClientId(ClientId,RuleDO); 
  10.   StringOrderId=OrderService.getLastOrderByClientId(ClientId); 
  11.   AssertEqual(OrderId,"ABCD1234"); 
  12. ... 

我們希望一組測試用例不僅能夠“觸發被測代碼的各種分支”,還能夠做好結果校驗。

  • 當業務代碼出現問題的時候,測試用例可以發現這個問題,我們就認為這一組測試用例是有效的。
  • 當業務代碼出現問題的時候,測試用例沒能發現這個問題,我們就認為這一組測試用例是無效的。

我們對測試用例有效性的理論建模是:

>> 測試有效性 = 被發現的問題數 / 出現問題的總數

為什么要評估測試用例的有效性?

 

測試用例有效性評估的方法?

基于故障復盤的模式成本太高,我們希望能夠主動創造問題來評估測試用例的有效性。

我們找到了一種衡量“測試有效性”的方法,變異測試(mutation testing):

 

變異測試的例子

我們用了一組測試用例(3個),去測試一個判斷分支。而為了證明這一組測試用例的有效性,我們向業務代碼中注入變異。我們把b<100的條件改成了b<=100。 我們認為:

  • 一組Success的測試用例,在其被測對象發生變化后(注入變異后),應該至少有一個失敗。
  • 如果這組測試用例仍然全部Success,則這組測試用例的有效性不足。

通過變異測試的方式:讓注入變異后的業務代碼作為“測試用例”,來測試“測試代碼”。

我們實現了多種規則,可以主動的注入下面這些變異:

 

如何優雅的評估測試有效性?

為了全自動的進行測試有效性評估,我們做了一個變異機器人,其主要運作是:

  1. 往被測代碼中寫入一個BUG(即:變異);
  2. 執行測試;
  3. 把測試結果和無變異時的測試結果做比對,判斷是否有新的用例失敗;
  4. 重復1-3若干次,每次注入一個不同的Bug;
  5. 統計該系統的“測試有效性” 。

 

變異機器人的優點:

  1. 防錯上線:變異是單獨拉代碼分支,且該代碼分支永遠不會上線,不影響生產。
  2. 全自動:只需要給出系統代碼的git地址,即可進行評估,得到改進報告。
  3. 高效:數小時即可完成一個系統的測試有效性評估。
  4. 擴展性:該模式可以支持JAVA以及JAVA以外的多種語系。
  5. 適用性:該方法不僅適用于單元測試,還適用于其他自動化測試,例如接口測試、功能測試、集成測試。

變異機器人的使用門檻:

  1. 測試成功率:只會選擇通過率100%的測試用例,所對應的業務代碼做變異注入。
  2. 測試覆蓋率:只會注入被測試代碼覆蓋的業務代碼,測試覆蓋率越高,評估越準確。

高配版變異機器人

我們正在打造的高配版變異機器人擁有三大核心競爭力:

分鐘級的系統評估效率

為了保證評估的準確性,100個變異將會執行全量用例100遍,每次執行時間長是一大痛點。

高配版變異機器人給出的解法:

  1. 并行注入:基于代碼覆蓋率,識別UT之間的代碼覆蓋依賴關系,將獨立的變異合并到一次自動化測試中。
  2. 熱部署:基于字節碼做更新,減少變異和部署的過程。
  3. 精準測試:基于UT代碼覆蓋信息,只運行和本次變異相關的UT(該方法不僅適用于UT,還適用于其他自動化測試,例如接口測試、功能測試、集成測試)。

學習型注入經驗庫

為了避免“殺蟲劑”效應,注入規則需要不斷的完善。

高配版變異機器人給出的解法:故障學習,基于故障學習算法,不斷學習歷史的代碼BUG,并轉化為注入經驗。可學習型經驗庫目前覆蓋螞蟻金服的代碼庫,明年會覆蓋開源社區。

兼容不穩定環境

集成測試環境會存在一定的不穩定,難以判斷用例失敗是因為“發現了變異”還是“環境出了問題”,導致測試有效性評估存在誤差。

高配版變異機器人給出的解法:

  1. 高頻跑:同樣的變異跑10次,對多次結果進行統計分析,減少環境問題引起的偶發性問題。
  2. 環境問題自動定位:接入附屬的日志服務,它會基于用例日志/系統錯誤日志構建的異常場景,自動學習“因環境問題導致的用例失敗”,準確區分出用例是否發現變異。

落地效果如何?

我們在螞蟻金服的一個部門進行了實驗,得出了這樣的數據:

 

換言之,幾個系統的測試有效性為:系統A 72%,系統B 56%,系統C 70%。

測試有效性(%) = 1 - 未發現注入數 / 注入數

更多的測試有效性度量手段

基于代碼注入的測試有效性度量,只是其中的一種方法,我們日常會用到的方法有這么幾種:

  • 代碼注入:向代碼注入變異,看測試用例是否能發現該問題
  • 內存注入:修改API接口的返回內容,看測試用例是否能發現該問題
  • 靜態掃描:掃描測試代碼里是否做了Assert等判斷,看Assert場景與被測代碼分支的關系
  • ... 還有更多其他的度量手段

Meet the testcase again

測試有效性可以作為基石,驅動很多事情向好發展:

  • 讓測試用例變得更能發現問題。
  • 讓無效用例可被識別、清理。
  • 創造一個讓技術人員真正思考如何寫好TestCase的質量文化。
  • 測試左移與敏捷的前置條件。
  • ......

寫到最后,想起了同事給我講的一個有趣的人生經歷:

“大二期間在一家出版社編輯部實習,工作內容就是校對文稿中的各種類型的錯誤。編輯部考核校對質量的辦法是,人為的事先在文稿中加入各種類型的錯誤,然后根據你的錯誤發現率來衡量,并計算實習工資。”

“你干得咋樣?”

“我學習了他們的規則,寫了個程序來查錯,拿到了第一個滿分”

“厲害了...”

“第二個月就不行了,他們不搞錯別字了,搞了一堆語法、語義、中心思想的錯誤... 我就專心干活兒了”

“...”

殊途同歸,其致一也。

責任編輯:武曉燕 來源: 阿里技術
相關推薦

2019-09-25 09:20:41

谷歌代碼開發者

2012-04-10 11:15:36

寬帶普及

2021-10-15 13:47:19

覆蓋率檢測 istanbul 總代碼的比例

2011-11-01 10:10:48

ScriptCover

2022-05-31 09:01:18

SwiftApp 項目

2023-10-27 08:49:00

JCovOpenJDK

2022-10-21 15:29:32

5G網絡

2021-12-25 22:30:27

Chrome DevTJavaScript調試工具

2012-04-11 11:21:57

ibmdw

2022-08-25 06:27:39

vivoJaCoCo代碼覆蓋率

2015-11-09 17:56:57

WebPHP函數覆蓋

2022-03-20 06:55:08

5G網絡5G覆蓋率5G網絡建設

2018-02-27 14:50:20

大數據公廁城市

2024-06-14 12:04:33

2011-04-25 09:49:20

代碼測試

2024-04-01 08:26:30

單測覆蓋率字節碼

2012-09-21 10:30:56

Linux項目代碼覆蓋率

2022-07-22 07:38:31

監控系統

2022-03-29 11:32:32

單元測試覆蓋率框架

2016-01-13 10:14:15

WebPHP函數覆蓋
點贊
收藏

51CTO技術棧公眾號

欧美日韩黄色一区二区| 欧美一区二区三区四区高清| 亚洲成人av在线播放| 午夜在线视频免费观看| 一区二区中文| 国产精品91一区| 成人高潮视频| 欧美激情亚洲另类| 欧美一区电影| 99一区二区三区| www久久日com| 一区二区三区精品视频在线观看 | 国产又大又长又粗又黄| 网友自拍一区| 热99精品里视频精品| 亚洲**毛片| 国语精品中文字幕| 精品一区在线看| 国产精品青青在线观看爽香蕉 | 亚洲黄一区二区三区| xxx在线免费观看| 国产日本欧美一区| 国产区在线视频| 极品少妇一区二区三区精品视频| 亚洲色图综合| 国产精品你懂的| 69堂成人精品视频免费| 嫩草在线播放| 麻豆精品一区二区av白丝在线| 亚洲欧美日韩天堂一区二区| 丁香婷婷自拍| 国产.欧美.日韩| 91性高湖久久久久久久久_久久99| av免费在线网站| 日韩精品一区二区三区四区视频| 亚洲成人福利在线观看| 日本午夜一区二区| 欧美激情久久久| 91丝袜在线| 国产一区二区在线影院| 亚洲人123区| 91精品国产777在线观看| 天堂va在线高清一区| 亚洲国产一区视频| 国模吧无码一区二区三区| 欧美视频免费在线| 91久久精品国产91久久| 欧美精品播放| 日韩三级电影网站| 成年人网站91| 色佬视频在线观看| 欧美另类videos死尸| 久久久999视频| 国产一区二区按摩在线观看| 天堂精品一区二区三区| 国产韩国精品一区二区三区| 97免费视频在线播放| 国产欧美日韩免费观看| 国产精品美女在线| 四虎成人av| av资源站久久亚洲| 婷婷亚洲五月色综合| 96国产粉嫩美女| 国产中文一区二区| 激情综合电影网| 欧美精品欧美精品系列c| 精品午夜一区二区三区在线观看| 秋霞毛片久久久久久久久| 美女精品一区| 美女一区二区三区视频| 《视频一区视频二区| 欧美成人一区二区在线观看| 在线播放一区二区精品视频| 色偷偷成人一区二区三区91| 久久这里只精品| 亚洲精品国产成人久久av盗摄| 欧美美女被草| 欧美孕妇孕交xxⅹ孕妇交| 国产福利不卡视频| 成人精品3d动漫| 欧美岛国在线观看| 亚洲裸色大胆大尺寸艺术写真| 欧美一区二区三区在线免费观看 | av在线1区2区| 欧美成人精品3d动漫h| 91精品亚洲| 成人动漫在线一区| 亚洲男人影院| 午夜电影福利网| 日韩精品在线观看视频| jlzzjlzz亚洲女人| 国产福利影院在线观看| 日韩精品一区二区久久| 亚洲在线一区二区| 午夜国产不卡在线观看视频| 豆花视频一区二区| 色老板在线视频| 91夜夜未满十八勿入爽爽影院| 亚洲成人久久影院| 日韩一级网站| 另类图片综合电影| 成人性a激情免费视频| 国产精品扒开腿做| 7777精品伊人久久久大香线蕉完整版| crdy在线观看欧美| 亚欧激情乱码久久久久久久久| 亚洲欧美另类在线观看| 九九**精品视频免费播放| 日本伦理一区二区| 香蕉视频免费版| 45www国产精品网站| 欧美色综合影院| 丁香一区二区三区| 中文字幕视频精品一区二区三区| 国产1区2区3区精品美女| 国产精品亲子伦av一区二区三区| 青草全福视在线| 欧美一级大片在线免费观看| 欧美三级免费观看| 久久99精品久久久久久久久久久久| 91嫩草国产线观看亚洲一区二区| 一级毛片国产| 欧美精品成人一区二区在线观看| 精品少妇一区二区三区在线视频 | 成人福利视频导航| 欧美日韩一区综合| 国产精品视频大全| 韩国三级电影久久久久久| 亚洲一区二区高清| 午夜在线精品偷拍| 黄av在线播放| 亚洲砖区区免费| 国产一区欧美二区三区| 久久不射电影网| 国产一区av在线| 国产亚洲欧洲高清| 欧美精品免费视频| 国产精品天美传媒| 久久久电影一区二区三区| 日本欧美韩国| 麻豆视频在线免费观看| 偷拍25位美女撒尿视频在线观看| 国产国语**毛片高清视频| 精品亚洲一区二区三区四区| 懂色av一区二区三区四区五区| 国产精品久久二区| 中文字幕欧美在线| 日韩视频三区| 欧美黄色免费| 国产精品一区免费在线观看| 成人中文字幕合集| 欧美精彩视频一区二区三区| 青青草原成人网| 日韩精品免费播放| 东北一级毛片| 亚洲欧洲国产一区| 日韩欧美国产三级| 亚洲夜晚福利在线观看| 欧美成人午夜视频| 国产亚洲欧美一区二区三区| 成人高清视频观看www| 性感美女一区二区在线观看| 在线视频你懂得一区二区三区| 亚洲free性xxxx护士白浆| 伊人蜜桃色噜噜激情综合| jizz亚洲大全| 欧美国产视频在线观看| 久久久久久免费精品| 久久久久97| 啊啊啊啊啊好爽| 国产精品久久久久久av下载红粉| 一区二区三区不卡在线观看 | 亚洲天堂日韩电影| 色综合久久综合| 中文字幕一区二区三| 成人网页在线观看| 免费视频一区二区| 悠悠资源网久久精品| 91精品国产成人观看| 伊人久久大香线蕉综合网蜜芽 | 国产精品亚洲专一区二区三区 | 高清一区二区三区视频| 亚州国产精品久久久| 最近2019中文字幕在线高清| 日韩欧美视频在线| 制服丝袜在线91| 亚洲一线二线三线久久久| 国产日韩欧美a| 久久久久9999亚洲精品| 国产精品夜夜夜| 白白在线精品| 伊人电影在线观看| 成人ww免费完整版在线观看| 4480yy私人影院高清不卡| 激情综合网天天干| 91精品亚洲| 久久久久国产精品| 99热精品久久| 国产成人精品一区二三区在线观看| 一级毛片在线看|