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

谷歌如何實現10億行代碼的測試覆蓋率?

新聞 前端
谷歌研究人員進行了一項分析,這項分析揭示了該公司的工程師如何管理 10 億行代碼的代碼測試覆蓋率。

谷歌研究人員進行了一項分析,這項分析揭示了該公司的工程師如何管理 10 億行代碼的代碼測試覆蓋率。

谷歌如何实现10亿行代码的测试覆盖率?

該圖片來自于谷歌,其中彩色標識的行號(用紅色矩形框突出顯示)用來可視化地查看代碼覆蓋情況。行號如果被測試覆蓋,則為綠色;如果沒有被覆蓋,則為橙色;如果沒有檢測該行,則為白色。

在軟件開發中,一個稱為代碼覆蓋率的常用度量標準,用于度量部署代碼之前,所執行的測試覆蓋到的系統代碼的百分比。代碼覆蓋率通常由單獨的軟件程序自動測量,或者可以從命令行手動啟動某些代碼覆蓋率工具。測試結果準確地顯示了在運行測試套件時執行了哪些代碼行,并且可以揭示哪些代碼行可能需要進一步的測試。

理想情況下,軟件開發團隊的目標是 100% 的代碼覆蓋率。但在現實中,這種情況很少發生,因為有些代碼塊會走到很多不同的執行路徑,也因為各種邊緣情況,基于系統的需求,應該(或不應該)考慮這些邊緣情況。

谷歌如何实现10亿行代码的测试覆盖率?

近年來,越來越多的谷歌項目已經很積極地引入了自動化代碼覆蓋率測試工具。

度量代碼覆蓋率已經成為軟件開發和測試團隊的常見實踐,但是這種實踐是否真的提高了代碼質量,這個問題仍然存在爭議。

一些人認為,開發人員可能把焦點放在了數量上,而非質量上,創建測試只是為了滿足代碼覆蓋率,而不是足夠健壯地識別高風險或關鍵的代碼區域。其他人則對它的成本效益提出了擔憂——它需要寶貴的開發人員時間來評審結果,而且不一定能提高測試質量。

對于像谷歌這樣的大型組織(擁有 10 億行代碼,每天接收數萬次提交并支持七種編程語言)來說,度量代碼覆蓋率尤其困難。

谷歌的 AI 研究人員 Marko Ivanković and Goran Petrović最近的一項研究,提供了這家科技巨頭代碼覆蓋率基礎設施的幕后情況,它由四個核心層組成。底層組合了針對每種編程語言設計的代碼覆蓋率庫,中間層將代碼覆蓋自動化流程集成到了公司的開發和構建工作流中。頂層使用代碼編輯器和其他的定制工具,將代碼覆蓋信息可視化顯示出來。

作為這項研究的一部分,Ivanković和 Petrović分析代碼覆蓋率在 5 年期間的采用率。他們發現,盡管谷歌沒有強制規定代碼覆蓋率,但自 2014 年以來,采用率卻一直在穩步增長。2018 年第一季度,超過 90% 的項目使用了自動的代碼覆蓋工具。

研究人員還從 3000 名隨機選擇的谷歌開發人員和其他非工程人員中,收集了 512 份關于代碼覆蓋率有用性的調查問卷。在受訪者中,只有 45% 的人在代碼修改時頻繁使用代碼覆蓋率測試,而 40% 的人在進行代碼評審時定期地使用代碼覆蓋率。

谷歌如何实现10亿行代码的测试覆盖率?

圖表示例:來自谷歌谷歌的調查參與者在代碼修改(紅色)、檢查代碼更改(藍色)和瀏覽代碼更改(綠色)時,對代碼覆蓋率的有用性進行了評分。

Ivanković向 IEEE Spectrum 談到了他們的這項研究,和代碼覆蓋在軟件開發和測試中的作用。(為了清晰起見,以下采訪記錄經過了編輯和濃縮。)

IEEE Spectrum:為什么你認為代碼覆蓋率很重要?

Marko Ivanković:很多人可能期望我們說,“好的覆蓋率減少 bugs 的數量。“這當然是其中的一個原因,但(我們發現的)更令人驚訝的是,即使覆蓋率不能直接作為一種質量信號,它仍然值得計算。”

覆蓋率可能對查看代碼的人沒有直接的幫助,但是對工具仍然有幫助——例如,分析依賴關系的工具。例如,如果代碼 A 聲明它依賴于代碼 B,但是對代碼 A 的測試永遠無法觸及代碼 B,那么這種依賴可能不是真實的,自動化工具可以嘗試刪除它來簡化代碼庫。

當然,實際實現要復雜得多。我們已經發現了許多這樣的工具,它們可以使用我們的基礎設施提供的覆蓋率信息,來改進它們自己的功能。對于許多這些用例,代碼覆蓋率和代碼質量之間的相關性根本不重要。

IEEE Spectrum:是什么激發了你研究谷歌的代碼覆蓋率?

Ivanković:因為我們面臨著一個問題。在代碼評審期間,我們花費了大量的時間試圖弄清楚,測試是否真的測試到了這些評審的代碼。那時,代碼構建系統支持覆蓋率計算,但是您必須手動激活它,并手動將覆蓋率結果和您正在審閱的代碼疊加來查看。有一天,我們對自己說,“必須找到一種自動化的方法。“一個星期后,我們有了第一個可運行的原型。其他工程師看到后,問是否他們也能擁有這樣的原型。我們想確保我們為他們提供了最好的體驗,所以我們開始研究這個問題。

IEEE Spectrum:你的調研結果里,你最驚訝的是什么?

Ivanković:我們感到驚訝的是,最初懷疑代碼覆蓋率方法,但卻最終發現它很有用的人數非常多。我們調查的一些人基本上是反對覆蓋率的,但他們仍然承認他們有時使用覆蓋率方法,并且發現它很有用。

IEEE Spectrum:你在調研中面臨的最大挑戰是什么?你是如何克服的?

Ivanković:從表面上看,代碼覆蓋率似乎是一個簡單的概念:即一行代碼是否被測試覆蓋。但事實證明,當大規模實施時,它充滿了各種邊角情況和意外情況。我們花了幾年的時間,來修復測試的基礎設施中的所有失敗情況。

我們在進行研究時遇到了類似的挑戰。我們調查的大多數工程師對覆蓋率的總體概念是一樣的,但當被問及細節時,他們的回答卻大相徑庭。我們必須對一小部分人群進行幾次調查,才能得到正確答案。

IEEE Spectrum:您認為谷歌的代碼覆蓋基礎設施有哪些優勢?你認為還有什么可以改進的?

Ivanković:我們努力確保基礎設施資源是有效利用的,并且可以運行在谷歌如此大的代碼規模上。向人們展示這是可能的,這可能是(我們的研究)最大的貢獻。

我們設計我們的基礎設施,以更容易地進行實驗、做 A /B 測試和評估假設。我們還以可訪問的格式導出所有數據,這樣覆蓋率信息就可以可視化,這有助于團隊保持健康的代碼,并準備好修復事件。

當我們在調查工程師的時候,他們中的一些人給了我們改進的建議,其中一些建議值得我們去探索。其中一個比較有趣的方法是,如果代碼覆蓋率測試結果太好,就不要顯示它們,這樣工程師就不會過于自信。

IEEE Spectrum:對于希望部署代碼覆蓋率,或改進現有代碼覆蓋率的軟件開發和測試團隊,您有什么建議?

Ivanković:我認為可以給到的最重要的建議,是專注于他們的工作流程。不要只是部署覆蓋率測試,還要確保您將其集成到開發人員工作流的正確位置,只有在這個位置上,覆蓋率結果才是最有用的。在我們的經驗中,代碼評審是代碼健康的基石。

IEEE Spectrum:對于谷歌的代碼覆蓋基礎設施,未來將會有什么發展?

Ivanković:目前,我們在更進一步地研究數據使用和開發人員的意見,以便更好地理解如何使用覆蓋率。例如,我們正在研究,人們理解到的有用性與實際的有用性之間的差異。我們想要研究的一個具體問題是,“在代碼評審期間,顯示覆蓋率實際上會加快評審過程嗎?”這項研究的結果,將決定我們下一步的基礎設施如何改進。

責任編輯:張燕妮 來源: 高效開發運維
相關推薦

2023-10-27 08:49:00

JCovOpenJDK

2022-05-31 09:01:18

SwiftApp 項目

2012-04-11 11:21:57

ibmdw

2011-04-25 09:49:20

代碼測試

2011-11-01 10:10:48

ScriptCover

2021-10-15 13:47:19

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

2015-11-09 17:56:57

WebPHP函數覆蓋

2016-01-13 10:14:15

WebPHP函數覆蓋

2021-12-25 22:30:27

Chrome DevTJavaScript調試工具

2022-08-25 06:27:39

vivoJaCoCo代碼覆蓋率

2019-09-30 10:27:52

變異測試評估

2022-03-29 11:32:32

單元測試覆蓋率框架

2024-06-14 12:04:33

2012-09-21 10:30:56

Linux項目代碼覆蓋率

2024-04-01 08:26:30

單測覆蓋率字節碼

2022-05-13 09:40:51

代碼可行應用性能

2022-10-21 15:29:32

5G網絡

2024-11-01 15:05:12

2025-02-25 00:18:45

AIC#單元測試

2024-09-03 14:10:00

模型測試
點贊
收藏

51CTO技術棧公眾號

亚洲精品wwwww| 亚洲第一精品电影| 在线看无码的免费网站| 91精品国产91久久久久久密臀| 亚洲精品国产精品国自产在线| 免费看成年人视频在线观看| 国产高清在线精品| 色噜噜狠狠色综合网| 亚洲视频日本| 91久久爱成人| 香蕉综合视频| 国产有码一区二区| 久久一区二区三区喷水| 国产精品白嫩初高中害羞小美女 | 国产女主播在线观看| 免费观看久久av| 国产精品网曝门| 青草久久伊人| 香蕉加勒比综合久久| 爱情岛论坛亚洲首页入口章节| 美女视频黄频大全不卡视频在线播放| 99re在线视频播放| 国产原创欧美精品| 最近2019中文字幕一页二页| 欧美四级电影网| 国产精品久久福利| 中文字幕资源网在线观看免费| 欧美影院精品一区| 免费大片在线观看| 成人国产精品视频| 亚洲欧洲成人| 激情av一区二区| 菠萝蜜视频在线观看入口| 免费精品99久久国产综合精品| 在线精品国产欧美| 黄色污网站在线免费观看| 国产日韩欧美精品综合| 色琪琪丁香婷婷综合久久| 亚洲午夜久久久| 一本久道高清无码视频| 菠萝蜜视频在线观看一区| 91久久久久久久久久| 欧美亚洲综合视频| 亚洲精品国偷自产在线99热| 小泽玛利亚av在线| 精品一区精品二区高清| 色综合视频网站| 亚洲高清国产精品| 久久女同精品一区二区| 国产精品专区第二| 亚洲一级大片| 色婷婷av一区二区| 亚洲狼人综合干| 欧美色xxxx| xx欧美xxx| av资源站久久亚洲| 中文久久乱码一区二区| 日本99精品| 男男激情在线| 97国产精东麻豆人妻电影| 粉嫩av一区二区三区免费观看| 亚洲天堂第二页| 欧美性高清videossexo| 亚洲青青青在线视频| eeuss影院一区二区三区| 亚洲看片一区| 黄色一区二区三区四区| 国产亚洲亚洲| 日本在线播放一区二区三区| 一区二区动漫| 欧美亚洲自偷自偷| 国产精品亚洲欧美| 国产精品videossex久久发布| 亚洲激情77| 国产精品美女久久久久久不卡 | 亚洲高清在线观看| 女人香蕉久久**毛片精品| 天堂v视频永久在线播放| 国产日本欧美一区| 日韩精品在线一区| 99国产精品国产精品久久| 66精品视频在线观看| 精产国品自在线www| 亚洲午夜精品久久久中文影院av| 亚洲精品国产精品国产自| 成人av资源在线观看| 亚洲国产欧美国产综合一区| 麻豆久久一区| 在线免费视频a| 日韩视频一区在线观看| 在线成人av观看| 亚洲欧美久久234| 久久手机视频| 国产日韩精品久久| proumb性欧美在线观看| 日本一道在线观看| 国产剧情在线观看一区二区| 色婷婷av金发美女在线播放| 97视频在线免费观看| 精品欧美aⅴ在线网站| 国产手机视频一区二区| 秋霞av国产精品一区| av一本久道久久综合久久鬼色| 日本精品黄色| 久久大胆人体视频| 国产电影一区二区三区爱妃记| av毛片在线免费看| 97视频在线观看网站| 牛牛影视精品影视| 欧美日韩伦理片| 黄色软件在线| 最新真实国产在线视频| 高清国产福利在线观看| 老司机午夜在线| 日本大片在线观看| 337p粉嫩大胆噜噜噜鲁| 清纯唯美日韩制服另类| 3d动漫精品啪啪| 久久精品亚洲国产奇米99| 欧美丰满老妇| 99久久亚洲精品蜜臀| 成人线上播放| 成人高清免费在线| 阳光姐妹淘韩国版| av日韩在线免费| 亚洲中文字幕无码专区| 97视频在线播放| 欧美性生交大片免费| 热久久天天拍国产| 99蜜月精品久久91| 国产精品国产一区| 久久爱www久久做| 日韩三级影院| 91在线直播亚洲| 欧美日韩一区久久| 亚洲综合国产| 美脚恋feet久草欧美| 精品国产综合| 国产精品久久久久99| 555www成人网| 2018日韩中文字幕| 啪一啪鲁一鲁2019在线视频| 精品一区二区免费看| 老牛影视av一区二区在线观看| 欧美激情在线免费| 免费成人性网站| 91在线国产观看| 精品国产伦一区二区三区观看方式 | 亚洲欧洲色图综合| 欧美日韩视频在线| 亚洲美女av在线| 欧美激情亚洲视频| 久久久久久久久久久久久久一区| 亚洲精品免费网站| 日韩不卡av| 国产主播中文字幕| 欧美激情图区| 中文天堂在线观看| aaa在线免费观看| 三妻四妾的电影电视剧在线观看| 污污的网站在线免费观看| 超免费在线视频| 自拍偷拍欧美视频| av日韩在线播放| 欧美三级小说| 日韩av中文字幕一区| 视频欧美精品| 俺来俺也去www色在线观看| 欧美日韩高清| 午夜精品一区二区三区电影天堂| 欧美美女一区二区在线观看| 亚洲欧美日韩一区二区| 欧美日韩成人在线一区| 午夜精品久久久久久| 4hu四虎永久在线影院成人| 久久天天躁狠狠躁老女人| 欧美激情视频免费观看| 日韩欧美亚洲精品| 污污免费网站| 日韩av首页| 一区二区中文字| 专区另类欧美日韩| 日韩一区二区三区三四区视频在线观看| 日韩有码在线播放| 日韩国产伦理| 污视频网站在线| 国产成人精品一区二区三区在线 | 久久亚洲国产| 91香蕉国产在线观看软件| 91国偷自产一区二区三区观看| 97视频免费看| 成人拍拍拍免费视频网站| 一二三四视频在线中文| 亚洲综合三区| 色欧美片视频在线观看| 久久精品免费电影| 无码 制服 丝袜 国产 另类| 午夜伦理福利在线| 国产超碰在线一区| 九九热这里只有精品免费看|