1. 程式人生 > 其它 >程式碼質量衡量指標

程式碼質量衡量指標

目錄

1 程式碼質量衡量指標

SQALE(Software Quality Assessment based on Lifecycle Expectations)方法整合了ISO-25010標準與程式碼規範,其目標是:以客觀、準確、可複製和自動化的方式為評估軟體應用程式的原始碼提供支援;為管理技術債務提供一種有效的方法。SQALE是目前眾多主流程式碼分析工具的參照標準,包括我們熟知的SonarQube,和CoderGears, SQUORE等商用程式碼掃描分析工具。

  • 編碼規範:是否遵守了編碼規範,遵循了最佳實踐。
    [強制]等級規約必須遵守

  • 潛在問題:可能在最壞情況下出現問題的程式碼,以及存在安全漏洞的程式碼。
    數量小於10,安全風險類潛在Bug必須修復

  • 文件和註釋:過少(缺少必要資訊)、過多(沒有資訊量)、過時的文件或註釋。

  • 重複程式碼:違反了Don’t Repeat Yourself原則.
    重複程式碼不超過20%

  • 複雜度:程式碼結構太複雜(如圈複雜度高),難以理解、測試和維護.
    圈複雜度超過20的程式碼必須重構

圈複雜度 程式碼狀況 可測性 維護成本
1-10 清晰、結構化
10-20 複雜
20-30 非常複雜
>30 不可讀 不可測 非常高
  • 單元測試覆蓋率:編寫單元測試,特別是針對複雜程式碼的測試覆蓋是否足夠。
    達到70%

  • 技術債:償還債務所需耗費的資源/重寫所有程式碼預估耗費的資源
    SonarQube中

    • [0, 5%] -> A , 預設需要達到的等級
    • (5%, 10%] -> B
    • (10%,20%] -> C
    • (20%, 50%] -> D
    • 高於50% -> E
      達到100%時,即債務開始超過資產,資不抵債,這時就稱這種情況為“技術破產”。

    負債等級達到B或負債比率小於等於10%

參考資料