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

    約束覆蓋導向的Web服務測試數(shù)據(jù)生成

    2019-11-11 03:45:52浩,周輝,錢
    小型微型計算機系統(tǒng) 2019年10期
    關鍵詞:前置條件子句規(guī)約

    程 浩,周 輝,錢 巨

    (南京航空航天大學 計算機科學與技術學院,南京 211106)E-mail:jqian@nuaa.edu.cn

    1 引 言

    Web服務是一種通過網絡支持可互操作的端到端交互的軟件系統(tǒng)(1)http://www.w3.org/TR/ws-gloss.Web服務因其所具有的高通用性、可互操作性與可重用性而受到廣泛關注.與其他軟件系統(tǒng)不同,Web服務使用了基于XML的WSDL標準文檔來描述服務接口,包括服務功能、輸入和輸出,對外隱藏了復雜業(yè)務邏輯的實現(xiàn).

    Web服務與其他軟件系統(tǒng)一樣,也存在質量問題,而且由于Web服務廣泛用于各種應用,尤其是電子商務應用,問題可能會更嚴重.為此,研究人員為Web服務的測試技術付出了很多努力[1],在測試數(shù)據(jù)生成[2,3]、單元測試[4,5]、測試預言[6]、故障注入技術[7]、回歸測試[8]、安全測試[9]等方面的研究也取得了很多重要成果,但是挑戰(zhàn)依然存在.

    Web服務測試的挑戰(zhàn)之一是生成高覆蓋率的測試數(shù)據(jù).人們[1]提出了多種測試數(shù)據(jù)生成方法,包括基于 XML Schema、基于模型、基于規(guī)約等方法,其中,基于 XML Schema 的方法根據(jù) WSDL 文檔提供的數(shù)據(jù)類型信息生成測試數(shù)據(jù),基于模型的方法通過構建服務內部的行為模型(如自動機)來生成測試數(shù)據(jù)[10],基于規(guī)約的方法一般根據(jù) Web 服務輸入和輸出的前置與后置條件來生成測試數(shù)據(jù)[11].相較而言,基于 XML Schema 的方法快而簡單,但只是根據(jù)粗粒度的數(shù)據(jù)類型信息生成數(shù)據(jù),因此無法確保能夠生成有意義的代表性測試數(shù)據(jù).基于模型的方法主要適用于 BPEL 組合服務,對于原子服務來說該方法顯得過于復雜.與上述兩種方法相比,基于規(guī)約的測試數(shù)據(jù)生成方法不僅能夠生成更合理的服務輸入,而且在為原子服務生成測試數(shù)據(jù)時通常要比基于模型的方法更高效.

    對于原子服務,文獻[12]提出了一種基于規(guī)約的Web服務測試數(shù)據(jù)生成方法,先用簡單的取值范圍約束(如(a≥0∧a≤10)∧(b≥0∧b≤10))來指定服務的輸入條件,再基于區(qū)間劃分技術生成測試數(shù)據(jù),測試數(shù)據(jù)是通過選取每個輸入?yún)?shù)的數(shù)據(jù)分區(qū)中的值組合得到的,但該方法并不支持不同服務輸入?yún)?shù)之間的復雜約束,如a+b

    在更廣泛的測試數(shù)據(jù)生成研究領域中[15,16],還有一些根據(jù)規(guī)約約束生成測試數(shù)據(jù)的黑盒方法,但大多數(shù)只關注如何求解約束,并未解決如何操縱約束以生成高覆蓋率測試數(shù)據(jù)的問題[17],而且很少有研究方法能夠定義明確的規(guī)約約束級測試覆蓋準則,并利用這些準則指導約束求解以生成測試數(shù)據(jù).

    考慮到上述問題,本文提出了一種基于規(guī)約約束的測試數(shù)據(jù)生成方法,用一階邏輯公式定義服務輸入和輸出的規(guī)約約束,能夠根據(jù)給定的規(guī)約約束生成高覆蓋的測試數(shù)據(jù).本方法的重點是測試原子服務,并支持復雜的一階邏輯約束,如(3*a+12)*2<100,以及描述變量間關聯(lián)關系的約束,如x+y>z.本文使用Z3 SMT約束求解器生成測試數(shù)據(jù),而且為了生成高覆蓋率的測試數(shù)據(jù),引入幾種規(guī)約約束級覆蓋準則,并提出生成滿足這些準則的測試數(shù)據(jù)的新算法.實驗通過測試兩個目標服務得到的結果表明,使用新的測試覆蓋準則與相應的測試數(shù)據(jù)生成算法,可以實現(xiàn)更高的代碼覆蓋率,因此本文提出的方法能夠提高Web服務測試數(shù)據(jù)的質量.

    2 背 景

    2.1 Web服務

    一個Web服務包含服務實現(xiàn)和服務接口描述,后者通常是由 WSDL 文檔表達.WSDL 文檔內容由抽象類型定義和部署描述兩部分組成.抽象類型定義包括 types、message、portType 等 XML 元素,其中 types 元素描述了該服務中使用的數(shù)據(jù)類型,可以是簡單數(shù)據(jù)類型如整型、字符串等,也可以是類似于 C 語言結構體的復雜類型;message 元素描述了服務的輸入和輸出;portType 元素定義了服務支持的操作,操作就像是面向對象語言中類的一個方法.部署描述定義了服務的 URL 和調用服務的協(xié)議.這些元素中,types 元素是測試數(shù)據(jù)生成的關鍵.

    圖1是描述Web服務Sum的WSDL文檔,Sum服務有一個sum操作,由部分可知該服務接受三個 int 類型的參數(shù)a,b,c,用戶可以通過URL地址調用這個服務,該服務的實現(xiàn)可以用任何語言,但對調用者來說是透明的,而WSDL文檔是用戶可見的.

    2.2 基于規(guī)約的 Web 服務測試

    在基于規(guī)約的原子Web服務測試中,每個測試目標由一個三元組表示:

    F=,

    其中S表示待測的原子Web服務,O是服務S中可被調用的操作,C是由服務S中若干前置條件和后置條件組成的約束系統(tǒng).前置條件定義了服務輸入應滿足的約束,用于生成Web服務的測試數(shù)據(jù),后置條件則定義了服務輸出應滿足的約束,用于檢查測試數(shù)據(jù)的執(zhí)行結果.

    圖1 WSDL文檔示例
    Fig.1 An example WSDL document

    2.3 基于 SMT 約束求解器的測試數(shù)據(jù)生成

    為了表達Web服務中輸入和輸出參數(shù)之間的關聯(lián)關系,本文擬采用一階邏輯公式定義約束,并基于SMT(Satisfiability Modulo Theories,可滿足性模理論)約束求解器[18]生成測試數(shù)據(jù).SMT 約束求解器用于查找滿足一階邏輯公式的一組數(shù)據(jù),被廣泛用于軟件驗證、測試用例生成等方面.

    Z3是微軟發(fā)布的一款 SMT 約束求解器[19],支持各種復雜的理論公式,包括算術表達式、布爾表達式、邏輯表達式等.本文將基于Z3約束求解器生成 Web 服務測試數(shù)據(jù).

    但是直接使用Z3求解約束得到的測試數(shù)據(jù)無法保證能夠覆蓋所有的輸入方案,例如,對于以下約束:

    a>20∨b<10∨a>b,

    使用Z3求解可以得到一個有效的測試數(shù)據(jù)(a=15,b=12),該數(shù)據(jù)只覆蓋了條件子句a>b,未覆蓋a>20和b<10,這種低覆蓋率的測試數(shù)據(jù)會影響Web服務故障的發(fā)現(xiàn).

    3 基于Z3的測試數(shù)據(jù)生成方法概述

    為了解決以上問題,本文提出了一種基于一階邏輯公式規(guī)約和Z3約束求解器的高覆蓋率測試數(shù)據(jù)生成方法,如圖2所示.

    圖2 測試數(shù)據(jù)生成過程Fig.2 Test data generation process

    方法的輸入包括待測Web服務的WSDL文檔、服務對應的前置條件約束以及選定的覆蓋準則,方法的輸出是一個滿足輸入覆蓋準則的測試集.測試數(shù)據(jù)生成的過程包括兩個主要步驟:1)根據(jù)覆蓋準則進行約束轉換;2)基于Z3 SMT約束求解器的測試數(shù)據(jù)生成.生成的測試數(shù)據(jù)將被封裝于SOAP包中用于 Web 服務測試.表1給出了測試數(shù)據(jù)生成的一個實例,其中最后一列的測試數(shù)據(jù)是根據(jù)第一列中給定的前置條件生成的.本文主要關注整數(shù)類型的變量.

    表1 測試數(shù)據(jù)生成示例Table 1 An example for test data generation

    3.1 Web 服務規(guī)約語言

    Web服務的測試規(guī)約由前置條件和后置條件給定,它們都是用一階邏輯公式表達的約束,而且是 SMT 求解器可求解的.與傳統(tǒng)范圍約束(如a<10)只能限定單個變量不同,一階邏輯公式約束能夠定義不同變量之間的關聯(lián)關系,例如,a=b或a+b<10 等描述的復雜關系.

    規(guī)約語言的語法如圖3所示,其中 Variable,Value分別表示約束變量與常數(shù)值,expr,bexpr 分別是算術表達式和布爾表達式,constraint 表示約束中的邏輯公式.

    圖3 規(guī)約語法Fig.3 Grammar of the specification language

    規(guī)約語法中的約束變量對應于服務操作的輸入或輸出參數(shù),例如,對于圖1中的 Sum 服務,參數(shù)a可以表示為:

    value(svc/sum/a),

    其中,svc是給定服務的宏定義,svc/sum表示Sum服務支持的操作sum.假定Sum服務的輸入?yún)?shù)必須滿足都相等或者都不相等,對應的規(guī)約如圖4所示.規(guī)約可以保存在獨立的文件中,也可以集成到XML文檔中.規(guī)約提供了更多服務操作的輸入空間信息,通過全面探索輸入空間可以獲得更高覆蓋率的測試數(shù)據(jù).

    圖4 規(guī)約示例Fig.4 An example specification

    3.2 WSDL 描述中的限定

    目前 WSDL 規(guī)范支持一種限定(restriction)機制,以限制服務輸入和輸出的取值,常用的限定類型包括范圍限定和枚舉限定.范圍限定用于限制變量的最大或最小值,圖5(a) 表示參數(shù)a的取值范圍是[0,10].枚舉限定給出了變量的有效取值集合,圖5(b) 限定參數(shù)b只能取0或1.

    (a)范圍限定 (b)枚舉限定

    除上述兩種限定之外,還有其他更為復雜的限定在本文中沒有用到.為了生成合理的測試數(shù)據(jù),WSDL 描述中的這些限定將被轉換成邏輯約束,并加到約束系統(tǒng)中.結合圖4和圖5可得,Sum 服務中 sum 操作完整的前置條件如下:

    Csum=(a≥0∧a≤10)∧(b=0∨b=1)∧

    ((a≠b∧b≠c)∨(a=b∧b=c)),

    本文將使用該約束生成測試數(shù)據(jù).

    4 基于規(guī)約約束的測試覆蓋準則

    為了對給定的Web服務生成充足的測試數(shù)據(jù),本文定義了幾種規(guī)約約束級測試覆蓋準則,涵蓋了更多基于規(guī)約約束的情形,基于這些準則進行測試可以為指定服務測試更多的輸入方案.規(guī)約約束級測試覆蓋準則包括判定覆蓋、條件覆蓋、判定條件覆蓋、范式子句覆蓋,這些準則借鑒了白盒測試中代碼級覆蓋的部分概念.

    4.1 判定覆蓋

    在白盒測試中,判定覆蓋要求測試用例能夠覆蓋每個判定中真或假的結果.在基于規(guī)約約束的測試中,判定覆蓋則要求測試數(shù)據(jù)不僅要滿足規(guī)約約束(有效數(shù)據(jù)),還要滿足約束的否定形式(無效數(shù)據(jù)).

    定義1.(判定覆蓋) 對于給定前置條件C的服務,如果測試集T滿足以下條件:

    ?t∈T,eval(C,t)=true∧?t′∈T,eval(C,t′)=false,

    就稱測試集T滿足判定覆蓋,其中eval(C,t) 用于判斷測試數(shù)據(jù)t是否滿足約束C.

    對于3.2節(jié)給出的規(guī)約約束Csum,測試集Tdc(a,b,c)={(1,1,1),(20,1,1)} 覆蓋了有效數(shù)據(jù)和無效數(shù)據(jù),因此該測試集滿足判定覆蓋.

    4.2 條件覆蓋

    判定覆蓋無法保證給定的測試集能夠覆蓋所有產生有效測試數(shù)據(jù)或者無效數(shù)據(jù)的不同情形.例如,Tdc沒有覆蓋b=0的情況.一種提高覆蓋率的途徑是要求測試集能覆蓋每個基本條件的不同結果.在白盒測試中,這種覆蓋叫做條件覆蓋,本文將其引入到規(guī)約約束級覆蓋準則中.在基于規(guī)約約束的測試中,條件覆蓋要求測試數(shù)據(jù)不僅要滿足服務參數(shù)前置條件中的原子條件,還要滿足各原子條件的否定形式.

    定義2.(條件覆蓋) 對于給定前置條件C的服務,如果測試集T滿足以下條件:

    ?e∈BExpr(C){?t∈T,eval(e,t)=true
    ∧?t′∈T,eval(e,t′)=false},

    就稱測試集T滿足判定覆蓋,其中BExpr(C)是前置條件C中原子條件的集合.

    對于3.2節(jié)給出的規(guī)約約束Csum,測試集Tcc(a,b,c)={(1,1,1),(-1,0,-1),(20,0,20)} 能保證覆蓋所有的原子條件及各自的否定形式,因此該測試集滿足條件覆蓋.

    4.3 判定條件覆蓋

    對于(a>b∨c>d)類似的約束,覆蓋每個原子條件的不同結果并不能保證覆蓋整個約束真或假的結果.為此,本文定義了規(guī)約約束級的判定條件覆蓋準則.在基于規(guī)約約束的測試中,判定條件覆蓋要求為給定前置條件的Web服務生成的測試數(shù)據(jù)不僅要滿足判定覆蓋,還要滿足條件覆蓋.

    定義3.(判定條件覆蓋) 對于給定前置條件C的服務,如果測試集T滿足以下條件:

    ?t∈T,eval(C,t)=true∧?t′∈T,eval(C,t′)=false
    ∧?e∈BExpr(C){?t∈T,eval(e,t)=true
    ∧?t′∈T,eval(e,t′)=false},

    就稱測試集T滿足判定條件覆蓋.

    對于3.2節(jié)給出的規(guī)約約束Csum,4.2節(jié)中的測試集Tcc符合上述定義,因此該測試集滿足判定條件覆蓋.

    4.4 范式子句覆蓋

    對于規(guī)約約束,當測試數(shù)據(jù)有效時析取范式(DNF)會有不同的情況,當測試數(shù)據(jù)無效時合取范式的否定則會有不同的情況.這些情況常對應于 Web 服務的不同行為,因此應更好地被測試集覆蓋.然而條件覆蓋和判定條件覆蓋都不能保證這些情況都能被覆蓋.例如,測試集Tcc雖然覆蓋了b=0和b=1的情況,但是并未覆蓋b的取值不在集合{0,1}中的情況.

    為此,本文介紹一種范式子句覆蓋準則,要求測試數(shù)據(jù)不僅要滿足前置條件中析取范式的每個子句,還要滿足合取范式中每個子句的否定.這樣一來,產生有效數(shù)據(jù)或無效數(shù)據(jù)的不同情形都能被覆蓋到.

    定義4.(范式子句覆蓋)對于給定前置條件C的服務,如果測試集T滿足以下條件:

    ?f∈DNF(C),?t∈T,eval(f,t)=true
    ∧?f∈CNF(C),?t′∈T,eval(f,t′)=false,

    就稱測試集T滿足范式子句覆蓋,其中DNF(C)、CNF(C) 分別是前置條件C中析取范式子句、合取范式子句的集合.

    對于3.2節(jié)給出的規(guī)約約束Csum,析取范式子句有:

    (a≥0∧a≤10)∧(b=0)∧(a≠b∧b≠c),

    (a≥0∧a≤10)∧(b=0)∧(a=b∧b=c),

    (a≥0∧a≤10)∧(b=1)∧(a≠b∧b≠c),

    (a≥0∧a≤10)∧(b=1)∧(a=b∧b=c),

    合取范式包括:

    a≥0,a≤10,(b=0∨b=1),(a≠b∨a=b),

    (b≠c∨a=b),(a≠b∨b=c),(b≠c∨b=c).

    根據(jù)這些子句生成的測試集Tnfcc(a,b,c)={(1,0,2),(0,0,0),(0,1,2),(1,1,1),((1,0,2),(11,0,2),(1,2,2),(1,1,0),(0,1,1)} 滿足范式子句覆蓋.

    5 測試數(shù)據(jù)生成算法

    設Z3是根據(jù)給定約束生成有效隨機數(shù)據(jù)的函數(shù),本節(jié)將基于Z3函數(shù)介紹滿足不同測試覆蓋準則的測試數(shù)據(jù)生成算法.

    5.1 滿足判定覆蓋的測試數(shù)據(jù)生成算法

    對于給定前置條件C的服務,通過將Z3函數(shù)作用于條件C及其否定形式C,可以生成滿足判定覆蓋的測試集T:

    T={Z3(C),Z3(C)}.

    對于3.2節(jié)給出的規(guī)約,滿足判定覆蓋的測試集可通過將Csum代入上式得到:

    Tdc(a,b,c)={(1,1,1),(20,1,1)}.

    5.2 滿足條件覆蓋的測試數(shù)據(jù)生成算法

    對于給定前置條件C的服務,其中C的原子條件集合為BExpr(C),若要生成滿足條件覆蓋的測試集,則要求數(shù)據(jù)集同時滿足BExpr(C)中的每個條件e及其否定形式e.由于滿足條件e的測試數(shù)據(jù)也可能滿足其他條件,因此根據(jù)每個條件直接生成對應的數(shù)據(jù)會帶來冗余,為此,本文使用算法1所示的工作隊列算法來生成整個測試集.

    算法1.滿足條件覆蓋的測試數(shù)據(jù)生成算法

    Input:C:規(guī)約約束

    Output:T:測試集

    Begin

    E=BExpr(C)∪ {e|e∈BExpr(C)};

    whileE≠?do

    removeeifromE;

    t:=Z3(ei∧C);

    ift≠ nullthenT:=T∪ {t};

    else

    t:=Z3(ei∧C);

    ift≠ nullthenT:=T∪ {t};end

    end

    foreachek∈Edo

    ifeval(ek,t)==truethen

    E:=E-{ek};

    end

    end

    end

    returnT;

    End

    算法首先創(chuàng)建包含所有需要覆蓋的條件的工作隊列E,然后根據(jù)E中的每個條件ei使用Z3生成對應的服務輸入t.為了生成合理的完整輸入,需要先將ei和前置條件C(或其否定形式C)進行邏輯與操作,再用Z3 求解得到輸入數(shù)據(jù)t,此時從工作隊列E中刪除ei,而且t滿足的其他條件也要刪除.當工作隊列E為空時算法終止.

    對于3.2節(jié)給出的規(guī)約約束Csum,首先創(chuàng)建工作隊列E={e1=(a≥0),e2=(a≤10),e3=(b=0),e4=(b=1),e5=(a≠b),e6=(b≠c),e7=(a=b),e8=(b=c),e1,e2,e3,e4,e5,e6,e7,e8},然后根據(jù)條件e1使用Z32http://axis.apache.org/axis2/java/core

    生成服務輸入t1=(1,1,1),t1也滿足條件e2,e4,e7,e8,e3,e5以及e6,因此將這些條件從E中刪除,得到E={e3,e5,e6,e1,e2,e4,e7,e8}.接下來根據(jù)條件e3使用Z3生成另一個服務輸入t2=(-1,0,-1),t2也滿足條件e5,e6,e1,e4,e7以及e8,將這些條件從工作隊列中刪除后得到E={e2}.最后使用Z3求解到服務輸入(20,0,20),算法終止.最終的測試數(shù)據(jù)集合為Tcc(a,b,c)={(1,1,1),(-1,0,-1),(20,0,20)}.

    5.3 滿足判定條件覆蓋的測試數(shù)據(jù)生成算法

    對于給定前置條件C的服務,要生成滿足判定條件覆蓋的測試集,可以先生成滿足條件覆蓋的測試數(shù)據(jù)集,再向其中加入必要的測試數(shù)據(jù)以確保滿足判定覆蓋.詳細的測試數(shù)據(jù)生成算法如算法2所示.算法首先調用CC(C)生成滿足BExpr(C) 中的每個條件e及其否定形式e的測試數(shù)據(jù)集,然后判斷該數(shù)據(jù)集是否同時滿足條件C及其否定形式C,若不滿足條件C,則根據(jù)條件C使用Z3生成服務輸入;若不滿足條件C,則根據(jù)條件C使用Z3生成對應的服務輸入.

    算法2.滿足判定條件覆蓋的測試數(shù)據(jù)生成算法

    Input:C:規(guī)約約束

    Output:T:測試集

    Begin

    T:=CC(C);

    B:=?;

    foreacht∈TdoB:=B∪ {eval(C,t) };end

    iftrue?BthenT:=T∪Z3(C);

    elseiffalse?BthenT:=T∪Z3(C);

    end

    returnT;

    End

    對于3.2節(jié)給出的規(guī)約約束Csum,算法首先使用CC(C)得到滿足條件覆蓋的測試集Tdcc={(1,1,1),(-1,0,-1),(20,0,20)},Tdcc同時滿足條件C及其否定形式C,因此Tdcc滿足判定條件覆蓋,無需生成額外的輸入以滿足判定覆蓋.

    5.4 滿足范式子句覆蓋的測試數(shù)據(jù)生成算法

    對于給定前置條件C的服務,其中C的析取范式子句集合、合取范式子句集合分別為DNF(C)、CNF(C),為了生成滿足范式子句覆蓋的測試集,需要生成包括滿足DNF(C)中每個子句的數(shù)據(jù),以及不滿足CNF(C)中每個子句的數(shù)據(jù),具體過程如算法3所示.

    算法3.滿足范式子句覆蓋的測試數(shù)據(jù)生成算法

    Input:C:規(guī)約約束

    Output:T:測試集

    Begin

    F=DNF(C)∪{e|e∈CNF(C)};

    foreache∈Fdo

    t:=Z3(e);

    T:=T∪{t};

    end

    returnT;

    End

    對于3.2節(jié)給出的規(guī)約約束Csum,算法首先得到需要覆蓋的9個范式子句,由4.4節(jié)中給出,然后使用Z3 為每個子句生成相應的服務輸入,最終的數(shù)據(jù)集為4.4節(jié)中的Tnfcc.

    6 實 驗

    為了驗證本方法的有效性,我們實現(xiàn)了該方法并在兩個 Web 服務上對其進行測試,以回答以下的研究問題:

    問題1.本文提出的測試覆蓋準則在缺陷檢測方面的表現(xiàn)如何?

    實驗并未為服務注入故障,主要通過檢查這些測試覆蓋準則是否可以帶來更高的代碼級覆蓋率來回答這個問題.

    問題2.本文中的測試數(shù)據(jù)生成算法能否用更少的測試數(shù)據(jù)來滿足文中提出的測試覆蓋準則?

    問題3.測試數(shù)據(jù)生成算法的效率如何?

    6.1 實驗設置

    實驗用本文提出的方法分別測試了兩個典型的Web服務:Triangle與MiddleNumber[12,20,21],這些服務的變體廣泛用于軟件測試研究中.Triangle服務根據(jù)輸入三角形的三條邊長a,b,c判斷該三角形是一般三角形、等腰三角形還是等邊三角形,MiddleNumber服務根據(jù)輸入的三個數(shù)i,j,k判斷k是否為介于i和j之間的中間數(shù)字.實驗用Java實現(xiàn)這些服務,并將它們部署在Axis2容器2中,測試數(shù)據(jù)生成算法也用Java實現(xiàn),實驗用Java版的Z3進行約束求解.

    為了生成測試數(shù)據(jù),實驗為兩個服務定義了前置條件.實驗對本文提出的測試數(shù)據(jù)生成算法與現(xiàn)有方法進行代碼覆蓋率和效率的比較,以說明本方法的有效性.

    Triangle服務的前置條件如下:

    CT=C1∧C2,

    C1=(a>0)∧(b>0)∧(c>0)∧(a<100)

    ∧(b<100)∧(c<100)∧(a+b>c)

    ∧(b+c>a)∧(a+c>b),

    C2=((a=b∧a≠c)∨(b=c∧b≠a)∨(a=c∧a≠b))

    ∨(a=b∧b=c)∨(a≠b∧a≠c∧c≠b)).

    其中,條件C1對邊長的范圍做出限制以形成一個有效的三角形,條件C2列舉了所有可能的三角形類型的條件,以覆蓋更多的輸入情況.

    MiddleNumber服務的前置條件如下:

    CM=(i>0)∧(j>0)∧(k>0)

    ∧(i<100)∧(j<100)∧(k<100)

    ∧((k>i)∧(kj)).

    該條件對輸入?yún)?shù)的值進行范圍限制,并要求k介于i和j之間.

    表2列出了Triangle和MiddleNumber服務的前置條件約束,其中文獻[12]提出的測試生成方法(本文稱其為MATDG)并不支持變量之間的關聯(lián)約束,表中的約束是簡化后得到的.

    6.2 實驗結果

    問題1.本文提出的測試覆蓋準則在缺陷檢測方面的表現(xiàn)如何?

    實驗通過比較MATDG[12]、隨機方法以及本文所提方法的代碼級語句覆蓋率和分支覆蓋率來回答這個問題:代碼覆蓋率越高,缺陷檢測能力越好.

    實驗分別對Triangle和MiddleNumber服務進行測試,實驗結果如表3所列,其中SC%、BC%分別表示語句覆蓋率和分支覆蓋率,CN是不同方法生成的測試數(shù)據(jù)數(shù)量,Avg是每種方法對應統(tǒng)計項的均值.

    對于MATDG方法,實驗在兩種典型配置下生成測試數(shù)據(jù)<0,1>與<1,1>(配置表示分別為參數(shù)的每個無效等價類和有效等價類生成m和n個輸入,然后將它們組合成不同的測試數(shù)據(jù));對于隨機方法,實驗分別生成5個、10個測試數(shù)據(jù)以評估隨機方法的有效性;對于本文基于規(guī)約的方法,實驗分別生成滿足第4節(jié)中四種覆蓋準則的測試數(shù)據(jù).表3為每個服務分別統(tǒng)計了幾種代碼的覆蓋率,包括用于拒絕非法輸入的防御代碼、用于正常計算的代碼以及總代碼.根據(jù)表3的結果,圖6中(a)和(b)分別用條形圖對三種方法的語句覆蓋率和分支覆蓋率進行更直觀地比較.顯然,本文基于規(guī)約約束的方法同時具有最高的語句覆蓋率和分支覆蓋率.

    表2 Web服務的規(guī)約約束Table 2 Specification constraints of Web services

    表3 生成測試數(shù)據(jù)的語句覆蓋率(SC)和分支覆蓋率(BC)Table 3 Generated test data and their statement coverage(SC) and branch coverage(BC) rates

    圖6 比較三種方法的語句覆蓋率和分支覆蓋率Fig.6 Comparison of the three evaluated approaches in source code level statement and branch coverages

    然而,有些語句和分支仍未覆蓋到,這是因為使用有限數(shù)量的測試用例很難覆蓋所有的條件組合,滿足范式子句覆蓋的測試用例覆蓋了最多的分支和語句,尤其是正常計算代碼的覆蓋方面.

    問題2.本文中的測試數(shù)據(jù)生成算法能否用更少的測試數(shù)據(jù)來滿足文中提出的測試覆蓋準則?

    實驗通過比較達到相同規(guī)約約束級覆蓋率時隨機方法生成的測試用例數(shù)量與本文所提方法生成的測試用例數(shù)量來回答這個問題:數(shù)量越少,效果越好.

    表4列出了滿足四種規(guī)約約束級覆蓋準則所需的測試用例數(shù)量,可以看出,基于規(guī)約約束的方法只要使用少許幾個測試用例就能滿足規(guī)約約束級覆蓋準則,而隨機方法需要數(shù)百個用例才能達到相同的覆蓋率,因此基于 Z3 的算法在給定覆蓋準則下可以更為有效地生成低冗余的測試用例.

    問題3.測試數(shù)據(jù)生成算法的效率如何?

    圖7 生成測試數(shù)據(jù)的時間Fig.7 Time spent on test data generation

    實驗通過收集生成分別滿足四個規(guī)約約束級覆蓋標準的測試數(shù)據(jù)所花費的時間來說明測試數(shù)據(jù)生成算法的效率.圖7給出了為Triangle 服務和 MiddleNumber 服務生成測試數(shù)據(jù)時所花費的時間,可以看出,生成滿足判定覆蓋(DC)的測試數(shù)據(jù)所花時間最少,生成滿足范式子句覆蓋(NFCC)的測試數(shù)據(jù)所花時間稍多一點,而生成滿足條件覆蓋(CC)和判定條件覆蓋(DCC)的測試數(shù)據(jù)需要花費更多的時間.結合表3中的語句和分支覆蓋率可以得到以下結論:使用范式子句覆蓋準則生成的測試數(shù)據(jù)更有效,而且效率更高.

    表4 達到不同規(guī)約約束級覆蓋率時的測試用例數(shù)量Table 4 Test cases needed to achieve coverages at the different level of specification constraints

    7 結束語

    本文提出了一種基于規(guī)約約束的 Web 服務測試數(shù)據(jù)生成方法,該方法中使用的規(guī)約約束系統(tǒng)不僅支持簡單的服務輸入取值范圍約束,而且還支持服務輸入?yún)?shù)之間的復雜關聯(lián)約束.本文還提出了四種規(guī)約約束級覆蓋準則——判定覆蓋、條件覆蓋、判定條件覆蓋以及范式子句覆蓋.利用這些覆蓋準則,可以通過 Z3 SMT 求解器產生高覆蓋率的測試數(shù)據(jù),從而更好地揭示服務中的缺陷.本文的研究仍然存在一些不足,首先,實驗論證還有待在更大規(guī)模、更復雜 Web 服務上做進一步加強,另外,盡管本文的方法已經能夠達到較高測試覆蓋率,但仍有進一步提升的空間.為此,未來將開展更多實驗研究,為方法的應用提供更多參考.同時,計劃不斷研究新的覆蓋準則,如結構化測試中的修正條件判定覆蓋準則(MC/DC)[22]等,以完善所提出的方法.

    猜你喜歡
    前置條件子句規(guī)約
    命題邏輯中一類擴展子句消去方法
    命題邏輯可滿足性問題求解器的新型預處理子句消去方法
    房屋建筑和市政基礎設施工程施工招標投標管理辦法研究
    寫真地理(2020年21期)2020-09-06 14:12:26
    人工智能技術構筑智能政府的前置條件研究
    電力系統(tǒng)通信規(guī)約庫抽象設計與實現(xiàn)
    測控技術(2018年7期)2018-12-09 08:58:34
    論“自動投案”的司法適用
    一種在復雜環(huán)境中支持容錯的高性能規(guī)約框架
    西夏語的副詞子句
    西夏學(2018年2期)2018-05-15 11:24:42
    一種改進的LLL模糊度規(guī)約算法
    命題邏輯的子句集中文字的分類
    亚洲av电影在线观看一区二区三区| 国产日韩欧美视频二区| 日韩视频在线欧美| 国产白丝娇喘喷水9色精品| 亚洲精品自拍成人| 大码成人一级视频| 毛片一级片免费看久久久久| 狠狠婷婷综合久久久久久88av| 91aial.com中文字幕在线观看| 成人国语在线视频| 人妻人人澡人人爽人人| 十八禁高潮呻吟视频| 久久毛片免费看一区二区三区| 天堂中文最新版在线下载| 亚洲美女视频黄频| 亚洲成人手机| 日韩制服丝袜自拍偷拍| 久久久国产精品麻豆| 欧美精品一区二区免费开放| 欧美国产精品一级二级三级| 亚洲国产精品成人久久小说| 天天影视国产精品| 叶爱在线成人免费视频播放| 成年女人毛片免费观看观看9 | 久久精品人人爽人人爽视色| 国产熟女午夜一区二区三区| 国产成人av激情在线播放| 黄色视频在线播放观看不卡| 亚洲精品久久成人aⅴ小说| 国产av码专区亚洲av| 制服诱惑二区| av天堂久久9| 色婷婷久久久亚洲欧美| 激情视频va一区二区三区| 亚洲国产欧美日韩在线播放| 午夜福利乱码中文字幕| 在线精品无人区一区二区三| 亚洲美女黄色视频免费看| 激情五月婷婷亚洲| 少妇熟女欧美另类| 国产午夜精品一二区理论片| 国产黄频视频在线观看| 我的亚洲天堂| 久久久久久人人人人人| 女性生殖器流出的白浆| 如日韩欧美国产精品一区二区三区| 男女边吃奶边做爰视频| 侵犯人妻中文字幕一二三四区| 国产又爽黄色视频| 在线看a的网站| 99热网站在线观看| av电影中文网址| 久久精品国产亚洲av天美| 亚洲成av片中文字幕在线观看 | 9191精品国产免费久久| 久久精品国产鲁丝片午夜精品| www.av在线官网国产| 91aial.com中文字幕在线观看| 亚洲情色 制服丝袜| 侵犯人妻中文字幕一二三四区| 人妻 亚洲 视频| 最近最新中文字幕大全免费视频 | 国产国语露脸激情在线看| 青春草亚洲视频在线观看| 水蜜桃什么品种好| 国产av一区二区精品久久| 午夜福利网站1000一区二区三区| xxx大片免费视频| 国产免费视频播放在线视频| 久久精品国产亚洲av天美| 五月开心婷婷网| 如日韩欧美国产精品一区二区三区| 成人漫画全彩无遮挡| 一级a爱视频在线免费观看| 亚洲第一av免费看| 人成视频在线观看免费观看| 欧美精品国产亚洲| 色婷婷久久久亚洲欧美| 亚洲精品一二三| 日韩人妻精品一区2区三区| 国产成人精品婷婷| 国产精品嫩草影院av在线观看| tube8黄色片| 久久精品国产亚洲av高清一级| 一级毛片 在线播放| 日韩欧美精品免费久久| 免费黄频网站在线观看国产| 精品福利永久在线观看| www.精华液| 欧美精品亚洲一区二区| 亚洲精品一二三| 国产精品一国产av| av卡一久久| 黑人巨大精品欧美一区二区蜜桃| 欧美激情高清一区二区三区 | 春色校园在线视频观看| 国产日韩欧美在线精品| 亚洲激情五月婷婷啪啪| 色视频在线一区二区三区| 久热久热在线精品观看| 免费高清在线观看日韩| 七月丁香在线播放| 欧美日韩av久久| 考比视频在线观看| 欧美亚洲 丝袜 人妻 在线| 国产视频首页在线观看| 亚洲欧美日韩另类电影网站| 99re6热这里在线精品视频| 波多野结衣一区麻豆| 91在线精品国自产拍蜜月| 女的被弄到高潮叫床怎么办| 亚洲第一区二区三区不卡| 国产成人精品婷婷| 亚洲成人一二三区av| 99国产精品免费福利视频| 香蕉国产在线看| 黄片播放在线免费| 久久精品国产亚洲av天美| 精品国产乱码久久久久久男人| 中文字幕色久视频| 韩国av在线不卡| 欧美黄色片欧美黄色片| 日韩伦理黄色片| av卡一久久| 一个人免费看片子| 一级片免费观看大全| 国产片内射在线| 久久人人爽人人片av| 久久精品aⅴ一区二区三区四区 | a级毛片黄视频| 日韩电影二区| 国产极品天堂在线| 在线观看国产h片| 亚洲av免费高清在线观看| 日本欧美国产在线视频| 五月天丁香电影| 天堂俺去俺来也www色官网| 老汉色∧v一级毛片| 少妇被粗大的猛进出69影院| 国产成人精品久久二区二区91 | 日本免费在线观看一区| 精品久久久久久电影网| 国产av国产精品国产| 国产乱来视频区| 在线观看一区二区三区激情| 五月开心婷婷网| 纵有疾风起免费观看全集完整版| 叶爱在线成人免费视频播放| 大香蕉久久成人网| 精品一区二区免费观看| 黑人欧美特级aaaaaa片| 9热在线视频观看99| 如何舔出高潮| 赤兔流量卡办理| 精品人妻熟女毛片av久久网站| 91午夜精品亚洲一区二区三区| 久久久精品国产亚洲av高清涩受| 亚洲内射少妇av| 精品国产国语对白av| 美女视频免费永久观看网站| 丁香六月天网| 日韩,欧美,国产一区二区三区| 亚洲av电影在线进入| 成人毛片60女人毛片免费| 哪个播放器可以免费观看大片| 成年女人毛片免费观看观看9 | 91精品国产国语对白视频| 麻豆乱淫一区二区| 天天影视国产精品| 免费高清在线观看日韩| 午夜av观看不卡| 久久久久国产一级毛片高清牌| 亚洲成人手机| 中文字幕亚洲精品专区| 精品一区二区三卡| 亚洲成人av在线免费| 欧美日韩一级在线毛片| 亚洲精品久久午夜乱码| 侵犯人妻中文字幕一二三四区| 黄色 视频免费看| 日韩视频在线欧美| av有码第一页| 91午夜精品亚洲一区二区三区| av片东京热男人的天堂| 亚洲欧洲精品一区二区精品久久久 | 日韩制服丝袜自拍偷拍| 国产毛片在线视频| 亚洲av日韩在线播放| 波多野结衣一区麻豆| 一边亲一边摸免费视频| 性色avwww在线观看| 久热久热在线精品观看| 欧美在线黄色| 看免费成人av毛片| 亚洲av中文av极速乱| 精品国产乱码久久久久久小说| 在线观看三级黄色| 99九九在线精品视频| 丰满饥渴人妻一区二区三| tube8黄色片| 美女高潮到喷水免费观看| 亚洲一区二区三区欧美精品| 自拍欧美九色日韩亚洲蝌蚪91| 熟女少妇亚洲综合色aaa.| 免费观看性生交大片5| 免费日韩欧美在线观看| 国产精品久久久久久精品电影小说| 欧美 日韩 精品 国产| 久久国产精品男人的天堂亚洲| 日日啪夜夜爽| 国产精品久久久av美女十八| 18+在线观看网站| 精品酒店卫生间| 18在线观看网站| 一级片免费观看大全| 七月丁香在线播放| 国产免费视频播放在线视频| 国精品久久久久久国模美| 美女国产高潮福利片在线看| 热re99久久精品国产66热6| 少妇被粗大的猛进出69影院| 国产有黄有色有爽视频| 91国产中文字幕| 亚洲美女视频黄频| av国产精品久久久久影院| 春色校园在线视频观看| 三级国产精品片| 免费少妇av软件| 欧美日韩一区二区视频在线观看视频在线| 99热网站在线观看| 午夜日韩欧美国产| 99久久综合免费| 我要看黄色一级片免费的| 精品国产超薄肉色丝袜足j| 久久精品国产a三级三级三级| 国产又爽黄色视频| 美女高潮到喷水免费观看| 成人手机av| 熟女少妇亚洲综合色aaa.| 国产成人a∨麻豆精品| 激情视频va一区二区三区| 日韩精品免费视频一区二区三区| 国产精品一区二区在线观看99| 成人手机av| 综合色丁香网| 激情视频va一区二区三区| 黄片小视频在线播放| av网站免费在线观看视频| 桃花免费在线播放| 国产1区2区3区精品| 黄色 视频免费看| 欧美黄色片欧美黄色片| 2022亚洲国产成人精品| 可以免费在线观看a视频的电影网站 | 亚洲国产精品一区二区三区在线| 久久久国产一区二区| 亚洲欧美中文字幕日韩二区| 老司机亚洲免费影院| 欧美 日韩 精品 国产| 高清视频免费观看一区二区| 2022亚洲国产成人精品| 丰满乱子伦码专区| av不卡在线播放| 久久人人97超碰香蕉20202| 黄色一级大片看看| 一区在线观看完整版| 黄色怎么调成土黄色| 伊人久久大香线蕉亚洲五| 久久久久久久久久久免费av| 欧美日韩精品成人综合77777| 久久精品久久精品一区二区三区| 丝袜在线中文字幕| 黄色配什么色好看| 五月伊人婷婷丁香| 午夜福利视频精品| av在线app专区| 久久精品国产亚洲av高清一级| 欧美中文综合在线视频| 国产黄色视频一区二区在线观看| 国产不卡av网站在线观看| 在线观看免费日韩欧美大片| 精品第一国产精品| 欧美 日韩 精品 国产| 90打野战视频偷拍视频| 国产成人免费观看mmmm| 午夜福利在线免费观看网站| 日韩一区二区视频免费看| 免费在线观看黄色视频的| 午夜福利影视在线免费观看| 国产av精品麻豆| 精品一区在线观看国产| 亚洲国产毛片av蜜桃av| 观看av在线不卡| 国产精品99久久99久久久不卡 | 亚洲精品久久成人aⅴ小说| 99热国产这里只有精品6| av女优亚洲男人天堂| 国产精品av久久久久免费| 激情五月婷婷亚洲| 精品一区二区三卡| 人人妻人人澡人人看| 蜜桃国产av成人99| 欧美精品人与动牲交sv欧美| 黄色毛片三级朝国网站| 国产成人午夜福利电影在线观看| 国产精品人妻久久久影院| 性色av一级| 电影成人av| 国产成人免费无遮挡视频| 精品视频人人做人人爽| 精品国产乱码久久久久久小说| 亚洲国产色片| 久久久久久久久久久免费av| 91精品伊人久久大香线蕉| 在线观看免费视频网站a站| 日本-黄色视频高清免费观看| 国产人伦9x9x在线观看 | 日本av免费视频播放| 欧美日韩精品网址| 精品国产露脸久久av麻豆| av天堂久久9| 午夜免费观看性视频| 久久久久精品久久久久真实原创| 亚洲欧美日韩另类电影网站| 交换朋友夫妻互换小说| 国产免费一区二区三区四区乱码| 国产不卡av网站在线观看| 夫妻午夜视频| 亚洲精品国产av蜜桃| 最近最新中文字幕大全免费视频 | 国产97色在线日韩免费| 性色av一级| 免费观看在线日韩| 性色avwww在线观看| 欧美激情 高清一区二区三区| 爱豆传媒免费全集在线观看| 国产免费又黄又爽又色| av片东京热男人的天堂| 999久久久国产精品视频| 观看av在线不卡| 亚洲欧美中文字幕日韩二区| 久久国产精品大桥未久av| 毛片一级片免费看久久久久| 尾随美女入室| 免费在线观看黄色视频的| a级毛片黄视频| 亚洲经典国产精华液单| 啦啦啦在线观看免费高清www| 男人爽女人下面视频在线观看| 国产成人精品福利久久| av网站在线播放免费| 国产在线一区二区三区精| 欧美日韩成人在线一区二区| 午夜91福利影院| 波野结衣二区三区在线| 久久综合国产亚洲精品| 美女中出高潮动态图| 啦啦啦在线观看免费高清www| 日韩制服丝袜自拍偷拍| 街头女战士在线观看网站| 激情视频va一区二区三区| 亚洲欧美一区二区三区黑人 | 熟女电影av网| 99久久综合免费| 久久精品人人爽人人爽视色| 久久99热这里只频精品6学生| 久久精品熟女亚洲av麻豆精品| 国产一区亚洲一区在线观看| 伊人久久大香线蕉亚洲五| 亚洲精品日韩在线中文字幕| 国产乱来视频区| 男女免费视频国产| 一本久久精品| 九草在线视频观看| 亚洲精品久久午夜乱码| 午夜福利,免费看| 国产一区二区 视频在线| 国产精品麻豆人妻色哟哟久久| 亚洲av男天堂| 亚洲国产成人一精品久久久| 免费高清在线观看视频在线观看| 久久精品国产综合久久久| 国产精品一区二区在线观看99| 人人妻人人添人人爽欧美一区卜| 1024香蕉在线观看| 黑人欧美特级aaaaaa片| 久久久精品免费免费高清| 日韩三级伦理在线观看| 波多野结衣av一区二区av| 99热国产这里只有精品6| 国产乱来视频区| 国产精品无大码| 777久久人妻少妇嫩草av网站| 国产精品av久久久久免费| 一级毛片我不卡| 国产色婷婷99| 欧美xxⅹ黑人| 欧美精品国产亚洲| 97精品久久久久久久久久精品| 亚洲男人天堂网一区| 国产一区二区三区av在线| 日本爱情动作片www.在线观看| 国产成人欧美| 日韩,欧美,国产一区二区三区| 成人国产av品久久久| 美女脱内裤让男人舔精品视频| 女人精品久久久久毛片| 国产片特级美女逼逼视频| 国产成人精品福利久久| av线在线观看网站| 国产精品人妻久久久影院| 国产亚洲av片在线观看秒播厂| 大码成人一级视频| 在线观看人妻少妇| 欧美中文综合在线视频| 18+在线观看网站| 午夜久久久在线观看| 国产成人午夜福利电影在线观看| www.熟女人妻精品国产| 人妻 亚洲 视频| 2018国产大陆天天弄谢| 欧美在线黄色| 日韩av免费高清视频| 日韩视频在线欧美| av免费在线看不卡| 亚洲国产成人一精品久久久| 免费在线观看黄色视频的| 日日啪夜夜爽| 日本vs欧美在线观看视频| 免费少妇av软件| 日日撸夜夜添| 男人添女人高潮全过程视频| 一本色道久久久久久精品综合| 男人添女人高潮全过程视频| 精品午夜福利在线看| 一区福利在线观看| 2018国产大陆天天弄谢| 熟女av电影| 国产精品免费大片| 黄片小视频在线播放| 一级毛片电影观看| 亚洲久久久国产精品| 国产精品欧美亚洲77777| 人妻一区二区av| 久久午夜综合久久蜜桃| 日韩在线高清观看一区二区三区| 观看美女的网站| 亚洲欧美成人精品一区二区| av国产精品久久久久影院| 高清视频免费观看一区二区| 丰满迷人的少妇在线观看| 热99久久久久精品小说推荐| 久久青草综合色| 一个人免费看片子| 国产亚洲午夜精品一区二区久久| 国产午夜精品一二区理论片| xxxhd国产人妻xxx| 国产欧美亚洲国产| 国产免费一区二区三区四区乱码| 最近最新中文字幕大全免费视频 | 日本vs欧美在线观看视频| 国产成人精品一,二区| 如日韩欧美国产精品一区二区三区| 欧美 日韩 精品 国产| 国产成人91sexporn| 十八禁高潮呻吟视频| 亚洲国产欧美在线一区| 国产淫语在线视频| 天美传媒精品一区二区| 成人亚洲欧美一区二区av| 大片免费播放器 马上看| 国产福利在线免费观看视频| a级毛片黄视频| 国产精品成人在线| 免费看av在线观看网站| 性少妇av在线| 91成人精品电影| 97在线视频观看| 老汉色av国产亚洲站长工具| 国产成人a∨麻豆精品| 男女免费视频国产| 97人妻天天添夜夜摸| 国产 一区精品| 蜜桃国产av成人99| av免费在线看不卡| 欧美在线黄色| 亚洲精品久久午夜乱码| 不卡视频在线观看欧美| 99久久精品国产国产毛片| 香蕉丝袜av| 国产黄色视频一区二区在线观看| 丝袜人妻中文字幕| 欧美 亚洲 国产 日韩一| 老司机影院毛片| 春色校园在线视频观看| 这个男人来自地球电影免费观看 | 天天躁夜夜躁狠狠躁躁| 日韩精品有码人妻一区| 亚洲精品久久成人aⅴ小说| 97在线视频观看| 岛国毛片在线播放| av国产久精品久网站免费入址| 中文天堂在线官网| 三级国产精品片| 国产精品成人在线| 免费黄频网站在线观看国产| 亚洲国产欧美在线一区| 中文字幕人妻丝袜一区二区 | 不卡av一区二区三区| 国产成人精品久久久久久| 久久久久久免费高清国产稀缺| 亚洲色图 男人天堂 中文字幕| 婷婷成人精品国产| 少妇被粗大猛烈的视频| 亚洲av综合色区一区| 亚洲美女视频黄频| 日本91视频免费播放| 日韩大片免费观看网站| 人妻一区二区av| 黄色怎么调成土黄色| 肉色欧美久久久久久久蜜桃| 中文乱码字字幕精品一区二区三区| 亚洲色图 男人天堂 中文字幕| 在线亚洲精品国产二区图片欧美| 精品国产一区二区久久| 亚洲人成网站在线观看播放| 在线观看国产h片| 欧美日韩综合久久久久久| 国产精品久久久久久av不卡| 国产av精品麻豆| 国产精品久久久久成人av| 国产有黄有色有爽视频| 欧美成人午夜精品| 亚洲天堂av无毛| 午夜精品国产一区二区电影| 亚洲国产av新网站| 丝袜喷水一区| 精品第一国产精品| 亚洲精品美女久久av网站| av不卡在线播放| 久久免费观看电影| 在线免费观看不下载黄p国产| 视频区图区小说| 亚洲少妇的诱惑av| 国产一区二区 视频在线| 国产在线视频一区二区| a级毛片黄视频| 日韩人妻精品一区2区三区| 99热全是精品| 亚洲精品,欧美精品| 久久久久久久大尺度免费视频| 美女国产视频在线观看| 91成人精品电影| 哪个播放器可以免费观看大片| 三上悠亚av全集在线观看| 多毛熟女@视频| 99re6热这里在线精品视频| www日本在线高清视频| 伊人亚洲综合成人网| 熟妇人妻不卡中文字幕| 国产人伦9x9x在线观看 | 国产 精品1| 亚洲国产av影院在线观看| 亚洲精品一二三| 日韩免费高清中文字幕av| 久久99一区二区三区| 18禁观看日本| 免费不卡的大黄色大毛片视频在线观看| 在线精品无人区一区二区三| 黄色毛片三级朝国网站| 日韩人妻精品一区2区三区| 国产精品久久久久久精品古装| 人人妻人人澡人人看| 两个人免费观看高清视频| 日韩成人av中文字幕在线观看| 永久免费av网站大全| 亚洲精品第二区| 日日撸夜夜添| 久久婷婷青草| 午夜91福利影院| 90打野战视频偷拍视频| 黄色毛片三级朝国网站| 久久精品人人爽人人爽视色| 9色porny在线观看| 一区福利在线观看| av网站在线播放免费| 国产在线免费精品| av电影中文网址| 观看av在线不卡| 国产精品久久久av美女十八| 一二三四中文在线观看免费高清| 欧美激情高清一区二区三区 | 亚洲成人一二三区av| 欧美日韩亚洲国产一区二区在线观看 | 亚洲成色77777| 建设人人有责人人尽责人人享有的| 日韩精品有码人妻一区| 亚洲精品一二三| 亚洲色图综合在线观看| 国产有黄有色有爽视频| 18禁动态无遮挡网站| 久久久久久久精品精品| 欧美激情高清一区二区三区 | 男女无遮挡免费网站观看| 成人18禁高潮啪啪吃奶动态图| 亚洲av日韩在线播放| 国产乱来视频区| 久久精品国产自在天天线| 自线自在国产av| 精品国产一区二区久久| 蜜桃在线观看..| 日日爽夜夜爽网站| 永久免费av网站大全| 9热在线视频观看99| 男的添女的下面高潮视频|