本申請涉及計算機技術領域,尤其涉及一種量化開發(fā)人員代碼質量的方法和裝置。
背景技術:
隨著互聯網技術和智能設備的快速發(fā)展,越來越多的功能可以通過軟件實現,因此,開發(fā)人員編寫代碼的質量將直接影響軟件開發(fā)的進度,甚至影響用戶的使用體驗。隨著開發(fā)人員數量的不斷增加,如何全面衡量開發(fā)人員的代碼質量已成為亟待解決的問題。
技術實現要素:
有鑒于此,本申請?zhí)峁┮环N量化開發(fā)人員代碼質量的方法和裝置。
具體地,本申請是通過如下技術方案實現的:
一種量化開發(fā)人員代碼質量的方法,所述方法包括:
接收量化請求,所述量化請求中包括:量化目標、量化維度、量化時間間隔以及量化時間段;
針對所述量化目標,獲取所述量化時間段內匹配所述量化維度的樣本數據;
根據所述量化時間間隔以及所述樣本數據,生成所述量化目標在所述量化維度的量化信息。
可選的,所述方法還包括:
根據所述量化維度的模板,展示所述量化目標在所述量化維度的量化信 息。
可選的,所述針對所述量化目標,獲取所述量化時間段內匹配所述量化維度的樣本數據,包括:
當所述量化維度為代碼覆蓋率時,獲取所述量化目標在所述量化時間段內的測試用例覆蓋代碼行數和提交代碼行數;
所述根據所述量化時間間隔以及所述樣本數據,生成所述量化目標在所述量化維度的量化信息,包括:
根據所述量化時間間隔,將所述量化時間段劃分為多個子時間段;
針對每個子時間段,計算所述子時間段內測試用例覆蓋代碼總行數與提交代碼總行數的商,得到所述量化目標在所述子時間段內的代碼覆蓋率;
所述量化信息包括:所述量化時間段中每個子時間段內的代碼覆蓋率。
可選的,所述針對所述量化目標,獲取所述量化時間段內匹配所述量化維度的樣本數據,包括:
當所述量化維度為代碼缺陷統(tǒng)計時,獲取所述量化目標在所述量化時間段內的缺陷數量;
所述根據所述量化時間間隔以及所述樣本數據,生成所述量化目標在所述量化維度的量化信息,包括:
根據所述量化時間間隔,將所述量化時間段劃分為多個子時間段;
針對每個子時間段,根據所述子時間段內的缺陷數量計算所述子時間段內所述量化目標的日缺陷均值;
所述量化信息包括:所述量化時間段中每個子時間段內的日缺陷均值。
可選的,所述針對所述量化目標,獲取所述量化時間段內匹配所述量化維度的樣本數據,包括:
當所述量化維度為sit缺陷占比時,獲取所述量化目標在所述量化時間段內的sit缺陷數量和dev缺陷數量;
所述根據所述量化時間間隔以及所述樣本數據,生成所述量化目標在所述量化維度的量化信息,包括:
根據所述量化時間間隔,將所述量化時間段劃分為多個子時間段;
針對每個子時間段,根據所述子時間段內sit缺陷數量和dev缺陷數量計算sit缺陷占比;
所述量化信息包括:所述量化時間段中每個子時間段內的sit缺陷占比。
一種量化開發(fā)人員代碼質量的裝置,所述裝置包括:
請求接收單元,接收量化請求,所述量化請求中包括:量化目標、量化維度、量化時間間隔以及量化時間段;
數據獲取單元,針對所述量化目標,獲取所述量化時間段內匹配所述量化維度的樣本數據;
代碼量化單元,根據所述量化時間間隔以及所述樣本數據,生成所述量化目標在所述量化維度的量化信息。
可選的,所述裝置還包括:
量化展示單元,根據所述量化維度的模板,展示所述量化目標在所述量化維度的量化信息。
可選的,所述數據獲取單元,在所述量化維度為代碼覆蓋率時,獲取所述量化目標在所述量化時間段內的測試用例覆蓋代碼行數和提交代碼行數;
所述代碼量化單元,根據所述量化時間間隔,將所述量化時間段劃分為多個子時間段,并針對每個子時間段,計算所述子時間段內測試用例覆蓋代碼總行數與提交代碼總行數的商,得到所述量化目標在所述子時間段內的代碼覆蓋率;
所述量化信息包括:所述量化時間段中每個子時間段內的代碼覆蓋率。
可選的,所述數據獲取單元,在所述量化維度為代碼缺陷統(tǒng)計時,獲取所述量化目標在所述量化時間段內的缺陷數量;
所述代碼量化單元,根據所述量化時間間隔,將所述量化時間段劃分為多個子時間段,并針對每個子時間段,根據所述子時間段內的缺陷數量計算所述子時間段內所述量化目標的日缺陷均值;
所述量化信息包括:所述量化時間段中每個子時間段內的日缺陷均值。
可選的,所述數據獲取單元,在所述量化維度為sit缺陷占比時,獲取所述量化目標在所述量化時間段內的sit缺陷數量和dev缺陷數量;
所述代碼量化單元,根據所述量化時間間隔,將所述量化時間段劃分為多個子時間段,并針對每個子時間段,根據所述子時間段內sit缺陷數量和dev缺陷數量計算sit缺陷占比;
所述量化信息包括:所述量化時間段中每個子時間段內的sit缺陷占比。
由以上描述可以看出,本申請針對量化目標,可以獲取量化時間段內匹配量化維度的樣本數據,并根據量化時間間隔以及所述樣本數據,生成所述量化目標在所述量化維度的量化信息,從而可以從多種不同的維度環(huán)比量化開發(fā)人員的代碼質量,為開發(fā)人員的質量管理提供可靠依據。
附圖說明
圖1是本申請一示例性實施例示出的一種量化開發(fā)人員代碼質量的方法的流程圖。
圖2是本申請一示例性實施例示出的一種量化開發(fā)人員代碼質量的裝置的一結構示意圖。
圖3是本申請一示例性實施例示出的一種量化開發(fā)人員代碼質量的裝置的結構示意圖。
具體實施方式
這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。
在本申請使用的術語是僅僅出于描述特定實施例的目的,而非旨在限制本申請。在本申請和所附權利要求書中所使用的單數形式的“一種”、“所 述”和“該”也旨在包括多數形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指并包含一個或多個相關聯的列出項目的任何或所有可能組合。
應當理解,盡管在本申請可能采用術語第一、第二、第三等來描述各種信息,但這些信息不應限于這些術語。這些術語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當……時”或“響應于確定”。
圖1是本申請一示例性實施例示出的一種量化開發(fā)人員代碼質量的方法的流程圖。
請參考圖1,所述量化開發(fā)人員代碼質量的方法可以應用在終端中,包括有以下步驟:
步驟101,接收量化請求,所述量化請求中包括:量化目標、量化維度、量化時間間隔以及量化時間段。
在本實施例中,所述量化請求可以由查看開發(fā)人員代碼質量的人發(fā)起,比如:所述量化請求可以由開發(fā)部門的領導發(fā)起。
在本實施例中,所述量化目標可以為被量化的開發(fā)人員,所述量化目標也可以為被量化的開發(fā)部門。所述量化維度可以包括:代碼覆蓋率、代碼缺陷統(tǒng)計、sit(systemintegratetest,系統(tǒng)整合測試)缺陷占比、pmd信息等。所述量化時間間隔和量化時間段通常由查詢代碼質量的人員進行設置,比如:某開發(fā)部門領導在查詢部門員工代碼質量的時候,可以自行設置所述量化時間間隔和所述量化時間段。
舉例來說,假設部門領導要以周為單位查看員工張某近三個月內的代碼覆蓋率,則該領導可以通過量化代碼質量的相關頁面,輸入員工張某的id,比如:工號或名稱,并將所述量化時間間隔設置為7天,將所述量化時間段設置為近三個月,將所述量化維度設置為代碼覆蓋率后提交量化請求。
步驟102,針對所述量化目標,獲取所述量化時間段內匹配所述量化維度的樣本數據。
在本實施例中,所述匹配所述量化維度的樣本數據包括有生成所述量化維度的量化信息所需要的各種數據。比如:當所述量化維度為代碼覆蓋率時,所述樣本數據通常包括有測試用例覆蓋代碼行數以及提交代碼行數等。
仍以前述步驟101的舉例為例,在接收到上述部門領導提交的量化請求后,在本步驟中,可以獲取張某在近三個月內的測試用例覆蓋代碼行數以及提交代碼行數。
步驟103,根據所述量化時間間隔以及所述樣本數據,生成所述量化目標在所述量化維度的量化信息。
基于前述步驟102,在獲取到匹配所述量化維度的樣本數據后,可以先根據所述量化時間間隔將所述量化時間段劃分為多個子時間段,然后針對每個子時間段,計算所述量化維度的量化信息,以得到所述量化目標在所述量化時間段內各個子時間段的量化信息。
仍以前述步驟101的舉例為例,在本步驟中,可以先以7天為單位,將近三個月劃分為12個時間段,然后分別計算員工張某在每個時間段的代碼覆蓋率,以得到員工張某在近三個月的代碼覆蓋率情況,從而可以衡量員工張某近三個月的代碼質量。
由以上描述可以看出,本申請針對量化目標,可以獲取量化時間段內匹配量化維度的樣本數據,并根據量化時間間隔以及所述樣本數據,生成所述量化目標在所述量化維度的量化信息,從而可以從多種不同的維度環(huán)比量化開發(fā)人員的代碼質量,為開發(fā)人員的質量管理提供可靠依據。
可選的,在本申請另一個例子中,在生成量化目標在某量化維度的量化信息之后,還可以根據所述量化維度的模板,展示所述量化目標在所述量化維度的量化信息,以直觀展示量化目標的代碼質量。在本實施例中,可以預先設置并保存各量化維度的模板,所述模板可以包括柱狀圖、折線圖等,本申請對此不作特殊限制。
下面結合具體的量化維度來描述本申請的實現過程。
在本申請一個例子中,當量化維度為代碼覆蓋率時,在接收到量化請求后,可以獲取量化目標在量化時間段內的測試用例覆蓋代碼行數和提交代碼行數,比如:可以從相關測試平臺提供的接口獲取量化目標在量化時間段內的測試用例覆蓋代碼行數和提交代碼行數。
在本實施例中,在獲取到所述測試用例覆蓋代碼行數和提交代碼行數之后,針對劃分后的每個子時間段,計算所述子時間段內測試用例覆蓋代碼總行數與提交代碼總行數的商,以得到量化目標在所述子時間段內的代碼覆蓋率。
仍以前述步驟101的舉例為例,假設在近三個月內員工張某一共提交過15次代碼,則可以獲取到每一次提交的代碼行數,以及在本次提交后,對其進行測試得到的測試用例覆蓋代碼行數,即可以獲取到15組數據,每組數據包括提交代碼行數和對應的測試用例覆蓋代碼行數。
在獲取到上述15組數據后,針對以7天為單位的每個子時間段,計算該子時間段內測試用例覆蓋代碼總行數與提交代碼總行數的商。假設,上述15組數據中有兩組數據在某個子時間段內,一組為提交代碼行數300行,對應的測試用例覆蓋代碼行數為270行,另一組為提交代碼行數600行,對應的測試用例覆蓋代碼行數為540行,則該子時間段內測試用例覆蓋代碼總行數等于270+540,即810行,提交代碼總行數等于300+600,即900行,該子時間段內代碼覆蓋率等于810/900,即代碼覆蓋率為90%。同樣,可以計算員工張某在其他子時間段內的代碼覆蓋率,以得到近三個月內員工張某的代碼覆蓋率。通過近三個月內員工張某的代碼覆蓋率,可以得出員工張某代碼覆蓋率的均值,當某子時間段內員工張某的代碼覆蓋率嚴重低于所述均值時,可以對員工張某及時預警,以提升其代碼覆蓋率的質量意識。
在本申請另一個例子中,當量化維度為代碼缺陷統(tǒng)計時,在接收到量化請求后,可以獲取量化目標在量化時間段內的缺陷數量,比如:可以從缺陷管理平臺提供的接口獲取量化目標在量化時間段內的缺陷數量。
在本實施例中,在獲取到所述缺陷數量之后,針對劃分后的每個子時間段,計算所述子時間段內量化目標的日缺陷均值,以得到量化目標在所述子時間段內的缺陷統(tǒng)計。
舉例來說,仍假設量化時間段為近三個月,量化時間間隔為7天,量化目標為員工張某,則可以獲取近三個月內的員工張某的缺陷數量,比如:員工張某的每日缺陷數量、每周缺陷數量等。以獲取到員工張某的每周缺陷數量為例,針對以7天為單位的每個子時間段,計算該子時間段內的日缺陷均值。假設,獲取到的該子時間段對應的周缺陷數量為7,則日缺陷均值等于7/7天,即日缺陷均值等于1/天。同樣,可以計算員工張某在其他子時間段內的日缺陷均值,以得到近三個月內員工張某每周的日缺陷均值。當某子時間段內員工張某的日缺陷均值嚴重偏高時,可以對員工張某及時預警,以提升其降低代碼缺陷的質量意識。
在本申請另一個例子中,當量化維度為sit缺陷占比時,在接收到量化請求后,可以獲取量化目標在量化時間段內的sit缺陷數量和dev(developmentenvironmenttest,開發(fā)環(huán)境測試)缺陷數量,比如:可以從缺陷管理平臺提供的接口獲取量化目標在量化時間段內的sit缺陷數量和dev缺陷數量。
在本實施例中,在獲取到所述sit缺陷數量和dev缺陷數量之后,針對劃分后的每個子時間段,計算所述子時間段內sit缺陷占比,以得到量化目標在所述子時間段內的sit缺陷占比。
舉例來說,仍假設量化時間段為近三個月,量化時間間隔為7天,量化目標為員工張某,則可以獲取近三個月內的員工張某的sit缺陷數量和dev缺陷數量。其中,sit缺陷數量表示代碼提交后測試人員測試得到的缺陷數量,dev缺陷數量表示代碼提交前,開發(fā)人員自行發(fā)現的缺陷數量。在獲取到上述sit缺陷數量和dev缺陷數量之后,針對以7天為單位的每個子時間段,計算該子時間段內的sit缺陷占比。假設,在該子時間段內的sit缺陷總數量為3,dev缺陷總數量為2,則該子時間段內sit缺陷占比等于3/ (3+2),即60%。同樣,可以計算員工張某在其他子時間段內的sit缺陷占比,以得到近三個月內員工張某每周的sit缺陷占比。
在實際應用中,所述量化維度還可以為pmd數量、遺漏缺陷占比等,本申請在此不再一一贅述。
此外,在本申請另一個例子中,量化目標也可以為開發(fā)部門。當所述量化目標為開發(fā)部門時,可以獲取該開發(fā)部門中每個開發(fā)人員在量化時間段內匹配量化維度的樣本數據,以所述量化維度為部門缺陷為例,可以根據所述樣本數據生成該開發(fā)部門的人均日缺陷數量。
與前述量化開發(fā)人員代碼質量的方法的實施例相對應,本申請還提供了量化開發(fā)人員代碼質量的裝置的實施例。
本申請量化開發(fā)人員代碼質量的裝置的實施例可以應用在終端上。裝置實施例可以通過軟件實現,也可以通過硬件或者軟硬件結合的方式實現。以軟件實現為例,作為一個邏輯意義上的裝置,是通過其所在終端的處理器將非易失性存儲器中對應的計算機程序指令讀取到內存中運行形成的。從硬件層面而言,如圖2所示,為本申請量化開發(fā)人員代碼質量的裝置所在終端的一種硬件結構圖,除了圖2所示的處理器、內存、網絡接口、以及非易失性存儲器之外,實施例中裝置所在的終端通常根據該終端的實際功能,還可以包括其他硬件,對此不再贅述。
圖3是本申請一示例性實施例示出的一種量化開發(fā)人員代碼質量的裝置的結構示意圖。
請參考圖3,所述量化開發(fā)人員代碼質量的裝置200可以應用在前述圖2所示的終端中,包括有:請求接收單元201、數據獲取單元202、代碼量化單元203以及量化展示單元204。
其中,所述請求接收單元201,接收量化請求,所述量化請求中包括:量化目標、量化維度、量化時間間隔以及量化時間段;
所述數據獲取單元202,針對所述量化目標,獲取所述量化時間段內匹配所述量化維度的樣本數據;
所述代碼量化單元203,根據所述量化時間間隔以及所述樣本數據,生成所述量化目標在所述量化維度的量化信息。
所述量化展示單元204,根據所述量化維度的模板,展示所述量化目標在所述量化維度的量化信息。
可選的,所述數據獲取單元202,在所述量化維度為代碼覆蓋率時,獲取所述量化目標在所述量化時間段內的測試用例覆蓋代碼行數和提交代碼行數;
所述代碼量化單元203,根據所述量化時間間隔,將所述量化時間段劃分為多個子時間段,并針對每個子時間段,計算所述子時間段內測試用例覆蓋代碼總行數與提交代碼總行數的商,得到所述量化目標在所述子時間段內的代碼覆蓋率;
所述量化信息包括:所述量化時間段中每個子時間段內的代碼覆蓋率。
可選的,所述數據獲取單元202,在所述量化維度為代碼缺陷統(tǒng)計時,獲取所述量化目標在所述量化時間段內的缺陷數量;
所述代碼量化單元203,根據所述量化時間間隔,將所述量化時間段劃分為多個子時間段,并針對每個子時間段,根據所述子時間段內的缺陷數量計算所述子時間段內所述量化目標的日缺陷均值;
所述量化信息包括:所述量化時間段中每個子時間段內的日缺陷均值。
可選的,所述數據獲取單元202,在所述量化維度為sit缺陷占比時,獲取所述量化目標在所述量化時間段內的sit缺陷數量和dev缺陷數量;
所述代碼量化單元203,根據所述量化時間間隔,將所述量化時間段劃分為多個子時間段,并針對每個子時間段,根據所述子時間段內sit缺陷數量和dev缺陷數量計算sit缺陷占比;
所述量化信息包括:所述量化時間段中每個子時間段內的sit缺陷占比。
上述裝置中各個單元的功能和作用的實現過程具體詳見上述方法中對應步驟的實現過程,在此不再贅述。
對于裝置實施例而言,由于其基本對應于方法實施例,所以相關之處參 見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上??梢愿鶕嶋H的需要選擇其中的部分或者全部模塊來實現本申請方案的目的。本領域普通技術人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。
以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本申請保護的范圍之內。