(轉(zhuǎn)載內(nèi)容 個(gè)人學(xué)習(xí))
研發(fā)度量指標(biāo)及計(jì)算公式大全
類別
指標(biāo)
指標(biāo)簡(jiǎn)介
公式及計(jì)算方法
代碼集成與指標(biāo)
代碼行
指的是一份代碼文件中的有效代碼行、注釋和空行的總數(shù)。統(tǒng)計(jì)代碼行數(shù)可以幫助團(tuán)隊(duì)評(píng)估代碼庫中的代碼量以及代碼復(fù)雜度。
統(tǒng)計(jì)代碼庫中的代碼行數(shù)(包括注釋和空行)。
提交粒度
指的是代碼提交的粒度大小,例如函數(shù)、類、文件等。評(píng)估提交粒度可以幫助團(tuán)隊(duì)了解提交的代碼規(guī)模以及代碼變更的范圍。
統(tǒng)計(jì)代碼提交的粒度大小,例如函數(shù)、類、文件等。
CR效率
指的是每位開發(fā)人員處理CR的效率,通常是以CR處理數(shù)量或處理時(shí)間來衡量。評(píng)估CR效率可以幫助團(tuán)隊(duì)優(yōu)化CR處理流程,提高開發(fā)效率。
CR效率 = 人均CR處理效率 / CR數(shù):計(jì)算每位開發(fā)人員處理CR的效率。
CR效果
指的是CR的通過率,即通過審核的CR數(shù)量占總CR數(shù)量的比例。評(píng)估CR效果可以幫助團(tuán)隊(duì)了解CR審核的質(zhì)量和效率。
CR效果 = 通過率 / CR數(shù):統(tǒng)計(jì)CR的通過率。
構(gòu)建頻率
指的是構(gòu)建的次數(shù)或頻率,通常用于評(píng)估CI/CD系統(tǒng)的效率和穩(wěn)定性。統(tǒng)計(jì)構(gòu)建頻率可以幫助團(tuán)隊(duì)了解構(gòu)建的頻率以及代碼變更的頻率。
構(gòu)建頻率 = 運(yùn)行次數(shù) / 時(shí)間:計(jì)算構(gòu)建的次數(shù)以及頻率。
構(gòu)建成功率
指的是構(gòu)建成功的次數(shù)占總構(gòu)建次數(shù)的比例,用于評(píng)估構(gòu)建的穩(wěn)定性和效率。評(píng)估構(gòu)建成功率可以幫助團(tuán)隊(duì)了解構(gòu)建的穩(wěn)定性和效率。
構(gòu)建成功率 = 成功次數(shù) / 運(yùn)行次數(shù):統(tǒng)計(jì)構(gòu)建成功的次數(shù)與運(yùn)行總次數(shù)的比例。
上線成功率
指的是代碼上線成功的次數(shù)占總提交次數(shù)的比例,用于評(píng)估代碼集成和指標(biāo)除的效率和穩(wěn)定性。統(tǒng)計(jì)上線成功率可以幫助團(tuán)隊(duì)了解代碼集成和指標(biāo)除的效率和穩(wěn)定性。
上線成功率 = 成功次數(shù) / 提交次數(shù):統(tǒng)計(jì)上線成功的次數(shù)和提交的總次數(shù)的比例。
合并請(qǐng)求通過率
指的是通過審核的合并請(qǐng)求數(shù)量占總合并請(qǐng)求數(shù)量的比例。評(píng)估合并請(qǐng)求通過率可以幫助團(tuán)隊(duì)了解合并請(qǐng)求審核的質(zhì)量和效率。
合并請(qǐng)求通過率 = 通過數(shù) / 合并請(qǐng)求數(shù):計(jì)算通過的合并請(qǐng)求的數(shù)量占總合并請(qǐng)求數(shù)量的比例。
代碼提交頻率
指的是代碼提交的頻率,通常用于評(píng)估開發(fā)人員的效率和代碼變更的頻率。統(tǒng)計(jì)代碼提交頻率可以幫助團(tuán)隊(duì)了解開發(fā)人員的效率和代碼變更的頻率。
代碼提交頻率 = 提交次數(shù) / 時(shí)間:計(jì)算代碼提交的頻率。
長(zhǎng)周期分支數(shù)量
指的是分支持續(xù)時(shí)間超過閾值的數(shù)量。評(píng)估長(zhǎng)周期分支數(shù)量可以幫助團(tuán)隊(duì)了解長(zhǎng)周期分支的情況,以便及時(shí)優(yōu)化和處理。
長(zhǎng)周期分支數(shù)量 = 分支持續(xù)時(shí)間超過閾值的數(shù)量:統(tǒng)計(jì)長(zhǎng)周期的分支數(shù)量。
維護(hù)成本
評(píng)估代碼集成和指標(biāo)除所涉及的維護(hù)成本,包括資源、時(shí)間等消耗情況。
包括評(píng)估代碼集成和指標(biāo)除所涉及的資源和時(shí)間消耗。可以通過計(jì)算某一段時(shí)間內(nèi)的團(tuán)隊(duì)人數(shù)、工作時(shí)間、開發(fā)環(huán)境和工具的使用情況、項(xiàng)目的復(fù)雜度等因素來估算維護(hù)成本。
故障率和故障處理時(shí)間
評(píng)估代碼集成和指標(biāo)除過程中發(fā)現(xiàn)的故障率以及故障處理時(shí)間,以確保代碼質(zhì)量和穩(wěn)定性。
故障率 = 某段時(shí)間內(nèi)故障數(shù)量 / 被測(cè)代碼總行數(shù);
故障處理時(shí)間:故障處理時(shí)間 = 某段時(shí)間內(nèi)所有故障修復(fù)時(shí)間總和 / 修復(fù)故障的總數(shù);
代碼覆蓋率
評(píng)估測(cè)試覆蓋代碼的比例,以確保足夠的測(cè)試覆蓋以及代碼質(zhì)量。
代碼覆蓋率:代碼覆蓋率 = 被測(cè)試代碼行數(shù) / 總代碼行數(shù);
團(tuán)隊(duì)交互頻率
評(píng)估團(tuán)隊(duì)內(nèi)部和外部的交際情況及合作效率,以確保合作和溝通的良好狀態(tài)。
團(tuán)隊(duì)交互頻率:團(tuán)隊(duì)交互頻率 = (溝通頻率 + 問題解決速度 + 會(huì)議時(shí)間) / 團(tuán)隊(duì)成員總數(shù);
配置管理和版本控制
評(píng)估代碼集成和指標(biāo)除過程中版本控制和配置管理的完整性和準(zhǔn)確性。
評(píng)估代碼集成和指標(biāo)除過程中版本控制和配置管理的完整性和準(zhǔn)確性??梢酝ㄟ^統(tǒng)計(jì)版本控制系統(tǒng)中的提交次數(shù)和文件變更數(shù)來評(píng)估版本控制和配置管理的完整性和準(zhǔn)確性。
上線時(shí)間和頻率
評(píng)估代碼上線時(shí)間的頻率和延遲情況,以確保代碼集成和指標(biāo)除能夠快速進(jìn)行。
上線頻率 = 某段時(shí)間內(nèi)上線的代碼量 / 總代碼量;
上線延誤率 = 某段時(shí)間內(nèi)因各種原因?qū)е卵舆t上線的代碼次數(shù) / 總上線代碼次數(shù);
代碼復(fù)雜度
評(píng)估代碼的復(fù)雜度以及代碼重構(gòu)的頻率和效果,以確保代碼質(zhì)量。
可以通過各種代碼度量工具來計(jì)算代碼復(fù)雜度,例如Cyclomatic Complexity,Lack of Cohesion in Methods (LCOM)等等。
用戶反饋
評(píng)估用戶反饋的質(zhì)量和數(shù)量,以便持續(xù)改進(jìn)和提高用戶滿意度。
可以通過用戶反饋調(diào)查問卷等方式進(jìn)行評(píng)估,也可以使用各種分析工具來統(tǒng)計(jì)和分析用戶反饋數(shù)據(jù),例如Google Analytics等。
代碼質(zhì)量領(lǐng)指標(biāo)
問題掃描
使用自動(dòng)化靜態(tài)代碼分析工具掃描代碼中的潛在問題(如代碼中可能會(huì)出現(xiàn)的漏洞、安全問題、輸入驗(yàn)證和格式錯(cuò)誤等),以及遵循編碼最佳實(shí)踐的遺漏,以識(shí)別可能出現(xiàn)的錯(cuò)誤、漏洞或安全威脅。
可通過靜態(tài)代碼分析工具等進(jìn)行掃描,得到掃描結(jié)果。
復(fù)雜度
通過衡量代碼中的控制流程,包括條件判斷和循環(huán)等,以及查找錯(cuò)誤和發(fā)現(xiàn)代碼的潛在弱點(diǎn),以發(fā)現(xiàn)代碼弱點(diǎn)和優(yōu)化機(jī)會(huì)。
可使用代碼復(fù)雜度分析工具(如Cyclomatic Complexity)計(jì)算代碼的復(fù)雜度指標(biāo),常見的代碼復(fù)雜度度量指標(biāo)包括:條件分支、循環(huán)、遞歸和函數(shù)大小等。
代碼冗余
檢測(cè)代碼中的重復(fù)行、過時(shí)代碼和無用代碼,并通過它們的刪除來減少代碼體積、提高代碼的可讀性和可維護(hù)性,降低代碼的開發(fā)成本和維護(hù)成本。
代碼冗余:冗余代碼量 / 總代碼量。
扇入、扇出
在計(jì)算軟件系統(tǒng)和子系統(tǒng)的復(fù)雜度和可維護(hù)性時(shí),基于扇入和扇出的指標(biāo)可以提供寶貴的信息。扇入表示對(duì)某一代碼單元的調(diào)用是否出現(xiàn)在其他代碼單元中,扇出表示某個(gè)代碼單元是否調(diào)用了其他代碼單元。
扇入表示對(duì)某個(gè)代碼單元的調(diào)用是否出現(xiàn)在其他代碼單元中,扇出表示某個(gè)代碼單元是否調(diào)用了其他代碼單元。
測(cè)試覆蓋率
指在測(cè)試過程中覆蓋代碼基本要求的指標(biāo),可以衡量測(cè)試活動(dòng)是否涵蓋了應(yīng)用程序的各個(gè)部分,并為軟件工程師提供更好的開發(fā)路線圖。
具體計(jì)算方式根據(jù)具體的工具而異,通常來說是統(tǒng)計(jì)被測(cè)試代碼的覆蓋情況,如行覆蓋率、分支覆蓋率等。
線上缺陷密度
表示在應(yīng)用程序的生命周期中發(fā)現(xiàn)的未修復(fù)錯(cuò)誤的數(shù)量,通常使用“錯(cuò)誤/代碼行”的比率來表示。
線上缺陷密度 = 某段時(shí)間內(nèi)發(fā)現(xiàn)的 bug 數(shù)量 / 某段時(shí)間內(nèi)代碼執(zhí)行總次數(shù)(如請(qǐng)求數(shù)、用戶數(shù)等)。
應(yīng)用拓?fù)?/p>
構(gòu)建應(yīng)用程序中不同組件之間的關(guān)系拓?fù)鋱D,以幫助開發(fā)人員更好地理解應(yīng)用程序的架構(gòu)以及各組件之間的交互關(guān)系,PMO前沿。
通過分析應(yīng)用的運(yùn)行環(huán)境、架構(gòu)及服務(wù)之間的依賴關(guān)系來構(gòu)建應(yīng)用拓?fù)鋱D。
資源依賴
在應(yīng)用程序中尋找外部資源,如庫、服務(wù)、框架和硬件設(shè)施,并理解它們與應(yīng)用程序之間的互動(dòng)。這可以解決開發(fā)人員在部署、擴(kuò)展和維護(hù)應(yīng)用程序時(shí)遇到的各種問題。
分析代碼運(yùn)行依賴的資源,比如依賴庫、依賴服務(wù)等,以及它們之間的關(guān)系。
代碼安全問題存量
檢測(cè)代碼中的安全漏洞,以確定代碼安全性,并根據(jù)分析結(jié)果制定安全策略,避免惡意攻擊和攻擊外部源。
代碼安全問題存量 = 缺陷數(shù) / 單位代碼量。
可維護(hù)性
指在代碼編寫期間,就從設(shè)計(jì)和實(shí)現(xiàn)的角度考慮代碼的可擴(kuò)展性和維護(hù)性,以降低代碼的修改和更新成本,提升代碼的可維護(hù)性。
通常包括代碼結(jié)構(gòu)、內(nèi)部依賴關(guān)系、內(nèi)聚性和耦合性等指標(biāo)。
可讀性
用來衡量代碼的易讀性、易理解性和易擴(kuò)展性,通常包括代碼編寫風(fēng)格、命名規(guī)則、代碼注釋等方面的考慮。
可讀性指標(biāo)需要從代碼編寫風(fēng)格、命名規(guī)則等方面考慮。
性能優(yōu)化
性能優(yōu)化指的是通過應(yīng)用程序的修改和優(yōu)化來提高響應(yīng)時(shí)間、延遲、吞吐量等方面的運(yùn)行效率。
通常包括響應(yīng)時(shí)間、延遲、吞吐量等指標(biāo)。
可靠性
可靠性指的是應(yīng)用程序在各種情況下的穩(wěn)定性、可用性和出錯(cuò)率等方面的表現(xiàn)PMO前沿。
考慮到代碼的穩(wěn)定性、可用性、出錯(cuò)率等指標(biāo)。
可重用性
可重用性指的是代碼的模塊、接口和數(shù)據(jù)結(jié)構(gòu)可以被多個(gè)應(yīng)用程序共享、復(fù)用。有了可重用的代碼,開發(fā)人員可以更快地完成開發(fā)任務(wù),減少了代碼重復(fù)和修改的工作量,提高了軟件開發(fā)的效率。
可重用性通??梢酝ㄟ^度量代碼的復(fù)用率來計(jì)算。復(fù)用率指在一段時(shí)間內(nèi)使用的復(fù)用代碼行數(shù)占總代碼行數(shù)的比例。如果復(fù)用率較高,表示代碼具有較強(qiáng)的可重用性。
可移植性
可移植性指的是代碼可以在不同的平臺(tái)上平穩(wěn)運(yùn)行。具有較強(qiáng)的可移植性的代碼可以在不同的操作系統(tǒng)和硬件平臺(tái)上運(yùn)行,而不需要針對(duì)平臺(tái)進(jìn)行修改。這可以幫助開發(fā)人員更快地?cái)U(kuò)展應(yīng)用程序到新的環(huán)境中,從而降低了生產(chǎn)力成本。
可移植性可以通過在不同的平臺(tái)上測(cè)試代碼來計(jì)算。測(cè)試可以包括在不同的操作系統(tǒng)、編程語言、硬件平臺(tái)上運(yùn)行代碼,并比較其性能、穩(wěn)定性和兼容性。測(cè)試結(jié)果可以用來計(jì)算代碼的可移植性,分析其在不同平臺(tái)上的適應(yīng)能力。
可部署性
可部署性指的是代碼容易部署到生產(chǎn)環(huán)境中,不需要耗費(fèi)大量的時(shí)間進(jìn)行部署。具有良好可部署性的代碼可以避免應(yīng)用程序的部署問題和環(huán)境不兼容問題,保持系統(tǒng)的穩(wěn)定性和高可用性。這有助于降低底層技術(shù)和業(yè)務(wù)邏輯之間的耦合,以及鎖定底層技術(shù)版本所需的維護(hù)成本。
可部署性通??梢酝ㄟ^評(píng)估安裝、配置和部署代碼的時(shí)間來計(jì)算。較短的部署時(shí)間通常意味著代碼的可部署性更好。因此,可以通過跟蹤安裝、配置時(shí)間和資源消耗來計(jì)算可部署性。對(duì)于應(yīng)用程序的部署也可以使用容器化技術(shù),例如 Docker,以快速部署應(yīng)用程序。使用這些工具可以提高編碼的部署效率并降低部署成本。
——————————————————————————————————————————————————————————————————
研發(fā)度量指標(biāo)大全--PMO前沿制圖
代碼質(zhì)量領(lǐng)指標(biāo)
問題掃描
復(fù)雜度
代碼冗余
*扇入、扇出
測(cè)試覆蓋率
線上缺陷密度
應(yīng)用拓?fù)?/p>
資源依賴
代碼安全問題存量
可維護(hù)性
*可讀性
- 性能優(yōu)化
可靠性
可重用性
可移植性
- 可部署性
代碼集成領(lǐng)域指標(biāo)
① 代碼行
提交粒度
C CR效率
?① CR效果
C 構(gòu)建頻率
C 構(gòu)建成功率
? 上線成功率
合井清求通過率
? 代碼提交頻率
C 長(zhǎng)周期分支數(shù)量
C 維護(hù)成本
- 故障率和故障處理時(shí)間
? 代碼覆蓋率
? 國隊(duì)交互頻率
? 配置管理和版本控制
- 上線時(shí)間和頻率
代碼復(fù)雜度
? 用戶反饋