亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        面向軟件缺陷預(yù)測的云原生研發(fā)效能框架研究

        2021-09-14 01:39:34韓振東王瀏明
        信息通信技術(shù) 2021年4期
        關(guān)鍵詞:軟件缺陷貝葉斯度量

        劉 晶 韓振東 王瀏明

        1 中國聯(lián)通研究院 北京 100176

        2 中國聯(lián)合網(wǎng)絡(luò)通信集團(tuán)有限公司 北京 100033

        3 中國聯(lián)通軟件研究院 北京 100176

        引言

        云計算的飛速發(fā)展和上云企業(yè)軟件規(guī)模、業(yè)務(wù)多樣性的日益增長,對資源利用率、快速迭代、軟件質(zhì)量等提出越來越高的要求。云原生技術(shù)具有敏捷研發(fā)與部署、資源利用率高、快速使能創(chuàng)新和降本增效的優(yōu)勢,是企業(yè)全面數(shù)字化轉(zhuǎn)型的核心技術(shù)和關(guān)鍵抓手[1]。云原生主要包含微服務(wù)、容器化、DevOps和持續(xù)交付等技術(shù)特征。2019年Stackrox調(diào)查指出,云原生逐漸得到應(yīng)用和完善,Kubernetes在容器編排中占據(jù)主導(dǎo)地位,容器管理正在進(jìn)入企業(yè)IT主流[2]。其中,DevOps是開發(fā)和運維兩個領(lǐng)域的組合,通過自動化流程使軟件開發(fā)、測試、發(fā)布更加快捷、頻繁和可靠[3]。根據(jù)Puppet Lab在2017年的調(diào)查研究,來自全球如AWS、Google等企業(yè)的DevOps采用率逐步增加[4]。

        DevOps逐漸成為業(yè)界的研究熱點,越來越多的企業(yè)開始使用并推出多種DevOps平臺及基于DevOps的交付解決方案。廣東移動通過在OSS的DevOps實踐,構(gòu)建了DevOps能力成熟度評估體系,包括發(fā)布組織和方法論、精益交付治理和流程、持續(xù)集成、持續(xù)交付、軟件定義基礎(chǔ)設(shè)施等多個方面[5]。阿里云推出云效DevOps平臺,通過項目協(xié)作、代碼管理、持續(xù)交付流水線等產(chǎn)品,助力快速實現(xiàn)研發(fā)敏捷和組織敏捷[6]。騰訊云發(fā)布CODING DevOps系統(tǒng),提供包括項目管理、代碼托管、測試管理、持續(xù)集成等產(chǎn)品和服務(wù),實現(xiàn)了研發(fā)團(tuán)隊的高效協(xié)同和敏捷開發(fā),提升軟件交付質(zhì)量與速度[7]。在DevOps實踐過程中,出現(xiàn)了許多自動化工具,使得DevOps在各種軟件項目中得以實現(xiàn),如Docker、Kubernetes、Ansible、Terraform、Packer等[8]。隨著云原生技術(shù)的快速發(fā)展以及DevOps在行業(yè)內(nèi)的廣泛應(yīng)用,關(guān)于研發(fā)效能統(tǒng)一度量方面的研究目前是云原生行業(yè)內(nèi)的重點研究領(lǐng)域之一。

        此外,隨著云應(yīng)用軟件規(guī)模和系統(tǒng)復(fù)雜程度逐步增加,軟件缺陷的數(shù)量也大幅度增長,檢測難度不斷加大。軟件缺陷將會對業(yè)務(wù)和系統(tǒng)的安全、生產(chǎn)、運營產(chǎn)生嚴(yán)重的影響,甚至造成難以估量的經(jīng)濟(jì)損失。目前代碼審查在速度和效率上已難以滿足軟件發(fā)展的要求,因此,為了提高軟件測試效率,保證軟件可靠性,軟件缺陷預(yù)測成為研發(fā)過程的重要一環(huán)。目前已有很多關(guān)于軟件缺陷預(yù)測的研究[9-11],然而絕大部分只是針對軟件代碼的特征做出預(yù)測,很少有與研發(fā)過程特征相關(guān)的預(yù)測模型。本文提出的云原生研發(fā)效能框架可以采集軟件研發(fā)過程中的度量指標(biāo),為提取研發(fā)過程相關(guān)的預(yù)測特征提供了有利條件。

        1 基于云原生的研發(fā)效能框架

        研發(fā)效能沒有統(tǒng)一的定義,直觀理解為在從需求、設(shè)計、開發(fā)、測試到發(fā)布、運維的整個研發(fā)過程中交付產(chǎn)品的“效率”與“能力”。基于云原生的研發(fā)效能框架旨在對整個研發(fā)過程進(jìn)行統(tǒng)一管理,可視化呈現(xiàn)和多維度度量,并可對內(nèi)部一線研發(fā)或?qū)ν獠繄F(tuán)隊提供問題定位、分析、預(yù)測、咨詢等服務(wù)。基于云原生的研發(fā)效能框架包括基礎(chǔ)設(shè)施層、能力平臺層、研發(fā)效能平臺層和應(yīng)用層,如圖1所示。

        圖1 基于云原生的研發(fā)效能框架

        1)基礎(chǔ)設(shè)施層

        基礎(chǔ)設(shè)施層通過容器化和基于Kubernetes的服務(wù)編排,提供包括計算、存儲和網(wǎng)絡(luò)等基礎(chǔ)設(shè)施資源,同時融入微服務(wù)架構(gòu)與DevOps集成管理工具鏈,將需求、開發(fā)、測試、運維等流程協(xié)同合作,細(xì)化管理粒度,對云應(yīng)用的完整生命周期進(jìn)行統(tǒng)一管理,以達(dá)到敏捷迭代、持續(xù)交付、更高資源利用率和可擴(kuò)展性的目標(biāo)。

        2)能力平臺層

        能力平臺層是部署在云原生基礎(chǔ)資源上的大數(shù)據(jù)、AI、調(diào)度、消息隊列等能力和中間件,為上層提供可用的能力和服務(wù)。大數(shù)據(jù)服務(wù)將研發(fā)過程中各階段數(shù)據(jù)進(jìn)行收集、采樣、預(yù)處理和存儲等,并可提供定制的數(shù)據(jù)建模和分析等能力;AI服務(wù)提供包括如回歸、分類、聚類等模型算法庫,和特征分析、建模、訓(xùn)練等能力;調(diào)度服務(wù)按照既定資源分配策略對基礎(chǔ)設(shè)施資源進(jìn)行統(tǒng)一配置;消息隊列則用于實現(xiàn)具備高可用性能的接收、存儲和轉(zhuǎn)發(fā)消息、數(shù)據(jù)。

        3)研發(fā)效能平臺層

        研發(fā)效能平臺層從能力平臺層(如大數(shù)據(jù)、AI)獲取源數(shù)據(jù),提取和抽象為度量研發(fā)過程每個階段的可量化指標(biāo),并進(jìn)行多維分析和可視化,用來評估交付價值和效能。研發(fā)效能平臺層包括構(gòu)建度量體系、算法模型、問題診斷和賦能提升。①度量體系分為對項目過程、團(tuán)隊和工程能力的評估,其中項目過程又可分為需求交付、代碼質(zhì)量、缺陷修復(fù)率等度量指標(biāo);團(tuán)隊能力是對人的產(chǎn)出、活動的評估,包含代碼提交頻率、合并頻率、人均提交代碼量等指標(biāo);工程能力指標(biāo)包括代碼管理能力、構(gòu)建成功率、部署和發(fā)布頻率等。②研發(fā)效能的算法模型是基于上述大量的度量指標(biāo)通過機(jī)器學(xué)習(xí)、模式識別、神經(jīng)網(wǎng)絡(luò)算法等建模,形成面向不同目標(biāo)的匹配模型、預(yù)測模型、學(xué)習(xí)規(guī)則庫等。③問題診斷結(jié)合度量數(shù)據(jù)通過模型分析和判斷,發(fā)現(xiàn)研發(fā)過程中存在的問題和可能的原因。④賦能提效則是將診斷問題推送到對應(yīng)團(tuán)隊,反推關(guān)聯(lián)到研發(fā)過程中的活動、行為,定位可能的問題環(huán)節(jié)進(jìn)行優(yōu)化。

        良好的數(shù)據(jù)庫設(shè)計,會使系統(tǒng)開發(fā)工作變得相對簡單,使得后期開發(fā)工作能夠很好地進(jìn)行下去,縮短開發(fā)周期。根據(jù)需求分析,該系統(tǒng)總共包括12張表,分別為用戶角色表、權(quán)限分配表、基本權(quán)限表、管理員表、用戶表、部門表、審核記錄表、地震應(yīng)急信息表、應(yīng)急圖片表、地震應(yīng)急信息狀態(tài)表、應(yīng)急欄目表、發(fā)布狀態(tài)表。

        4)應(yīng)用層

        應(yīng)用層通過調(diào)用研發(fā)效能平臺層的數(shù)據(jù)與算法模型,為用戶提供多種服務(wù),如畫像分析、風(fēng)險管控、智能推薦、缺陷預(yù)測等。①畫像分析:通過大數(shù)據(jù)分析研發(fā)人員的活動、行為習(xí)慣(如編碼時間、交互活動等),提取特征,為團(tuán)隊人員構(gòu)建研發(fā)畫像,便于對團(tuán)隊的評價。②風(fēng)險管控:通過分析業(yè)務(wù)的使用量、調(diào)用量、關(guān)鍵程度等數(shù)據(jù),判斷潛在的風(fēng)險,定位到相關(guān)團(tuán)隊與環(huán)節(jié),幫助降低版本迭代風(fēng)險。③智能推薦:通過關(guān)聯(lián)分析算法和根因分析法及時發(fā)現(xiàn)線上故障與研發(fā)過程各階段活動之間的關(guān)系,把影響線上質(zhì)量的關(guān)鍵因子反饋至用戶,幫助其提升研發(fā)效率。④缺陷預(yù)測:在研發(fā)任務(wù)緊急,測試資源有限的情況下,通過缺陷預(yù)測模型對未上線的代碼進(jìn)行分析預(yù)測,有針對性地對可能出現(xiàn)缺陷的代碼段進(jìn)行測試,節(jié)省資源的同時也能提高交付效率。

        2 軟件缺陷預(yù)測方案

        為合理分配測試資源,提高測試效率,從而進(jìn)一步提升研發(fā)效能,研發(fā)效能框架中的缺陷預(yù)測應(yīng)用對軟件上線之前進(jìn)行缺陷預(yù)測。缺陷預(yù)測的粒度可以分為包、模塊、文件、方法等,本文選取模塊為預(yù)測對象。從模塊開發(fā)的歷史數(shù)據(jù)中訓(xùn)練預(yù)測模型,在目標(biāo)模塊進(jìn)行預(yù)測和驗證。軟件模塊的數(shù)據(jù)可以從不同項目或同一項目的同一版本、不同版本中獲取。本節(jié)將基于研發(fā)效能框架,結(jié)合研發(fā)過程特征和代碼特征的軟件缺陷預(yù)測方案進(jìn)行詳細(xì)介紹,其過程如圖2所示,步驟分別為:1)從軟件代碼倉庫和研發(fā)效能數(shù)據(jù)庫中取得盡可能合適的歷史數(shù)據(jù);2)將源數(shù)據(jù)進(jìn)行分類、標(biāo)記,提取為度量元指標(biāo);3)對度量元進(jìn)行補全缺失值、提出離群值等數(shù)據(jù)預(yù)處理;4)根據(jù)機(jī)器學(xué)習(xí)或者統(tǒng)計分析方法構(gòu)建預(yù)測模型;5)對目標(biāo)模塊進(jìn)行缺陷預(yù)測,并將結(jié)果輸出以提高研發(fā)效能,形成閉環(huán)。

        2.1 度量元指標(biāo)

        本文選用了軟件項目的代碼倉庫和研發(fā)效能數(shù)據(jù)庫中與研發(fā)過程中代碼開發(fā)者相關(guān)的數(shù)據(jù)作為缺陷預(yù)測的數(shù)據(jù)集,包含了多種度量元,將有缺陷的數(shù)據(jù)樣本稱為正例,無缺陷的數(shù)據(jù)樣本稱為負(fù)例。通過調(diào)研參考文獻(xiàn)和結(jié)合研發(fā)效能度量指標(biāo),選取了13種度量元指標(biāo)作為預(yù)測特征和1種缺陷標(biāo)記屬性,所選數(shù)據(jù)集的度量元名稱如表1所示。代碼倉庫度量元種類有7種,分別是代碼行總數(shù)、注釋行數(shù)、代碼與注釋行數(shù)、操作數(shù)數(shù)量、操作符數(shù)量、唯一操作數(shù)數(shù)量和唯一操作符數(shù)量;研發(fā)效能度量元有6種,分別是參與開發(fā)者數(shù)量、開發(fā)者提交代碼頻率、開發(fā)者歷史bug率、開發(fā)者人均代碼量、同一模塊開發(fā)者中介中心性和同一模塊開發(fā)者接近中心性。

        2.2 數(shù)據(jù)預(yù)處理

        為提升預(yù)測模型的準(zhǔn)確率和數(shù)據(jù)集的簡潔化,將原始度量元數(shù)據(jù)進(jìn)行預(yù)處理。數(shù)據(jù)預(yù)處理過程包含數(shù)值化、正態(tài)化、離群值剔除、標(biāo)準(zhǔn)化、填充缺失值和離散化六個步驟,詳細(xì)過程如下。

        第二步,通過利用Python數(shù)據(jù)分析工具pandas進(jìn)行分析數(shù)據(jù)的集中趨勢和離散化程度,根據(jù)計算數(shù)據(jù)集的均值mean(A)與標(biāo)準(zhǔn)差std,并統(tǒng)計其分布,發(fā)現(xiàn)數(shù)據(jù)都集中在[max{0|mean(A)-std},mean(A)+std]的較小區(qū)間內(nèi),占94%,且分布密度不均,大部分區(qū)間空白。

        其中,以特征代碼行總數(shù)為例,記為特征A,共有n個數(shù)據(jù),記為{a1,a2,…,an},均值計算公式為

        標(biāo)準(zhǔn)差計算公式為

        數(shù)據(jù)集中度高不利于連續(xù)數(shù)據(jù)離散化,且離群值將對整體判斷影響過大,因此將數(shù)據(jù)集進(jìn)行正態(tài)化處理,轉(zhuǎn)換為單側(cè)偏正態(tài)分布。本文根據(jù)數(shù)據(jù)集的實際情況,采用平方根變換法。將各種類度量元數(shù)據(jù)數(shù)值均做平方根操作后,得到的數(shù)據(jù)集分布區(qū)間變大。

        第三步,數(shù)據(jù)集中過大或過小的異常值(也稱為離群值)會降低整體數(shù)據(jù)的區(qū)分度,為避免離群值影響預(yù)測效果,將剔除離群值。本文通過分析,將超出[mean(A)-3×std,mean(A)+3×std]區(qū)間范圍的離群值剔除。

        第四步,由于不同種類的度量元的數(shù)據(jù)實際取值范圍不同,取值大的將對預(yù)測模型影響大,取值小的影響小,而訓(xùn)練模型是對數(shù)據(jù)取值的映射,與真實值無關(guān),故對各度量元取值進(jìn)行標(biāo)準(zhǔn)化。將AS記為標(biāo)準(zhǔn)化后的特征A,對特征A標(biāo)準(zhǔn)化公式為

        標(biāo)準(zhǔn)化后,數(shù)據(jù)集AS的數(shù)值差距變小,降低了極大值或極小值對整體的影響。

        第五步,對第三步剔除掉的離群值的缺失值進(jìn)行填充。本文采用文獻(xiàn)[12]中提出的k-means聚類方法對缺失值補充,將數(shù)據(jù)集AS分為有缺失值A(chǔ)SY和無缺失值A(chǔ)SN兩個數(shù)據(jù)集,將ASN基于歐式距離聚類,獲得聚類中心列表CASN,對ASY中的每條數(shù)據(jù)都在ASN找到與之最近的簇,該簇的聚類中心值則填充為缺失值,然后將兩個集合合并為AT。

        第六步,將連續(xù)的度量元數(shù)據(jù)進(jìn)行離散化,本文采用等寬離散法,將AT度量元的取值分為10等分區(qū)間,分別映射為(0,1,2,3,…,9),在此區(qū)間內(nèi)的度量元則取對應(yīng)區(qū)間的映射值。

        2.3 基于樸素貝葉斯的預(yù)測模型

        本文采用樸素貝葉斯算法構(gòu)建缺陷預(yù)測模型。樸素貝葉斯算法根據(jù)概率進(jìn)行決策,假設(shè)各個特征之間是相互獨立的。本文的度量元數(shù)據(jù)集共有13個特征,記為{A0,A1,…,Am,…,A12},通過離散化特征Am有10種取值,記為{Am0,Am1,…,Amk,…,Am9}。

        數(shù)據(jù)集被標(biāo)記為有缺陷和無缺陷2 類,記為{C0,C1}。條件概率P(Amk|Ct)表示在分類Ct的條件下Amk發(fā)生的概率,公式為

        因此,采用樸素貝葉斯的計算時間復(fù)雜度低,且分類準(zhǔn)確性趨于穩(wěn)定。樸素貝葉斯通過訓(xùn)練獲得的先驗概率,來計算要預(yù)測的后驗概率。貝葉斯公式如下

        其中,0≤m≤12,0≤k≤9,0≤t≤1。P(Ct)表示訓(xùn)練數(shù)據(jù)集分類結(jié)果為Ct的概率,是先驗概率。P(Amk)表示訓(xùn)練數(shù)據(jù)集中具有特征Amk的概率,是先驗概率。P(Amk|Ct)表示在訓(xùn)練數(shù)據(jù)集中分類結(jié)果為Ct的條件下具有特征Amk的概率。而P(Ct|Amk)則是在測試數(shù)據(jù)集中,某個數(shù)據(jù)具有特征Amk,該數(shù)據(jù)是分類結(jié)果為Ct的概率,是后驗概率。

        樸素貝葉斯模型是通過首先計算訓(xùn)練樣本中在有缺陷類和無缺陷類的P(Ct),13種特征中的每種取值的先驗概率P(Amk|Ct);然后在測試樣本中,根據(jù)每類特征的取值從預(yù)測模型中獲得有缺陷和無缺陷的后驗概率P(Ct|Amk);最后比較有缺陷和無缺陷兩種預(yù)測概率,取值大的就是預(yù)測結(jié)果。

        2.4 測試樣本驗證

        本文選取了NASA的MDP軟件缺陷預(yù)測開源數(shù)據(jù)集的17 000+條數(shù)據(jù)對基于貝葉斯的缺陷預(yù)測模型進(jìn)行驗證。首先采用十折交叉法進(jìn)行驗證,隨機(jī)將數(shù)據(jù)集分為10等份,隨機(jī)選取9份作為訓(xùn)練樣本,1份作為測試樣本。我們采用Python語言及其numpy和pandas庫進(jìn)行編寫預(yù)測程序,預(yù)測程序運行在ThinkPad筆記本上,英特爾i5(2.7 GHz)處理器和8GB內(nèi)存,操作系統(tǒng)為Windows 64位。然后對測試樣本進(jìn)行數(shù)據(jù)預(yù)處理,進(jìn)行模型訓(xùn)練。最后對測試樣本進(jìn)行預(yù)測驗證。

        針對軟件缺陷預(yù)測的評估指標(biāo)有預(yù)測準(zhǔn)確率、查準(zhǔn)率和查全率,其中準(zhǔn)確率為預(yù)測正確的樣本數(shù)量占測試樣本的比例,查準(zhǔn)率為預(yù)測正確的正例樣本數(shù)量占測試集中正例的比例,查全率是指預(yù)測正確的正例樣本數(shù)量與預(yù)測正確的正例和預(yù)測錯誤的負(fù)例樣本數(shù)量之和的比[11]。

        本文的軟件缺陷預(yù)測是將代碼本身特征和軟件研發(fā)過程中獲取的研發(fā)效能特征相結(jié)合進(jìn)行預(yù)測,因此將本文的預(yù)測結(jié)果與目前大多數(shù)文獻(xiàn)采用的代碼本身特征樸素貝葉斯預(yù)測結(jié)果進(jìn)行對比,經(jīng)過多次驗證,對比結(jié)果如表2所示。由對比結(jié)果可知,結(jié)合研發(fā)效能特征的預(yù)測準(zhǔn)確率比僅具有代碼特征的準(zhǔn)確率高,查全率和查準(zhǔn)率都有所提升,表明研發(fā)效能框架在缺陷預(yù)測方面具有優(yōu)勢。

        表2 預(yù)測結(jié)果對比

        3 結(jié)語

        本文提出一種基于云原生的研發(fā)效能框架,首先對研發(fā)過程進(jìn)行全面統(tǒng)一地管理與度量,包括項目過程、團(tuán)隊人員和工程能力的度量,并通過數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)方法構(gòu)建模型算法;然后基于研發(fā)效能度量數(shù)據(jù)和預(yù)測分析模型算法,為用戶提供研發(fā)過程的團(tuán)隊和項目提供畫像分析、決策輔助、解決方案咨詢、缺陷預(yù)測等服務(wù)。為進(jìn)一步提升研發(fā)效能,合理安排測試資源,詳細(xì)介紹了研發(fā)效能框架的一種軟件缺陷預(yù)測用例,采用研發(fā)過程度量元和代碼度量元相結(jié)合的特征,首先進(jìn)行數(shù)據(jù)預(yù)處理,并構(gòu)建基于樸素貝葉斯的預(yù)測模型。通過預(yù)測軟件缺陷驗證,準(zhǔn)確率達(dá)到74.3%,比僅對代碼度量元預(yù)測高2.4%,表明研發(fā)效能框架在軟件缺陷預(yù)測方面具有一定的優(yōu)勢。由于本文僅采用了樸素貝葉斯模型,獲得的預(yù)測準(zhǔn)確率提升有限,后續(xù)工作將進(jìn)一步結(jié)合深度學(xué)習(xí)算法提高預(yù)測準(zhǔn)確率,并在研發(fā)效能框架下進(jìn)一步探索研發(fā)投入產(chǎn)出優(yōu)化、風(fēng)險分析等方案。

        猜你喜歡
        軟件缺陷貝葉斯度量
        有趣的度量
        模糊度量空間的強嵌入
        基于源文件可疑度的靜態(tài)軟件缺陷檢測方法研究
        迷向表示分為6個不可約直和的旗流形上不變愛因斯坦度量
        基于NPE-SVM的軟件缺陷預(yù)測模型
        貝葉斯公式及其應(yīng)用
        開源程序的軟件缺陷分布特征的量化分析研究
        基于貝葉斯估計的軌道占用識別方法
        地質(zhì)異常的奇異性度量與隱伏源致礦異常識別
        一種基于貝葉斯壓縮感知的說話人識別方法
        電子器件(2015年5期)2015-12-29 08:43:15
        欧美丰满熟妇xxxx性ppx人交| 99在线国产视频| 国产一区二区精品av| 风流熟女一区二区三区| 久久久中日ab精品综合| 伦人伦xxxx国语对白| 亚洲色偷拍一区二区三区| 亚洲一区二区三区亚洲| 中文字幕av久久亚洲精品| 精品乱码久久久久久久| 国产精品一区高清在线观看| 67194熟妇人妻欧美日韩| 日韩欧美在线综合网| 中文字幕无码免费久久| 久久亚洲aⅴ精品网站婷婷| 国产成人精品久久二区二区91| 久久精品国产亚洲av麻豆长发| 亚洲va中文字幕无码久久不卡| 亚洲国产综合专区在线电影| 极品夫妻一区二区三区 | 内射人妻视频国内| 狠狠色狠狠色综合久久第一次| 亚洲AⅤ乱码一区二区三区| 国产亚洲精品精品综合伦理| 欧美人伦禁忌dvd放荡欲情 | 中文字幕一区二区三区乱码不卡| 亚洲一区二区三区美女av| 蜜臀一区二区三区精品| 男男受被攻做哭娇喘声视频| 久久精品爱国产免费久久| 91精品亚洲熟妇少妇| 夹得好湿真拔不出来了动态图 | 亚洲乱色伦图片区小说| 国产又爽又黄的激情精品视频| 国产不卡一区二区三区视频| 少妇连续高潮爽到抽搐| 人妻丝袜av中文系列先锋影音 | 亚洲最大av资源站无码av网址| av手机在线天堂网| 天堂蜜桃视频在线观看| 亚洲成av人片在线观看麦芽|