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

2021-10-05 21:16:06 字數 4370 閱讀 4649

您如何衡量軟體工程的質量? 我想這是乙個永遠都會辯論的問題。 解決這個問題的方法太多,以至於只找到乙個答案是不可能的。 在本文中,我們將列出頂級工程團隊一直跟蹤的與質量相關的指標,並檢視何時以及如何使用它們。

但是,請注意,當您考慮它時,可能會懷疑質量本身是否是目標。重要的是,能夠不受干擾地成長和改變行為的信心似乎更為重要。在那種情況下,質量指標固然很重要,但它們隨時間的演變至少同樣重要。

本文的目的是幫助工程團隊更好地評估質量。 讓我們進入工程質量指標列表。

本文實際上是軟體工程指標高階指南的摘錄。 無論您選擇使用哪種指標,如果您想以無毒且有效的方式使用工程指標,都需要遵循一些規則。

有關該主題的更多資訊,建議您閱讀本文 。

通常,錯誤的數量將在專案生命週期的中期開始增加。 在截止日期之前的幾天或幾周內(取決於專案的大小),團隊將致力於減少bug的數量,直到bug的數量達到漸近線為止。 該漸近線最終代表了專案產品的整體質量。 因此,跟蹤錯誤的總數(區分其優先順序)是乙個很好的指標。

但是,並非所有的bug都是一樣的。 這就是為什麼大多數團隊都為錯誤分配優先順序和/或嚴重性的原因。 例如,僅跟蹤那些p1錯誤和p2錯誤可能會很有趣。 這取決於產品的成熟度。 對於新產品,您將希望專注於p1。 確實,具有許多p1的產品將被認為不起作用。

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

什麼時候使用?

如果您的產品質量對您的業務很重要,則此指標非常有用。

如果是這樣,您應該不斷對其進行跟蹤。

但是,如果您解決了所有的p1和p2,則可能希望通過跟蹤例如p3來尋求更高質量的標準。

「加速」將失敗定義為「導致降級的服務或隨後需要補救(例如,導致服務受損或中斷,需要修復程式,回滾,修復前瞻或補丁。)的更改」。 因此,此等級是導致部署總數失敗的部署數。

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

什麼時候使用?

如果您專注於將頻繁的部署轉變為日常習慣,為了使它具有價值,則需要將故障率保持在較低水平。

事實上,隨著devops團隊經驗和能力的提高,該等級應隨時間降低。

故障率的提高,或者說故障率很高,並且不會隨時間推移而下降,這表明整個devops流程中存在問題。

它是整個過程中質量的良好**指標。

拉取請求可以使您對**庫的整體複雜性有很好的了解。 **庫越複雜,以下度量標準變高的可能性就越高:

什麼時候使用它們?

該指標並不是要衡量devops流程的質量(就

變更失敗百分比而言)

,而是您團隊的工作和協作方式。

如何使用**審查,這些審查有用嗎?

評估合併的請求與拒絕的請求請求的演變將幫助您了解您的團隊是否隨著時間的推移而有所改進。

您還可以按團隊成員進行細化,以檢視他們是否也在改進。

該指標只是您要測試的軟體中的總**行數與當前所有測試用例執行的**行數之比。

用執行的**行數來衡量,通常公認的「足夠的」測試覆蓋率是多少? 共識徘徊在80%左右–對於關鍵系統更高(關鍵的定義可能因行業,地理位置,使用者群等而異)。

什麼時候使用?

當然,您不需要100%的測試覆蓋率。

但是,了解自己的位置並對其進行跟蹤有助於檢視您是否以速度為質量。

請記住,「建立在不良要求之上的高質量產品是劣質產品」,尤其是在測試覆蓋範圍內。

這兩個指標均衡量軟體在生產環境中的效能。 由於軟體故障幾乎是不可避免的,因此這些軟體指標試圖量化軟體恢復和保留資料的能力。

如果mttr值隨著時間的推移而變小,則意味著開發人員在理解問題(例如錯誤以及如何解決問題)方面變得越來越有效。

什麼時候使用它們?

如果團隊使用了以下特定目標,這些指標將非常有趣:「我們需要在產品上達到此mtbf或mttr水平。」

這將增強團隊對客戶提出的重要問題的響應能力,並有助於您為產品以及團隊保持高標準。

為了提高這些指標的效能,團隊可能會理解他們需要解決問題的真正原因,而不是簡單的補丁。

每個團隊都有自己的sla定義。 但是,這是airbnb使用的一種,您會發現非常有趣。 sla是您的團隊在特定時間內(例如,針對漏洞的24小時,對於嚴重漏洞的5天)修復並部署的***錯誤的百分比。 您可能真正希望使用此指標,因為它可以從使用者的角度深入了解您的產品質量

什麼時候使用?

該指標非常接近

mttr

,但不僅限於軟體故障。

它擴充套件到任何型別的錯誤。

同樣,如果團隊有乙個特定目標使用此度量標準,則該度量標準將非常有趣:「我們需要在我們的產品上實現此sla。」

此指標可提高團隊的產品質量歸屬感和響應能力。

這就是airbnb使用它的原因。

缺陷去除效率用於量化與產品交付之前發現的錯誤有關的終端使用者在產品交付之後發現的缺陷數量(d)。 公式為:dre = e /(e + d)

dre越近,產品交付後發現的缺陷越少。 在完整的測試程式中,平均dre分數通常約為85%。 但是,由於有了全面而全面的要求和設計檢查流程,預計這一比例將提高到95%左右。

什麼時候使用?

該指標的用途類似於跟蹤

錯誤數量

的演變。跟蹤它們可能都是多餘的。

我們對錯誤的數量有所偏愛,因為您可以區分現在對您而言重要的錯誤優先順序,並且仍然對總體錯誤(不僅僅是趨勢)有所了解。

應用程式崩潰率的計算方法是將應用程式失敗的次數(f)除以使用次數(u)。 但是實際上有幾種計算方法。

每個使用者的應用程式崩潰:此數字顯示曾經遇到崩潰情況的使用者數量。 該指標的可接受範圍為<1%。 對於成熟的應用程式,此數字應該較低,因為功能會更穩定。 但是,在計算整個應用程式的實際數量時,可以忽略在回滾例項**現的錯誤更新,從而獲得準確的表示形式。每個會話的應用程式崩潰:此數字顯示與會話數相比,應用程式崩潰的次數。 該指標的可接受範圍為<0.1%。 但是,可以將其分類為會話和應用程式流的型別,以更好地了解此問題。每個螢幕檢視的應用程式崩潰:此數字將應用程式收到的總螢幕檢視與崩潰次數進行比較。 該指標的可接受範圍為<0.01%。 應該將其分類,以了解崩潰對功能交付的影響。

什麼時候使用?

當您有特定目標時,此指標很有趣。

例如,您可以努力

實現acr

。有兩種不同的方法來檢視缺陷密度:

面向大小的度量標準著重於軟體的大小,通常以千行**(kloc)表示。 一旦決定了什麼構成**行,這是乙個非常容易收集的軟體指標。不幸的是,它對於比較用不同語言編寫的軟體專案沒有用。 一些示例包括每個kloc的錯誤或每個kloc的缺陷。

面向功能的指標側重於軟體提供的功能。 但是無法直接測量功能。 因此,面向功能的軟體指標依賴於計算功能點(fp) ,這是一種量化產品提供的業務功能的度量單位。 功能點對於比較以不同語言編寫的軟體專案也很有用。 該指標將檢視每個fp的錯誤或每個fp的缺陷

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

什麼時候使用?

依賴於**行的面向大小的指標本身就沒有用。

因此,您不應將兩個不同的軟體專案與它們進行比較。

這就是為什麼您可能不是忠實使用它的原因。

面向功能的指標很難計算和達成共識。

您可能想與他們一起引入控制措施,但是列表中可能會有更好的指標。

技術債務的另乙個指標是**庫中使用的依賴項過時的程度。 作為所有依賴項的平均值(可能帶有變體)來跟蹤它可能會很有趣,因此您可以確定何時乙個很老並且應該引起您的注意。

什麼時候使用?

該指標尤其應引起技術領導的關注。

這太可操作了,無法鏈結到經理使用的**庫。

如果您的專案有很多依賴項,則絕對應該考慮跟蹤依賴項年齡。

請注意,某些指標可能未列入列表,因為它們要麼不夠流行,要麼牽強附會,無法從中獲取任何價值。 請記住,軟體指標應該易於理解,並可能導致變更並具有業務價值。 否則,有什麼意義呢?

您可能要記住的某些指標也可能是我在其他文章中談到的與速度相關的指標和與過程相關的指標的一部分 。

如果我錯過了任何事情,請告訴我您的想法。 最終目標是建立有關軟體工程指標的最佳實踐的全面列表,以幫助團隊改進自己的流程。

最初於2023年7月31日

發布在閱讀更多:

from:

共享軟體的十大殺手

影響共享軟體發展的因素很多,被非法破解可以說是共享軟體的頭號大敵。那麼造成共享軟體生存困難的cracker們到底用了那些 呢?今天就讓我讓帶您去看看神秘的cracker常用的十類軟體,它們就是共享軟體的十大殺手 一.除錯類工具soft ice和trw2000 soft ice是目前公認最好的跟蹤除錯...

軟體測試的十大原則

軟體測試的十大原則 原則是最重要的,方法應該在這個原則指導下進行。軟體測試的基本原則是站在使用者的角度,對產品進行全面測試,盡早 盡可能多地發現 bug,並負責跟蹤和分析產品中的問題,對不足之處提出質疑和改進意見。零缺陷 zero bug 是一種理念,足夠好 good enough 是測試的基本原則...

軟體測試的十大原則

原則是最重要的,方法應該在這個原則指導下進行。軟體測試的基本原則是站在使用者的角度,對產品進行全面測試,盡早 盡可能多地發現bug,並負責跟蹤和分析產品中的問題,對不足之處提出質疑和改進意見。零缺陷 zero bug 是一種理念,足夠好 good enough 是測試的基本原則。在軟體測試過程中,應...