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