• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于深度學(xué)習(xí)的軟件缺陷預(yù)測(cè)模型①

    2021-01-22 05:41:12邵培南
    關(guān)鍵詞:軟件缺陷源代碼度量

    陳 凱,邵培南

    (中國(guó)電子科技集團(tuán)第三十二研究所,上海 201808)

    1 引言

    隨著現(xiàn)代軟件的不斷發(fā)展,軟件可靠性已經(jīng)成為評(píng)價(jià)軟件的關(guān)鍵因素.軟件規(guī)模的不斷擴(kuò)展和功能的日益增強(qiáng),軟件復(fù)雜度不斷上升,軟件缺陷出現(xiàn)的概率也不斷上升,從而導(dǎo)致軟件的失敗.為了幫助開(kāi)發(fā)人員和測(cè)試人員及時(shí)找到軟件缺陷,軟件缺陷預(yù)測(cè)已經(jīng)成為軟件工程領(lǐng)域、數(shù)據(jù)挖掘領(lǐng)域的研究方向之一.軟件缺陷預(yù)測(cè)技術(shù)可以在一定程度上預(yù)測(cè)軟件中是否存在著缺陷,以此幫助相關(guān)團(tuán)隊(duì)快速了解軟件的整體情況和質(zhì)量,制定相關(guān)策略測(cè)試和改善軟件,提高軟件的可靠性和穩(wěn)定性.

    基于此,許多研究人員前赴后繼潛心研究軟件缺陷預(yù)測(cè)技術(shù)并嘗試通過(guò)機(jī)器學(xué)習(xí)的方法來(lái)檢測(cè)軟件中是否存在著缺陷.傳統(tǒng)軟件缺陷預(yù)測(cè)[1]是以手工獲取軟件度量特征的基礎(chǔ)進(jìn)行分類(lèi)學(xué)習(xí),而特征選擇的方法直接影響軟件缺陷預(yù)測(cè)的準(zhǔn)確性和穩(wěn)定性.而在以往的軟件缺陷預(yù)測(cè)研究中,通常使用靜態(tài)軟件度量作為代碼的特征,靜態(tài)軟件度量[1]主要包括以下幾種方法:

    (1)代碼度量

    代碼度量是最直接、應(yīng)用最普遍的度量方式.通過(guò)對(duì)源代碼相關(guān)指標(biāo)的簡(jiǎn)單計(jì)數(shù)得到度量值.度量包括總行數(shù)、代碼行數(shù)目、注釋行數(shù)目、空白行數(shù)目和代碼及注釋行總數(shù)目等,通過(guò)對(duì)總行數(shù)、代碼行數(shù)、注釋行數(shù)等不同的處理方式,度量結(jié)果就會(huì)不同.

    (2)McCabe 度量

    McCabe 度量是一種基于程序流程圖的復(fù)雜性度量方法,度量的是程序的復(fù)雜性,主要包括圈復(fù)雜度、基本復(fù)雜度、設(shè)計(jì)復(fù)雜度等.

    (3)Halstead 度量

    Halstead 度量考慮了程序中出現(xiàn)的操作數(shù)和運(yùn)算符,具體有程序長(zhǎng)度、操作符出現(xiàn)的總數(shù)量、操作數(shù)出現(xiàn)的總數(shù)量、程序容量、程序難度、程序級(jí)別、程序工作量等.

    (4)CK 度量

    CK 度量是面向?qū)ο蟪绦虻亩攘?具體包括類(lèi)方法復(fù)雜度帶權(quán)和(WMC)、類(lèi)在繼承樹(shù)中的最大深度(DIT)、繼承樹(shù)中類(lèi)的直接子類(lèi)個(gè)數(shù)(NOC)等.

    根據(jù)代碼的實(shí)際情況,選擇合適的度量方法,或在各種度量方法中選擇合適的指標(biāo)組成新的特征集合,然后根據(jù)從歷史軟件源碼中提取出來(lái)的特征構(gòu)建如邏輯回歸、隨機(jī)森林、支持向量機(jī)等分類(lèi)器,對(duì)新版本的軟件源碼進(jìn)行軟件缺陷預(yù)測(cè),以此來(lái)幫助編程人員找到可能包含缺陷的部分.

    然而,傳統(tǒng)軟件缺陷預(yù)測(cè)方法使用靜態(tài)代碼度量作為特征,未能充分考慮潛藏在代碼中的語(yǔ)義特征,這無(wú)疑會(huì)對(duì)缺陷預(yù)測(cè)造成影響.而抽象語(yǔ)法樹(shù)能夠表達(dá)出源代碼的語(yǔ)義,已經(jīng)有相關(guān)的論文[2]證實(shí)了其可以用于源碼的完整性和缺陷的檢測(cè).抽象語(yǔ)法樹(shù)是基于源代碼采用樹(shù)狀結(jié)構(gòu)來(lái)描述代碼上下文之間的關(guān)系,其中包含了程序模塊的語(yǔ)法結(jié)構(gòu)和語(yǔ)義信息.從抽象語(yǔ)法樹(shù)中提取表征用于軟件缺陷預(yù)測(cè),可以充分考慮到代碼的語(yǔ)法語(yǔ)義特征.

    近年來(lái),深度學(xué)習(xí)作為數(shù)據(jù)挖掘的技術(shù)之一得到了充足的研究.在軟件缺陷預(yù)測(cè)領(lǐng)域,深度學(xué)習(xí)同樣可以用于挖掘代碼中隱含的特征.Iqbal 等[3]介紹了用靜態(tài)度量的方法獲得特征,然后用4 種方法對(duì)特征進(jìn)行投票,選取出最合適的特征,然后構(gòu)建一個(gè)多層感知機(jī)(MLP)網(wǎng)絡(luò)來(lái)對(duì)樣本進(jìn)行學(xué)習(xí)分類(lèi).Wang 等[2]介紹了用多層受限玻爾茲曼機(jī)疊加而成的深度置信網(wǎng)絡(luò)(DBN),自動(dòng)提取源代碼中的語(yǔ)法語(yǔ)義特征,并用提取出來(lái)的特征構(gòu)建軟件缺陷預(yù)測(cè)模型.Li 等[4]利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)提取源碼特征后,將其與傳統(tǒng)靜態(tài)特征進(jìn)行連結(jié),構(gòu)建邏輯回歸分類(lèi)器來(lái)對(duì)軟件缺陷進(jìn)行預(yù)測(cè).然而,這些方法依然存在著數(shù)據(jù)挖掘不足的問(wèn)題,所使用的網(wǎng)絡(luò)大多是簡(jiǎn)單模型,CNN 也僅使用單層卷積層.基于這種情況,本文以抽象語(yǔ)法樹(shù)為特征來(lái)源,提出了一種卷積神經(jīng)網(wǎng)路模型來(lái)進(jìn)行軟件缺陷預(yù)測(cè),并利用Promise 官網(wǎng)上的歷史工程數(shù)據(jù)來(lái)對(duì)模型進(jìn)行實(shí)驗(yàn),取得了較好的結(jié)果.

    2 基于抽象語(yǔ)法樹(shù)的代碼表征

    能否從源代碼中提取到合適的特征,是影響軟件缺陷預(yù)測(cè)性能的一個(gè)關(guān)鍵因素.在過(guò)去的研究中,常常用靜態(tài)軟件度量的方法來(lái)處理源代碼,忽視了潛藏在代碼中的語(yǔ)義特征.而本文使用了一種基于抽象語(yǔ)法樹(shù)的方法來(lái)獲取代碼表征.

    2.1 抽象語(yǔ)法樹(shù)

    抽象語(yǔ)法樹(shù)(Abstract Syntax Tree,AST)是源代碼關(guān)于抽象語(yǔ)法結(jié)構(gòu)的樹(shù)狀表示,源代碼中的每一種結(jié)構(gòu)都表征為樹(shù)上的結(jié)點(diǎn).之所以說(shuō)是抽象的,是因?yàn)锳ST 并不會(huì)將源代碼的細(xì)節(jié)表示出來(lái),例如,一串For語(yǔ)句,在結(jié)點(diǎn)中就記錄為“ForStatement”以及一些關(guān)鍵要素,而具體循環(huán)的內(nèi)容并不會(huì)被記錄下來(lái).另外,抽象語(yǔ)法樹(shù)并不依賴(lài)源代碼語(yǔ)言的語(yǔ)法,也就是說(shuō),語(yǔ)法分析時(shí)所采用的是上下文無(wú)關(guān)文法,因?yàn)樵趯?xiě)文法時(shí),通常會(huì)對(duì)文法進(jìn)行等價(jià)的轉(zhuǎn)換(消除左遞歸,二義性,回溯等),這樣會(huì)在文法分析時(shí)引入一些冗余成分,對(duì)后續(xù)階段造成不好的影響.

    抽象語(yǔ)法樹(shù)能有效保存代碼的語(yǔ)法結(jié)構(gòu)和語(yǔ)義信息.如圖1所示,代碼a 和代碼b 十分相似,且有著幾乎一樣的靜態(tài)代碼度量,也就是說(shuō),他們有著幾乎一樣的特征,在特征空間中,它們的距離會(huì)非常小,用分類(lèi)器分類(lèi)的話,很有可能將兩份代碼歸為一類(lèi),但顯然代碼a 是沒(méi)有缺陷的,而代碼b 是有缺陷的,這就造成了錯(cuò)誤的檢測(cè)結(jié)果.圖2展示兩份代碼的抽象語(yǔ)法樹(shù),代碼a 的抽象語(yǔ)法樹(shù)比代碼b 的抽象算法樹(shù)多了兩個(gè)結(jié)點(diǎn),在提取表征向量時(shí),兩份代碼在序列上就會(huì)有一定的區(qū)別,而這種區(qū)別就可以方便模型區(qū)分兩種代碼,得到更好的軟件缺陷預(yù)測(cè)性能.

    圖1 抽象語(yǔ)法樹(shù)示例代碼

    2.2 提取表征向量

    本文使用了一款開(kāi)源的Python 依賴(lài)包Javalang來(lái)對(duì)源代碼進(jìn)行解析,它提供了一個(gè)基于Java 語(yǔ)言規(guī)范的詞法分析器和解析器,可以構(gòu)造Java 源代碼的抽象語(yǔ)法樹(shù).在得到源代碼的抽象語(yǔ)法樹(shù)后,按照深度優(yōu)先的順序來(lái)遍歷AST 的所有節(jié)點(diǎn),然后主要選擇以下3 類(lèi)結(jié)點(diǎn)作為抽象語(yǔ)法樹(shù)的表征向量元素:

    (1)表示為方法調(diào)用的結(jié)點(diǎn)

    (2)表示為聲明的結(jié)點(diǎn),包括方法聲明、類(lèi)聲明、接口聲明等

    (3)控制流結(jié)點(diǎn),譬如說(shuō)條件分支、循環(huán)控制等

    根據(jù)結(jié)點(diǎn)的類(lèi)型,我們選取不同的要素來(lái)作為結(jié)點(diǎn)的特征.對(duì)于第1 類(lèi)結(jié)點(diǎn),我們使用結(jié)點(diǎn)對(duì)應(yīng)的方法名來(lái)作為結(jié)點(diǎn)在特征向量中的標(biāo)識(shí);第2 類(lèi)結(jié)點(diǎn)選擇結(jié)點(diǎn)的名稱(chēng)來(lái)作為標(biāo)識(shí);第3 類(lèi)控制流結(jié)點(diǎn)選擇節(jié)點(diǎn)的類(lèi)型來(lái)作為標(biāo)識(shí),比如表征條件分支的結(jié)點(diǎn),記錄結(jié)點(diǎn)的類(lèi)型名“IfStatement”作為該結(jié)點(diǎn)的特征.表1列出了本文所使用的所有的結(jié)點(diǎn)類(lèi)型.

    由此,我們可以得到一棵樹(shù)即一份代碼的表征向量.

    2.3 整數(shù)向量映射

    從抽象語(yǔ)法樹(shù)中獲得的表征向量不能直接用于神經(jīng)網(wǎng)絡(luò),訓(xùn)練神經(jīng)網(wǎng)絡(luò)需要輸入整數(shù)向量,所以我們需要在獲得的特征和整數(shù)之間建立一個(gè)映射,將表征向量轉(zhuǎn)換為整數(shù)向量.

    為了在獲得的特征和整數(shù)之間建立映射,我們建立一個(gè)字典[2]將表征和正整數(shù)一一對(duì)應(yīng)起來(lái).將訓(xùn)練樣本和測(cè)試樣本中的代碼全部提取為表征向量后,統(tǒng)計(jì)各個(gè)特征的頻率,將其轉(zhuǎn)換為對(duì)應(yīng)的整數(shù).假設(shè)不同的特征的數(shù)量是m,每個(gè)特征都有著對(duì)應(yīng)的整數(shù),那么正整數(shù)的范圍也是1~m.具體的,在從訓(xùn)練樣本和測(cè)試樣本中提取表征向量后,首先,計(jì)算各個(gè)特征在所有樣本中出現(xiàn)的頻數(shù),并且根據(jù)頻數(shù)將它們排列;然后,為排列好的特征建立一個(gè)序列字典,頻數(shù)高的特征排在前面,這意味著出現(xiàn)頻率越高的特征對(duì)應(yīng)的正整數(shù)越??;構(gòu)建完字典后,就可以將之前的表征向量轉(zhuǎn)化為整數(shù)向量.但因?yàn)樯窠?jīng)網(wǎng)絡(luò)的輸入要求有固定的長(zhǎng)度,為了避免向量過(guò)于稀疏,選擇適當(dāng)?shù)南蛄块L(zhǎng)度對(duì)向量進(jìn)行處理.如果一個(gè)向量的長(zhǎng)度小于設(shè)定的長(zhǎng)度,那么我們就在向量末尾添0,而0 在神經(jīng)網(wǎng)絡(luò)的計(jì)算過(guò)程中沒(méi)有意義;如果一個(gè)向量的長(zhǎng)度大于設(shè)定的長(zhǎng)度,那就在向量中尋找最大的正整數(shù)將它刪去,因?yàn)樽畲蟮恼麛?shù)對(duì)應(yīng)的是頻數(shù)最小的特征,循環(huán)往復(fù),直到向量的長(zhǎng)度符合設(shè)定的長(zhǎng)度.由此,我們得到了每份源代碼對(duì)應(yīng)的整數(shù)向量.圖3給出了從源代碼到整數(shù)向量的全部流程.

    圖2 示例代碼的抽象語(yǔ)法樹(shù)

    表1 使用到的所有結(jié)點(diǎn)類(lèi)型

    圖3 從源代碼到得到整數(shù)向量的流程圖(①?gòu)脑创a中解析出抽象語(yǔ)法樹(shù);②從抽象語(yǔ)法樹(shù)中提取表征向量;③根據(jù)提取的特征構(gòu)建字典;④將表征向量映射為整數(shù)向量)

    3 卷積神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)與結(jié)構(gòu)

    卷積神經(jīng)網(wǎng)絡(luò)是一種含卷積計(jì)算且具有深度結(jié)構(gòu)的前饋式神經(jīng)網(wǎng)絡(luò),具有表征學(xué)習(xí)、深度挖掘數(shù)據(jù)的能力.卷積神經(jīng)網(wǎng)絡(luò)已經(jīng)被證實(shí)在圖像處理、語(yǔ)音識(shí)別、自然語(yǔ)言處理等領(lǐng)域有著不錯(cuò)的性能表現(xiàn).而且,卷積神經(jīng)網(wǎng)絡(luò)的隱含層內(nèi)的卷積核參數(shù)共享、層與層之間的稀疏連接使得卷積神經(jīng)網(wǎng)絡(luò)能夠以較小的計(jì)算量對(duì)格點(diǎn)化特征.

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

    在軟件缺陷預(yù)測(cè)領(lǐng)域,數(shù)據(jù)分類(lèi)不均衡問(wèn)題是普遍存在的,如何處理這種不均衡問(wèn)題也是具有挑戰(zhàn)性的.在獲得的數(shù)據(jù)集中,往往有缺陷的樣本數(shù)是要少于沒(méi)有缺陷的樣本數(shù),如果直接用這樣的樣本對(duì)模型進(jìn)行訓(xùn)練,訓(xùn)練出來(lái)的模型往往會(huì)對(duì)樣本數(shù)量較少的類(lèi)別的識(shí)別能力較弱,在軟件缺陷預(yù)測(cè)時(shí),模型便會(huì)偏向沒(méi)有缺陷的結(jié)果.因此,我們需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理以彌補(bǔ)數(shù)據(jù)集分類(lèi)不均衡帶來(lái)的偏差.

    一般而言,針對(duì)數(shù)據(jù)集中存在的樣本分類(lèi)不均衡問(wèn)題,通常采用過(guò)采樣或欠采樣的方法來(lái)使得數(shù)據(jù)集中各類(lèi)的樣本數(shù)量達(dá)到均衡.欠采樣是從多數(shù)樣本中隨機(jī)選擇和少數(shù)樣本一樣數(shù)量的樣本,以此構(gòu)建分類(lèi)平衡的數(shù)據(jù)樣本,但這樣會(huì)大大減少數(shù)據(jù)的訓(xùn)練樣本,造成信息的損失,會(huì)造成模型的欠擬合,因此我們選擇過(guò)采樣的方法來(lái)處理分類(lèi)不均衡問(wèn)題.由于AST 數(shù)值向量并非是特征向量,所以類(lèi)似像SMOTE[5]等基于樣本間的歐式距離來(lái)生成新樣本的分類(lèi)不均衡處理方法并不一定適用.因此,在這里,我們采取簡(jiǎn)單的隨機(jī)過(guò)采樣的方法來(lái)對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,在少數(shù)樣本即有缺陷的樣本中隨機(jī)選擇進(jìn)行復(fù)制,使得有缺陷的樣本數(shù)量和沒(méi)有缺陷的樣本數(shù)量保持一致,以此保證數(shù)據(jù)類(lèi)別間的均衡.具體的算法如算法1 所示.

    算法1.隨機(jī)過(guò)采樣算法輸入:分類(lèi)不均衡的數(shù)據(jù)集D輸出:分類(lèi)均衡的數(shù)據(jù)集D'(1)初始化已復(fù)制樣本集合C 為空集.(2)將數(shù)據(jù)集D 復(fù)制,組成數(shù)據(jù)集D'.(3)在數(shù)據(jù)集D 中篩選出有缺陷的樣本集d.(4)在數(shù)據(jù)集d 中隨機(jī)選擇樣本a,如果a 不在已復(fù)制樣本集合C 中,將樣本a 加入數(shù)據(jù)集D'和已復(fù)制樣本集合C;如果已復(fù)制樣本集C 的大小和d 一樣,則清空C.(5)重復(fù)步驟(4)直至數(shù)據(jù)集D'中無(wú)缺陷樣本和有缺陷樣本數(shù)量保持一致.

    3.2 網(wǎng)絡(luò)結(jié)構(gòu)

    首先介紹所要構(gòu)建的網(wǎng)絡(luò)中用到的基礎(chǔ)卷積塊Inception 塊[6],這個(gè)卷積模塊的結(jié)構(gòu)如圖4所示.

    圖4 Inception 塊

    如圖4所示,Inception 塊含有4 條并行的網(wǎng)絡(luò)線路.前三條線路所使用的卷積核大小分別是1×1、3×3、5×5,以用來(lái)抽取不同空間尺寸下的信息,第2,3 層會(huì)先對(duì)輸入做1×1 卷積操作以減少輸入通道數(shù),以降低模型復(fù)雜度.第4 條線路會(huì)先使用3×3 最大池化層,然后接一個(gè)1×1 卷積層來(lái)改變通道數(shù).并且,根據(jù)4 條線路的具體情況,設(shè)置合適的填充來(lái)使得輸入和輸出的高和寬一致.最后將每條線路的輸出在通道維上連結(jié),以此完成卷積的功能,將結(jié)果輸入到下一層.相較于普通的卷積層,Inception 塊因?yàn)槭褂昧? 個(gè)卷積層和1 個(gè)池化層,能夠更深層次的挖掘數(shù)據(jù)中的特征,以此幫助模型進(jìn)行更好的學(xué)習(xí)分類(lèi).

    為了能夠更深層次地挖掘出潛藏在向量中的語(yǔ)法語(yǔ)義特征,本文基于GoogLeNet[7]設(shè)計(jì)了一個(gè)卷積神經(jīng)網(wǎng)絡(luò),GoogLeNet 最初設(shè)計(jì)出來(lái)是用來(lái)進(jìn)行圖像處理的,在ImageNet 圖像識(shí)別挑戰(zhàn)賽中大放異彩,GoogLeNet 串聯(lián)了多個(gè)Inception 塊來(lái)對(duì)圖像進(jìn)行深度挖掘,以此進(jìn)行更好的分類(lèi).本文基于GoogLeNet 設(shè)計(jì)一個(gè)卷積神經(jīng)網(wǎng)絡(luò),具體的網(wǎng)絡(luò)結(jié)構(gòu)如圖5所示,除了最后的輸出層使用Sigmoid 函數(shù)作為激活函數(shù)外,其他層的激活函數(shù)均使用ReLU 函數(shù),并且根據(jù)實(shí)際情況調(diào)整網(wǎng)絡(luò)中各個(gè)層的參數(shù),網(wǎng)絡(luò)整體分為主要分為以下3 個(gè)部分:

    (1)輸入層:輸入層主要是一個(gè)嵌入層[8],嵌入層的主要作用是將輸入的整數(shù)向量中的整數(shù)元素轉(zhuǎn)換成整數(shù)向量,使得向量可以進(jìn)行卷積操作.嵌入層有兩個(gè)重要參數(shù):嵌入層字典的大小(num_embeddings)和每個(gè)產(chǎn)出向量的大小(embedding_dim).這里,本文將num_embeddings 設(shè)置為2.3 節(jié)構(gòu)建的字典中所含有的特征的數(shù)量,將embedding_dim 設(shè)置為2.3 節(jié)中通過(guò)映射得到的整數(shù)向量的長(zhǎng)度.將長(zhǎng)度為n的整數(shù)向量輸入到嵌入層,嵌入層將給出一個(gè)n×n的矩陣向量.并且,為了提高內(nèi)存利用率和訓(xùn)練模型的速度,本文選擇分批量進(jìn)行訓(xùn)練,設(shè)置每次訓(xùn)練樣本個(gè)數(shù)(批尺寸,Batch_Size)為16,即一次輸入16 個(gè)樣本進(jìn)行訓(xùn)練.

    (2)卷積部分:卷積部分是網(wǎng)絡(luò)的主體部分,共由5 個(gè)模塊組成.模塊與模塊之間使用步幅為2 的3×3 最大池化層來(lái)減小輸出高度.第1 個(gè)模塊包含3 層的3×3 卷積層;第2 個(gè)模塊使用2 個(gè)卷積層,首先接一個(gè)64 通道的1×1 卷積層,然后接了一個(gè)將通道數(shù)擴(kuò)大3 倍的3×3 卷積層;第3 個(gè)模塊串聯(lián)了2 個(gè)完整的Inception 塊;第4 模塊串聯(lián)了5 個(gè)Inception 塊;第5 模塊串聯(lián)了2 個(gè)Inception 塊.通過(guò)多層的不同空間尺寸的卷積操作,來(lái)深度挖掘數(shù)據(jù)中的特征,從而進(jìn)行性能更好穩(wěn)定性更高的學(xué)習(xí)分類(lèi).

    (3)輸出層:輸出層主要是根據(jù)之前卷積層輸出的結(jié)果來(lái)輸出分類(lèi)結(jié)果.首先使用一個(gè)全局平均池化層來(lái)將每個(gè)通道的高和寬都變成1,然后接上一個(gè)全連接層,輸出通道數(shù)為標(biāo)簽類(lèi)別數(shù),最后,連結(jié)一個(gè)Sigmoid函數(shù)構(gòu)建邏輯回歸分類(lèi)器來(lái)計(jì)算程序代碼的缺陷概率,從而得到分類(lèi)結(jié)果.

    圖5 網(wǎng)絡(luò)結(jié)構(gòu)圖

    3.3 模型優(yōu)化

    之前,我們?cè)跀?shù)據(jù)預(yù)處理時(shí)采用隨機(jī)過(guò)采樣的方法來(lái)解決數(shù)據(jù)分類(lèi)不均衡問(wèn)題,提升了模型的泛化能力,但是這樣也有一定的過(guò)擬合的風(fēng)險(xiǎn),因此我們選擇使用丟棄法(Dropout)[9],通過(guò)隨機(jī)丟棄一部分神經(jīng)元來(lái)避免過(guò)擬合.在訓(xùn)練過(guò)程中,隨機(jī)丟棄一部分隱藏層神經(jīng)單元,即所有神經(jīng)單元都有可能被清零,這樣就減少了神經(jīng)元之間的依賴(lài)性,輸出層的計(jì)算也無(wú)法過(guò)度依賴(lài)任何一個(gè)隱含層神經(jīng)元,從而在訓(xùn)練模型時(shí)起到正則化的作用,用來(lái)應(yīng)對(duì)過(guò)擬合.在測(cè)試模型時(shí),為了拿到更加準(zhǔn)確的結(jié)果,我們不使用丟棄法.

    另外,在訓(xùn)練模型的過(guò)程中,為了得到最優(yōu)的模型參數(shù),我們需要根據(jù)損失函數(shù)的梯度不斷地對(duì)參數(shù)進(jìn)行迭代,這里我們選擇使用Adam[10]優(yōu)化器來(lái)更新參數(shù).Adam 算法結(jié)合了AdaGrad 和RMSProp 兩種優(yōu)化算法的優(yōu)點(diǎn)[10],能夠自動(dòng)調(diào)整學(xué)習(xí)率,并且參數(shù)的更新不受梯度的伸縮變換影響.Adam 算法能夠從梯度均值及梯度平方兩個(gè)角度進(jìn)行自適應(yīng)地調(diào)節(jié),綜合考慮梯度的一階矩估計(jì)和二階矩估計(jì)計(jì)算出更新步長(zhǎng),而不是直接由當(dāng)前梯度決定.

    4 實(shí)驗(yàn)與結(jié)果分析

    4.1 數(shù)據(jù)集

    為了評(píng)估訓(xùn)練出來(lái)的模型的性能,本文從Promise[11]上下載了5 個(gè)工程,總共11 個(gè)項(xiàng)目,組成6 組軟件缺陷預(yù)測(cè)任務(wù),用于模型的測(cè)試.在同一軟件工程中,將舊版本的工程項(xiàng)目作為訓(xùn)練集,將新版本的工程項(xiàng)目作為測(cè)試集,根據(jù)測(cè)試結(jié)果來(lái)評(píng)估模型的預(yù)測(cè)能力.例如,對(duì)于Camel 工程,我們將Camel 1.4 版本的工程代碼用來(lái)訓(xùn)練模型,然后用Camel 1.6 版本的代碼用來(lái)測(cè)試模型.表2列出了測(cè)試時(shí)所使用的軟件項(xiàng)目的基本信息.

    表2 測(cè)試使用的工程信息

    另外,在數(shù)據(jù)集中,每個(gè)項(xiàng)目不僅含有工程的源代碼,還統(tǒng)計(jì)了源代碼的靜態(tài)代碼度量和缺陷注釋,度量方法主要是針對(duì)面向?qū)ο缶幊痰撵o態(tài)代碼度量,具體的指標(biāo)內(nèi)容如表3所示.這些指標(biāo)可以用于其他的軟件缺陷預(yù)測(cè)方法,來(lái)和本文模型進(jìn)行比較.

    表3 數(shù)據(jù)集中所使用的20 個(gè)靜態(tài)代碼度量

    4.2 評(píng)估指標(biāo)

    本文采用AUC[12]和F1-measure[13]這兩個(gè)指標(biāo)來(lái)評(píng)估模型性能,AUC 主要用來(lái)評(píng)估模型的識(shí)別缺陷的能力,而F1-measure 主要用來(lái)評(píng)估模型的穩(wěn)定性.

    在二分類(lèi)的學(xué)習(xí)預(yù)測(cè)過(guò)程中,根據(jù)分類(lèi)結(jié)果可以將其分為4 類(lèi):(1)若一個(gè)實(shí)例為正類(lèi)且被預(yù)測(cè)為正類(lèi),即為真正類(lèi)(True Positive,TP);(2)若一個(gè)實(shí)例為正類(lèi)但被預(yù)測(cè)負(fù)類(lèi),即為假負(fù)類(lèi)(False Negative,FN);(3)若一個(gè)實(shí)例為負(fù)類(lèi)但被預(yù)測(cè)為正類(lèi),即為假正類(lèi)(False Positive,FP);(4)若一個(gè)實(shí)例為負(fù)類(lèi)且被預(yù)測(cè)為負(fù)類(lèi),即為真負(fù)類(lèi)(True Negative,TN).基于這4 個(gè)數(shù)據(jù),可以得到擊中概率(TPR)和虛報(bào)概率(FPR),其計(jì)算公式如式(1)和式(2)所示:

    然后以FPR為橫軸,TPR為縱軸,就可以繪制出ROC 曲線,而ROC 曲線下的面積就是AUC.根據(jù)AUC 的定義,識(shí)別能力更好的模型對(duì)應(yīng)著更高的TPR和更低的FPR,所以有AUC 值越大的預(yù)測(cè)方法越好.

    F1-measure 是精確率(P)和召回率(R)的調(diào)和平均,其中精確率和召回率的計(jì)算公式如式(3)和式(4)所示:

    通常情況下,我們希望精確率越高越好,召回率也越高越好,但事實(shí)上這兩個(gè)指標(biāo)在某些情況下是矛盾的,而F1-measure 則綜合考慮了這兩個(gè)指標(biāo).F1-measure的計(jì)算公式如式(5)所示.

    另外,用于評(píng)估軟件缺陷預(yù)測(cè)模型的指標(biāo)還有很多,例如MCC[14]和G-mean[15],MCC 考慮所有的有缺陷數(shù)據(jù)和無(wú)缺陷數(shù)據(jù)來(lái)綜合評(píng)估預(yù)測(cè)結(jié)果和真實(shí)結(jié)果之間的關(guān)系,G-mean 是在數(shù)據(jù)不平衡時(shí)十分有參考價(jià)值的一個(gè)指標(biāo),但因?yàn)锳UC 和F1-measure 綜合評(píng)估了模型的準(zhǔn)確性和穩(wěn)定性,具有廣泛的代表意義.

    4.3 實(shí)驗(yàn)方法

    為了能夠正確估計(jì)模型對(duì)于軟件缺陷預(yù)測(cè)的性能,將本文提出的模型與以下3 種方法進(jìn)行比較:

    (1)靜態(tài)代碼度量+邏輯回歸(LR):以數(shù)據(jù)集中提供的20 個(gè)靜態(tài)代碼度量作為代碼特征,并用邏輯回歸的方法進(jìn)行分類(lèi)

    (2)深度置信網(wǎng)絡(luò)+邏輯回歸(DBN)[2]:使用深度置信網(wǎng)絡(luò)從源代碼中提取特征,然后使用邏輯回歸的方法進(jìn)行分類(lèi)

    (3)卷積神經(jīng)網(wǎng)絡(luò)+邏輯回歸(CNN)[4]:利用單層卷積神經(jīng)網(wǎng)絡(luò)對(duì)源代碼進(jìn)行特征提取,然后使用邏輯回歸分類(lèi)器得到分類(lèi)結(jié)果

    對(duì)于傳統(tǒng)軟件缺陷預(yù)測(cè)算法,因?yàn)槭褂玫氖?0 個(gè)靜態(tài)代碼度量所構(gòu)成的特征向量,所以在數(shù)據(jù)預(yù)處理時(shí),可以使用SMOTE 方法進(jìn)行過(guò)采樣來(lái)處理數(shù)據(jù)集分類(lèi)不均衡問(wèn)題;而對(duì)于DBN、CNN 和本文模型,只能簡(jiǎn)單地采用隨機(jī)過(guò)采樣的方法來(lái)對(duì)數(shù)據(jù)進(jìn)行預(yù)處理.

    本文使用Python 環(huán)境以及深度學(xué)習(xí)框架PyTorch來(lái)實(shí)現(xiàn)本文提出的模型,所有的實(shí)驗(yàn)均在一臺(tái)帶有NVIDIA GTX 1080 的Linux 服務(wù)器上運(yùn)行.此外,因?yàn)殡S機(jī)過(guò)采樣和丟棄法都具有一定的隨機(jī)性,因此實(shí)驗(yàn)中每個(gè)方法都執(zhí)行10 次,取平均值來(lái)進(jìn)行模型性能的比較.

    4.4 實(shí)驗(yàn)結(jié)果及分析

    本文采用AUC 和F1-measure 來(lái)比較4 種方法在6 組預(yù)測(cè)任務(wù)上的性能.表4和表5分別記錄了這4 種方法關(guān)于AUC 和F1-measure 的實(shí)驗(yàn)結(jié)果,每次測(cè)試任務(wù)的表現(xiàn)最好的已在表格中加粗.

    表4 4 種方法關(guān)于6 項(xiàng)測(cè)試任務(wù)的AUC

    表5 4 種方法關(guān)于6 項(xiàng)測(cè)試任務(wù)的F1-measure

    表3和表4分別列出了4 種方法關(guān)于每個(gè)測(cè)試任務(wù)的AUC 值和F1-measure.AUC 評(píng)估了模型分類(lèi)的準(zhǔn)確性,而F1-measure 評(píng)估了模型的穩(wěn)定性.從表3和表4中我們可以看到,總體而言,本文提出的模型在軟件缺陷預(yù)測(cè)性能方面和模型穩(wěn)定性明顯優(yōu)于LR、DBN和CNN 的.而本文模型的AUC 和F1-measure 的均值也都高于其他方法,這也證實(shí)了本文提出模型的合理性和可行性.此外,從兩張表中我們可以看出,相較于傳統(tǒng)的軟件缺陷預(yù)測(cè)方法,應(yīng)用深度學(xué)習(xí)方法在軟件缺陷預(yù)測(cè)性能和模型穩(wěn)定性上都得到一定的提高.這也證實(shí)了,在軟件缺陷預(yù)測(cè)性能方面,深度學(xué)習(xí)方法優(yōu)于傳統(tǒng)的機(jī)器學(xué)習(xí)方法.

    綜上所述,針對(duì)傳統(tǒng)軟件缺陷預(yù)測(cè)方法中對(duì)源代碼語(yǔ)義特征挖掘不足的問(wèn)題,本文測(cè)試實(shí)驗(yàn)結(jié)果表明,在軟件缺陷預(yù)測(cè)領(lǐng)域,相比于傳統(tǒng)的預(yù)測(cè)方法,應(yīng)用深度學(xué)習(xí)方法得到了一定的提高.而本文也根據(jù)前人的工作,提出了用多層卷積神經(jīng)網(wǎng)絡(luò)對(duì)基于抽象語(yǔ)法樹(shù)得到的表征向量進(jìn)行分類(lèi)學(xué)習(xí),有效提高了缺陷預(yù)測(cè)的準(zhǔn)確性.

    5 結(jié)束語(yǔ)

    本文針對(duì)傳統(tǒng)軟件缺陷預(yù)測(cè)方法應(yīng)用靜態(tài)代碼度量而忽視代碼語(yǔ)義的缺點(diǎn),從代碼的抽象語(yǔ)法樹(shù)中提取出向量,再利用卷積神經(jīng)網(wǎng)絡(luò)深度挖掘數(shù)據(jù)的能力挖掘代碼中的語(yǔ)法語(yǔ)義特征,從而對(duì)軟件缺陷進(jìn)行學(xué)習(xí)分類(lèi).并且,通過(guò)與LR、DBN、MLP 方法的實(shí)驗(yàn)比較,由AUC 和F1_measure 兩個(gè)指標(biāo)我們可以看出本文提出的模型在軟件缺陷預(yù)測(cè)性能上得到了一定的提高.然而,關(guān)于數(shù)據(jù)集分類(lèi)不均衡、模型優(yōu)化等問(wèn)題,本文的處理方法相對(duì)粗糙,這也是未來(lái)需要繼續(xù)研究的方向.

    猜你喜歡
    軟件缺陷源代碼度量
    有趣的度量
    人工智能下復(fù)雜軟件源代碼缺陷精準(zhǔn)校正
    模糊度量空間的強(qiáng)嵌入
    基于TXL的源代碼插樁技術(shù)研究
    基于源文件可疑度的靜態(tài)軟件缺陷檢測(cè)方法研究
    迷向表示分為6個(gè)不可約直和的旗流形上不變愛(ài)因斯坦度量
    基于NPE-SVM的軟件缺陷預(yù)測(cè)模型
    軟件源代碼非公知性司法鑒定方法探析
    開(kāi)源程序的軟件缺陷分布特征的量化分析研究
    揭秘龍湖產(chǎn)品“源代碼”
    搞女人的毛片| 亚洲七黄色美女视频| 一本久久中文字幕| 成人三级做爰电影| 韩国av一区二区三区四区| 国产一级毛片七仙女欲春2| 国产av一区二区精品久久| 俄罗斯特黄特色一大片| 欧美中文日本在线观看视频| 欧美性长视频在线观看| 婷婷精品国产亚洲av在线| 床上黄色一级片| 午夜免费激情av| 人妻久久中文字幕网| 国产精品亚洲美女久久久| 人人妻,人人澡人人爽秒播| 久久久水蜜桃国产精品网| 在线观看美女被高潮喷水网站 | 亚洲天堂国产精品一区在线| 一边摸一边做爽爽视频免费| 色综合亚洲欧美另类图片| 亚洲欧美一区二区三区黑人| 国产69精品久久久久777片 | 欧美+亚洲+日韩+国产| 国产精品一区二区三区四区久久| 亚洲精品一卡2卡三卡4卡5卡| 国产精品久久视频播放| 久久性视频一级片| 国产成人影院久久av| 麻豆国产av国片精品| a在线观看视频网站| 午夜福利视频1000在线观看| 欧美黑人巨大hd| 久久久久久久精品吃奶| 午夜成年电影在线免费观看| 小说图片视频综合网站| 两个人免费观看高清视频| 岛国在线免费视频观看| 少妇的丰满在线观看| 伦理电影免费视频| 亚洲第一欧美日韩一区二区三区| 亚洲欧美激情综合另类| 非洲黑人性xxxx精品又粗又长| 国产精品一区二区免费欧美| 国产欧美日韩一区二区精品| 丰满的人妻完整版| 18美女黄网站色大片免费观看| 中出人妻视频一区二区| 脱女人内裤的视频| 国内少妇人妻偷人精品xxx网站 | 精品免费久久久久久久清纯| 亚洲av电影不卡..在线观看| 久热爱精品视频在线9| 美女免费视频网站| 欧美在线一区亚洲| 人妻久久中文字幕网| 亚洲va日本ⅴa欧美va伊人久久| 色在线成人网| 国产高清有码在线观看视频 | 久久精品人妻少妇| 久久中文字幕一级| 女人被狂操c到高潮| 无限看片的www在线观看| 2021天堂中文幕一二区在线观| 91成年电影在线观看| 免费在线观看成人毛片| 天天一区二区日本电影三级| 久久中文看片网| 18禁裸乳无遮挡免费网站照片| 成人18禁在线播放| 在线观看www视频免费| 免费在线观看完整版高清| 母亲3免费完整高清在线观看| 熟女少妇亚洲综合色aaa.| 亚洲国产精品合色在线| 久久中文看片网| 亚洲欧美日韩高清专用| 淫妇啪啪啪对白视频| 熟女电影av网| a级毛片a级免费在线| 无人区码免费观看不卡| 99国产精品99久久久久| 97人妻精品一区二区三区麻豆| 国产一区二区三区在线臀色熟女| 99热这里只有精品一区 | 国产视频一区二区在线看| 午夜免费观看网址| 桃红色精品国产亚洲av| 成人18禁在线播放| 小说图片视频综合网站| 欧美一区二区国产精品久久精品 | 成人特级黄色片久久久久久久| 在线免费观看的www视频| 亚洲五月婷婷丁香| netflix在线观看网站| 国产av在哪里看| 最近视频中文字幕2019在线8| 97超级碰碰碰精品色视频在线观看| 国产伦在线观看视频一区| 欧美av亚洲av综合av国产av| 午夜福利在线观看吧| 级片在线观看| 亚洲全国av大片| or卡值多少钱| 午夜成年电影在线免费观看| 国产99白浆流出| 99在线人妻在线中文字幕| 操出白浆在线播放| 亚洲欧美日韩东京热| 亚洲片人在线观看| 18禁黄网站禁片午夜丰满| 看黄色毛片网站| 午夜福利18| 搡老妇女老女人老熟妇| 最新美女视频免费是黄的| 一区二区三区高清视频在线| 琪琪午夜伦伦电影理论片6080| 很黄的视频免费| 亚洲专区字幕在线| 亚洲成人国产一区在线观看| 制服诱惑二区| 国产亚洲精品一区二区www| 久久久国产欧美日韩av| 一边摸一边抽搐一进一小说| 久久 成人 亚洲| 亚洲美女黄片视频| 精品久久久久久久末码| 国产激情欧美一区二区| 国产野战对白在线观看| 在线观看午夜福利视频| 成人精品一区二区免费| 国内揄拍国产精品人妻在线| 亚洲五月婷婷丁香| 一本综合久久免费| 免费电影在线观看免费观看| 别揉我奶头~嗯~啊~动态视频| 中文字幕av在线有码专区| 2021天堂中文幕一二区在线观| 欧美zozozo另类| 丰满人妻熟妇乱又伦精品不卡| 日本黄色视频三级网站网址| 麻豆国产97在线/欧美 | 午夜影院日韩av| 母亲3免费完整高清在线观看| 亚洲av成人精品一区久久| 国产高清视频在线播放一区| 国产高清有码在线观看视频 | 一a级毛片在线观看| 俺也久久电影网| 亚洲 欧美一区二区三区| 男女午夜视频在线观看| www.www免费av| 天堂av国产一区二区熟女人妻 | 欧美日韩福利视频一区二区| 亚洲国产精品合色在线| 欧美日韩中文字幕国产精品一区二区三区| 欧美日韩亚洲国产一区二区在线观看| 亚洲 国产 在线| а√天堂www在线а√下载| 日韩欧美国产在线观看| 12—13女人毛片做爰片一| 在线永久观看黄色视频| 国产高清有码在线观看视频 | 老司机深夜福利视频在线观看| 999久久久精品免费观看国产| 一进一出好大好爽视频| 中亚洲国语对白在线视频| 国产激情久久老熟女| 又黄又粗又硬又大视频| 免费在线观看完整版高清| 非洲黑人性xxxx精品又粗又长| 欧美激情久久久久久爽电影| 久久久国产精品麻豆| 中出人妻视频一区二区| 亚洲专区中文字幕在线| 日日干狠狠操夜夜爽| 最新美女视频免费是黄的| 久久精品人妻少妇| 免费人成视频x8x8入口观看| netflix在线观看网站| 久久精品国产亚洲av香蕉五月| 制服诱惑二区| 精品福利观看| 亚洲av电影在线进入| 成人亚洲精品av一区二区| 亚洲精品在线美女| 国产高清有码在线观看视频 | av在线播放免费不卡| 真人一进一出gif抽搐免费| 久久久久免费精品人妻一区二区| 男女做爰动态图高潮gif福利片| 精品熟女少妇八av免费久了| av免费在线观看网站| 国产亚洲欧美在线一区二区| 高清在线国产一区| 日韩欧美精品v在线| 国产成人影院久久av| 黑人操中国人逼视频| 亚洲美女视频黄频| 国产成人欧美在线观看| 不卡一级毛片| 午夜福利在线观看吧| 精品高清国产在线一区| 久久中文看片网| 亚洲免费av在线视频| 婷婷精品国产亚洲av| 亚洲国产欧美人成| 亚洲天堂国产精品一区在线| 午夜影院日韩av| 男人的好看免费观看在线视频 | 18禁裸乳无遮挡免费网站照片| 99久久99久久久精品蜜桃| 男女做爰动态图高潮gif福利片| 国产麻豆成人av免费视频| 又黄又爽又免费观看的视频| 淫秽高清视频在线观看| 观看免费一级毛片| 男女下面进入的视频免费午夜| 久久香蕉激情| 女同久久另类99精品国产91| 亚洲七黄色美女视频| 99精品在免费线老司机午夜| 免费av毛片视频| x7x7x7水蜜桃| 亚洲国产高清在线一区二区三| 听说在线观看完整版免费高清| 91大片在线观看| 精品久久久久久,| 成人手机av| 欧美日韩国产亚洲二区| av有码第一页| √禁漫天堂资源中文www| 神马国产精品三级电影在线观看 | 色老头精品视频在线观看| 日韩成人在线观看一区二区三区| 国产成人精品久久二区二区91| 欧美国产日韩亚洲一区| 97碰自拍视频| 麻豆成人午夜福利视频| 精品少妇一区二区三区视频日本电影| 国产伦人伦偷精品视频| 波多野结衣巨乳人妻| 丰满的人妻完整版| 欧美日韩亚洲国产一区二区在线观看| 亚洲色图av天堂| 久久精品国产亚洲av香蕉五月| 亚洲黑人精品在线| svipshipincom国产片| 妹子高潮喷水视频| 日本精品一区二区三区蜜桃| 国产亚洲av嫩草精品影院| 国产伦在线观看视频一区| 国产高清视频在线观看网站| www.熟女人妻精品国产| 日韩成人在线观看一区二区三区| 国内精品久久久久久久电影| 午夜视频精品福利| 国产精品日韩av在线免费观看| 日本一区二区免费在线视频| av有码第一页| 不卡一级毛片| 精品久久久久久久久久免费视频| 国产97色在线日韩免费| 亚洲五月婷婷丁香| 欧美性猛交╳xxx乱大交人| 久久精品国产清高在天天线| videosex国产| 18美女黄网站色大片免费观看| 亚洲国产精品成人综合色| 欧美zozozo另类| 欧美性猛交╳xxx乱大交人| 久久精品国产亚洲av高清一级| 岛国在线免费视频观看| 在线观看午夜福利视频| 成人永久免费在线观看视频| 女生性感内裤真人,穿戴方法视频| 校园春色视频在线观看| 男人舔奶头视频| 又大又爽又粗| 老熟妇乱子伦视频在线观看| 51午夜福利影视在线观看| 免费在线观看日本一区| 久久精品国产清高在天天线| svipshipincom国产片| 午夜福利在线在线| 在线观看日韩欧美| 欧美三级亚洲精品| 麻豆av在线久日| 搡老熟女国产l中国老女人| 免费在线观看完整版高清| 欧美极品一区二区三区四区| 午夜影院日韩av| 欧美色视频一区免费| 国产精品一区二区精品视频观看| 国产高清有码在线观看视频 | a级毛片a级免费在线| 中文在线观看免费www的网站 | 日韩欧美国产在线观看| 国产又色又爽无遮挡免费看| 国产69精品久久久久777片 | 国产一区二区三区在线臀色熟女| 日日夜夜操网爽| 国产欧美日韩一区二区三| 成年女人毛片免费观看观看9| 国产爱豆传媒在线观看 | 伊人久久大香线蕉亚洲五| 亚洲精品久久国产高清桃花| 亚洲一区中文字幕在线| 午夜亚洲福利在线播放| 韩国av一区二区三区四区| www.999成人在线观看| 欧美中文综合在线视频| av国产免费在线观看| 国产精品美女特级片免费视频播放器 | 午夜福利成人在线免费观看| 亚洲国产精品999在线| 久99久视频精品免费| 精品国产超薄肉色丝袜足j| 亚洲五月天丁香| 老司机深夜福利视频在线观看| 国产三级黄色录像| 免费在线观看日本一区| 久久久水蜜桃国产精品网| 午夜久久久久精精品| www日本黄色视频网| 精品一区二区三区四区五区乱码| 日韩精品青青久久久久久| 禁无遮挡网站| 全区人妻精品视频| 俺也久久电影网| 白带黄色成豆腐渣| 欧美zozozo另类| 熟妇人妻久久中文字幕3abv| 亚洲九九香蕉| 欧美乱码精品一区二区三区| 久久久精品欧美日韩精品| 黄色毛片三级朝国网站| 99在线人妻在线中文字幕| 日本一本二区三区精品| 免费电影在线观看免费观看| 精品久久久久久久久久久久久| 亚洲国产看品久久| 精品午夜福利视频在线观看一区| 2021天堂中文幕一二区在线观| 日韩有码中文字幕| 亚洲精品在线美女| 青草久久国产| 久久久久久免费高清国产稀缺| 色精品久久人妻99蜜桃| 国产乱人伦免费视频| 99国产精品一区二区蜜桃av| 岛国在线观看网站| 欧美在线一区亚洲| 色老头精品视频在线观看| 欧美日韩亚洲综合一区二区三区_| 国产激情偷乱视频一区二区| 亚洲中文av在线| 两个人看的免费小视频| 亚洲,欧美精品.| 一本精品99久久精品77| 国产91精品成人一区二区三区| 欧美另类亚洲清纯唯美| 日韩精品免费视频一区二区三区| 色尼玛亚洲综合影院| 欧美在线黄色| 欧美日韩亚洲国产一区二区在线观看| 亚洲国产看品久久| 日本在线视频免费播放| 国产91精品成人一区二区三区| 高清在线国产一区| 国产欧美日韩一区二区三| 国产av一区在线观看免费| 久久精品aⅴ一区二区三区四区| 人妻久久中文字幕网| 国产真人三级小视频在线观看| 成人国语在线视频| 亚洲国产精品sss在线观看| xxxwww97欧美| 18禁黄网站禁片免费观看直播| 国产亚洲欧美98| 伊人久久大香线蕉亚洲五| 美女 人体艺术 gogo| 国内少妇人妻偷人精品xxx网站 | 亚洲中文日韩欧美视频| a级毛片a级免费在线| 国产亚洲精品综合一区在线观看 | 婷婷亚洲欧美| 母亲3免费完整高清在线观看| 午夜激情av网站| 69av精品久久久久久| 757午夜福利合集在线观看| а√天堂www在线а√下载| 特级一级黄色大片| av视频在线观看入口| 亚洲va日本ⅴa欧美va伊人久久| 国产亚洲精品久久久久5区| 中文资源天堂在线| 日本免费a在线| 特级一级黄色大片| 夜夜爽天天搞| 午夜两性在线视频| 国产真实乱freesex| 两个人的视频大全免费| x7x7x7水蜜桃| 日韩成人在线观看一区二区三区| 美女扒开内裤让男人捅视频| 免费av毛片视频| 制服人妻中文乱码| 波多野结衣高清作品| 夜夜躁狠狠躁天天躁| 九色成人免费人妻av| 日日摸夜夜添夜夜添小说| 亚洲中文av在线| 99久久99久久久精品蜜桃| 国产精品爽爽va在线观看网站| 日韩欧美在线乱码| av国产免费在线观看| 中文字幕精品亚洲无线码一区| www.自偷自拍.com| 国产亚洲欧美98| 一级a爱片免费观看的视频| 欧美一级毛片孕妇| 久久天堂一区二区三区四区| 精品一区二区三区av网在线观看| 国产黄a三级三级三级人| 伦理电影免费视频| www.999成人在线观看| 国产1区2区3区精品| videosex国产| 欧美性长视频在线观看| 亚洲精华国产精华精| 午夜两性在线视频| 久久久国产成人免费| 国产三级中文精品| 欧美丝袜亚洲另类 | 精品久久久久久久毛片微露脸| 国产午夜精品论理片| 亚洲精品中文字幕一二三四区| 婷婷亚洲欧美| 亚洲成av人片免费观看| 99国产极品粉嫩在线观看| 欧美黄色淫秽网站| 亚洲精品久久成人aⅴ小说| 又粗又爽又猛毛片免费看| 亚洲人成电影免费在线| 亚洲精品一区av在线观看| 狂野欧美激情性xxxx| 国产主播在线观看一区二区| 久久热在线av| 色综合站精品国产| 在线十欧美十亚洲十日本专区| 欧美黑人巨大hd| 午夜两性在线视频| 午夜激情福利司机影院| 97人妻精品一区二区三区麻豆| 国产精品久久电影中文字幕| 波多野结衣高清作品| 在线国产一区二区在线| 人成视频在线观看免费观看| 国产一级毛片七仙女欲春2| 一级作爱视频免费观看| 亚洲国产精品sss在线观看| 国产精品永久免费网站| 天堂动漫精品| 亚洲一区二区三区不卡视频| 久久亚洲真实| 我的老师免费观看完整版| 精品一区二区三区四区五区乱码| avwww免费| 欧美久久黑人一区二区| 九九热线精品视视频播放| 两性午夜刺激爽爽歪歪视频在线观看 | 丁香六月欧美| 两个人视频免费观看高清| 一边摸一边做爽爽视频免费| 久99久视频精品免费| 天天躁狠狠躁夜夜躁狠狠躁| 黄色丝袜av网址大全| 哪里可以看免费的av片| 国产伦一二天堂av在线观看| 成人午夜高清在线视频| 日本黄色视频三级网站网址| 美女 人体艺术 gogo| 色噜噜av男人的天堂激情| 国产成人av激情在线播放| 亚洲无线在线观看| 久久久久国产精品人妻aⅴ院| 国产精华一区二区三区| 2021天堂中文幕一二区在线观| svipshipincom国产片| 久久久水蜜桃国产精品网| 国产成+人综合+亚洲专区| 亚洲国产欧美一区二区综合| 老司机靠b影院| 精品一区二区三区四区五区乱码| 久久精品aⅴ一区二区三区四区| 免费观看精品视频网站| 久久人妻福利社区极品人妻图片| 小说图片视频综合网站| 女警被强在线播放| 亚洲国产看品久久| 欧美最黄视频在线播放免费| 精品免费久久久久久久清纯| 欧美日韩黄片免| 欧美丝袜亚洲另类 | 桃红色精品国产亚洲av| 日本五十路高清| 日本在线视频免费播放| videosex国产| 亚洲精品一卡2卡三卡4卡5卡| 在线观看免费午夜福利视频| 国产又色又爽无遮挡免费看| 窝窝影院91人妻| 岛国在线免费视频观看| 99久久久亚洲精品蜜臀av| 首页视频小说图片口味搜索| 国产私拍福利视频在线观看| 久久久久久久久中文| 国产成人精品久久二区二区91| 精品国产亚洲在线| 欧美中文日本在线观看视频| 久久中文看片网| 久久久久免费精品人妻一区二区| 1024视频免费在线观看| 国产精品影院久久| 中文字幕最新亚洲高清| 极品教师在线免费播放| 久久香蕉精品热| 精品无人区乱码1区二区| 久久这里只有精品中国| 看黄色毛片网站| 啪啪无遮挡十八禁网站| 国内少妇人妻偷人精品xxx网站 | 三级男女做爰猛烈吃奶摸视频| av福利片在线| 国产不卡一卡二| 日日夜夜操网爽| 亚洲国产精品成人综合色| 午夜福利高清视频| 一卡2卡三卡四卡精品乱码亚洲| 亚洲熟妇中文字幕五十中出| 久久久久国产精品人妻aⅴ院| 亚洲一卡2卡3卡4卡5卡精品中文| 巨乳人妻的诱惑在线观看| 看免费av毛片| 99久久无色码亚洲精品果冻| 久久精品人妻少妇| 法律面前人人平等表现在哪些方面| 变态另类丝袜制服| 久久久久国产精品人妻aⅴ院| 国产真实乱freesex| avwww免费| 中文字幕高清在线视频| 色精品久久人妻99蜜桃| 人人妻人人澡欧美一区二区| 最近最新中文字幕大全电影3| 最近视频中文字幕2019在线8| 亚洲专区国产一区二区| 99热6这里只有精品| 久久99热这里只有精品18| 久久久久久久久中文| www.www免费av| 亚洲自拍偷在线| 高潮久久久久久久久久久不卡| 国产成人精品久久二区二区91| 亚洲专区中文字幕在线| 欧美国产日韩亚洲一区| a级毛片a级免费在线| 熟女电影av网| 欧美丝袜亚洲另类 | 日本一区二区免费在线视频| 久久99热这里只有精品18| 在线观看舔阴道视频| 高清毛片免费观看视频网站| 成人三级黄色视频| 国产探花在线观看一区二区| 日本 欧美在线| 99国产极品粉嫩在线观看| 国产精品一区二区免费欧美| 亚洲一码二码三码区别大吗| 国产三级中文精品| 国产又黄又爽又无遮挡在线| 精品国产乱码久久久久久男人| 亚洲中文字幕一区二区三区有码在线看 | 制服人妻中文乱码| 51午夜福利影视在线观看| 18禁观看日本| 在线播放国产精品三级| 成在线人永久免费视频| 身体一侧抽搐| 国产成人啪精品午夜网站| 淫秽高清视频在线观看| 动漫黄色视频在线观看| 亚洲精品国产一区二区精华液| 精品久久久久久久毛片微露脸| 精品国产亚洲在线| 亚洲精品国产一区二区精华液| 中文字幕熟女人妻在线| 亚洲成人免费电影在线观看| 久久草成人影院| videosex国产| 动漫黄色视频在线观看| 国产精品久久电影中文字幕| 极品教师在线免费播放| 免费在线观看影片大全网站| 国产成人啪精品午夜网站| 亚洲九九香蕉| 老熟妇仑乱视频hdxx| 正在播放国产对白刺激| 18禁美女被吸乳视频| 午夜视频精品福利| 午夜久久久久精精品| av视频在线观看入口| av天堂在线播放| 脱女人内裤的视频|