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

    基于謂詞抽象的測試用例約簡生成方法

    2012-08-10 01:52:38郭曦張煥國
    通信學(xué)報 2012年3期
    關(guān)鍵詞:謂詞測試用例約簡

    郭曦,張煥國,2

    (1. 武漢大學(xué) 計算機學(xué)院,湖北 武漢 430072;2. 武漢大學(xué) 空天信息安全與可信計算教育部重點實驗室,湖北 武漢 430072)

    1 引言

    軟件開發(fā)是一個不斷迭代和演化的過程,需要頻繁地進行測試,同時測試用例集的規(guī)模隨著測試需求的變更在不斷地增大,此時不可避免地存在冗余的測試用例,即測試用例集的某個子集也滿足所有的測試需求。由于測試用例在設(shè)計和維護等階段均有較大開銷,因而在滿足測試需求的基礎(chǔ)上,有必要生成約簡的測試用例集,其目標是設(shè)計并使用一組數(shù)量較少的測試用例滿足給定的測試需求,在提高軟件測試效率的同時降低測試成本。

    目前,測試用例約簡[1]的方法是:首先針對每個測試需求生成對應(yīng)的測試用例,所有測試需求對應(yīng)的測試用例組成初始的測試用例集;再使用啟發(fā)式方法、整數(shù)規(guī)劃方法等對這個初始的測試用例集進行約簡,去掉冗余的測試用例。這種方法的缺點在于它的效果取決于最初選定的測試用例集,不能完全實現(xiàn)根據(jù)測試目標對測試用例集的整體優(yōu)化。此外,與測試用例集約簡相關(guān)的測試用例集的錯誤檢測效率問題也引起研究人員的關(guān)注,先后提出了多種測試用例優(yōu)先級技術(shù),以提高測試用例集的錯誤檢測效率。

    軟件系統(tǒng)狀態(tài)空間的大小和對應(yīng)的測試用例集的數(shù)量有直接關(guān)系,最壞情況下,軟件系統(tǒng)的狀態(tài)空間和系統(tǒng)的規(guī)模呈指數(shù)關(guān)系。在測試過程中,往往因為模型的狀態(tài)空間爆炸問題而難以產(chǎn)生精簡的測試用例集,從而影響對軟件系統(tǒng)所具有的性質(zhì)的驗證效率。謂詞抽象是一類特殊的屬性保持的抽象方法,是解決或者緩解狀態(tài)空間爆炸最有效的方法之一[2],謂詞在原始模型的狀態(tài)空間上定義了一個等價關(guān)系,通過狀態(tài)集合之間的映射,把原始模型轉(zhuǎn)換成為一個易于處理的、包含有限狀態(tài)的抽象模型。在抽象模型中成立的性質(zhì),在原始模型中也成立,而在抽象模型中不能證明真?zhèn)蔚男再|(zhì),在原始模型中可能成立,也可能不成立。在測試用例生成階段,通常利用謂詞抽象自動驗證工具的反例抽象精化功能:為了生成滿足某個性質(zhì)p的測試用例,在程序中檢驗p?的滿足情況,若出現(xiàn)反例,則表明可以生成滿足p的測試用例;若找不出反例,則表明沒有測試用例與p對應(yīng)。

    針對大規(guī)模軟件系統(tǒng)狀態(tài)遷移數(shù)量龐大,容易導(dǎo)致狀態(tài)空間爆炸,從而難以生成精簡的測試用例集對軟件系統(tǒng)所具有的性質(zhì)進行驗證的問題,本文以系統(tǒng)狀態(tài)的遷移作為研究對象,提出一種基于謂詞抽象的測試用例約簡生成方法。首先通過謂詞在原始系統(tǒng)的狀態(tài)空間上定義等價關(guān)系,得到狀態(tài)約簡的抽象模型;然后基于抽象模型的狀態(tài)遷移關(guān)系,給出針對每個等價類的測試用例約簡生成算法,從而在降低原始模型狀態(tài)冗余的情況下生成約簡的測試用例集。

    2 相關(guān)工作及存在的問題

    對于軟件系統(tǒng)M,設(shè)其測試目標是由m個測試需求組成的集合R={r1, r2,…,rm},同時對每個測試需求生成n個測試用例集T={t1, t2,…,tn}?,F(xiàn)有的測試用例集約簡方法通過尋找T的某個子集,用盡可能少的測試用例滿足測試需求集R??梢宰C明,測試用例集的約簡是一個NP-C問題[3],故一般采用啟發(fā)式算法來獲得近似解。

    Chvatal等人提出貪心(greedy)算法(G算法)來求解測試用例集約簡問題[4],它每次從測試用例集T中選擇一條測試用例,使它能最大程度上滿足測試需求集R中未被滿足的需求,然后從R中刪除這些已被滿足的需求,直到所有的需求都被滿足,最壞情況下,該算法的時間復(fù)雜度為O( mn·min(m, n))。

    Harrold提出了一種啟發(fā)式方法[1],它根據(jù)測試用例的重要性來選擇測試用例(HGS算法)。對于測試需求Ri和Rj,如果i<j,則該算法認為在重要程度上,Ri對應(yīng)的測試用例比Rj對應(yīng)的測試用例要高。該方法首先將測試需求r1, r2,…,rm劃分到集合R1, R2,…,Rk( k≤n)中,其中Ri( i=1,2,…,k )為所有被T中i個測試用例所滿足的測試需求,即首先選出集合R1對應(yīng)的測試用例,然后使用貪心算法選擇滿足R2的測試用例,直到R2對應(yīng)的測試需求均被滿足,再依次處理集合中剩下的測試需求,最壞情況下,該算法的時間復(fù)雜度為O( m( m+n) k)。

    Chen等人在貪心算法的基礎(chǔ)上提出GE算法和GRE算法[5]。GE算法使用必不可少策略挑選出初始的測試用例集,再通過貪心算法對其進行約簡,其時間復(fù)雜度仍為O( mn·min(m, n))。GRE算法循環(huán)交替使用1-1冗余策略以及必不可少策略生成初始測試用例集,再通過貪心算法選擇其他的測試用例以滿足剩下的測試需求。最壞情況下,GRE算法的時間復(fù)雜度為O(min(m, n)( m+n2k)),k表示一個測試用例最多能滿足的測試需求的個數(shù)。

    Lee等人提出的整數(shù)規(guī)劃方法[6]將最小代表集的選擇問題轉(zhuǎn)換為整數(shù)規(guī)劃問題,在理論上可以生成滿足R的最優(yōu)測試用例集,但該算法的運算開銷呈指數(shù)級增長,計算復(fù)雜性也較高。

    以上這幾種算法都是針對測試用例集的簡化策略,章曉芳等[7]在上述方法的基礎(chǔ)上提出一種對測試需求進行約簡的測試用例集優(yōu)化方法,通過建立測試用例集和測試需求集之間的映射,判斷是否存在一個測試用例滿足多個測試需求的情況。程亮等[8]結(jié)合安全操作系統(tǒng)的對測試的需求,提出了簡并測試集,設(shè)計基于安全狀態(tài)轉(zhuǎn)移的測試集生成方法。

    目前,現(xiàn)有的測試用例集約簡方法中,基于系統(tǒng)的狀態(tài)空間約簡的研究較少。徐明迪等[9]采用標記變遷系統(tǒng)對可信計算平臺信任鏈進行測試,從易測性對信任鏈的狀態(tài)進行描述并對系統(tǒng)的動作進行約簡,為測試用例構(gòu)造方法提供了理論依據(jù)。本文在其基礎(chǔ)上,進一步以軟件系統(tǒng)的狀態(tài)遷移作為研究對象,通過謂詞抽象的方法對軟件系統(tǒng)的初始狀態(tài)集合進行等價類劃分,這樣可以有效地減少系統(tǒng)狀態(tài)集合內(nèi)部的冗余和后續(xù)約簡計算的工作量,并依據(jù)等價的抽象狀態(tài)集合以及抽象狀態(tài)遷移關(guān)系生成約簡的測試用例集,提高對軟件系統(tǒng)所具有的性質(zhì)進行驗證的效率。

    3 系統(tǒng)模型狀態(tài)約簡與等價類的問題求解

    對于一個軟件系統(tǒng),理想的測試用例集是在滿足測試需求的基礎(chǔ)上,用例的數(shù)量要盡可能少?,F(xiàn)有的二叉判定圖和樹型結(jié)構(gòu)等約簡測試用例的方法,都是以系統(tǒng)所能達到的狀態(tài)作為操作對象。實際上,決定測試用例集規(guī)模的直接因素往往不是系統(tǒng)的狀態(tài)數(shù)量,而是狀態(tài)遷移的數(shù)量。

    為了更好地表示軟件系統(tǒng)的狀態(tài)以及狀態(tài)間的遷移關(guān)系,通過謂詞抽象技術(shù),使用謂詞表示軟件系統(tǒng)的狀態(tài)變遷,可以有效地對大規(guī)模軟件系統(tǒng)的狀態(tài)進行約簡。謂詞抽象使用一組有限數(shù)量的謂詞把系統(tǒng)表示為有限狀態(tài)機模型,該模型就是對原始系統(tǒng)的一種抽象,它較原始系統(tǒng)有更小的狀態(tài)集合,其中每一種狀態(tài)屬于一個等價類,每個等價類里面包含若干個滿足謂詞劃分的原始狀態(tài)。本節(jié)還證明了一個基于原始模型系統(tǒng)狀態(tài)空間的問題:經(jīng)過等價類劃分后得到若干個子問題,其中每個等價類對應(yīng)一個子問題,首先對子問題進行求解,再將各子問題的解組合起來就得到原問題的解,該方法可以用來指導(dǎo)構(gòu)建基于原始模型的約簡測試用例集。

    3.1 抽象狀態(tài)的形式化定義

    設(shè)原始系統(tǒng)模型M的狀態(tài)集合為C,初始狀態(tài)集合為IC,狀態(tài)遷移關(guān)系集合為RC,謂詞在狀態(tài)集合C上定義一個等價關(guān)系,該等價關(guān)系把原始模型的初始狀態(tài)集合劃分成若干個等價類,每個等價類包含一個或多個狀態(tài),2個狀態(tài)等價當(dāng)且僅當(dāng)它們屬于同一個等價類。對于一組謂詞Φ=(φ1,φ2,…,φn),和一組與之對應(yīng)的布爾變量B=(B1, B2,…,Bn),使用謂詞公式φ來表示原始模型的狀態(tài)C,并使用變量B1, B2,…,Bn上的一組正交布爾表達式來表示對應(yīng)的抽象模型的狀態(tài)集合A。抽象狀態(tài)表示為A( B1, B2,…,Bn),其初始狀態(tài)集合記為IA,每個抽象狀態(tài)與一個等價類相對應(yīng)。為了表示模型的原始狀態(tài)和抽象狀態(tài)之間的關(guān)系,給出如下定義。

    定義1 抽象算子α把模型的原始狀態(tài)φ映射到抽象模型對應(yīng)的抽象狀態(tài):

    定義2 精化算子γ將抽象模型對應(yīng)的抽象狀態(tài)映射到模型的原始狀態(tài):

    對于抽象模型的抽象狀態(tài)A( B1, B2,…,Bn),使用謂詞φi替換其中對應(yīng)的Bi,即可得到該抽象狀態(tài)對應(yīng)的所有原始狀態(tài)。由定義1和定義2可知:原始狀態(tài)與抽象狀態(tài)是一對一的關(guān)系,而抽象狀態(tài)與原始狀態(tài)是一對多的關(guān)系。

    3.2 基于等價類劃分的問題求解

    由于謂詞在原始模型M的狀態(tài)集合上定義等價關(guān)系,M中每一個狀態(tài)屬于一個等價類,而一個等價類是用一個抽象狀態(tài)表示,故抽象狀態(tài)可以反映出原始模型狀態(tài)之間的關(guān)系?;诘葍r類劃分的方法可以將原問題分解為若干個子問題并經(jīng)過分別求解,劃分后的問題狀態(tài)空間遠小于原問題狀態(tài)空間,并且若某個子問題無解,則可以確定原問題無解。下面給出原始模型狀態(tài)中的等價類定義。

    定義3 對于一個基于原始模型的狀態(tài)空間問題,若原始狀態(tài)集合C依據(jù)謂詞集合Φ劃分成了若干個子狀態(tài)集合{C1, C2,…,Ck},稱Ci(1≤i≤k)是C中關(guān)于Φ的一個等價類,如果Ci滿足如下條件:

    1) Ci是C的一個子集;

    2) Ci中每個狀態(tài)都同時滿足Φ所對應(yīng)的一組布爾變量B的取值;

    3) Ci中任意一個狀態(tài)與jC中任意一個狀態(tài)關(guān)于Φ所對應(yīng)的布爾變量B取不同的值,其中i≠j,1≤i, j≤k。

    一個原始模型的狀態(tài)空間問題的一個等價類就是它的一個子問題,如果狀態(tài)集合C中任意一個狀態(tài)關(guān)于Φ所對應(yīng)的布爾變量的取值均相同,即原始模型不能劃分出一個以上的等價類,則稱該狀態(tài)空間問題為不變等價類,此時系統(tǒng)的狀態(tài)不能進行等價類劃分。

    定理1 針對一個基于原始模型M的狀態(tài)空間問題,如果可以通過謂詞集合Φ劃分為若干個等價類(即子問題),那么這些子問題可以單獨求解,并且這些子問題解的組合就是原問題的解。

    證明 由定義1,在抽象算子α運算過程中,系統(tǒng)M的狀態(tài)集合C依據(jù)謂詞集合Φ進行劃分:{C1, C2,…,Ck},每個劃分Ci( Ci?C)都是關(guān)于Φ的一個等價類,k為等價類的個數(shù),即M的問題Q被分解成若干個子問題{q1, q2,…,qk}。設(shè)Ci中的狀態(tài)c1和Cj中的狀態(tài)c2關(guān)于謂詞Φ集合布爾變量B的取值分別為和,根據(jù)定義3,≠,即表示一個等價類中的任意狀態(tài)對應(yīng)的布爾變量的真值不會影響到另一個等價類中任意一個狀態(tài)對應(yīng)的布爾變量的真值,那么每個子問題就可以在抽象模型上單獨進行求解。在求得每個子問題解的基礎(chǔ)上,根據(jù)定義2,抽象模型中各個子問題,可以通過精化算子γ映射到原始模型,依據(jù)謂詞抽象的性質(zhì),在抽象模型中成立的性質(zhì),在原始模型中也同樣成立,故在抽象模型中所求得的每個子問題的解s,同樣也是原始模型中原問題的解,由于在子問題求解過程中,不同等價類中的狀態(tài)之間關(guān)于布爾變量B的取值之間不會產(chǎn)生沖突,所以這些子問題的解的組合〈s1, s2,…,sn〉 就是原問題的解。 證畢

    定理1表明,一個基于原始模型的狀態(tài)空間的測試用例生成問題,可以依據(jù)謂詞抽象操作將狀態(tài)空間劃分為若干個子問題并單獨求解,若每個子問題都有解,則原問題也有解。經(jīng)謂詞抽象后,抽象模型擁有較少的狀態(tài)空間及狀態(tài)遷移關(guān)系,此時對每個等價類(子問題)生成約簡的測試用例,最后將各個等價類所生成的測試用例集組合起來,就得到原始模型的約簡測試用例集。

    4 測試用例約簡生成方法

    通過對原始模型進行謂詞抽象處理,得到約簡的抽象模型,它包含若干原始模型狀態(tài)集合上的等價類。在生成測試用例之前,首先需要獲得抽象模型中的狀態(tài)遷移集合,作為測試用例生成的基礎(chǔ),然后對每一個等價類中的狀態(tài)集合,生成針對原始系統(tǒng)模型待驗證性質(zhì)的測試用例,最后依據(jù)等價類劃分問題求解的性質(zhì),得到針對原始模型的約簡測試用例。

    4.1 抽象模型狀態(tài)遷移生成算法

    基于謂詞的抽象模型的狀態(tài)取決于所使用的謂詞集合,狀態(tài)遷移關(guān)系的復(fù)雜程度對測試用例的構(gòu)造有直接關(guān)系,故需要生成抽象狀態(tài)的遷移關(guān)系,下面給出系統(tǒng)模型M遷移關(guān)系的定義及其性質(zhì)。

    定義4 對于一個原始模型的狀態(tài)空間集合C及其狀態(tài)遷移集合RC,如果有c1∈C, c2∈C ,并且(c1→c2)∈RC ,則稱c1和c2之間存在直接遷移關(guān)系。

    定義5 對于一個原始模型的狀態(tài)空間集合C及其狀態(tài)遷移集合RC,如果有c1, c2, c3∈C,并且c1和c2之間、c2和c3之間均存在直接遷移關(guān)系,則稱c1和c3之間存在間接遷移關(guān)系。

    定義6 直接遷移和間接遷移統(tǒng)稱為遷移關(guān)系。

    遷移關(guān)系反映出系統(tǒng)狀態(tài)之間的轉(zhuǎn)換關(guān)系以及狀態(tài)的可達情況,并能夠指導(dǎo)系統(tǒng)狀態(tài)的等價關(guān)系的構(gòu)建。下面給出遷移關(guān)系的性質(zhì)。

    性質(zhì)1 遷移關(guān)系具有傳遞性,即如果1c和2c之間、2c和3c之間均存在遷移關(guān)系,則1c和3c之間存在遷移關(guān)系。

    原始模型遷移關(guān)系集合RC與抽象模型遷移關(guān)系集合RA的關(guān)系是:設(shè)與初始狀態(tài)φ所關(guān)聯(lián)的抽象狀態(tài)是A( B1, B2,…,Bn),φ對應(yīng)的原始狀態(tài)遷移關(guān)系記為,其中Rφ?RC,Rφ是原始狀態(tài)φ對應(yīng)的原始模型狀態(tài)遷移關(guān)系,則與Tj關(guān)聯(lián)的抽象模型狀態(tài)遷移關(guān)系通過如下表達式確定[10]:

    其中,pj是Tj的進行語義操作的決定條件,即當(dāng)前狀態(tài)若滿足pj,才存在遷移關(guān)系。在抽象遷移關(guān)系中,若成立,那么(A( B1, B2,…,Bn))=false,即抽象狀態(tài)A( B1, B2,…,Bn)在中無后繼狀態(tài)。表示在遷移關(guān)系Tj下,當(dāng)前狀態(tài)的后繼狀態(tài)。若post[ Tj]成立,則ci的值為Bi;若post[ Tj](A(|))??φi成立,則ci的值為?Bi,若均不成立,則ci的值為true。

    在定義了初始狀態(tài)集合IC、初始狀態(tài)遷移關(guān)系集合RC的原始模型后,就可以使用抽象算子α'和求出抽象模型。抽象模型的初始狀態(tài)集合為IA,抽象狀態(tài)遷移關(guān)系集合為RA。算法1給出了抽象遷移關(guān)系集合RA的求解過程。

    算法1 抽象模型的狀態(tài)遷移關(guān)系生成算法。

    輸入:謂詞集合Φ、原始模型的初始狀態(tài)集合IC,狀態(tài)遷移關(guān)系集合RC。

    輸出:相對于謂詞集合Φ的抽象模型A的狀態(tài)遷移集合。

    1) α' (Φ):=∧{Bi|Φ?φi,1≤i≤n}; //初始化抽象算子α'

    2) Ainit:=α'(IC);//初始化A的初始狀態(tài)集合

    3) Arest:=Ainit; //初始化未處理的抽象狀態(tài)

    4) Atran:=null; //初始化狀態(tài)遷移關(guān)系

    5) while(Arest不為空)

    6) 從Arest中取出一個抽象狀態(tài)A';

    9) Atran:=Atran+A'tran;//更新Atran集合

    10) Arest:=Arest-{A '};//更新Arest集合

    11) end while

    12) returnAtran;

    4.2 基于狀態(tài)約簡的測試用例生成算法

    測試用例集的約簡基于模型系統(tǒng)狀態(tài)遷移的約簡,原始模型狀態(tài)集合依據(jù)謂詞集合Φ經(jīng)算法1得到抽象狀態(tài)遷移集合,由于每個抽象狀態(tài)對應(yīng)一個等價類,故以每一個等價類中的狀態(tài)遷移集合為研究對象,通過謂詞抽象自動驗證工具對原始模型所具有的性質(zhì)進行驗證,若不滿足該性質(zhì),工具可以自動返回不滿足該性質(zhì)的程序執(zhí)行路徑,并以此生成針對每個等價類的測試用例集。依據(jù)定理1,把抽象狀態(tài)中每個等價類的測試用例組合起來,就可以得到原始模型的約簡測試用例。

    本文的測試用例約簡生成方法首先針對每個等價類所生成約簡的測試用例。對于測試用例ti和tj,它們之間存在如下關(guān)系。

    1) 包含關(guān)系:若ti∩tj=ti,則ti包含于tj,記為ti?tj,它表明ti對應(yīng)的狀態(tài)遷移集合包含在tj對應(yīng)的狀態(tài)遷移集合中。

    2) 相交關(guān)系:若ti∩tj≠?,則ti與tj之間存在交集,記為ti⊕tj,它表明ti和tj有公共的狀態(tài)遷移關(guān)系。

    3) 獨立關(guān)系:若ti∩tj=?,則ti與tj相互獨立,記為ti<>tj,即ti和tj沒有公共的狀態(tài)遷移集合。

    其中包含關(guān)系是相交關(guān)系ti-ti∩tj≠?的特例。在測試用例約簡生成過程中,可以根據(jù)以上3種狀態(tài)關(guān)系對每個等價類中的測試用例集進行約簡,顯然包含關(guān)系和相交關(guān)系可以約簡,而獨立關(guān)系不能進行約簡。其約簡規(guī)則如下。

    若ti?tj,由于ti對應(yīng)的狀態(tài)遷移集合包含在tj對應(yīng)的狀態(tài)遷移集合之中,故約簡后的結(jié)果是ti。

    若ti⊕tj,由于ti和tj之間存在部分重合關(guān)系,將ti和tj對應(yīng)的測試用例重合的部分作為約簡后的結(jié)果,即保留ti∩tj。

    若ti<>tj,此時ti和tj之間沒有公共的遷移狀態(tài),此時無法進行約簡操作。

    在生成測試用例的時候,由于每個等價類可能對應(yīng)于原始模型中多個狀態(tài),如果不能生成一條測試用例滿足該等價類中的各種狀態(tài),此時需要將測試用例依據(jù)以上3種關(guān)系進行約簡,這樣可以在滿足原始模型狀態(tài)遷移關(guān)系的同時,能夠生成規(guī)模較小的測試用例集。

    本文是針對原始模型待驗證的性質(zhì)集合P來生成測試用例的,故需要對這些性質(zhì)進行形式化描述,作為謂詞抽象自動驗證工具的輸入?yún)?shù)。這里的性質(zhì)集合P就是謂詞抽象過程中待驗證的原始模型所具有的性質(zhì)集合。

    算法2 每個等價類的測試用例約簡生成算法。

    輸入:經(jīng)形式化描述的待驗證的性質(zhì)集合P。

    輸出:約簡的測試用例集RT。

    1) :RTnull=;//初始化約簡的測試用例集

    2) :STnull=;//初始化所有測試用例所包含的狀態(tài)遷移集合

    3) while(P不為空)

    4) 從P中選擇一條待驗證的性質(zhì)p;

    5) P:=P-{p};//從集合P中刪除p

    6) T:=genTestCase( p);//生成針對p的測試用例T

    7) foreachpi∈P( pi≠p)do

    8) satisfy( T, pi);//驗證T是否滿足pi

    9) end

    10) E:=tran( T)∩ST;//生成已包含在之前測試用例所覆蓋的狀態(tài)

    11) if getSubSuite( E)不為空then

    13) foreachT'∈getSubSuite( E)except TLdo

    14) ':'TTE=-;//更新'T集合

    15) end

    16) end

    17) ST:=ST+tran( T);//更新ST集合

    18) :RTRTT=+;//更新RT集合

    19) end while

    算法2依據(jù)每個等價類中的狀態(tài)之間的關(guān)系,針對原始模型待驗證的性質(zhì),調(diào)用謂詞抽象自動驗證工具生成對應(yīng)的測試用例,并對生成的測試用例集進行約簡。經(jīng)前面的分析可知,每一個等價類中只有包含關(guān)系和相交關(guān)系的測試用例可以進行約簡。算法首先從待驗證的性質(zhì)集合中選取一條性質(zhì),通過函數(shù)genTestCase( p)調(diào)用謂詞抽象自動驗證工具生成針對性質(zhì)p的測試用例T,并驗證T是否還可以滿足性質(zhì)集合P中其他的性質(zhì),若能夠滿足,則從P刪除對應(yīng)的性質(zhì)。函數(shù)satisfy( T, pi)用來驗證測試用例是否滿足某些性質(zhì)。函數(shù)tran( T)記錄測試用例所包含的狀態(tài)遷移集合,它與ST集合求交集,得出已包含在之前測試用例所覆蓋的狀態(tài)E。函數(shù)getSubSuite( E)生成包含狀態(tài)E的所有測試用例集,并從中選擇包含狀態(tài)數(shù)最多的測試用例TL,同時刪除其他用例中包含E的部分,并更新ST和RT集合,直到P集合為空。

    圖1顯示了對測試用例進行約簡過程,其中圖1(a)表示3個測試用例:t1=〈s0, s1〉,t2=〈s0, s1, s2〉,t3=〈s0, s1, s2, s3〉,它們分別顯示各自所包含的狀態(tài)以及狀態(tài)遷移關(guān)系,依據(jù)本節(jié)引入的約簡規(guī)則,使用算法2可以生成約簡后的測試用例t,如圖1(b)所示,該測試用例t可以替代t1, t2, t3,以減少系統(tǒng)依據(jù)測試用例進行測試環(huán)境初始化所帶來的開銷。

    圖1 測試用例約簡過程

    算法復(fù)雜性方面,由于算法2是一種基于線性搜索的測試用例約簡方法,對于每條性質(zhì)所生成的測試用例都需要對P中其他性質(zhì)進行檢驗,其時間復(fù)雜度為O( k),其中k=|P|,故整個算法的時間復(fù)雜度為O( k2),相對于貪心算法,算法2的時間復(fù)雜度較低,效率也更高。需要說明的是,通過謂詞抽象自動驗證工具,該算法可以同時得到P中不能針對謂詞集合Φ生成測試用例的性質(zhì),這些性質(zhì)的來源可能是謂詞抽象自動驗證工具無法為其生成測試用例,也可能是謂詞集合需要進一步精化再來生成該性質(zhì)的測試用例。

    對于每個等價類生成的約簡測試用例集{RT1, RT2,…,RTk},其中k=|IA|,把RT1, RT2,…,RTk依據(jù)算法1得到的抽象狀態(tài)遷移關(guān)系RA進行連接就可以得到對應(yīng)于原始模型系統(tǒng)的測試用例集,該集合就是最后約簡的測試用例集。RT1, RT2,…,RTk的連接過程是:設(shè)抽象模型的遷移關(guān)系為I1→I2→…→Ik,其中k=|IA|,則RT1, RT2,…,RTk依據(jù)抽象模型遷移關(guān)系構(gòu)建序列:RT1→RT2→…→RTk,對于RT1→RT2,把RT1中的每條測試用例與RT2中的每條測試用例依據(jù)原始狀態(tài)遷移關(guān)系集合RC進行連接,依次拓展到RTk。

    圖2表示2個測試用例的連接過程,設(shè)t1∈RT1, t2∈RT2,(s3→s5)∈RC, 測 試 用 例t1=s0, s2, s3,t2=s5, s6, s7,將t1和t2連接所得到的測試用例t=s0, s2, s3, s5, s6, s7。

    圖2 不同等價類的測試用例連接過程

    4.3 狀態(tài)約簡實例分析

    本節(jié)通過一個實例,對基于謂詞抽象方法的原始模型狀態(tài)約簡過程進行描述。對于一個原始模型,設(shè)其原始狀態(tài)集合C={si|si=i,0≤i ≤14},狀態(tài)遷移關(guān)系集合RC為

    圖3上部分反映原始狀態(tài)及狀態(tài)間的遷移關(guān)系。謂詞集合Φ為{φ1, φ2, φ3, φ4},其中φ1=si<5,φ2=si<7,φ3=si>10,φ4=si>12。與φ1,φ2, φ3,φ4關(guān)聯(lián)的布爾變量是B1, B2, B3, B4,按照算法1,各狀態(tài)相對于謂詞集合Φ的抽象狀態(tài)為

    此時,抽象模型對應(yīng)的抽象狀態(tài)集合A為

    抽象狀態(tài)所對應(yīng)的遷移關(guān)系集合:

    圖3的下部分顯示了基于謂詞抽象所得到的約簡模型及抽象狀態(tài)之間的遷移關(guān)系。通過對比,原始模型的狀態(tài)經(jīng)謂詞抽象操作后被劃分成了5個等價類,每個等價類包含多個原始模型的狀態(tài),抽象模型的狀態(tài)數(shù)量和狀態(tài)間的遷移關(guān)系的復(fù)雜程度均明顯減少。約簡的狀態(tài)模型作為測試用例生成的前期處理,有助于生成較小規(guī)模的測試用例集。

    圖3 謂詞抽象處理前后系統(tǒng)狀態(tài)的遷移關(guān)系

    5 測試用例約簡生成的仿真實驗

    為了驗證本文提出的方法的有效性,進行了一系列仿真實驗,把現(xiàn)有的幾種典型的測試用例約簡方法和本文所提出的方法進行對比。實驗環(huán)境是2.6.24-24內(nèi)核的Ubuntu 8.10版Linux系統(tǒng),2.2GHz的處理器,2GB的物理內(nèi)存空間。

    仿真實驗的方案是:構(gòu)建原始模型的程序控制流圖(CFG),根據(jù)CFG設(shè)定初始的謂詞集合;為了驗證原始模型是否所具有待驗證的性質(zhì),使用BLAST工具[11]構(gòu)建基于初始謂詞的抽象模型,并使用定理證明器Simplify[12]對抽象狀態(tài)遷移關(guān)系進行求解;在獲得抽象模型的狀態(tài)遷移關(guān)系后,使用本文的算法生成約簡的測試用例;由于測試用例約簡問題是NP-C問題,一般采用啟發(fā)式算法獲取近似解,為了對比本文方法的性能,分別使用貪心算法、啟發(fā)式算法(HGS算法)和GRE算法這3種典型的測試用例約簡算法進行對比實驗,并分析實驗結(jié)果。

    仿真實驗過程中涉及到的參數(shù)有:程序源代碼的長度L,程序CFG圖中狀態(tài)個數(shù)S,約簡模型中狀態(tài)個數(shù)S’,基于本文方法生成的測試用例個數(shù)T,通過分析測試對象程序的調(diào)用圖(call graph),分別使用N-live和N-dead表示語法上可達與不可達的位置個數(shù),N-prdc表示每個測試對象為滿足待驗證的性質(zhì)所產(chǎn)生的謂詞個數(shù),每一次實驗就是對一組參數(shù)(S, S’, N-prdc ,T)的賦值。

    測試對象為kbfiltr、floppy、cdaudio及ping,其中,前3個分別是關(guān)于鍵盤、軟驅(qū)和音頻的設(shè)備驅(qū)動程序,ping是一個網(wǎng)絡(luò)監(jiān)測工具。仿真實驗中待驗證的性質(zhì)為程序的狀態(tài)覆蓋,通過生成約簡的測試用例集以滿足該性質(zhì)。實驗結(jié)果如表1所示,其中T-G、T-HGS、T-GRE分別為對測試對象使用貪心算法、啟發(fā)式算法和GRE算法所生成的測試用例個數(shù)。

    實驗結(jié)果顯示,貪心算法、HGS算法和GRE算法在測試用例約簡生成方面的性能大致相當(dāng),也符合文獻[13]對這幾種算法比較的結(jié)果。由于HGS算法和GRE算法在計算過程中,可能會調(diào)用貪心算法,故在貪心算法計算過程中通常生成比HGS算法和GRE算法略大的測試用例集。與現(xiàn)有的幾種算法相比,基于謂詞抽象的測試用例約簡生成算法由于對原始模型的狀態(tài)依據(jù)謂詞進行劃分,能夠得到約簡的抽象模型及其狀態(tài)間的遷移關(guān)系,表1中T數(shù)值表明本文的方法可以在滿足程序待驗證的性質(zhì)的基礎(chǔ)上,生成數(shù)量較少的測試用例集。Ratio顯示本文的方法相對于其他3種方法關(guān)于測試用例個數(shù)的最大約簡比例,對于規(guī)模較小的kbfiltr和ping,測試用例數(shù)量的約簡比例較高;而對于規(guī)模較大的floppy和cdaudio,則約簡比例相對較低,其原因是隨著程序規(guī)模的增大,系統(tǒng)的狀態(tài)空間和遷移關(guān)系更加復(fù)雜,謂詞的選取和精化過程的開銷也隨之增大,等價類中測試用例之間可約簡的程度也會同時降低,故會生成較多的測試用例。

    在程序執(zhí)行時間上,本文方法在系統(tǒng)模型狀態(tài)約簡階段和測試用例生成階段的時間復(fù)雜度均為O( k2),故本文方法的總時間復(fù)雜度為O( k2),前文提到貪心算法、HGS算法和GRE算法這3種典型的啟發(fā)式方法的時間復(fù)雜度分別為O( mn·min(m, n))、O( m( m+n) k)和O(min(m, n)( m+n2k)),相比之下本文算法有更低的時間復(fù)雜度。文獻[13]指出在精確性方面,現(xiàn)有的幾種啟發(fā)式方法已被證實任何一種算法都不比其他算法優(yōu)越,故本文選擇時間復(fù)雜度相對較低且易于實施的貪心算法與本文方法進行對比。在測試對象選取上,選擇規(guī)模最大的cdaudio程序和規(guī)模較小的ping程序。由于前文提到的3種啟發(fā)式算法的時間復(fù)雜度均為最壞情況下復(fù)雜度,故在模擬實驗過程中,該3種啟發(fā)式算法的時間開銷比本文方法的略大,通過圖4可以看出,程序規(guī)模越大,本文算法在時間開銷上提高的效果越明顯。

    在實驗過程中,BLAST所生成的抽象狀態(tài)模型本質(zhì)上是一個有限狀態(tài)自動機(FSA),由于FSA無法描述帶有遞歸調(diào)用的程序,故在實驗前對程序中含有遞歸調(diào)用的部分進行預(yù)處理,使之不反映到程序的控制流圖中。在測試用例生成過程中,謂詞抽象自動驗證工具可以根據(jù)反例的抽象精化功能,不斷對初始謂詞集合進行完善,同時還可以驗證原始模型不能滿足的性質(zhì),以利于對程序所具有的性質(zhì)的研究。

    表1 實驗結(jié)果

    圖4 算法的時間開銷對比

    6 結(jié)束語

    測試用例的質(zhì)量和數(shù)量決定測試的成本和有效性,但大規(guī)模軟件系統(tǒng)往往存在狀態(tài)空間爆炸的問題,故難以生成精簡、高效的測試用例集,從而影響對軟件系統(tǒng)所具有性質(zhì)的驗證。謂詞抽象技術(shù)可以有效地減少系統(tǒng)的狀態(tài)遷移的數(shù)量,以此作為測試用例集約簡生成的基礎(chǔ)。本文提出一種基于謂詞抽象的測試用例約簡生成算法,以系統(tǒng)的狀態(tài)遷移關(guān)系作為研究目標,通過謂詞集合將原始系統(tǒng)的初始狀態(tài)進行等價類劃分,并使用謂詞抽象自動驗證工具的反例引導(dǎo)功能,生成滿足給定性質(zhì)的測試用例。實驗數(shù)據(jù)表明,相對于其他幾種典型的測試用例約簡方法,本文的方法可以在較短時間內(nèi)生成數(shù)量較少的測試用例集。

    然而本文方法還存在改進的空間,例如對于程序中存在的遞歸調(diào)用語句,本文的方法還不能處理,這將限制其使用范圍,將來的工作中,可以考慮使用支持遞歸調(diào)用的謂詞抽象驗證工具來改進本文中的方法;另外,對于具有可信特征屬性需求的系統(tǒng),根據(jù)文獻[14]的觀點:可信≈可靠+安全,可以對謂詞的屬性表示方法進行擴展,使本文的方法在具有可靠、安全等非功能特征屬性的系統(tǒng)中也能夠生成約簡的測試用例。

    [1] HARROLD M J, GUPTA R, SOFFA M L. A methodology for controlling the size of a test suite[J]. ACM Transactions of Software Engineering and Methodology, 1993, 2(3):270-285.

    [2] 屈婉霞, 李暾, 郭陽等. 謂詞抽象技術(shù)研究[J]. 軟件學(xué)報, 2008,19(1): 27-38.QU W X, LI T, GUO Y, et al. Advances in predicate abstraction[J].Journal of Software, 2008, 19(1): 27-38.

    [3] HONG H S, CHA S D, LEE I, et al. Data flow testing as model checking[A]. Proceedings of the 25th International Conference on Software Engineering[C]. Portland, 2003, 232-243.

    [4] CHVATAL V. A greedy heuristic for the set-covering problem[J].Mathematics of Operations Research, 1979, 4(3): 233-235.

    [5] CHEN T Y, LAU M F. On the completeness of a test suite reduction strategy[J]. The Computer Journal, 1999, 42(5): 430-440.

    [6] LEE J G, CHUNG C G. An optimal representative set selection method[J]. Information and Software Technology, 2000, 42(21):17-25.

    [7] 章曉芳, 徐寶文, 聶長海等. 一種基于測試需求約簡的測試用例集優(yōu)化方法[J]. 軟件學(xué)報, 2007, 18(4): 821-831.ZHANG X F, XU B W, NIE C H, et al. An approach for optimizing test suite based on testing requirement reduction[J]. Journal of Software, 2007, 18(4): 821-831.

    [8] 程亮, 張陽, 馮登國. 一種基于安全狀態(tài)轉(zhuǎn)移的簡并測試集生成方法[J]. 軟件學(xué)報,2010,21(3): 539-547.CHENG L, ZHANG Y, FENG D G. Approach of degenerate test set generation based on secure state transition[J]. Journal of Software,2010, 21(3): 539-547.

    [9] 徐明迪, 張煥國, 嚴飛. 基于標記變遷系統(tǒng)的可信計算平臺信任鏈測試[J]. 計算機學(xué)報, 2009, 32(4): 635-645.XU M D, ZHANG H G, YAN F. Testing on trust chain of trusted computing platform based on labeled transition system[J]. Chinese Journal of Computers, 2009, 32(4): 635-645.

    [10] SUSANNE G, HASSEN S. Construction of abstract state graphs with PVS[A]. Proceedings of the 9th International Conference on Computer Aided Verification[C]. Berlin, 1997. 72-83.

    [11] HENZINGER T A, JHALA R, MAJUMDAR R. Lazy abstraction[A].ACM Symposium on Principles of Programming Language[C]. Oregon, 2002. 58-70.

    [12] DETLEFS D, NELSON G, SAXE J B. Simplify: a theorem prover for program checking[J]. Journal of the ACM, 2005, 52(3): 365-473.

    [13] CHEN T Y, LAU M F. A simulation study on some heuristics for test suite reduction[J]. Information and Software Technology, 1998,40(13): 777-787.

    [14] 沈昌祥,張煥國,馮登國等. 信息安全綜述[J]. 中國科學(xué)E輯, 2007,37(2): 129-150.SHEN C X, ZHANG H G, FENG D G, et al. Survey of information security[J]. Science in China, Series E, Information Sciences, 2007,37(2): 129-150.

    猜你喜歡
    謂詞測試用例約簡
    被遮蔽的邏輯謂詞
    ——論胡好對邏輯謂詞的誤讀
    基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
    黨項語謂詞前綴的分裂式
    西夏研究(2020年2期)2020-06-01 05:19:12
    基于二進制鏈表的粗糙集屬性約簡
    基于混合遺傳算法的回歸測試用例集最小化研究
    實值多變量維數(shù)約簡:綜述
    基于模糊貼近度的屬性約簡
    也談“語言是存在的家”——從語言的主詞與謂詞看存在的殊相與共相
    基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
    一種改進的分布約簡與最大分布約簡求法
    河南科技(2014年7期)2014-02-27 14:11:29
    性色avwww在线观看| 久久欧美精品欧美久久欧美| 亚洲av二区三区四区| 欧美最新免费一区二区三区| 国产免费男女视频| 午夜视频国产福利| 亚洲成av人片在线播放无| 国产伦一二天堂av在线观看| 久久鲁丝午夜福利片| 亚洲成人av在线免费| 亚洲性久久影院| 看片在线看免费视频| 亚洲,欧美,日韩| 午夜日韩欧美国产| 国产成人freesex在线 | 99国产极品粉嫩在线观看| 三级国产精品欧美在线观看| 黄色日韩在线| 日韩人妻高清精品专区| 不卡一级毛片| 色哟哟哟哟哟哟| 亚洲人成网站在线播放欧美日韩| 国产高清不卡午夜福利| 国产在线男女| 99久久九九国产精品国产免费| 内射极品少妇av片p| 国产精品久久久久久久电影| 最近2019中文字幕mv第一页| 欧美成人精品欧美一级黄| 午夜福利成人在线免费观看| 亚洲高清免费不卡视频| 成人午夜高清在线视频| 高清毛片免费观看视频网站| 九色成人免费人妻av| 日本色播在线视频| 国产亚洲精品久久久久久毛片| 精品99又大又爽又粗少妇毛片| 国产成人a区在线观看| 真实男女啪啪啪动态图| 国产伦在线观看视频一区| 一个人看的www免费观看视频| 亚洲一区二区三区色噜噜| a级一级毛片免费在线观看| 天堂网av新在线| 成人亚洲精品av一区二区| 18禁在线播放成人免费| 欧美成人一区二区免费高清观看| 少妇猛男粗大的猛烈进出视频 | 久久久久久久久大av| 亚洲国产日韩欧美精品在线观看| 免费一级毛片在线播放高清视频| 亚洲在线自拍视频| 日本三级黄在线观看| 久久人妻av系列| 特大巨黑吊av在线直播| av女优亚洲男人天堂| 亚洲精品456在线播放app| 国产精品嫩草影院av在线观看| 午夜老司机福利剧场| 少妇熟女欧美另类| 18禁在线播放成人免费| 我要搜黄色片| 久久午夜亚洲精品久久| 97超视频在线观看视频| 国产不卡一卡二| 波多野结衣高清作品| .国产精品久久| 亚洲国产精品国产精品| 午夜免费男女啪啪视频观看 | av在线天堂中文字幕| 亚洲av一区综合| 18禁裸乳无遮挡免费网站照片| 秋霞在线观看毛片| 久久99热6这里只有精品| av在线老鸭窝| 内射极品少妇av片p| 国产女主播在线喷水免费视频网站 | 狠狠狠狠99中文字幕| 日本一二三区视频观看| 51国产日韩欧美| 亚洲人成网站在线播| 日本一本二区三区精品| 精品少妇黑人巨大在线播放 | 亚洲熟妇中文字幕五十中出| 天美传媒精品一区二区| 精品一区二区三区视频在线| 精品久久久久久久久久久久久| 99热这里只有精品一区| 99久久精品一区二区三区| 欧美成人精品欧美一级黄| 少妇的逼水好多| 你懂的网址亚洲精品在线观看 | a级毛色黄片| 日本一本二区三区精品| 国产探花在线观看一区二区| 看十八女毛片水多多多| 亚洲精品日韩在线中文字幕 | 免费av毛片视频| 高清日韩中文字幕在线| 一a级毛片在线观看| 精品久久国产蜜桃| 18禁裸乳无遮挡免费网站照片| 精品无人区乱码1区二区| av在线老鸭窝| 99精品在免费线老司机午夜| 午夜久久久久精精品| 国产精品乱码一区二三区的特点| 国产高清视频在线播放一区| 欧美三级亚洲精品| 亚洲乱码一区二区免费版| 久久精品国产亚洲av香蕉五月| 99九九线精品视频在线观看视频| 十八禁网站免费在线| 亚洲aⅴ乱码一区二区在线播放| 国产精品美女特级片免费视频播放器| 国产片特级美女逼逼视频| 精品无人区乱码1区二区| 毛片女人毛片| 欧美国产日韩亚洲一区| 国产久久久一区二区三区| 国产乱人偷精品视频| 婷婷亚洲欧美| 国产精品一区二区性色av| 国产不卡一卡二| 亚洲av美国av| 久久人人爽人人爽人人片va| 在线天堂最新版资源| www日本黄色视频网| 自拍偷自拍亚洲精品老妇| 一级av片app| 亚洲av免费高清在线观看| 午夜福利成人在线免费观看| 日本在线视频免费播放| 亚洲成a人片在线一区二区| 色尼玛亚洲综合影院| 国产色爽女视频免费观看| 国产成人freesex在线 | 久久精品夜色国产| 亚洲av第一区精品v没综合| 中文字幕精品亚洲无线码一区| 男人狂女人下面高潮的视频| 校园春色视频在线观看| 日日摸夜夜添夜夜添av毛片| 91午夜精品亚洲一区二区三区| 熟女电影av网| 国产免费一级a男人的天堂| 国产精品一区二区免费欧美| .国产精品久久| ponron亚洲| 深夜精品福利| 欧美一区二区亚洲| 免费看a级黄色片| 国产一区二区亚洲精品在线观看| 免费观看人在逋| 一级黄片播放器| 干丝袜人妻中文字幕| 久久精品国产亚洲网站| 国产精品美女特级片免费视频播放器| 欧美国产日韩亚洲一区| 少妇的逼水好多| av在线老鸭窝| 精品熟女少妇av免费看| 国产男靠女视频免费网站| 亚洲精品日韩在线中文字幕 | 噜噜噜噜噜久久久久久91| 夜夜爽天天搞| 99热全是精品| 可以在线观看毛片的网站| 国产精品乱码一区二三区的特点| 欧美极品一区二区三区四区| 久久精品国产亚洲av涩爱 | 中文字幕av成人在线电影| 精品人妻视频免费看| 婷婷色综合大香蕉| 香蕉av资源在线| 波多野结衣高清作品| 亚洲最大成人av| 成年女人永久免费观看视频| 日韩亚洲欧美综合| 亚洲欧美精品综合久久99| 亚洲欧美日韩卡通动漫| 国产麻豆成人av免费视频| 免费看日本二区| 欧美绝顶高潮抽搐喷水| 搡老熟女国产l中国老女人| 国产三级中文精品| 少妇的逼好多水| 久久中文看片网| 午夜免费激情av| 三级毛片av免费| 国产亚洲精品久久久com| 男女那种视频在线观看| 精品人妻一区二区三区麻豆 | 日本精品一区二区三区蜜桃| 成人三级黄色视频| 岛国在线免费视频观看| 乱系列少妇在线播放| 亚洲av.av天堂| 春色校园在线视频观看| 九九爱精品视频在线观看| 黄色日韩在线| 人人妻人人澡人人爽人人夜夜 | 亚洲无线观看免费| 国产伦精品一区二区三区四那| 一区二区三区高清视频在线| 国产精品综合久久久久久久免费| 国产黄a三级三级三级人| 亚洲婷婷狠狠爱综合网| 岛国在线免费视频观看| 可以在线观看的亚洲视频| 久久久久久久午夜电影| 三级毛片av免费| 小蜜桃在线观看免费完整版高清| 久久久久国产网址| 亚洲真实伦在线观看| 色哟哟哟哟哟哟| 久久中文看片网| 性插视频无遮挡在线免费观看| 狂野欧美激情性xxxx在线观看| 日本撒尿小便嘘嘘汇集6| 日韩一区二区视频免费看| 欧美国产日韩亚洲一区| 女同久久另类99精品国产91| 婷婷精品国产亚洲av| 欧美bdsm另类| 日韩精品有码人妻一区| 久久6这里有精品| 两个人视频免费观看高清| 久久精品国产鲁丝片午夜精品| 人妻丰满熟妇av一区二区三区| 美女cb高潮喷水在线观看| 人妻久久中文字幕网| 日日摸夜夜添夜夜添小说| 久久久久久国产a免费观看| 村上凉子中文字幕在线| 男女边吃奶边做爰视频| 禁无遮挡网站| 麻豆成人午夜福利视频| 成人一区二区视频在线观看| 欧美潮喷喷水| 亚洲精品亚洲一区二区| 中国国产av一级| 亚洲精品粉嫩美女一区| 亚洲av免费高清在线观看| 一区二区三区免费毛片| 十八禁国产超污无遮挡网站| 日本黄色视频三级网站网址| 哪里可以看免费的av片| 久久6这里有精品| 老女人水多毛片| 免费av观看视频| 国产亚洲精品av在线| 午夜视频国产福利| 大型黄色视频在线免费观看| 听说在线观看完整版免费高清| 久久精品综合一区二区三区| 国产精品三级大全| 99riav亚洲国产免费| av视频在线观看入口| 亚洲成a人片在线一区二区| 别揉我奶头 嗯啊视频| 亚洲成人久久爱视频| 精品一区二区三区av网在线观看| 国产精品国产高清国产av| 美女黄网站色视频| 国产成人aa在线观看| 国产精品人妻久久久久久| 欧美日韩精品成人综合77777| 春色校园在线视频观看| 亚洲av成人精品一区久久| 老熟妇仑乱视频hdxx| 乱人视频在线观看| av黄色大香蕉| 日本黄大片高清| 欧美性猛交╳xxx乱大交人| 亚洲人成网站在线播| 高清午夜精品一区二区三区 | 美女黄网站色视频| 久久午夜亚洲精品久久| 大又大粗又爽又黄少妇毛片口| 国产爱豆传媒在线观看| 嫩草影院新地址| 亚洲美女搞黄在线观看 | 毛片一级片免费看久久久久| 国产乱人偷精品视频| 在线观看免费视频日本深夜| 午夜a级毛片| 久久久久九九精品影院| 国产av麻豆久久久久久久| 男女啪啪激烈高潮av片| 狂野欧美激情性xxxx在线观看| 国产人妻一区二区三区在| 亚洲中文日韩欧美视频| 国产高清激情床上av| 欧美3d第一页| 日韩人妻高清精品专区| 久久久国产成人免费| 亚洲人成网站在线播放欧美日韩| videossex国产| 久久久久国产精品人妻aⅴ院| 俄罗斯特黄特色一大片| 午夜视频国产福利| 精品久久国产蜜桃| 国产探花在线观看一区二区| 免费高清视频大片| 观看免费一级毛片| 国产精品久久久久久精品电影| 久久草成人影院| av天堂在线播放| 国产成人aa在线观看| 亚洲一区二区三区色噜噜| 最后的刺客免费高清国语| 久久久久国产网址| 一夜夜www| 91在线观看av| 有码 亚洲区| 国产精品一区二区免费欧美| 亚洲av美国av| 亚洲人成网站高清观看| 99热只有精品国产| 丝袜喷水一区| 丰满人妻一区二区三区视频av| 欧美高清性xxxxhd video| 蜜臀久久99精品久久宅男| 国产片特级美女逼逼视频| 久久精品91蜜桃| 精品久久久久久久末码| 色综合色国产| 亚洲国产精品成人综合色| 国产午夜精品论理片| 久久久久久大精品| 人人妻人人看人人澡| 女生性感内裤真人,穿戴方法视频| 精品一区二区三区av网在线观看| 亚洲国产欧洲综合997久久,| 免费人成在线观看视频色| 精品午夜福利在线看| 午夜久久久久精精品| 国产蜜桃级精品一区二区三区| 国产91av在线免费观看| 欧美日韩一区二区视频在线观看视频在线 | 人人妻人人澡欧美一区二区| 国产日本99.免费观看| 午夜福利高清视频| 狂野欧美白嫩少妇大欣赏| 国产爱豆传媒在线观看| 日韩 亚洲 欧美在线| 悠悠久久av| 日本欧美国产在线视频| av在线蜜桃| 精品欧美国产一区二区三| 成年女人看的毛片在线观看| 久久久久九九精品影院| 日本-黄色视频高清免费观看| 俺也久久电影网| 女同久久另类99精品国产91| 午夜福利视频1000在线观看| 国产极品精品免费视频能看的| 男人的好看免费观看在线视频| 女同久久另类99精品国产91| 久久九九热精品免费| 亚洲人成网站在线播放欧美日韩| 日本欧美国产在线视频| 12—13女人毛片做爰片一| 麻豆国产av国片精品| 亚洲一区二区三区色噜噜| 99久国产av精品国产电影| 中文亚洲av片在线观看爽| 18禁裸乳无遮挡免费网站照片| 在线观看免费视频日本深夜| 亚洲最大成人手机在线| 亚洲中文字幕一区二区三区有码在线看| 18禁裸乳无遮挡免费网站照片| 中文亚洲av片在线观看爽| 午夜免费激情av| 成人特级黄色片久久久久久久| 午夜福利视频1000在线观看| 成人av一区二区三区在线看| 中文字幕精品亚洲无线码一区| 国产精品久久久久久亚洲av鲁大| 日本撒尿小便嘘嘘汇集6| 最好的美女福利视频网| 91精品国产九色| av国产免费在线观看| 成年女人毛片免费观看观看9| 97人妻精品一区二区三区麻豆| 中出人妻视频一区二区| 热99在线观看视频| 久久久a久久爽久久v久久| 久久久久久久久久黄片| 99精品在免费线老司机午夜| 亚洲最大成人av| 91狼人影院| 久久久精品欧美日韩精品| av在线亚洲专区| 日本免费a在线| 国产免费男女视频| 一个人观看的视频www高清免费观看| 少妇高潮的动态图| 中国美女看黄片| 成人特级黄色片久久久久久久| 日本欧美国产在线视频| 男女啪啪激烈高潮av片| 久久久久性生活片| 97人妻精品一区二区三区麻豆| 一卡2卡三卡四卡精品乱码亚洲| 男人舔女人下体高潮全视频| 国产大屁股一区二区在线视频| 免费不卡的大黄色大毛片视频在线观看 | 亚洲自拍偷在线| 国产v大片淫在线免费观看| 一a级毛片在线观看| 直男gayav资源| 国产精品免费一区二区三区在线| 天堂网av新在线| 色哟哟·www| 午夜日韩欧美国产| 一区二区三区四区激情视频 | 日韩欧美一区二区三区在线观看| 丝袜喷水一区| 欧美一区二区国产精品久久精品| 国产免费男女视频| videossex国产| 日本-黄色视频高清免费观看| 亚洲欧美中文字幕日韩二区| 欧美日本亚洲视频在线播放| 国产91av在线免费观看| 久久久久久久久久黄片| 亚洲人成网站在线观看播放| 日本免费a在线| 白带黄色成豆腐渣| 久久九九热精品免费| 国产精品综合久久久久久久免费| 最新在线观看一区二区三区| 久久这里只有精品中国| 天堂网av新在线| a级毛片免费高清观看在线播放| 91在线观看av| 卡戴珊不雅视频在线播放| 精品人妻熟女av久视频| 午夜福利在线在线| 亚洲欧美精品综合久久99| 菩萨蛮人人尽说江南好唐韦庄 | 哪里可以看免费的av片| 别揉我奶头 嗯啊视频| 亚洲精品一区av在线观看| 久久6这里有精品| 亚洲,欧美,日韩| 精品久久久久久久久av| 国产在视频线在精品| 2021天堂中文幕一二区在线观| 禁无遮挡网站| 精品不卡国产一区二区三区| 日韩高清综合在线| 成人av一区二区三区在线看| 成人鲁丝片一二三区免费| 国产高清激情床上av| 亚洲av成人精品一区久久| 九九热线精品视视频播放| 国产探花极品一区二区| 中国美女看黄片| 一区二区三区高清视频在线| 成人二区视频| 我的女老师完整版在线观看| 赤兔流量卡办理| 亚洲七黄色美女视频| 欧美区成人在线视频| 亚洲成人久久爱视频| 成人三级黄色视频| 丝袜喷水一区| 最近视频中文字幕2019在线8| 不卡视频在线观看欧美| 男插女下体视频免费在线播放| 日韩一本色道免费dvd| 男人狂女人下面高潮的视频| 国产精品,欧美在线| 成人欧美大片| 国产高清有码在线观看视频| 国产极品精品免费视频能看的| 一级黄片播放器| 男人舔女人下体高潮全视频| 黄色欧美视频在线观看| 综合色丁香网| 亚洲中文字幕日韩| 99热6这里只有精品| 美女免费视频网站| 亚洲在线自拍视频| 日韩欧美免费精品| 插逼视频在线观看| 麻豆乱淫一区二区| 国产精品久久久久久精品电影| 亚洲丝袜综合中文字幕| av视频在线观看入口| 精品一区二区三区视频在线观看免费| 麻豆乱淫一区二区| 免费av毛片视频| 精品久久久久久久人妻蜜臀av| 成人午夜高清在线视频| 我的老师免费观看完整版| 久久久国产成人精品二区| 久久99热这里只有精品18| 美女被艹到高潮喷水动态| а√天堂www在线а√下载| 九九在线视频观看精品| 久久精品国产亚洲网站| 色综合亚洲欧美另类图片| 国产精品电影一区二区三区| 一区二区三区四区激情视频 | 日本精品一区二区三区蜜桃| 特级一级黄色大片| 免费观看的影片在线观看| 蜜臀久久99精品久久宅男| 久久久久久久久久久丰满| 国产成人福利小说| 国产精品国产高清国产av| 亚洲欧美日韩高清专用| 日本色播在线视频| 天堂网av新在线| 日本免费a在线| 免费观看在线日韩| 国产单亲对白刺激| 国产高清视频在线观看网站| 精品少妇黑人巨大在线播放 | 美女内射精品一级片tv| 中文字幕av成人在线电影| 欧美高清性xxxxhd video| 国产一区二区激情短视频| 少妇熟女aⅴ在线视频| 日韩欧美精品免费久久| 神马国产精品三级电影在线观看| 久久久久精品国产欧美久久久| 一级毛片电影观看 | 香蕉av资源在线| 日韩在线高清观看一区二区三区| 午夜老司机福利剧场| 日产精品乱码卡一卡2卡三| av黄色大香蕉| 18禁在线播放成人免费| 精品熟女少妇av免费看| 老司机午夜福利在线观看视频| 国产高清视频在线观看网站| 国产精品乱码一区二三区的特点| 99在线视频只有这里精品首页| 婷婷色综合大香蕉| av专区在线播放| 亚洲国产精品成人综合色| 久久热精品热| 亚洲精品乱码久久久v下载方式| 一级毛片电影观看 | 国产 一区 欧美 日韩| 嫩草影院精品99| 在线观看免费视频日本深夜| 最新在线观看一区二区三区| 亚洲18禁久久av| 久久鲁丝午夜福利片| 成人性生交大片免费视频hd| 精品国产三级普通话版| 日韩欧美在线乱码| 亚洲高清免费不卡视频| 亚洲真实伦在线观看| 国产高清三级在线| 狠狠狠狠99中文字幕| 91久久精品电影网| 99热这里只有精品一区| 91久久精品国产一区二区三区| 在线观看免费视频日本深夜| 成人鲁丝片一二三区免费| 亚洲国产欧洲综合997久久,| 婷婷亚洲欧美| 非洲黑人性xxxx精品又粗又长| 亚洲av.av天堂| 国产精品99久久久久久久久| 精品一区二区三区视频在线| 亚洲欧美成人综合另类久久久 | 日韩大尺度精品在线看网址| 亚洲七黄色美女视频| 在线观看av片永久免费下载| 尤物成人国产欧美一区二区三区| 免费看美女性在线毛片视频| 1000部很黄的大片| 久久精品国产亚洲av天美| 久久久久久国产a免费观看| 在线观看66精品国产| 日本黄色片子视频| 国产av不卡久久| 亚洲精品一卡2卡三卡4卡5卡| 日本撒尿小便嘘嘘汇集6| 精品午夜福利在线看| 白带黄色成豆腐渣| 久久精品国产亚洲网站| 国产一区亚洲一区在线观看| 色综合色国产| 国产日本99.免费观看| 精品午夜福利在线看| 国产白丝娇喘喷水9色精品| 午夜激情福利司机影院| 久久久久久久久久黄片| 国产精品国产高清国产av| 99热6这里只有精品| 亚洲精品色激情综合| 亚洲av五月六月丁香网| 免费在线观看成人毛片| 国产男人的电影天堂91| 亚洲av五月六月丁香网| 久久99热6这里只有精品| 久久精品影院6| 一级黄色大片毛片| 亚洲精品456在线播放app| 一级毛片电影观看 | 亚洲欧美日韩高清在线视频| 夜夜爽天天搞| 国产午夜精品久久久久久一区二区三区 | 午夜福利在线观看免费完整高清在 | 男女那种视频在线观看| 欧美在线一区亚洲|