軟件質量:建立信心的十大指標

. Bug 數量——可能按優先級或嚴重性排列
一般來說,錯誤的數量會在項目生命周期的中期開始增加。在截止日期之前的幾天或幾周(取決于項目的規模),團隊將集中精力減少 bug 的數量,直到 bug 的數量達到某種漸近線。這個漸近線最終代表了項目產品的整體質量。因此,跟蹤錯誤總數(區分其優先級)是一個很好的指標。

然而,并非所有錯誤都是一樣的。這就是為什么大多數團隊都會為錯誤分配優先級和/或嚴重性。例如,跟蹤 P1 錯誤和 P2 錯誤可能很有趣,而且僅跟蹤這些錯誤。這取決于您產品的成熟度。對于新產品,您需要繼續關注 P1。事實上,具有大量 P1 的產品會被認為不起作用。

如果您不再有任何 P1,但仍然有 P2,用戶仍然會遇到這些錯誤,這可能會對他們對產品的看法產生負面影響。

如果你希望你的產品被認為是高質量的,例如蘋果的水平,那么當你解決了很多 P3 和 P4 錯誤時,這實際上就會發生。這是您需要達到的水平。因此,只專注于跟蹤現在對您重要的事情。


什么時候使用它?

如果您的產品質量對您的業務很重要,那么此指標非常有幫助。如果是這樣,您應該不斷跟蹤它。但是,如果您解決了所有 P1 和 P2 問題,您可能希望通過跟蹤 P3 等方式來實現更高的質量標準。

2. 更改失敗百分比
Accelerate將故障定義為“導致服務降級或隨后需要修復(例如,導致服務受損或中斷、需要修補程序、回滾、修復轉發或補丁)”的更改。所以這個評級是導致部署失敗的部署數量。

請注意,此定義不包括部署失敗的更改。該信息很有用,但不是此 KPI 的重點。

什么時候使用它?

如果您專注于將頻繁部署變成日常習慣,那么為了使其有價值,您需要保持較低的失敗率。事實上,隨著 DevOps 團隊的經驗和能力的增強,這個評級應該會隨著時間的推移而降低。故障率不斷上升,或者故障率很高且不會隨著時間的推移而下降,這表明整個 DevOps 流程中存在問題。這是整個過程質量的一個很好的代理指標。

3. 拉取請求質量
拉取請求可以讓您很好地了解代碼庫的整體復雜性。代碼庫越復雜,以下指標較高的可能性就越大:

拉取請求破壞構建或無法通過測試套件的次數百分比;
合并請求與拒絕請求的百分比;
拉取請求的評論數量 - 您不希望數字太低,但也不希望數字太高。這些指標顯示您的團隊如何協作以及您的拉取請求是否引起了足夠的關注。它可以間接指示投入生產的代碼的質量。
何時使用它們?

該指標不是衡量 DevOps 流程的質量(例如變更失敗百分比),而是衡量團隊的工作和協作方式。代碼審查是如何使用的以及它們有用嗎?衡量合并的拉取請求與拒絕的拉取請求的演變將幫助您了解您的團隊是否隨著時間的推移而改進。您還可以深入研究團隊成員,看看他們是否也在進步。

4. 測試覆蓋率
該指標只是您正在測試的軟件中的代碼總行數與當前執行的所有測試用例的代碼行數之間的比率。

當通過執行的代碼行數來衡量時,普遍接受的“足夠”測試覆蓋率是多少?共識徘徊在 80% 左右——對于關鍵系統來說更高(關鍵的定義可能因行業、地理位置、用戶群等而異)。

什么時候使用它?

當然,您不需要 100% 的測試覆蓋率。然而,了解自己的處境并對其進行跟蹤有助于了解您是否在以速度換取質量。請記住,“建立在不良需求之上的高質量產品是劣質產品”,尤其是測試覆蓋率。

5. 平均故障間隔時間 (MTBF) 和平均恢復/修復時間 (MTTR)
這兩個指標都衡量軟件在生產環境中的性能。由于軟件故障幾乎是不可避免的,因此這些軟件指標試圖量化軟件恢復和保存數據的效果。


如果 MTTR 值隨著時間的推移而變小,則意味著開發人員在理解問題(例如錯誤)以及如何修復這些問題方面變得更加有效。

何時使用它們?

如果團隊使用這些指標來實現特定目標,那么這些指標會非常有趣:“我們需要在我們的產品上達到這一水平的 MTBF 或 MTTR。” 這將促進您的團隊對客戶提出的重要問題的響應能力,并將幫助您保持產品和團隊的高標準。為了提高這些指標的性能,團隊可能會明白他們需要解決問題的真正原因,而不是簡單的補丁。

6. 服務水平協議(SLA)
每個團隊都有自己的 SLA 定義。但這里是 Airbnb 使用的一個,你會發現它非常有趣。SLA 是您的團隊在特定時間內修復和部署的阻止程序錯誤的百分比(例如,阻止程序錯誤 24 小時,關鍵錯誤 5 天)。您可能真正喜歡這個指標的原因是它讓您從用戶的角度更好地了解您的產品質量。


什么時候使用它?

該指標非常接近MTTR,但不僅限于軟件故障。它擴展到任何類型的錯誤。同樣,如果由具有特定目標的團隊使用該指標,則非常有趣:“我們需要在我們的產品上實現此 SLA。” 該指標可培養團隊的產品質量所有權和響應能力。這就是 Airbnb 使用它的原因。

7. 缺陷去除效率(DRE)
缺陷去除效率用于量化最終用戶在產品交付后 (D) 發現的缺陷數量與產品交付前發現的錯誤 (E) 之間的關系。公式為:DRE = E / (E+D)

DRE越接近1,產品交付后發現的缺陷就越少。在整個測試計劃中,平均 DRE 分數通常約為 85%。然而,通過徹底、全面的要求和設計檢查流程,這一比例有望提升至 95% 左右。

什么時候使用它?

該指標的用途與跟蹤錯誤數量的演變類似。跟蹤它們可能是多余的。我們對錯誤數量有偏好,因為您現在可以區分哪些錯誤優先級對您很重要,并且仍然了解總體數量(而不僅僅是趨勢)。

8. 應用程序崩潰率(ACR)
應用程序崩潰率的計算方法是應用程序失敗次數 (F) 除以應用程序使用次數 (U)。但實際上有幾種方法可以計算它。

每個用戶的應用程序崩潰次數:此數字顯示有多少用戶曾經遇到過崩潰情況。該指標的可接受范圍為 < 1%。對于成熟的應用程序來說,這個數字應該更低,因為功能會更穩定。但是,在計算整個應用程序的實際數量時,可以忽略最終在回滾實例中出現的錯誤更新,以獲得準確的表示。
每個會話的應用程序崩潰次數:此數字顯示與會話數相比應用程序崩潰的次數。該指標的可接受范圍為 < 0.1%。但是,可以將其分為會話類型和應用程序流,以便更好地理解問題。
每個屏幕視圖的應用程序崩潰次數:此數字將應用程序收到的總屏幕視圖數與崩潰次數進行比較。該指標的可接受范圍為 < 0.01%。必須對此進行分類,以了解崩潰對功能交付的影響。
什么時候使用它?

當您心中有特定目標時,這個指標很有趣。例如,您可以努力使軟件最關鍵的用戶流中的 ACR 低于 0.25%。

9. 缺陷密度
有兩種不同的方法來查看缺陷密度:

面向規模的指標關注軟件的規模,通常以千行代碼 (KLOC) 表示。一旦決定了一行代碼的構成,這是一個相當容易收集的軟件指標。不幸的是,它對于比較用不同語言編寫的軟件項目沒有用。一些示例包括每個 KLOC 的錯誤或每個 KLOC 的缺陷。

面向功能的指標重點關注軟件提供的功能量。但功能不能直接測量。因此,面向功能的軟件指標依賴于計算功能點(FP) ?——一種量化產品提供的業務功能的測量單位。功能點對于比較用不同語言編寫的軟件項目也很有用。該指標將查看每個 FP 的錯誤或每個 FP 的缺陷

功能點不是一個容易掌握的概念,而且方法也各不相同。這就是為什么許多軟件開發經理和團隊完全跳過功能點的原因。他們認為功能點不值得花時間。

什么時候使用它?

依賴于代碼行的面向大小的指標使得它們本身沒有用處。因此,您不應該將兩個不同的軟件項目與它們進行比較。這就是為什么您可能不太喜歡使用它。而且面向功能的指標很難計算和達成一致。您可能想向它們引入控制措施,但列表中可能有更好的指標。

10. 依賴時代
技術債務的另一個指標是代碼庫中使用的依賴項的過時程度。跟蹤這一點可能會很有趣,作為所有依賴項的平均值,可能有一個變體,這樣您就可以確定一個依賴項何時很舊并且需要您的注意。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/210910.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/210910.shtml
英文地址,請注明出處:http://en.pswp.cn/news/210910.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Nginx基礎篇:Nginx搭建、Nginx反向代理、文件服務器部署配置。

Nginx Linux系統安裝以及反向代理的配置 簡介優點nginx 環境安裝常用Nginx 命令nginx 文件服務器搭建 簡介 Nginx (engine x) 是一個高性能的HTTP和反向代理web服務器&#xff0c;同時也提供了IMAP/POP3/SMTP服務。Nginx是由伊戈爾賽索耶夫為俄羅斯訪問量第二的Rambler.ru站點…

如何把kubernetes pod中的文件拷貝到宿主機上或者把宿主機上文件拷貝到kubernetes pod中

1. 創建一個 Kubernetes Pod 首先&#xff0c;下面是一個示例Pod的定義文件&#xff08;pod.yaml&#xff09;&#xff1a; cat > nginx.yaml << EOF apiVersion: v1 kind: Pod metadata:name: my-nginx spec:containers:- name: nginximage: nginx EOF kubectl app…

LabelImg的使用及注意事項

LabelImg是一款開源的圖像標注工具&#xff0c;它主要用于標注目標檢測、語義分割和圖像分類等深度學習中需要的數據集。通過使用LabelImg&#xff0c;用戶可以快速、準確地為圖片中的目標添加標注信息&#xff0c;從而建立數據集。 使用步驟&#xff1a; 下載LabelImg&#x…

java測試rtsp地址連接狀態,測試RTSP連接狀態是否成功,java如何測試rtsp地址連接是否成功

import java.net.Socket; import java.net.URI; import java.net.URISyntaxException;/*** ClassName: RTSPUtils* Description: 測試RTSP連接狀態* Author: zhanghui* Date: 2023-12-08* Version: 1.0**/ public class RTSPUtils {private static final int TIMEOUT_MS 10000…

我的創作紀念日(2周年)

機緣 在進入大學之前&#xff0c;完全沒有聽說過CSDN&#xff0c;第一次使用CSDN應該是搜C語言如何學&#xff0c;或者是和C語言相關的其他內容 因為我本人是學計算機專業的&#xff0c;大一剛開學因為疫情延遲了開學時間&#xff0c;老師線上教課&#xff0c;但是我之前是完…

永磁同步電機反電動勢系數怎么算?磁鏈強度怎么算?轉矩系數怎么算?

在進行永磁同步電機simulink仿真時&#xff0c;一個關鍵參數就是永磁體磁鏈強度&#xff0c; 實際上在simulink中&#xff0c;永磁體磁鏈強度/反電動勢系數/轉矩系數這三個是放一起的&#xff0c;這是因為他們都可互相算出來。 Torque constat (Nm/A) 轉矩系數 1.5 * Np *…

在瀏覽器中存儲token的最佳實踐

在瀏覽器中存儲token的最佳實踐 Web 應用程序不是靜態站點&#xff0c;而是靜態和動態內容的精心組合。更常見的是&#xff0c;Web 應用程序邏輯在瀏覽器中運行。該應用程序不是從服務器獲取所有內容&#xff0c;而是在瀏覽器中運行 JavaScript&#xff0c;從后端 API 獲取數據…

Tomcat部署開源站點JPress

前言 JPress使用Java開發&#xff0c;是我們常見的開源博客系統。JPress是一個開源的WordPress插件&#xff0c;它提供了一個簡單而強大的方式來創建企業級站點。該插件包括許多特性&#xff0c;例如主題定制、頁面構建器、性能優化、SEO、安全、電子商務和社交媒體整合等。使用…

Linux卸載MySql(簡潔版)

安裝MySql https://blog.csdn.net/tongxin_tongmeng/article/details/128263398 停止服務 service mysql stop 刪除服務 chkconfig --del mysql 刪除目錄 rm -rf /opt/mysql 刪除配置 rm -f /etc/my.cnf 刪除啟動腳本 rm -f /etc/init.d/mysql 刪除用戶和組 userdel mysql &am…

C_1練習題答案

1.在一個C程序中() A. main函數必須出現在所有函數之前 B. main函數可以出現在任何地方 C. main函數必須出現在所有函數之后 D. main 函數必須出現在固定位置 B 2.下列不合法的用戶標識符是() A. j2_KEY B. Double C. 4d_a D.8 C 3,在“文件包含”預處理語句的使用過程…

thinkphp6入門(12)-- 一對一關聯模型

定義一對一關聯&#xff0c;例如&#xff0c;一個用戶都有一個個人資料。 一、兩表 1.用戶表:user 2.工作經驗表&#xff1a;work_experience user表的id關聯work_experience表的user_id。 注意看&#xff0c;user_id1的有2條工作經驗 二、數據模型 主表模型&#xff1a;…

Linux 定時任務備份MySQL數據庫

Linux 定時任務基本知識 crontab yum install crontabs &#xff08;安裝 crontabs&#xff09; systemctl enable crond &#xff08;設為開機啟動&#xff09; systemctl start crond&#xff08;啟動crond服務&#xff09; systemctl status crond &#xff08;查看狀態&a…

STM32F407-14.3.9-02輸出比較模式

輸出比較模式 輸出比較模式生成波形時 當采用上升沿或下降沿計數時&#xff0c;更改ARR的值可改變周期&#xff1b; 更改CCRx的值會影響到生成波形的相位。波形的占空比永遠50% 當采用中心對齊模式時&#xff0c; 更改ARR的值可以改變周期&#xff0c;更改CCRx的值可以改…

操作系統考研筆記(王道408)

文章目錄 前言計算機系統概述OS的基本概念OS的發展歷程OS的運行機制OS體系結構OS引導虛擬機 進程和線程進程和線程基礎進程進程狀態進程控制進程通信線程線程實現 CPU調度調度的層次進程調度細節調度算法評價指標批處理調度算法交互式調度方法 同步與互斥基本概念互斥互斥軟件實…

Plantuml之類圖語法介紹(十六)

簡介&#xff1a; CSDN博客專家&#xff0c;專注Android/Linux系統&#xff0c;分享多mic語音方案、音視頻、編解碼等技術&#xff0c;與大家一起成長&#xff01; 優質專欄&#xff1a;Audio工程師進階系列【原創干貨持續更新中……】&#x1f680; 優質專欄&#xff1a;多媒…

STM32基于USB串口通信應用開發

?作者簡介&#xff1a;熱愛科研的嵌入式開發者&#xff0c;修心和技術同步精進&#xff0c; 代碼獲取、問題探討及文章轉載可私信。 ? 愿你的生命中有夠多的云翳,來造就一個美麗的黃昏。 &#x1f34e;獲取更多嵌入式資料可點擊鏈接進群領取&#xff0c;謝謝支持&#xff01;…

人工智能:走向智能化未來的探索

前言 人工智能&#xff08;Artificial Intelligence&#xff0c;簡稱AI&#xff09;是當今科技領域最引人注目的發展方向之一。從虛構作品中的機器人到現實生活中的智能助手&#xff0c;AI正深刻地改變著我們的生活方式、工作方式以及與技術互動的方式。本文將深入探討人工智能…

對無向圖進行鄰接矩陣的轉化,并且利用DFS(深度優先)和BFS(廣度優先)算法進行遍歷輸出, 在鄰接矩陣存儲結構上,完成最小生成樹的操作。

一 實驗目的 1&#xff0e;掌握圖的相關概念。 2&#xff0e;掌握用鄰接矩陣和鄰接表的方法描述圖的存儲結構。 3&#xff0e;掌握圖的深度優先搜索和廣度優先搜索遍歷的方法及其計算機的實現。 4&#xff0e;理解最小生成樹的有關算法 二 實驗內容及要求 實驗內容&#…

模電·放大電路的分析方法——圖解法

放大電路的分析方法——圖解法 靜態工作點的分析電壓放大倍數的分析波形非線性失真的分析直流負載線與交流負載線圖解法的適用范圍 在實際測出放大管的輸入特性、輸出特性和已知放大電路中其它各元件參數的情況下&#xff0c;利用作圖的方法對放大電路進行分析即為圖解法。 靜…

postgresql自帶指令命令系列三

目錄 簡介 bin目錄 28.pg_verifybackup 29.pg_waldump 30.postgres 31.postmaster -> postgres 32.psql 33.reindexdb 34.vacuumdb 35.vacuumlo 總結&#xff1a; 簡介 在安裝postgresql數據庫的時候會需要設置一個關于postgresql數據庫的PATH變量 export PATH/…