隨著軟件工程的規模逐步擴大、復雜程度逐漸提升,以及敏捷開發對效率和協作有了更高的要求,項目干系人如何及時全面發現軟件開發過程中的問題,又如何快速高效地處理和反饋呢?
這些疑問對項目管理人員、質量人員以及開發、測試人員都帶來了更大的挑戰。基于此,對于一款看板工具而言,能否從更加全面的維度對軟件質量進行實時客觀衡量和趨勢分析,并給出相關干系人明確的質量評級、清晰的問題指示和相應的建議方案,將使得管理和決策形成正反饋的閉環、達到流程持續優化的落地。
質量如何把控?
—工欲善其事,必先利其器
Squore是高效的看板管理工具,更是軟件分析平臺,能夠支持眾多第三方工具數據的導入并依據自身高效的數據挖掘能力對數據進行分類匯總,形成看板視圖。Squore依托其強大的KPI評析引擎,將導入的各類數據(如源代碼、需求、票據、動態測試覆蓋率信息、靜態代碼掃描結果等)從克隆代碼、代碼復雜程度、標準合規性、代碼覆蓋率、問題密度、測試效率等多個維度中選取關聯項進行衡量,最終確定當前軟件工程的質量評級(見圖2),從而使項目團隊可以時刻掌握軟件質量狀態。
Squore關鍵績效指標(KPI)
—海納百川,有容乃大
1. 可自定義的測試策略
測試策略旨在幫助開發團隊提高其軟件項目的可靠性信心。Squore充分考慮到隨著代碼的體量和復雜度的增長,執行詳盡的測試活動越來越困難。使用測試策略(見圖3),可以降低代碼的被測范圍,并結合項目實際需求定義代碼覆蓋率期望。例如,通過圈復雜度 (VG)、嵌套級別 (LEVL)、非循環路徑數 (NPAT)、詞匯頻率 (VOCF)、代碼穩定性指數(SI)的閾值來確定被測函數,低于閾值的函數會被排除監測范圍并且不影響KPI評級;通過自定義測試策略,可以使項目團隊關注重點功能函數。
2. 技術債務評估
技術負債(Technical debt)于1992年由沃德·坎寧安首次提出,是指因為加速當前軟件開發效率而忽視可維護性等質量特性,從而造成未來的額外開發負擔。Squore依據ISO質量模型從可維護性、可靠性、效率、可測試性、易變性對軟件進行度量并依據內置算法,對項目中發現的所有違約的修復成本以時間單位(人日)進行評估(見圖4),同時依據迭代版本形成趨勢分析圖。項目干系人可通過技術債務的發展趨勢進行指導干預,避免未來代碼復用時出現高額的重構成本。
3. 代碼規則合規性評估
規則合規性,表明項目開發團隊遵循編碼指南的程度。用戶可以選用第三方靜態代碼分析工具(如德國的Axivion,或美國的QAC等),將測試結果導入Squore進行統計和報告。Squore考慮用戶實際需求,為用戶提供“放寬功能”:在Findings列表(見圖5),選擇相關違規具體問題進行備注說明、放寬該違規行為,同時該放寬條目將不再影響規則合規性KPI。
4. 代碼復雜度評估
復雜度評估,旨在根據代碼復雜性指標評估項目的風險。Squore依托HIS指標中如下標準(見圖6),進行函數的復雜度判定。如果這些指標中至少有一半不符合預期閾值,則類或函數將被Squore判定是復雜的;同時,Squore也為用戶開放HIS指標的閾值配置接口,便于用戶根據項目實際情況進行復雜度判讀。
在項目層面,Squore通過熱點圖的方式來區分函數的復雜程度便于用戶的高效識別(見圖7)。自上而下貫穿軟件項目管理至函數代碼實現層面,Squore提供該函數復雜程度的檢測蛛網圖以及函數控制流圖,便于發現關鍵復雜點。
結合ISO 25010質量分解圖,Squore還可以提高項目團隊對自下而上、從單個函數至整體工程項目質量的把握程度(見圖8)。
5. 覆蓋率評估
覆蓋率評估可以有效監督當前代碼的覆蓋測試情況。用戶可以通過導入動態代碼測試工具如VectorCAST覆蓋率測試結果獲得覆蓋率統計視圖(見圖9),而Squore則會依據覆蓋率完成的百分比來進行該項KPI評級。Squore可以給出項目層級的覆蓋率統計結果,綠色為實現預期值的有效覆蓋測試的函數占比,紅色為覆蓋率還未達到預期值的函數占比,灰色意味著該函數尚未開啟任何類型的覆蓋率測試。與此同時,Squore在函數層面根據具體覆蓋率類型展示覆蓋率測試情況,可有助于用戶快速發現不足方面采取相應措施。ISO 26262對不同安全等級提出了不同類型覆蓋率的測試要求,因此Squore也提供用戶配置接口,可以自定義選擇覆蓋類型(如Statement、Branch或MCDC覆蓋)并設置期望值。
6. 克隆代碼評估
該指標旨在關注應該返工的代碼,主要涉及架構設計和實現,其計算指標突出顯示重復塊和類似算法。
Squore的克隆代碼評估匯總了有關文本復制和算法克隆的信息(基于控制流分析), 會區分克隆是來自程序代碼組件內部還是外部(類似于其他組件)。內部克隆會關注組件本身是否設計良好,外部克隆關注組件之間的相似冗余性。
7. 函數違規密度評估
違規密度旨在突出代碼中最違反規則的函數,密度由Squore內置嚴重性加權算法處理檢測到的違規問題而獲得。通過該指標可以優先發現具有關鍵問題的函數,或者有很多次要/主要問題的函數;而對于這些問題函數,項目團隊應該重點關注,進行及時補救以提高代碼質量。
Squore基于函數技術債務和它們的違規密度(按嚴重程度加權的問題密度)通過圖形化的視圖,突出顯示所有函數的分布(見圖11)。頂部區域的模塊具有更高的技術債務,這意味著它們更難以維護;更大的模塊意味著函數具有較多的問題,同時問題的嚴重程度通過顏色進行區分,氣泡顏色的深淺顯示組件內部問題的嚴重程度。
總 結
本文對Squore進行質量管理的部分關鍵績效指標(KPI引擎)進行了介紹。如前文所述,Squore不僅可以通過強大的API接口與數據挖掘能力實現與眾多主流測試、項目管理和需求工具的無縫銜接,呈現多樣且直觀的視圖看板和報告,更能依托自帶的KPI評析引擎對軟件項目實現多維度的全面質量評估,確保軟件在開發過程中能夠滿足相關質量標準和行業規范,實現產品最終的成功交付。
原文標題:基于KPI評析引擎的Squore軟件質量管理
文章出處:【微信公眾號:Vector維克多】歡迎添加關注!文章轉載請注明出處。
責任編輯:pj
-
軟件
+關注
關注
69文章
4968瀏覽量
87701 -
函數
+關注
關注
3文章
4338瀏覽量
62739 -
代碼
+關注
關注
30文章
4801瀏覽量
68735
原文標題:基于KPI評析引擎的Squore軟件質量管理
文章出處:【微信號:VectorChina,微信公眾號:Vector維克多】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論