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

    基于變異和約束求解的程序缺陷自動修復(fù)方法

    2024-01-22 07:18:56蘭,洪玫,伍
    計算機工程與設(shè)計 2024年1期
    關(guān)鍵詞:測試用例補丁表達式

    董 蘭,洪 玫,伍 佳

    (四川大學(xué) 計算機學(xué)院(軟件學(xué)院),四川 成都 610065)

    0 引 言

    目前軟件缺陷自動修復(fù)技術(shù)[1]主要有基于啟發(fā)式搜索、語義約束、人工修復(fù)模板、統(tǒng)計分析等方法,其中大部分方法都通用的,缺陷修復(fù)的召回率和準(zhǔn)確率不高[2]。對于基于人工修復(fù)模板的方法具有針對性,只能針對常見、特征明確的缺陷類型。而基于測試的缺陷修復(fù)方法則依賴于通過的測試數(shù)據(jù),而在Defects4 J庫中有95%以上的程序缺陷在被修復(fù)之前沒有相應(yīng)的未通過測試,而測試覆蓋率與補丁質(zhì)量成正相關(guān),挖掘到的程序規(guī)約信息有限,約束求解效果不好[2]。

    本文針對Java程序中出現(xiàn)頻率較高的條件語句的相關(guān)缺陷修復(fù)問題,將啟發(fā)式搜索方法與語義約束求解方法相結(jié)合,提出一個更高效的解決方案。針對條件語句缺失錯誤,基于約束求解,通過收集程序語義信息,采用基于組件的程序合成技術(shù),生成候選條件表達式。同時,針對條件語句邏輯表達式錯誤,首先采用變異技術(shù),生成候選補??;其次,對于條件語句邏輯表達式錯誤中不能利用變異技術(shù)修復(fù)的缺陷,再使用約束求解方法生成補丁。最后驗證補丁的有效性。該方案解決了Java程序自動修復(fù)中的重要問題,并在修復(fù)效率上有所提高,值得借鑒和參考。

    1 相關(guān)工作

    在自動軟件缺陷修復(fù)技術(shù)中,常用的修復(fù)方法是基于啟發(fā)式搜索的技術(shù),該方法通過改變原始缺陷程序生成新程序作為候選補丁。代表性研究有GenProg、RSRepair、Kail等方法。GenProg[3]采用抽象語法樹、遺傳算法,運用交叉、變異算子等生成程序候選補丁。RSRepair[4]選擇隨機搜索來指導(dǎo)生成-驗證過程,而Kail[5]是一種試圖通過刪除潛在的不必要但有害的功能來修復(fù)程序的技術(shù)。

    基于語義約束的缺陷修復(fù)方法,其綜合應(yīng)用缺陷定位、天使調(diào)試、約束求解、程序合成等多種技術(shù)[6]來修復(fù)補丁,代表性研究有SemFix、Angelix和Nopol等方法。SemFix[7-9]綜合使用天使調(diào)試和基于組件的程序合成算法,約束求解器求解獲得程序補丁。Angelix[10]旨在保持可伸縮性的同時綜合多行修復(fù)。而Nopol[11,12]合成了在條件或循環(huán)語句中發(fā)生的一條更改條件組成的修復(fù),利用天使修復(fù)定位獲得天使值,通過合成條件表達式修復(fù)缺陷。

    針對Java程序缺陷的修復(fù)方法,除了Nopol方法之外,還有針對修復(fù)Java語言的內(nèi)存溢出、資源泄露、空指針引用、內(nèi)存溢出等缺陷的FootPatch方法[13],以及高精度的條件語句綜合技ACS[14],針對空指針、數(shù)據(jù)越界以及類型強轉(zhuǎn)缺陷的Genesis自動修復(fù)技術(shù)[15]。

    由于單一的自動缺陷修復(fù)方法不能保證任何類型的缺陷都可以成功修復(fù)[16],因此,針對特定缺陷類型,考慮綜合的自動化修復(fù)方法就有一定的研究價值。本文針對Java程序中條件語句邏輯錯誤和條件語句缺失錯誤兩類缺陷,借鑒啟發(fā)式搜索中的變異方法和語義驅(qū)動的約束求解、組件合成等方法,并對這些方法進行綜合運用,以提高缺陷修復(fù)率和補丁精度。

    2 問題描述和基本思路

    研究者通過挖掘和分析7個大型開源Java項目的歷史缺陷修復(fù)記錄,總結(jié)了9大類、27個缺陷修復(fù)模式。其中,最常見的是IF條件相關(guān)(IF),占19.7%~33.9%[17]。而IF-CC和 IF-APC所對應(yīng)的條件語句錯誤和條件語句缺失兩類缺陷在實際缺陷中占據(jù)較大比例,見表1。

    表1 Java程序中的缺陷修復(fù)模式

    因此針對Java程序中的條件語句邏輯錯誤和條件語句缺失錯誤的常見缺陷,探索缺陷自動修復(fù)方法。條件語句邏輯表達式錯誤是指條件表達式存在邏輯錯誤,導(dǎo)致程序無法執(zhí)行到期望的分支;條件語句缺失錯誤是指在執(zhí)行某些操作之前,缺少前置條件的檢查,比如檢測空指針。

    針對上述兩類條件語句相關(guān)的缺陷,本文采用收集測試信息(G1),使用本文提出的方法生成滿足的候選補丁(G2),最后通過測試套件驗證候選補丁(G3)這3個階段過程,實現(xiàn)缺陷的自動修復(fù)。首先通過執(zhí)行相關(guān)的測試用例,收集程序執(zhí)行時待修復(fù)程序位置處可訪問的數(shù)據(jù)變量和對應(yīng)的值,形成待求解的修復(fù)方程式;其次,確定可修復(fù)程序位置的語句類型以采用不同的補丁生成方案進行缺陷修復(fù)。如果待修復(fù)位置是條件語句表達式缺陷,先采用變異技術(shù)產(chǎn)生候選補丁,如果沒有相符合的補丁,再使用基于約束求解方法,合成條件表達式;如果是條件語句缺失缺陷,直接應(yīng)用基于約束求解方法生成表達式,并將生成的表達式作為前置條件添加在源程序中。最后,運行測試用例,再次進行補丁驗證。整體方案流程如圖1所示。

    圖1 方案流程

    3 基于測試數(shù)據(jù)形成缺陷修復(fù)方程式

    根據(jù)測試用例的執(zhí)行,收集與待修復(fù)缺陷相關(guān)的測試用例執(zhí)行過程中的上下文信息。

    3.1 條件表達式實際輸入數(shù)據(jù)收集

    在程序執(zhí)行過程中,收集執(zhí)行到待修復(fù)條件語句exp-patch之前所有可訪問的變量以及變量值,包括基本類型數(shù)據(jù)和面對對象程序的特定數(shù)據(jù),主要包括局部變量、成員變量、方法參數(shù)以及它們對應(yīng)的值。將收集到的數(shù)據(jù)稱為輸入數(shù)據(jù),用Il,m,n,其中,l表示待修復(fù)條件表達式exp-patch所在位置,n和m分別表示第n個測試用例的第m次執(zhí)行。除此之外,還增加3個基準(zhǔn)常數(shù){-1,0,1}來豐富Il,m,n, 其它的數(shù)據(jù)都可以基于這3個基準(zhǔn)常數(shù)構(gòu)建。假設(shè)l位置在可修復(fù)的程序位置范圍內(nèi)有a個基本變量和一組對象集合O(共O個對象),則Il,m,n包含的數(shù)據(jù)如下:

    a個基本變量以及變量對應(yīng)的變量值。如:a→10;

    w個boolean值,分別表示O個對象是否為空。如:obj1=null→false;

    object中對象各自對應(yīng)類的狀態(tài)查詢方法及其輸出,如obj2.size()→5;

    常數(shù),如0,1,-1。

    3.2 條件表達式期望輸出結(jié)果收集

    當(dāng)執(zhí)行完待修復(fù)的條件表達式exp-patch時,能使所有測試用例能執(zhí)行通過的值稱為條件表達式的期望輸出。取值范圍為{true,false},用Ol,m,n來表示期望輸出。如果l位置為條件語句,對于測試用例執(zhí)行是失敗的,天使值即為exp-patch期望輸出,天使值(angelicValue)指可以讓失敗的測試用例執(zhí)行成功的值,取值范圍為{true,false};如果是成功的測試用例,條件表達式exp-patch的實際輸出即為期望輸出。如果l位置為非條件語句,針對失敗的測試用例,Ol,m,n其對應(yīng)值均為false,對于成功的測試用例,Ol,m,n均為true。

    3.3 缺陷修復(fù)方程式形成

    根據(jù)上述實際輸入的數(shù)據(jù)Il,m,n和期望的輸出結(jié)果Ol,m,n, 可以形成式(1)的待求解的修復(fù)方程式F,定義為

    (1)

    所有的 都包含了表達式exp-patch應(yīng)該滿足的程序語義約束,可以使用約束求解器對該約束進行求解,合成候選補丁。

    4 基于變異分析技術(shù)的程序候選補丁生成

    變異分析一般用于檢測測試套件對程序缺陷的發(fā)現(xiàn)能力[18],其思路主要是對原程序P中引入小的代碼修改,形成缺陷的變體P′, 然后運行測試套件TS,觀察測試套件在原程序P和程序變體P′中的執(zhí)行情況,查看測試套件是否能夠檢測到引入的缺陷。其中,引起代碼修改的操作被定義為變異算子。

    基于文獻的研究[19],對于條件語句缺陷自動修復(fù),將變異技術(shù)應(yīng)用其中。如果待修復(fù)的表達式exp-patch為if條件語句時,使用預(yù)先設(shè)計的變異算子,在該條件表達式中植入小的代碼變更,產(chǎn)生所有可能的一階程序變體P′bug, 作為候選補丁。本文依據(jù)修復(fù)錯誤的條件三要素:條件子句、變量和操作符,設(shè)計了如下變異算子。

    變異算子1:否定條件表達式,如if(a>0‖b<0) 變異成if(!a>0‖b<0);

    變異算子2:替換同類運算符,包括運算符、關(guān)系運算符和邏輯運算符,如if(a>0‖b<0) 變異成if(a>0‖b>0);

    變異算子3:移除條件表達式中的一個條件子句,如if(a<0‖b<0) 變異成if(a<0);

    在應(yīng)用變異算子3時,還可以考慮失敗的測試用例所對應(yīng)的天使值,如果所有失敗測試用例的天使值都為true,則表示失敗測試用例執(zhí)行完條件表達式的輸出應(yīng)該由false轉(zhuǎn)變?yōu)閠rue;如果都為false,則表示失敗測試用例執(zhí)行完條件表達式的輸出應(yīng)該由true轉(zhuǎn)變?yōu)閒alse。通過移除一個條件子句來收縮、擴張條件表達式的判定范圍,具體的移除方式為:收縮判定范圍:if(clause‖clause1)>=if(clause)。 擴張判定范圍:if(clause&&clause1)>=if(clause)。

    本文只使用Pbug的一階變體作為候選補丁,比如,對條件表達式if(x>0‖y<0) 進行變異,所有可能的候選補丁見表2。

    表2 基于變異算子生成補丁

    由于利用變異技術(shù)產(chǎn)生條件表達式的候選補丁時,可能會生成大量無效的程序變體。為了避免這種情況,此時,3.3節(jié)得到的修復(fù)方程式可用于初步篩選變異生成的程序變體,使?jié)M足程序語義約束的變體作為候選補丁,以減少待驗證補丁的數(shù)量。

    5 基于約束求解的程序補丁合成方法

    對于上述候選補丁不能修復(fù)缺陷的情況,作為補充本文還提供一種語義驅(qū)動的補丁生成方法。利用自動化程序合成技術(shù),將補丁生成問題轉(zhuǎn)化為約束求解的問題,將求得解轉(zhuǎn)化為程序補丁。通過運行測試用例,獲取一系列的<輸入,期望輸出>對,作為I/O的Oracle;定義一組用于合成程序的基礎(chǔ)組件,如操作符、常數(shù)值、函數(shù)方法等;合成過程以一系列<輸入,期望輸出>對和基礎(chǔ)組件作為輸入,輸出一段滿足所有<輸入,期望輸出>對的程序[9]。

    假設(shè)待修復(fù)的條件表達式exp-patch的實際輸入數(shù)據(jù)包含兩個變量x和y以及常數(shù)0,獲取的I/OOracle為 <{x=1,y=2,0},true>、 <{x=2,y=1,0},false>, 可用基礎(chǔ)組件C={+、-、>、<}。 一種有效的合成過程如圖2所示,用矩形表示組件,并用位置號標(biāo)識(標(biāo)簽“l(fā)oc”),邊表示如何將在給定位置生成的值用作在另一位置的輸入(與每個位置關(guān)聯(lián)的標(biāo)簽“input”),式(1)生成約束表達式之后,SMT求解器為與每個位置關(guān)聯(lián)的變量輸入找到適當(dāng)?shù)闹怠?/p>

    圖2 基于約束求解的程序補丁合成示例

    假設(shè)合成條件表達式exp-patch使用一組基礎(chǔ)組件 {f1,f2,…,fn},fi表示第i個組件,Ii表示組件的輸入,ri表示組件的輸出。所有組件的輸入集合和輸出集合分別為下述I和R

    待求解條件表達式的一組實際輸入為I0(即Il,m,n), 對應(yīng)期望輸出為r(即Ol,m,n), 所有的輸入輸出集合為

    IO={I∪R∪I0{r}}

    定義位置變量

    LOC={locx|x∈IO}

    locx表示IO中的每個元素x的索引位置;取值變量

    V={vx|x∈IO}

    vx表示IO中的每個元素x的取值。對于每個測試用例的每次執(zhí)行,位置變量代表了補丁的組成結(jié)構(gòu),應(yīng)該保持一致。取值變量則被SMT求解器使用,用于保證合成的程序符合I/Ooracle。

    LOC應(yīng)該保證語法約束和語義約束[7]。語法約束規(guī)定了在程序語法結(jié)構(gòu)上待求解的條件表達式exp-patch應(yīng)該滿足的要求,其定義如式(2)所示

    (2)

    式中:φfixed該約束表示對于待求解條件表達式的實際輸入I0中的第i個元素,其位置變量loc的值為i; 對于待求解條件表達式的期望輸出r中的元素,其位置變量loc的值M。φoutput(R)該約束限制一個基礎(chǔ)組件fi所定義的中間變量r;其位置變量loc,應(yīng)該在 |I0|+1 到M之間。φinput(I) 表示不同的基礎(chǔ)組件能夠處理不同類型的數(shù)據(jù),該約束對每個基礎(chǔ)組件所使用的數(shù)據(jù)x的數(shù)據(jù)類型進行限制。定義type(x) 方法可以返回與x具有相同數(shù)據(jù)類型的數(shù)據(jù),基礎(chǔ)組件的輸入數(shù)據(jù)x只能取自于這些數(shù)據(jù),即LOCx=LOCy。φcons(LOC,R) 該約束表示每個基礎(chǔ)組件所定義的變量都應(yīng)該有不同的位置變量,以便在其中使用該變量時,可以索引到。φacyc(LOC,I,R) 該約束則限制了在同一個位置的元素應(yīng)該具有相同的數(shù)據(jù)值。

    除了語法約束之外,LOC還應(yīng)滿足一定的語義約束。其定義如式(3)所示

    (3)

    式中:φlib(I,R) 該約束表示任意一個基礎(chǔ)組件的輸入vIi經(jīng)過基礎(chǔ)組件所定義的計算fi后,輸出值為vri,φconn(LOC,I0,r,I,R) 該約束限制了在同一個位置的元素應(yīng)該具有相同的數(shù)據(jù)值。

    結(jié)合語法約束和語義約束,對于I/Ooracle中所有的<輸入,期望輸出>對,LOC需要滿足的完整約束如式(4)所示

    (4)

    利用SMT求解器對約束θ求解,若LOC為該約束的解,則根據(jù)LOC和定義的基本組件,可以構(gòu)造出滿足程序約束的條件表達式exp-patch。

    如果可修復(fù)程序位置為if條件語句,則直接使用表達式exp-patch對原始表達式進行替換,形成候選的程序補?。蝗绻麨榉莍f條件語句,則將表達式exp-patch作為前置條件添加,形成候選補丁。

    6 實驗驗證

    實驗基于上述問題設(shè)計實現(xiàn)了一個條件語句缺陷自動修復(fù)工具原型MSFix,進行方案的可行性和有效性驗證。

    實驗對象選擇Defects4 J[20]數(shù)據(jù)集中的14個Java項目的62個條件語句缺陷,其中條件語句錯誤缺陷41個,條件語句缺失缺陷21個,見表3。

    表3 實驗對象信息

    實驗采用召回率和準(zhǔn)確率來評價缺陷修復(fù)效果。在修復(fù)一個缺陷的過程中,如果能夠找到一個有效補丁能通過所有的測試,則認為該缺陷被成功修復(fù),召回率計算方式如式(5)所示

    (5)

    在修復(fù)缺陷的過程中,如果一個有效補丁正確修復(fù)了缺陷,則認為該補丁是正確的補丁,補丁準(zhǔn)確率計算方式如式(6)所示

    (6)

    6.1 可行性實驗——Java程序中條件語句缺陷的修復(fù)

    通過運行MSFix,對上述的缺陷進行修復(fù),返回MSFix的修復(fù)結(jié)果。如果缺陷修復(fù)成功,將MSFix修復(fù)的補丁與Defects4 J提供的補丁進行比較,驗證補丁的有效性。由表4的實驗結(jié)果可知,在上面提供的項目中69個條件語句缺陷來說,MSFix能夠修復(fù)39個缺陷,并且整體的召回率為62.90%。

    表4 MSFix的整體實驗結(jié)果

    在62個條件語句缺陷中,也有23個缺陷沒有修復(fù)成功。分析其修復(fù)失敗的原因主要是:

    (1)由于本文方案輸入的可疑語句是通過可疑分數(shù)進行定位的,可疑語句定位時會計算可疑分數(shù)閾值,并舍棄可疑分數(shù)低于閾值的程序方法,只對剩余方法中的程序語句進行分析。由于部分缺陷(如 Math-26)的測試用例不夠充足,缺少失敗測試用例對錯誤語句的覆蓋,導(dǎo)致錯誤語句所在的程序方法的可疑分數(shù)較低。在進行可疑語句定位時,含有錯誤語句的程序方法被舍棄,最終可疑語句列表中沒有真正錯誤的語句。

    (2)由于本文方案輸入的可疑語句是通過缺陷定位得到的。在定位可修復(fù)程序位置過程中,期望每個失敗的測試用例都存在一個使其能夠執(zhí)行通過的天使值。由于部分缺陷(如Lang-16)的一個失敗測試用例中存在多個assert斷言,這些assert斷言覆蓋了if結(jié)構(gòu)的then分支和else分支。在使用true/false替換if條件表達式后,重新運行這個失敗的測試用例,沒有辦法同時滿足多個assert斷言。因此,無法找到這個失敗測試用例的天使值,導(dǎo)致可修復(fù)程序位置定位失敗。通過以上分析可知,測試用例的質(zhì)量不高是導(dǎo)致缺陷修復(fù)失敗的重要原因。針對情況(1),可以通過額外增加失敗的測試用例來提高錯誤語句的覆蓋率,使其能夠出現(xiàn)在可疑語句列表中,或者排名更靠前。針對情況(2),可以通過拆分失敗的測試用例,使每個測試用例中只有一個assert斷言,在可修復(fù)程序位置定位中,更可能找到使失敗測試用例都通過天使值。

    6.2 有效性實驗——缺陷修復(fù)效果與其它方法的對比

    目前針對修復(fù)Java程序缺陷的方案中,Nopol[11,12]、jGenProg[3]和jKali[5]這3種工具比較有代表性,在比較多的相關(guān)研究中引用。因此,在方案有效性實驗中,選擇這3種工具作為比較對象。對上述選擇的62個條件語句缺陷,分別應(yīng)用上述的3個工具和MSFix進行自動修復(fù),記錄并分析每個工具的修復(fù)效果,計算每個工具的缺陷召回率和準(zhǔn)確率,并進行分析。表5展示了4種方法的整體修復(fù)結(jié)果。可以看出MSFix和上面3種修復(fù)工具相比,其修復(fù)的正確補丁數(shù)量是最多的,一共修復(fù)了21個,而其它3個工具卻修復(fù)沒有超過有效補丁數(shù)量的一半。并且MSFix的召回率和準(zhǔn)確率都分別達到了62.90%和53.85%。其它3種工具的召回率和準(zhǔn)確率都比較偏低。

    表5 4種工具對比的整體實驗結(jié)果

    使用Venn圖來展示這4個工具所修復(fù)缺陷之間的交叉重疊情況。由表5和圖3可知,jGenProg和jKal的召回率相對較低,并且被jGenProg和jKal這兩個工具修復(fù)的缺陷都能夠被Nopel和MSFix修復(fù)。MSFix和與Nopel相比,MSFix能夠修復(fù)17個Nopel無法修復(fù)的缺陷,召回率提高了22.58%。

    圖3 4個工具修復(fù)缺陷韋恩

    由于jGenProg和jKali在基于各自定義的操作修改缺陷程序形成候選補丁時,對所有類型的缺陷都執(zhí)行相同的修復(fù)操作。雖然能夠修復(fù)條件語句缺陷,但相比于MSFix和Nopol,jGenProg和jKali,缺少更有針對性的分析。因此,在修復(fù)條件語句缺陷時,jGenProg和jKali生成的有效補丁相對較少,缺陷修復(fù)較低。另外,Nopol在生成候選補丁時,只使用了基于約束求解的補丁生成方法。本文方案則在此基礎(chǔ)之上,增加、并且優(yōu)先使用變異技術(shù)生成程序補丁,綜合使用兩種補丁生成方法,使得對條件語句缺陷具有更高的修復(fù)率。

    在補丁準(zhǔn)確率方面,4個工具都基于測試套件進行修復(fù),但本文方法在生成程序補丁時,優(yōu)先考慮使用變異技術(shù)對原始表達式進行變異,基于真實的缺陷修復(fù)記錄,為條件語句定義合適的變異算子,該方法更可能產(chǎn)生符合開發(fā)人員預(yù)期的程序補丁。因此,MSFix能夠優(yōu)先輸出正確的程序補丁,補丁準(zhǔn)確率相對其它3種方法都有所提高。

    7 結(jié)束語

    缺陷自動修復(fù)方法是幫助開發(fā)人員減少調(diào)試成本的有效技術(shù),為了修復(fù)Java程序中常見的條件語句缺失缺陷和條件語句邏輯錯誤缺陷,本文提出了基于變異分析和約束求解的程序補丁合成技術(shù),實驗結(jié)果表明本文方案能夠修復(fù)真實的條件語句缺陷,并且相比于現(xiàn)有修復(fù)方法,本文方案具有更好的修復(fù)效果。在相當(dāng)程度上解決了Java程序中條件語句缺陷的自動修復(fù)問題。但本文的研究基于Java程序,對其它語言的適應(yīng)性還有待進一步的實驗驗證。在變異分析中,只采取了3種變異算子,在未來工作中,可以考慮增加更多的變異算子,以提高缺陷修復(fù)的能力;此外實驗結(jié)果表明本方法修復(fù)的補丁和現(xiàn)有的工具相比,修復(fù)的補丁既有重疊的又有獨有的,為了提高缺陷自動修復(fù)的可靠性和完備性,在未來工作中,可以考慮綜合使用補丁修復(fù)的工具,對本文方法做出進一步的改進,以提高補丁修復(fù)率。

    猜你喜歡
    測試用例補丁表達式
    基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
    一個混合核Hilbert型積分不等式及其算子范數(shù)表達式
    表達式轉(zhuǎn)換及求值探析
    淺析C語言運算符及表達式的教學(xué)誤區(qū)
    健胃補丁
    學(xué)與玩(2018年5期)2019-01-21 02:13:06
    繡朵花兒當(dāng)補丁
    文苑(2018年18期)2018-11-08 11:12:30
    基于混合遺傳算法的回歸測試用例集最小化研究
    補丁奶奶
    幼兒畫刊(2018年7期)2018-07-24 08:25:56
    基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
    大病醫(yī)保期待政策“補丁”
    一区福利在线观看| 亚洲自偷自拍图片 自拍| 国产精品免费大片| 精品久久久久久电影网| 婷婷色综合大香蕉| 91国产中文字幕| 亚洲国产欧美一区二区综合| 在线天堂中文资源库| 宅男免费午夜| 久久精品国产亚洲av涩爱| 国产高清不卡午夜福利| 视频在线观看一区二区三区| 最黄视频免费看| 久久精品久久久久久噜噜老黄| 美女主播在线视频| 国产精品人妻久久久影院| 免费av中文字幕在线| 黄片播放在线免费| 最近手机中文字幕大全| 多毛熟女@视频| 国产成人啪精品午夜网站| 国产精品亚洲av一区麻豆| 国产97色在线日韩免费| 欧美黄色淫秽网站| 首页视频小说图片口味搜索 | 男女边吃奶边做爰视频| 国产99久久九九免费精品| 99九九在线精品视频| 欧美人与性动交α欧美软件| 黑人欧美特级aaaaaa片| 国产高清videossex| 在线观看免费午夜福利视频| 亚洲美女黄色视频免费看| 久久99一区二区三区| 中文字幕人妻丝袜制服| 男女之事视频高清在线观看 | 免费在线观看黄色视频的| 香蕉国产在线看| 91国产中文字幕| 国产精品久久久久久人妻精品电影 | 免费看不卡的av| 亚洲第一av免费看| 国产xxxxx性猛交| 亚洲国产欧美日韩在线播放| 99国产精品一区二区三区| 水蜜桃什么品种好| 亚洲中文字幕日韩| 亚洲精品成人av观看孕妇| 久久久久国产精品人妻一区二区| 水蜜桃什么品种好| 亚洲欧美精品综合一区二区三区| 国产精品熟女久久久久浪| 一级毛片我不卡| 无限看片的www在线观看| 一级毛片我不卡| 高清欧美精品videossex| 精品国产国语对白av| 热re99久久国产66热| 国产1区2区3区精品| 色综合欧美亚洲国产小说| 久久精品久久久久久噜噜老黄| 国产精品一区二区在线观看99| 另类亚洲欧美激情| 日韩电影二区| 日韩精品免费视频一区二区三区| 国产主播在线观看一区二区 | 国产极品粉嫩免费观看在线| 日本午夜av视频| 婷婷色综合大香蕉| 少妇人妻 视频| 亚洲av成人精品一二三区| 亚洲av成人精品一二三区| 最黄视频免费看| 操出白浆在线播放| 亚洲精品乱久久久久久| 国产成人91sexporn| 精品国产一区二区久久| 麻豆av在线久日| 亚洲人成电影观看| 后天国语完整版免费观看| 女警被强在线播放| 99热国产这里只有精品6| 欧美人与性动交α欧美精品济南到| 男人操女人黄网站| 欧美日韩视频精品一区| 国产精品偷伦视频观看了| 亚洲美女黄色视频免费看| 久久久精品国产亚洲av高清涩受| 国产精品秋霞免费鲁丝片| 天天操日日干夜夜撸| 久久99一区二区三区| 精品免费久久久久久久清纯 | 成人免费观看视频高清| 成人亚洲精品一区在线观看| 精品国产乱码久久久久久男人| 久久99一区二区三区| 婷婷色麻豆天堂久久| 亚洲五月婷婷丁香| 久久精品久久久久久噜噜老黄| 亚洲一卡2卡3卡4卡5卡精品中文| 在线观看免费午夜福利视频| 菩萨蛮人人尽说江南好唐韦庄| 亚洲av国产av综合av卡| 日本黄色日本黄色录像| 国产一区二区三区综合在线观看| 午夜福利一区二区在线看| 亚洲成人国产一区在线观看 | 男女边吃奶边做爰视频| 亚洲av电影在线观看一区二区三区| av国产精品久久久久影院| 99久久综合免费| 久久精品亚洲熟妇少妇任你| 国产精品一区二区精品视频观看| 亚洲精品第二区| 每晚都被弄得嗷嗷叫到高潮| av在线app专区| 亚洲专区中文字幕在线| 国产无遮挡羞羞视频在线观看| 久久精品久久久久久久性| 国产精品免费视频内射| 久久久久久久久免费视频了| 操出白浆在线播放| 69精品国产乱码久久久| 少妇人妻 视频| 又粗又硬又长又爽又黄的视频| 久久国产精品人妻蜜桃| 亚洲 欧美一区二区三区| 天天躁日日躁夜夜躁夜夜| 97精品久久久久久久久久精品| 免费在线观看影片大全网站 | 中文字幕人妻丝袜一区二区| av有码第一页| 欧美激情高清一区二区三区| 亚洲国产精品一区二区三区在线| 一级片免费观看大全| 国产精品 国内视频| 十八禁人妻一区二区| 18禁黄网站禁片午夜丰满| 亚洲国产精品一区三区| 脱女人内裤的视频| 大片免费播放器 马上看| www日本在线高清视频| 免费看av在线观看网站| 自线自在国产av| 日韩精品免费视频一区二区三区| 亚洲成av片中文字幕在线观看| 老司机影院毛片| a级毛片在线看网站| 中文欧美无线码| 色婷婷av一区二区三区视频| 国产精品 欧美亚洲| 欧美日韩视频高清一区二区三区二| 男男h啪啪无遮挡| a 毛片基地| 成年av动漫网址| 少妇被粗大的猛进出69影院| 大陆偷拍与自拍| 操出白浆在线播放| 黑人欧美特级aaaaaa片| 亚洲欧美一区二区三区国产| 国产亚洲一区二区精品| 欧美精品高潮呻吟av久久| 国产欧美日韩精品亚洲av| 日韩人妻精品一区2区三区| 久久影院123| 老司机靠b影院| 亚洲,欧美,日韩| 亚洲色图 男人天堂 中文字幕| 丰满人妻熟妇乱又伦精品不卡| 精品福利观看| av欧美777| 黄频高清免费视频| 成人国语在线视频| 脱女人内裤的视频| 午夜激情av网站| 亚洲精品国产av蜜桃| 欧美黑人欧美精品刺激| a级毛片在线看网站| 中国国产av一级| 国产一级毛片在线| 看免费成人av毛片| 性少妇av在线| 大片免费播放器 马上看| 一个人免费看片子| 国产福利在线免费观看视频| 国产片内射在线| 婷婷色av中文字幕| 亚洲视频免费观看视频| 亚洲激情五月婷婷啪啪| 男女边吃奶边做爰视频| 亚洲欧美精品综合一区二区三区| 午夜免费男女啪啪视频观看| 中国美女看黄片| 日本vs欧美在线观看视频| 午夜日韩欧美国产| 精品亚洲成a人片在线观看| 大香蕉久久网| 亚洲av成人精品一二三区| 啦啦啦视频在线资源免费观看| 手机成人av网站| 丁香六月天网| 中文字幕人妻丝袜一区二区| 国产成人影院久久av| 亚洲伊人久久精品综合| 黄色怎么调成土黄色| 国产精品国产三级国产专区5o| 日本欧美视频一区| 色94色欧美一区二区| 日本一区二区免费在线视频| 人人妻人人添人人爽欧美一区卜| 黄网站色视频无遮挡免费观看| 亚洲av美国av| 免费人妻精品一区二区三区视频| 国产精品欧美亚洲77777| 午夜91福利影院| 嫩草影视91久久| 亚洲av电影在线进入| 久久精品久久久久久噜噜老黄| 黄色a级毛片大全视频| 亚洲欧美激情在线| 两个人免费观看高清视频| 国产伦人伦偷精品视频| 国产男人的电影天堂91| 久久久久国产精品人妻一区二区| 中文字幕人妻丝袜一区二区| 免费在线观看黄色视频的| 久久精品国产综合久久久| 热99久久久久精品小说推荐| 各种免费的搞黄视频| 另类精品久久| 国产精品 国内视频| 精品少妇内射三级| 黄片小视频在线播放| 一级毛片 在线播放| 久久久久久免费高清国产稀缺| 最近中文字幕2019免费版| 中文精品一卡2卡3卡4更新| 国产片特级美女逼逼视频| 亚洲视频免费观看视频| 母亲3免费完整高清在线观看| 日韩av免费高清视频| 亚洲国产欧美网| 亚洲国产成人一精品久久久| 亚洲成色77777| 亚洲欧美中文字幕日韩二区| 亚洲第一av免费看| 欧美在线一区亚洲| 亚洲欧洲日产国产| a 毛片基地| 午夜福利,免费看| 一区在线观看完整版| 91精品伊人久久大香线蕉| 亚洲国产精品国产精品| 天堂中文最新版在线下载| 国产亚洲欧美精品永久| 99热全是精品| 九草在线视频观看| 成年人黄色毛片网站| 亚洲精品av麻豆狂野| 成年av动漫网址| 美女脱内裤让男人舔精品视频| 大码成人一级视频| 日韩中文字幕欧美一区二区 | 国产精品人妻久久久影院| 纯流量卡能插随身wifi吗| 婷婷色麻豆天堂久久| 欧美性长视频在线观看| 大香蕉久久网| av在线播放精品| 久热这里只有精品99| 久久久久久亚洲精品国产蜜桃av| 亚洲 国产 在线| 在线观看免费日韩欧美大片| 亚洲欧美日韩另类电影网站| 伊人亚洲综合成人网| 人妻人人澡人人爽人人| 午夜福利在线免费观看网站| 免费一级毛片在线播放高清视频 | 精品视频人人做人人爽| 91麻豆av在线| 精品亚洲乱码少妇综合久久| 免费观看a级毛片全部| 一级a爱视频在线免费观看| 一级毛片黄色毛片免费观看视频| 亚洲国产最新在线播放| 免费高清在线观看日韩| 丝袜美足系列| 成人亚洲精品一区在线观看| 少妇猛男粗大的猛烈进出视频| 欧美黄色片欧美黄色片| 久久午夜综合久久蜜桃| 热99久久久久精品小说推荐| 激情五月婷婷亚洲| 久久精品aⅴ一区二区三区四区| 99久久精品国产亚洲精品| 中文字幕亚洲精品专区| 亚洲人成电影观看| 丰满少妇做爰视频| 赤兔流量卡办理| 欧美日韩福利视频一区二区| 99国产精品99久久久久| tube8黄色片| 亚洲av国产av综合av卡| 亚洲中文日韩欧美视频| av在线app专区| 亚洲av国产av综合av卡| 丁香六月欧美| 亚洲国产毛片av蜜桃av| 人成视频在线观看免费观看| 青青草视频在线视频观看| 少妇粗大呻吟视频| 国产男女超爽视频在线观看| 久久久久久亚洲精品国产蜜桃av| 2021少妇久久久久久久久久久| 国产一区有黄有色的免费视频| 在线看a的网站| 久久午夜综合久久蜜桃| 日韩制服丝袜自拍偷拍| 满18在线观看网站| 亚洲国产精品一区三区| 亚洲av在线观看美女高潮| 男女下面插进去视频免费观看| 国产日韩一区二区三区精品不卡| 成人国产一区最新在线观看 | 一本久久精品| 国产午夜精品一二区理论片| 操出白浆在线播放| 女性被躁到高潮视频| 人妻一区二区av| 少妇人妻久久综合中文| 午夜激情av网站| 中文字幕人妻丝袜一区二区| bbb黄色大片| 国产在视频线精品| 国产av一区二区精品久久| 亚洲一卡2卡3卡4卡5卡精品中文| 最近手机中文字幕大全| 欧美老熟妇乱子伦牲交| 菩萨蛮人人尽说江南好唐韦庄| 亚洲精品一卡2卡三卡4卡5卡 | 搡老岳熟女国产| 一区二区三区精品91| netflix在线观看网站| 两个人免费观看高清视频| 99热国产这里只有精品6| 一边摸一边抽搐一进一出视频| 高清视频免费观看一区二区| 国产成人欧美在线观看 | 久久精品国产亚洲av高清一级| 国产在视频线精品| 久久精品国产亚洲av高清一级| 高清欧美精品videossex| 亚洲九九香蕉| 超碰成人久久| 天天操日日干夜夜撸| 久久久久网色| 日韩一本色道免费dvd| 中文乱码字字幕精品一区二区三区| 肉色欧美久久久久久久蜜桃| 色婷婷久久久亚洲欧美| 老鸭窝网址在线观看| 美女国产高潮福利片在线看| 日韩av不卡免费在线播放| 黄色视频在线播放观看不卡| 亚洲精品自拍成人| 在线观看www视频免费| 青草久久国产| 欧美 日韩 精品 国产| 婷婷色综合大香蕉| 丝瓜视频免费看黄片| 一区二区av电影网| 精品亚洲成国产av| 精品欧美一区二区三区在线| 精品人妻在线不人妻| 久久久精品94久久精品| 午夜福利,免费看| 人人澡人人妻人| 国产一卡二卡三卡精品| 亚洲成国产人片在线观看| 超碰成人久久| 老司机在亚洲福利影院| 99精国产麻豆久久婷婷| 国产成人啪精品午夜网站| 97在线人人人人妻| 青草久久国产| 亚洲精品国产av成人精品| 久久鲁丝午夜福利片| 一边亲一边摸免费视频| 亚洲欧美精品综合一区二区三区| 叶爱在线成人免费视频播放| 久久综合国产亚洲精品| 丝袜在线中文字幕| 国产成人精品久久二区二区91| 在线观看免费高清a一片| 男女无遮挡免费网站观看| 两性夫妻黄色片| 欧美日韩精品网址| 91精品三级在线观看| 国产精品欧美亚洲77777| 青春草亚洲视频在线观看| 国产日韩欧美视频二区| 岛国毛片在线播放| 女人精品久久久久毛片| 中文乱码字字幕精品一区二区三区| 亚洲av电影在线进入| 中文字幕最新亚洲高清| 韩国精品一区二区三区| 免费高清在线观看视频在线观看| 人妻人人澡人人爽人人| 男女床上黄色一级片免费看| 亚洲精品日韩在线中文字幕| 亚洲 欧美一区二区三区| av视频免费观看在线观看| 欧美精品一区二区大全| 久久久久久久久免费视频了| 美女午夜性视频免费| 欧美日韩一级在线毛片| 丝袜脚勾引网站| 精品少妇黑人巨大在线播放| 亚洲成国产人片在线观看| 国产一级毛片在线| 美女大奶头黄色视频| 9191精品国产免费久久| 亚洲国产精品999| 最新在线观看一区二区三区 | 自线自在国产av| 国产成人影院久久av| 不卡av一区二区三区| 国产亚洲欧美在线一区二区| 国产片内射在线| 一个人免费看片子| 后天国语完整版免费观看| 亚洲欧美中文字幕日韩二区| 夫妻性生交免费视频一级片| 久久久久久久久免费视频了| 久久狼人影院| 99久久精品国产亚洲精品| 女人被躁到高潮嗷嗷叫费观| 1024视频免费在线观看| 欧美 亚洲 国产 日韩一| 国产一区二区激情短视频 | 99久久综合免费| 老汉色av国产亚洲站长工具| √禁漫天堂资源中文www| 久久久精品免费免费高清| 国产一区二区 视频在线| www.av在线官网国产| 女人爽到高潮嗷嗷叫在线视频| 亚洲一码二码三码区别大吗| 性色av一级| 国产成人av教育| 午夜影院在线不卡| 国产视频首页在线观看| 91精品三级在线观看| 午夜日韩欧美国产| 欧美精品一区二区大全| 亚洲精品国产区一区二| 七月丁香在线播放| 午夜福利一区二区在线看| 亚洲三区欧美一区| 免费久久久久久久精品成人欧美视频| 黑人巨大精品欧美一区二区蜜桃| 成年人黄色毛片网站| 久热爱精品视频在线9| 亚洲一码二码三码区别大吗| 国产在视频线精品| 美女脱内裤让男人舔精品视频| 午夜福利视频精品| 男女床上黄色一级片免费看| 欧美大码av| 欧美变态另类bdsm刘玥| 国产亚洲午夜精品一区二区久久| 亚洲成人免费av在线播放| 亚洲伊人久久精品综合| 纯流量卡能插随身wifi吗| 别揉我奶头~嗯~啊~动态视频 | 色婷婷久久久亚洲欧美| 色网站视频免费| 99九九在线精品视频| 亚洲av电影在线进入| 午夜福利视频精品| 人体艺术视频欧美日本| 美女福利国产在线| 黄色视频不卡| 免费日韩欧美在线观看| 国产精品偷伦视频观看了| 国产深夜福利视频在线观看| 男女边吃奶边做爰视频| 国产三级黄色录像| 亚洲午夜精品一区,二区,三区| 成年人黄色毛片网站| 精品人妻一区二区三区麻豆| 伦理电影免费视频| 久久女婷五月综合色啪小说| 精品福利观看| 免费在线观看黄色视频的| 久久国产精品男人的天堂亚洲| 国产高清国产精品国产三级| 夫妻性生交免费视频一级片| 久久国产精品影院| 日本wwww免费看| 午夜福利乱码中文字幕| 国产av国产精品国产| 男女免费视频国产| 亚洲国产欧美日韩在线播放| 婷婷丁香在线五月| 亚洲成av片中文字幕在线观看| 国语对白做爰xxxⅹ性视频网站| 1024视频免费在线观看| 久久精品国产a三级三级三级| 亚洲综合色网址| 精品人妻熟女毛片av久久网站| 亚洲欧美清纯卡通| 中文欧美无线码| 免费黄频网站在线观看国产| 久久综合国产亚洲精品| 免费女性裸体啪啪无遮挡网站| 亚洲精品第二区| 亚洲国产av新网站| 久久久欧美国产精品| 午夜日韩欧美国产| 这个男人来自地球电影免费观看| 午夜免费成人在线视频| 搡老乐熟女国产| 色网站视频免费| 99热全是精品| 一级毛片 在线播放| 宅男免费午夜| 婷婷色综合www| 国产色视频综合| 少妇精品久久久久久久| 天堂8中文在线网| 成年美女黄网站色视频大全免费| 妹子高潮喷水视频| av片东京热男人的天堂| 久久av网站| 午夜福利影视在线免费观看| 免费看十八禁软件| videos熟女内射| 黑人欧美特级aaaaaa片| 美女脱内裤让男人舔精品视频| 亚洲一区中文字幕在线| 日本一区二区免费在线视频| 精品视频人人做人人爽| 美女福利国产在线| 亚洲精品日韩在线中文字幕| 国产野战对白在线观看| 久久国产精品人妻蜜桃| 久久人妻熟女aⅴ| 国产一级毛片在线| 一边亲一边摸免费视频| 成人免费观看视频高清| 亚洲欧美日韩另类电影网站| 久久久久久亚洲精品国产蜜桃av| 中文字幕人妻丝袜一区二区| 亚洲精品日本国产第一区| 欧美人与性动交α欧美精品济南到| 美女中出高潮动态图| 黄色毛片三级朝国网站| 中国美女看黄片| 精品亚洲成a人片在线观看| 青青草视频在线视频观看| 国产免费福利视频在线观看| 久久精品久久久久久久性| 精品欧美一区二区三区在线| 岛国毛片在线播放| 一级a爱视频在线免费观看| 国产成人91sexporn| 国产伦理片在线播放av一区| 久久精品亚洲熟妇少妇任你| 亚洲人成电影免费在线| 亚洲欧美一区二区三区国产| 日本一区二区免费在线视频| 久久久欧美国产精品| 婷婷色综合www| 国产熟女午夜一区二区三区| 99久久人妻综合| 欧美精品av麻豆av| 免费观看av网站的网址| 纯流量卡能插随身wifi吗| 丰满人妻熟妇乱又伦精品不卡| 色网站视频免费| 黄网站色视频无遮挡免费观看| 久久久久国产一级毛片高清牌| 久久久久精品人妻al黑| 日韩 亚洲 欧美在线| 只有这里有精品99| 国产亚洲精品第一综合不卡| 高潮久久久久久久久久久不卡| 高清黄色对白视频在线免费看| 久久人人97超碰香蕉20202| 国产男女内射视频| 国产亚洲欧美在线一区二区| a 毛片基地| 桃花免费在线播放| 捣出白浆h1v1| 一二三四在线观看免费中文在| 亚洲av男天堂| 久久鲁丝午夜福利片| 又紧又爽又黄一区二区| 亚洲精品乱久久久久久| av有码第一页| 韩国高清视频一区二区三区| 大片电影免费在线观看免费| 夫妻性生交免费视频一级片| 另类精品久久| 国产精品欧美亚洲77777| 你懂的网址亚洲精品在线观看| 女人被躁到高潮嗷嗷叫费观| 亚洲精品国产色婷婷电影| 你懂的网址亚洲精品在线观看| 在线亚洲精品国产二区图片欧美| 搡老乐熟女国产| 男女下面插进去视频免费观看| 日本五十路高清|