• <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ī)保期待政策“補丁”
    中文字幕av成人在线电影| 少妇人妻一区二区三区视频| 久久久a久久爽久久v久久| 一区二区三区四区激情视频| 国产熟女欧美一区二区| 成人高潮视频无遮挡免费网站| 人妻 亚洲 视频| 大香蕉97超碰在线| 日韩免费高清中文字幕av| 菩萨蛮人人尽说江南好唐韦庄| 亚洲自拍偷在线| 国内少妇人妻偷人精品xxx网站| 三级男女做爰猛烈吃奶摸视频| 亚洲国产精品999| 中文字幕免费在线视频6| 国产亚洲一区二区精品| 在线观看国产h片| 日韩大片免费观看网站| 精品国产一区二区三区久久久樱花 | 又爽又黄无遮挡网站| 99久久精品国产国产毛片| av国产精品久久久久影院| 舔av片在线| 国产精品人妻久久久影院| 美女国产视频在线观看| 精品久久久久久电影网| 搡女人真爽免费视频火全软件| 久久久久久伊人网av| 精品一区在线观看国产| 91久久精品国产一区二区三区| 有码 亚洲区| 日韩大片免费观看网站| 国产精品久久久久久精品电影| 在线观看一区二区三区| 国产 一区 欧美 日韩| 特大巨黑吊av在线直播| 亚洲欧美日韩另类电影网站 | 国产欧美另类精品又又久久亚洲欧美| 一边亲一边摸免费视频| 欧美另类一区| 亚洲国产欧美在线一区| 我的女老师完整版在线观看| 久久久久久久久久人人人人人人| 久久精品国产亚洲av涩爱| 免费少妇av软件| 老女人水多毛片| 九九爱精品视频在线观看| 性色av一级| 少妇熟女欧美另类| 久久人人爽人人片av| 少妇人妻精品综合一区二区| 亚洲国产成人一精品久久久| 精品久久久噜噜| 男人添女人高潮全过程视频| 国产大屁股一区二区在线视频| 亚洲精品456在线播放app| 麻豆乱淫一区二区| 久久人人爽人人片av| 午夜激情福利司机影院| 亚洲精品第二区| 亚洲精品第二区| 免费在线观看成人毛片| 熟女人妻精品中文字幕| 水蜜桃什么品种好| 嘟嘟电影网在线观看| 国产探花在线观看一区二区| 亚洲av成人精品一区久久| 男女那种视频在线观看| 国产一区有黄有色的免费视频| 精品一区二区三卡| 午夜免费观看性视频| 久久这里有精品视频免费| 国产免费又黄又爽又色| 大又大粗又爽又黄少妇毛片口| 国产淫语在线视频| 秋霞伦理黄片| 午夜免费观看性视频| 色5月婷婷丁香| 一级毛片黄色毛片免费观看视频| 国产精品偷伦视频观看了| 日韩精品有码人妻一区| 日韩精品有码人妻一区| 久久久成人免费电影| 成人国产麻豆网| 国产精品秋霞免费鲁丝片| 日韩大片免费观看网站| 久久精品久久久久久噜噜老黄| 日韩精品有码人妻一区| 最近最新中文字幕免费大全7| 亚洲av免费在线观看| 大片电影免费在线观看免费| 久久久久久国产a免费观看| 国产精品女同一区二区软件| 久久国内精品自在自线图片| 狂野欧美激情性bbbbbb| 国产精品伦人一区二区| 99热这里只有精品一区| 中文字幕免费在线视频6| 久久精品国产鲁丝片午夜精品| 国产 一区 欧美 日韩| 中文字幕人妻熟人妻熟丝袜美| 又黄又爽又刺激的免费视频.| 久久久久久久亚洲中文字幕| 亚洲三级黄色毛片| 大又大粗又爽又黄少妇毛片口| 18+在线观看网站| 18+在线观看网站| 伊人久久精品亚洲午夜| 成年女人看的毛片在线观看| 日韩精品有码人妻一区| 一级二级三级毛片免费看| 综合色丁香网| 国语对白做爰xxxⅹ性视频网站| 一级毛片我不卡| 日韩欧美精品免费久久| 国产精品久久久久久精品电影小说 | 搡女人真爽免费视频火全软件| 中国三级夫妇交换| 亚洲av福利一区| 舔av片在线| 日本爱情动作片www.在线观看| 亚洲国产色片| 九九爱精品视频在线观看| 尾随美女入室| 国产精品久久久久久久电影| 日日啪夜夜撸| 亚洲欧洲国产日韩| 黑人高潮一二区| 我要看日韩黄色一级片| 日本av手机在线免费观看| 亚洲婷婷狠狠爱综合网| 在线免费十八禁| 久久99热6这里只有精品| 在线亚洲精品国产二区图片欧美 | 最新中文字幕久久久久| 久久久久久国产a免费观看| 色播亚洲综合网| 18禁裸乳无遮挡免费网站照片| 男人和女人高潮做爰伦理| 亚洲精品第二区| 国产一级毛片在线| 国产日韩欧美在线精品| 成人午夜精彩视频在线观看| 国产探花极品一区二区| 美女脱内裤让男人舔精品视频| 亚洲在久久综合| 欧美激情国产日韩精品一区| 极品少妇高潮喷水抽搐| 高清在线视频一区二区三区| 高清视频免费观看一区二区| 午夜福利网站1000一区二区三区| 亚洲真实伦在线观看| 亚洲av男天堂| 国产一区二区亚洲精品在线观看| 久久影院123| 成人无遮挡网站| 狂野欧美白嫩少妇大欣赏| 亚洲av不卡在线观看| 国产成人精品一,二区| 少妇的逼水好多| 欧美激情久久久久久爽电影| 欧美三级亚洲精品| 国产一区二区三区av在线| 人妻制服诱惑在线中文字幕| 在线播放无遮挡| 国产毛片a区久久久久| 亚洲欧美精品自产自拍| 亚洲自拍偷在线| 99热网站在线观看| 噜噜噜噜噜久久久久久91| 国产av国产精品国产| 国产精品熟女久久久久浪| 国产精品一二三区在线看| 别揉我奶头 嗯啊视频| 秋霞伦理黄片| av福利片在线观看| 蜜臀久久99精品久久宅男| 精品久久久久久久久av| 春色校园在线视频观看| 建设人人有责人人尽责人人享有的 | 黄片无遮挡物在线观看| 一本色道久久久久久精品综合| 青青草视频在线视频观看| 插阴视频在线观看视频| 少妇人妻精品综合一区二区| 男女那种视频在线观看| 亚洲,欧美,日韩| 欧美xxⅹ黑人| 街头女战士在线观看网站| 各种免费的搞黄视频| 欧美一区二区亚洲| 久久精品久久久久久久性| 少妇的逼水好多| 亚洲第一区二区三区不卡| 2022亚洲国产成人精品| 亚洲av.av天堂| 99九九线精品视频在线观看视频| 国内精品宾馆在线| 女的被弄到高潮叫床怎么办| 中文字幕久久专区| 在线精品无人区一区二区三 | 国产黄片美女视频| 欧美精品一区二区大全| 日韩三级伦理在线观看| 国产精品嫩草影院av在线观看| 国产 一区 欧美 日韩| 看免费成人av毛片| 欧美精品人与动牲交sv欧美| 日韩不卡一区二区三区视频在线| 在线观看国产h片| 国内精品宾馆在线| 欧美 日韩 精品 国产| 久热这里只有精品99| 99视频精品全部免费 在线| 国产午夜精品久久久久久一区二区三区| 日韩不卡一区二区三区视频在线| 亚洲精品国产成人久久av| 啦啦啦中文免费视频观看日本| 精品一区二区三区视频在线| 亚洲av在线观看美女高潮| 免费观看在线日韩| 一级a做视频免费观看| 性色avwww在线观看| 91精品国产九色| 人人妻人人看人人澡| 国产免费福利视频在线观看| 精品国产乱码久久久久久小说| 色哟哟·www| 最后的刺客免费高清国语| 婷婷色av中文字幕| 国产成人午夜福利电影在线观看| 夫妻性生交免费视频一级片| 哪个播放器可以免费观看大片| 国产一区二区亚洲精品在线观看| 插阴视频在线观看视频| 18禁动态无遮挡网站| 欧美激情国产日韩精品一区| 欧美日韩在线观看h| 青青草视频在线视频观看| 日韩 亚洲 欧美在线| 久久精品国产a三级三级三级| 内射极品少妇av片p| 国产乱人视频| 18禁裸乳无遮挡动漫免费视频 | 精品国产乱码久久久久久小说| 国产亚洲91精品色在线| 国产精品久久久久久av不卡| 成年免费大片在线观看| 国产色婷婷99| 波野结衣二区三区在线| 爱豆传媒免费全集在线观看| 国产淫片久久久久久久久| 在线观看人妻少妇| 九草在线视频观看| 哪个播放器可以免费观看大片| 亚洲欧洲日产国产| 国模一区二区三区四区视频| 国产精品蜜桃在线观看| 中文资源天堂在线| 男的添女的下面高潮视频| 国产成年人精品一区二区| 女人十人毛片免费观看3o分钟| 久久精品国产亚洲网站| 黄色欧美视频在线观看| 大陆偷拍与自拍| 国产精品久久久久久精品电影| 免费观看性生交大片5| 99热这里只有是精品在线观看| 午夜精品一区二区三区免费看| 免费观看av网站的网址| 日日撸夜夜添| 日韩亚洲欧美综合| 国产亚洲av片在线观看秒播厂| 国产欧美亚洲国产| 黄片无遮挡物在线观看| 综合色丁香网| 国产69精品久久久久777片| 午夜免费男女啪啪视频观看| 久久久亚洲精品成人影院| 亚洲自偷自拍三级| 国模一区二区三区四区视频| 国产久久久一区二区三区| 国产探花极品一区二区| 中文字幕av成人在线电影| 国产欧美另类精品又又久久亚洲欧美| 日韩免费高清中文字幕av| 涩涩av久久男人的天堂| 在线天堂最新版资源| 久久久久久国产a免费观看| 国产片特级美女逼逼视频| 99热这里只有是精品50| 国产av码专区亚洲av| 成人国产麻豆网| 久久精品久久精品一区二区三区| 成人鲁丝片一二三区免费| 亚洲,欧美,日韩| 亚洲欧美精品专区久久| 欧美性猛交╳xxx乱大交人| 久久精品夜色国产| 中国美白少妇内射xxxbb| 麻豆久久精品国产亚洲av| 99热网站在线观看| 国产免费一区二区三区四区乱码| 亚洲精品国产av蜜桃| 国产白丝娇喘喷水9色精品| 草草在线视频免费看| 18禁裸乳无遮挡免费网站照片| 国产成人a区在线观看| 亚洲精品,欧美精品| 丝袜美腿在线中文| 亚洲久久久久久中文字幕| 女人久久www免费人成看片| 免费播放大片免费观看视频在线观看| 少妇裸体淫交视频免费看高清| 韩国高清视频一区二区三区| 免费看不卡的av| 亚洲精品亚洲一区二区| 国产精品爽爽va在线观看网站| 午夜激情福利司机影院| 少妇的逼水好多| 午夜福利在线在线| 丰满乱子伦码专区| 少妇人妻精品综合一区二区| 人妻 亚洲 视频| 日韩av不卡免费在线播放| 久久久精品94久久精品| 99热6这里只有精品| 日韩在线高清观看一区二区三区| 亚洲av成人精品一二三区| 精品一区二区三区视频在线| 久热这里只有精品99| 亚洲精品亚洲一区二区| 深爱激情五月婷婷| 久久精品国产亚洲网站| 成人高潮视频无遮挡免费网站| 国产精品秋霞免费鲁丝片| 久久午夜福利片| 国产成人精品一,二区| av在线蜜桃| 亚洲最大成人av| 国产精品国产三级国产专区5o| 人人妻人人看人人澡| 成人黄色视频免费在线看| 久久精品久久精品一区二区三区| 欧美日韩亚洲高清精品| 人人妻人人澡人人爽人人夜夜| 久久精品综合一区二区三区| 久热久热在线精品观看| 国产高清不卡午夜福利| 中文精品一卡2卡3卡4更新| 99热6这里只有精品| 日韩,欧美,国产一区二区三区| 26uuu在线亚洲综合色| 69av精品久久久久久| 亚洲不卡免费看| 人体艺术视频欧美日本| 在线观看三级黄色| 国产精品一区www在线观看| 色5月婷婷丁香| 免费观看a级毛片全部| 91久久精品国产一区二区成人| videos熟女内射| 身体一侧抽搐| 欧美另类一区| 久久久久久久国产电影| 欧美日韩综合久久久久久| 99久久中文字幕三级久久日本| 亚洲国产精品成人久久小说| 国产午夜精品一二区理论片| 爱豆传媒免费全集在线观看| 一级黄片播放器| 网址你懂的国产日韩在线| 欧美精品国产亚洲| 男人狂女人下面高潮的视频| 国产精品一区二区在线观看99| 国产一区亚洲一区在线观看| 狂野欧美激情性bbbbbb| 91狼人影院| 日韩精品有码人妻一区| 18禁裸乳无遮挡免费网站照片| 国产一级毛片在线| 免费看光身美女| 久久久久久伊人网av| 在线 av 中文字幕| 熟女av电影| 久久国产乱子免费精品| videossex国产| 波多野结衣巨乳人妻| 亚洲欧美成人综合另类久久久| 在线免费观看不下载黄p国产| 久久久久久久久久久免费av| 国产男人的电影天堂91| 久久久久性生活片| 九草在线视频观看| 国产男人的电影天堂91| 少妇 在线观看| 国产黄片美女视频| 中文精品一卡2卡3卡4更新| 麻豆精品久久久久久蜜桃| 国产精品99久久久久久久久| 搡女人真爽免费视频火全软件| 久久久色成人| 赤兔流量卡办理| 亚洲欧美日韩无卡精品| 久久国内精品自在自线图片| 18+在线观看网站| 欧美bdsm另类| 下体分泌物呈黄色| 不卡视频在线观看欧美| 久久久国产一区二区| 国产大屁股一区二区在线视频| 久久久久久九九精品二区国产| 午夜亚洲福利在线播放| 国产久久久一区二区三区| 成人毛片60女人毛片免费| 日韩成人av中文字幕在线观看| 国产综合懂色| 国产黄色免费在线视频| 色播亚洲综合网| 男人添女人高潮全过程视频| 亚洲欧美精品专区久久| 成人无遮挡网站| 看黄色毛片网站| 草草在线视频免费看| 简卡轻食公司| 日韩国内少妇激情av| 免费电影在线观看免费观看| 久久久久性生活片| 国产男女超爽视频在线观看| 日韩av免费高清视频| 欧美成人午夜免费资源| av播播在线观看一区| 午夜激情福利司机影院| 成年女人看的毛片在线观看| 深爱激情五月婷婷| 美女被艹到高潮喷水动态| 精华霜和精华液先用哪个| 色婷婷久久久亚洲欧美| 天天一区二区日本电影三级| 国产成人精品婷婷| 中文字幕免费在线视频6| 成年女人看的毛片在线观看| 观看美女的网站| 天堂网av新在线| 亚洲自拍偷在线| 日本欧美国产在线视频| 91精品一卡2卡3卡4卡| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 国产在线一区二区三区精| 国产黄色免费在线视频| 好男人视频免费观看在线| 久久久久久国产a免费观看| 一本一本综合久久| 天天一区二区日本电影三级| a级毛片免费高清观看在线播放| 亚洲不卡免费看| 欧美亚洲 丝袜 人妻 在线| 久久国内精品自在自线图片| 高清视频免费观看一区二区| 亚洲自偷自拍三级| 国产爽快片一区二区三区| 日韩av在线免费看完整版不卡| 欧美成人a在线观看| 欧美高清成人免费视频www| 色吧在线观看| 男人狂女人下面高潮的视频| 精品熟女少妇av免费看| 亚洲国产精品成人综合色| 高清视频免费观看一区二区| av一本久久久久| 涩涩av久久男人的天堂| eeuss影院久久| 欧美丝袜亚洲另类| 国产精品一区二区在线观看99| 亚洲精品久久午夜乱码| 男人爽女人下面视频在线观看| 亚洲图色成人| 亚洲国产日韩一区二区| 久久久久九九精品影院| 亚洲精品自拍成人| 狠狠精品人妻久久久久久综合| 七月丁香在线播放| 久久久欧美国产精品| 亚洲欧美日韩卡通动漫| 成年女人看的毛片在线观看| 天堂俺去俺来也www色官网| 一区二区av电影网| 精品一区二区三卡| 校园人妻丝袜中文字幕| 国产午夜福利久久久久久| 久久精品国产亚洲网站| 久久久成人免费电影| 大又大粗又爽又黄少妇毛片口| 深爱激情五月婷婷| 99视频精品全部免费 在线| 丝袜脚勾引网站| 亚洲成人中文字幕在线播放| 在线观看人妻少妇| av在线天堂中文字幕| 老司机影院毛片| 亚洲av免费高清在线观看| 2021天堂中文幕一二区在线观| 内地一区二区视频在线| 国产av不卡久久| 高清视频免费观看一区二区| 男插女下体视频免费在线播放| 2022亚洲国产成人精品| 高清在线视频一区二区三区| 国产精品爽爽va在线观看网站| 国产精品.久久久| 亚洲国产精品成人久久小说| 3wmmmm亚洲av在线观看| 国产淫语在线视频| 嫩草影院新地址| 国产午夜福利久久久久久| 美女高潮的动态| 亚洲一级一片aⅴ在线观看| 午夜免费男女啪啪视频观看| 国产免费一区二区三区四区乱码| 亚洲一区二区三区欧美精品 | 国产在线男女| 美女内射精品一级片tv| 男人舔奶头视频| av线在线观看网站| a级毛片免费高清观看在线播放| 成人免费观看视频高清| 亚洲欧美一区二区三区国产| 亚洲美女视频黄频| 国产精品国产av在线观看| 六月丁香七月| 亚洲精品亚洲一区二区| 国产精品一二三区在线看| 国产精品福利在线免费观看| 香蕉精品网在线| 久久久午夜欧美精品| 特大巨黑吊av在线直播| 日韩欧美精品v在线| 青春草国产在线视频| 男女边摸边吃奶| 黄色视频在线播放观看不卡| 午夜福利网站1000一区二区三区| av女优亚洲男人天堂| 久久久亚洲精品成人影院| 免费在线观看成人毛片| 国产午夜精品久久久久久一区二区三区| 性色av一级| 日韩中字成人| av线在线观看网站| 日韩大片免费观看网站| 欧美97在线视频| 国产精品爽爽va在线观看网站| 国产成人一区二区在线| 嫩草影院新地址| 亚洲经典国产精华液单| 国模一区二区三区四区视频| 全区人妻精品视频| 亚洲国产色片| 日日啪夜夜撸| 极品教师在线视频| 亚洲美女视频黄频| av在线老鸭窝| 久久久久久久午夜电影| 国产伦理片在线播放av一区| 日韩欧美精品免费久久| 欧美日韩在线观看h| 中文字幕久久专区| 91精品伊人久久大香线蕉| 神马国产精品三级电影在线观看| 在线观看人妻少妇| 精品少妇久久久久久888优播| 国产免费一级a男人的天堂| 18禁动态无遮挡网站| 一级毛片电影观看| 在线天堂最新版资源| 嘟嘟电影网在线观看| 一级a做视频免费观看| 网址你懂的国产日韩在线| 久久精品国产亚洲网站| 国产一区亚洲一区在线观看| 国产成人精品福利久久| 在线免费观看不下载黄p国产| 成人国产av品久久久| av在线天堂中文字幕| 身体一侧抽搐| 亚洲精品乱码久久久v下载方式| 激情 狠狠 欧美| 永久网站在线| 亚洲国产成人一精品久久久| 91久久精品国产一区二区三区| 高清午夜精品一区二区三区| 特大巨黑吊av在线直播| 激情五月婷婷亚洲| 日本免费在线观看一区| 美女视频免费永久观看网站| 欧美另类一区| 亚洲国产高清在线一区二区三| 18禁动态无遮挡网站| 国产精品爽爽va在线观看网站| 亚洲国产高清在线一区二区三| 亚洲av不卡在线观看| 男女国产视频网站| 你懂的网址亚洲精品在线观看| 国产v大片淫在线免费观看| 欧美另类一区| 成年女人看的毛片在线观看| 中文字幕免费在线视频6| 在线观看国产h片| 国产免费一级a男人的天堂| 直男gayav资源| 久久综合国产亚洲精品| 久久久久久九九精品二区国产| 新久久久久国产一级毛片| 啦啦啦中文免费视频观看日本| 午夜日本视频在线| 国产成人精品一,二区|