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

    面向Web服務(wù)器端敏感路徑的客戶端擴展有限狀態(tài)機測試生成

    2020-07-27 07:47:40趙瑞蓮郭小紅王微微尚穎
    關(guān)鍵詞:源點狀態(tài)機測試用例

    趙瑞蓮, 郭小紅, 王微微, 尚穎

    (北京化工大學(xué) 信息科學(xué)與技術(shù)學(xué)院, 北京 100029)

    隨著互聯(lián)網(wǎng)普及與快速發(fā)展,Web應(yīng)用已成為人們生活中不可或缺的一部分。但Web應(yīng)用極易受到攻擊。因此,對Web應(yīng)用進行有效的安全測試極為重要。

    目前,關(guān)于Web應(yīng)用安全測試的研究主要針對客戶端模型或服務(wù)器端代碼,多以模型自身的狀態(tài)、遷移覆蓋為目標(biāo),探討其測試用例自動生成[1-2]??娀纯鄣萚3]設(shè)計了一個基于模型的Web應(yīng)用程序測試系統(tǒng),以FSM作為被測Web應(yīng)用程序的形式化測試模型;Schur等[4]從商業(yè)Web應(yīng)用程序中挖掘用戶行為模型,并通過分析用戶行為模式建立模型,然后利用模型進行回歸測試用例生成;趙瑞蓮等[5]提出了基于用戶軌跡的Web客戶端擴展有限狀態(tài)機建模方法,通過對Web應(yīng)用客戶端源代碼進行插裝,在用戶動態(tài)執(zhí)行Web應(yīng)用過程中獲取用戶的行為軌跡,利用用戶行為軌跡建立Web應(yīng)用的擴展有限狀態(tài)機模型。Alshahwan等[6]將搜索算法應(yīng)用于Web應(yīng)用程序測試中, 隨后更多的研究者嘗試采用包括遺傳算法、禁忌搜索算法、模擬退火算法等在內(nèi)的啟發(fā)式搜索算法來解決擴展有限狀態(tài)機測試數(shù)據(jù)生成問題[7-9]。Jan等[10]針對XML注入漏洞,利用遺傳算法實現(xiàn)測試用例的自動生成,該方法受限于已有的惡意輸入。研究者針對PHP Web應(yīng)用程序的XSS漏洞,給出了以遺傳算法為主的測試用例生成方法[11-13]。通常一種算法只能在某一方面表現(xiàn)出較好的性能?;旌纤阉鱉emetic算法[14-15]則能通過將多種搜索算法有機結(jié)合起來,實現(xiàn)算法性能的進一步提高。

    為此,本文將Web應(yīng)用客戶端擴展有限狀態(tài)機模型的測試用例生成與服務(wù)器端的敏感路徑覆蓋結(jié)合起來,以服務(wù)器端安全脆弱點敏感路徑覆蓋為目標(biāo),利用Memetic演化算法將全局搜索的高效性和局部搜索的精準(zhǔn)性相結(jié)合,實現(xiàn)客戶端擴展有限狀態(tài)機模型的測試用例自動生成,為Web應(yīng)用軟件安全測試提供一種新的、有效的解決途徑。

    基于擴展有限狀態(tài)機模型生成的抽象測試用例不能在Web應(yīng)用中直接執(zhí)行,需轉(zhuǎn)為驅(qū)動Web應(yīng)用執(zhí)行的測試腳本。若對每一個抽象測試用例編寫測試腳本或借助工具錄制測試腳本,將增加測試成本,降低測試效率。因此,測試腳本的自動生成是本文研究的另一個關(guān)鍵問題。Selenium是一個具有豐富應(yīng)用程序編程接口的Web測試工具,可以在瀏覽器上模擬用戶操作。本文利用Selenium生成測試腳本,即通過分析提取擴展有限狀態(tài)機模型遷移的特征,根據(jù)特征信息對遷移進行聚類,再依據(jù)Selenium語法規(guī)范及映射規(guī)則,將聚類結(jié)果轉(zhuǎn)為可執(zhí)行的測試腳本,形成遷移腳本庫,為抽象測試用例的可執(zhí)行化提供服務(wù)。

    1 面向Web服務(wù)器端敏感路徑的客戶端擴展有限狀態(tài)機測試生成方法

    1.1 基本概念

    面向Web服務(wù)器端敏感路徑的客戶端擴展有限狀態(tài)機測試生成涉及的基本概念定義如下:

    定義1Web服務(wù)器端敏感路徑。假設(shè)程序P的一條語句執(zhí)行序列為,若語句s1可接收外部輸入數(shù)據(jù),語句sn為關(guān)鍵操作語句,如:訪問數(shù)據(jù)庫語句、輸出語句等,且語句s2到sn-1都不是安全驗證與過濾機制語句,則稱語句序列為程序P的一條敏感路徑,s1稱為源點(source),sn為脆弱敏感點(sink)。

    定義2Web客戶端擴展有限狀態(tài)機模型。用來表征Web應(yīng)用客戶端行為的擴展有限狀態(tài)機模型,其狀態(tài)和遷移含義如下:

    狀態(tài)s定義為Web應(yīng)用軟件網(wǎng)頁的URL地址及其當(dāng)前的DOM結(jié)構(gòu)。

    遷移t定義為Web應(yīng)用軟件網(wǎng)頁地址或DOM結(jié)構(gòu)發(fā)生改變的過程,用一個五元組〈Src(t),Tgt(t),Event(t),Cond(t),Action(t)〉表示,表示遷移t在狀態(tài)Src(t)下,若事件Event(t) 觸發(fā),且遷移條件Cond(t) 滿足,則引發(fā)操作Action(t),并將狀態(tài)轉(zhuǎn)換到Tgt(t)狀態(tài)。其中,Event(t)對應(yīng)可驅(qū)動客戶端代碼執(zhí)行,改變當(dāng)前網(wǎng)頁的DOM結(jié)構(gòu)的事件,包含事件的類型(Etype)、事件綁定的DOM元素、該DOM元素的定位方式(DL)及事件上的輸入?yún)?shù)(CIN)和參數(shù)的定位方式(CDL)等信息;Cond(t)對應(yīng)事件處理函數(shù)中涉及的謂詞條件;Action(t)對應(yīng)事件處理函數(shù)的參數(shù)變化及服務(wù)器端返回的消息。

    定義3Selenium原子操作。原子操作指不可再分的最小Selenium語法規(guī)范,可用三元組表示,其中Cmd表示一個GUI操作命令,如點擊;Target是Cmd的操作對象;若Cmd未輸入類命令,Value用來表示接收的用戶輸入數(shù)據(jù),若是非輸入類命令,則Value為空。

    一個遷移表示用戶對Web應(yīng)用的一次交互,由一個或由幾個操作組成。如一個交互可能是用戶的1次登錄操作,該交互包括輸入用戶名、密碼和點擊登錄按鈕3個子操作。若只觸發(fā)輸入操作而不觸發(fā)點擊操作,則不會引發(fā)Web應(yīng)用的響應(yīng),該交互不能作為一個遷移,只有能引發(fā)Web應(yīng)用響應(yīng)的交互,才能作為遷移。因此,遷移可由多個Selenium原子操作組成。例如,遷移t(user, pwd)為用戶的1次登錄操作,由輸入用戶名、輸入密碼和點擊登錄3個Selenium原子操作組成,即、、

    1.2 面向Web服務(wù)器端敏感路徑的客戶端擴展有限狀態(tài)機測試生成

    面向Web服務(wù)器端敏感路徑的客戶端擴展有限狀態(tài)機測試生成,是從客戶端和服務(wù)器端2個方面著手,進行Web應(yīng)用安全測試用例自動生成的研究,其整體框架如圖1所示,主要包含2部分:1)基于服務(wù)器端敏感路徑的擴展有限狀態(tài)機測試用例集Memetic演化生成,2)基于Selenium的測試腳本自動構(gòu)建。擴展有限狀態(tài)機測試用例集Memetic演化生成是本文的核心。針對構(gòu)建的Web應(yīng)用客戶端擴展有限狀態(tài)機模型,以服務(wù)器端敏感路徑覆蓋為目標(biāo),利用Memetic演化算法,實現(xiàn)Web應(yīng)用客戶端擴展有限狀態(tài)機測試用例集的自動生成。針對擴展有限狀態(tài)機模型測試用例不可直接執(zhí)行問題,本文通過提取擴展有限狀態(tài)機模型中遷移信息特征,進行聚類,根據(jù)聚類結(jié)果為每一類遷移構(gòu)建測試腳本,形成遷移腳本庫,為抽象測試用例轉(zhuǎn)化為可執(zhí)行的測試腳本提供支持。

    圖1 面向Web服務(wù)器端敏感路徑的客戶端擴展有限狀態(tài)機測試用例生成方法框架Fig.1 The overview of server-side sensitive path coverage-oriented client-side EFSM test case generation

    1.2.1 基于服務(wù)器端敏感路徑的EFSM測試用例集Memetic演化生成

    由Web客戶端發(fā)出請求,服務(wù)器端響應(yīng)處理的特性可知,Web服務(wù)器端的一條敏感路徑對應(yīng)客戶端的一次請求操作,而客戶端擴展有限狀態(tài)機模型上的一個遷移表示客戶端的一次請求操作。因此,Web服務(wù)器上的一條敏感路徑對應(yīng)客戶端擴展有限狀態(tài)機模型的一個遷移。所以,若要覆蓋服務(wù)器端的某條敏感路徑,則需要覆蓋該敏感路徑對應(yīng)的遷移。此外,外部輸入數(shù)據(jù)通常是通過POST、GET等請求方法與事件一起提交Web服務(wù)器處理,敏感路徑源點是接收外部輸入數(shù)據(jù)的語句,由此該遷移事件對應(yīng)于該敏感路徑源點,覆蓋該遷移即可覆蓋了該敏感路徑源點?;赪eb客戶端構(gòu)建的擴展有限狀態(tài)機模型,其遷移上謂詞條件只涉及客戶端觸發(fā)事件的謂詞條件,沒有包含服務(wù)器端敏感路徑上的謂詞條件。所以,擴展有限狀態(tài)機遷移序列覆蓋敏感路徑對應(yīng)的遷移,只能保證該序列覆蓋敏感路徑的源點,不一定能完全覆蓋該敏感路徑。因此,在覆蓋敏感路徑的源點后,需要調(diào)整遷移序列上的測試輸入,使其能夠覆蓋敏感路徑。

    綜上,為覆蓋服務(wù)器端的敏感路徑,在生成Web客戶端擴展有限狀態(tài)機測試用例時,可通過全局搜索大幅地調(diào)整遷移序列,使之能覆蓋對應(yīng)敏感路徑源點的遷移,然后通過局部搜索調(diào)整遷移序列上的測試輸入,生成能覆蓋敏感路徑的測試用例。此過程中,本文將敏感路徑的實時覆蓋信息作為搜索的啟發(fā)信息,來指導(dǎo)擴展有限狀態(tài)機模型測試用例的自動生成。因此,本文將遺傳算法(genetic algorithm,GA)和模擬退火算法(simulated annealing algorithm,SAA)有機結(jié)合,利用GA實現(xiàn)全局搜索生成覆蓋敏感路徑源點的測試用例,以SA作為局部搜索,對GA生成的測試用例進行校正。2種搜索算法結(jié)合使用,直到生成覆蓋敏感路徑集的測試用例集。演化流程如圖2所示。在擴展有限狀態(tài)機模型上,隨機生成若干條遷移序列及其測試輸入,構(gòu)造初始種群。因從擴展有限狀態(tài)機模型生成的測試用例是抽象的,所以需對每一個個體生成相應(yīng)的測試腳本,通過執(zhí)行測試腳本實現(xiàn)抽象測試用例的執(zhí)行。

    圖2 EFSM測試用例集Memetic演化流程Fig.2 The process of Memetic evolution

    同時,服務(wù)器端的插樁程序記錄各條敏感路徑的覆蓋情況,通過提取覆蓋信息可計算個體對各條敏感路徑的覆蓋程度f,并構(gòu)造種群對敏感路徑集的評估矩陣M,獲取種群對所有敏感路徑源點的覆蓋情況。若所有敏感路徑的源點都被覆蓋,則敏感路徑源點的覆蓋標(biāo)志cover_flag為True,否則為False。

    在迭代過程中,當(dāng)種群未能覆蓋所有敏感路徑的源點時,應(yīng)用GA實現(xiàn)全局搜索,即根據(jù)適應(yīng)度值選擇個體進行交叉變異操作以產(chǎn)生新個體。遺傳操作產(chǎn)生的所有新個體與當(dāng)前種群一起參與種群的更新。在更新過程中,若某個個體覆蓋新的敏感路徑或新的敏感路徑的源點,則該個體被添加到測試用例集中。同時,該個體所覆蓋的敏感路徑從敏感路徑集中剔除,后續(xù)演化生成只針對未被覆蓋的敏感路徑。重復(fù)上述過程,直到覆蓋所有敏感路徑的源點或達(dá)到最大迭代次數(shù)。

    此時,可能會出現(xiàn)以下3種情況:1)測試用例集不僅覆蓋到所有敏感路徑的源點,而且完全覆蓋了敏感路徑集,則測試用例集生成結(jié)束;2) 測試用例集僅能覆蓋敏感路徑的源點而未能完全覆蓋敏感路徑,啟動SA進行局部搜索;3) 達(dá)到最大迭代次數(shù)但仍有敏感路徑未被覆蓋,重新啟動基于GA的測試生成過程。

    在SA局部搜索階段,對每一條未被完全覆蓋的敏感路徑,從GA生成的測試用例集中選出所有對該敏感路徑覆蓋程度f在(0,1]之間的個體(f越小,個體對路徑的覆蓋程度越高),并按f值從小到大排序構(gòu)成候選集。然后對f最小的候選個體利用SA搜索生成覆蓋該敏感路徑的測試數(shù)據(jù)。若達(dá)到終止溫度,仍沒有找到符合要求的數(shù)據(jù),則依次對下一候選個體進行局部搜索,直到該敏感路徑被完全覆蓋或所有候選個體都不能生成測試輸入使其完全覆蓋該敏感路徑,則考慮下一條未被完全覆蓋的敏感路徑。若演化搜索達(dá)到最大迭代次數(shù)仍未能完全覆蓋所有敏感路徑,則SA搜索結(jié)束。

    1) 個體表示。

    基于Web客戶端EFSM模型產(chǎn)生的測試用例包括遷移序列及序列上的測試數(shù)據(jù)。本文個體是一個測試用例,因此,也由2個部分組成,都采用字符編碼。

    2) 個體覆蓋敏感路徑的評價指標(biāo)。

    根據(jù)個體執(zhí)行對敏感路徑的覆蓋信息,采用通用的approach_level和branch_distance來計算當(dāng)前個體對敏感路徑的覆蓋程度fit。fit值越小,說明當(dāng)前個體對敏感路徑的覆蓋程度越高。當(dāng)fit=0時,說明敏感路徑完全被覆蓋。

    fit=approach_level+branch_distance

    (1)

    f=Normalized(fit)

    (2)

    式中:approach_level用來衡量當(dāng)前個體執(zhí)行路徑與目標(biāo)路徑之間的距離;branch_distance用來衡量當(dāng)前個體執(zhí)行路徑與目標(biāo)路徑不同時,第1個不同分支處謂詞條件從假變?yōu)檎娴木嚯x。本文根據(jù)變量類型的不同采用不同的計算方法,即對于謂詞E1opE2(op是關(guān)系運算符),若E1、E2是數(shù)值型變量,分支距離為distance(a,b)=|a-b|;若E1、E2是字符串型變量,分支距離為2個字符串間的編輯距離。式(2)對fit進行歸一化處理,使fit在[0,1]范圍內(nèi)。

    3)評估矩陣M。

    矩陣M記錄各個個體對所有敏感路徑的覆蓋程度值f。搜索初始默認(rèn)敏感路徑都未被覆蓋,其f置為2。當(dāng)個體到達(dá)某一條敏感路徑的源點時,計算該個體對該敏感路徑的覆蓋程度,并修改M中該路徑的f值。從M的行可以得到某一個體對所有敏感路徑的覆蓋情況,從M的列可以得到所有個體對某一條敏感路徑的覆蓋情況。

    p1p2p3…pk

    4) 全局搜索適應(yīng)度函數(shù)。

    Memetic演化搜索的目標(biāo)是生成能覆蓋所有敏感路徑的個體集合,全局搜索的目標(biāo)是生成能覆蓋所有敏感路徑源點的個體集合,演化搜索的目標(biāo)包含全局搜索的目標(biāo)。因此,可將個體完全覆蓋的敏感路徑數(shù)作為全局適應(yīng)度值來指導(dǎo)整個種群的進化。個體覆蓋的敏感路徑數(shù)越多,越難再進化出覆蓋其他敏感路徑的個體,且極有可能在進化過程中失去原本具有的優(yōu)良基因片段。因此,本文優(yōu)先挑選覆蓋敏感路徑數(shù)量少的遷移序列參與進化操作。對于那些覆蓋敏感路徑數(shù)的個體則加入最終測試集,同時,被覆蓋的敏感路徑從目標(biāo)路徑集中剔除。f=0表示個體能完全覆蓋某敏感路徑,Count(f=0)是此個體完全覆蓋的敏感路徑的數(shù)量。若Count(f=0)為0,則表明該個體未完全覆蓋任何敏感路徑,f值越小,說明該個體越逼近某敏感路徑。因此,全局適應(yīng)度值Fglobal設(shè)置為:

    Fglobal越少,個體覆蓋的敏感路徑數(shù)越少或越逼近敏感路徑,此個體越好。

    5)局部搜索適應(yīng)度函數(shù)。

    局部搜索的目標(biāo)是尋找能完全覆蓋敏感路徑的測試數(shù)據(jù),因此采用式(2)的f值進行個體評估,即局部搜索的適應(yīng)度函數(shù)flocal為f。

    測試用例集Memetic演化生成算法輸入為Web客戶端擴展有限狀態(tài)機模型,敏感路徑集P(p1,p2,…,pk);輸出為覆蓋服務(wù)器端敏感路徑的測試用例集TS,描述為:

    pop=Generate-Initial-Population(EFSM,N)

    //隨機生成初始種群

    while iteration<=max and | Listuncover_path|!=0

    M=Executor(pop)//執(zhí)行個體,得到覆蓋矩陣M

    cover_flag=setFlag(M,P)

    //標(biāo)記敏感路徑源點是否全部覆蓋

    if cover_flag=True then

    //pop覆蓋所有敏感路徑源點,局部搜索

    if | Listuncover_path|=0 then return TS=pop

    //覆蓋了所有敏感路徑,返回生成結(jié)果

    else

    for eachpin Listuncover_pathdo{

    Ind=Local-SA-Search(pop,M,p)

    //調(diào)整個體數(shù)據(jù)以完全覆蓋敏感路徑

    pop=Update_Individual(pop, Ind)

    until | Listuncover_path|=0 return TS=pop

    else

    //pop未覆蓋所有敏感路徑源點,全局搜索

    Fglobal=Global_fitness_Evaluation(pop,M)

    Listuncover_path=getUncoverPath(M,P(p1,p2,…,pk))

    while size(NewInds)

    Indi,Indj=Select-Operator (pop,Fglobal)

    Indi,Indj=Crossover-Operator(pc,Indi,Indj)

    Indi,Indj=Mutation-Operator(pm,Indi,Indj)

    NewInds←Indi,Indj

    end while

    for eachIjin NewInds do

    if (isfeasible(Ij)) then NewIndfeasible←Ij

    M=M∪Executor(NewIndfeasible)

    pop=Elite_Update (NewIndfeasible, pop,Fglobal)

    iteration++

    end while

    1.2.2 基于Selenium的測試腳本自動構(gòu)建

    一個遷移的測試腳本不僅應(yīng)能模擬客戶端的用戶操作,還應(yīng)能處理服務(wù)器端的反饋信息,如提示、確認(rèn)彈框等。這些操作都反映在遷移的Event(t)和Action(t)信息中,直接影響到測試腳本需要哪些Selenium指令。因此,本文根據(jù)Event(t)和Action(t)信息粗粒度的將遷移劃分為4類,如表1所示。例如,若Event(t)上有輸入變量,則在生成測試腳本時,需要生成輸入類Selenium指令;若Action(t)有彈窗的提示信息,則在生成測試腳本時,需要生成處理彈窗的Selenium指令。

    表1 遷移的粗粒度分類Table 1 Coarse-grained classification of transition

    另一方面,一個遷移代表的交互操作可由多個Selenium原子操作組成,基于Selenium原子操作可以生成完整的Selenium指令。因此,測試腳本構(gòu)建可先通過分析提取擴展有限狀態(tài)機模型上所有遷移的特征;然后根據(jù)遷移特征聚類,結(jié)合粗粒度,確定映射規(guī)則,為每一類遷移構(gòu)建對應(yīng)的測試腳本,形成遷移腳本庫。

    1) 遷移特征分析及提取。

    對于2個遷移,當(dāng)它們的事件類型、事件綁定的DOM元素的定位方式、事件上的輸入?yún)?shù)個數(shù)、參數(shù)的定位方式及引發(fā)的后續(xù)操作響應(yīng)這5方面的信息一致時,這2個遷移具有相同的操作行為,可共用同一個遷移測試腳本。因此,選取以上信息作為遷移特征。

    2) 遷移聚類。

    聚類可以將操作行為相似的遷移分為一類,可以共用一段測試腳本,因此,不需要為每個遷移都寫一段測試腳本。遷移特征量化后的數(shù)據(jù)樣本是稀疏、離散的。與傳統(tǒng)聚類算法相比,譜聚類算法能在任意數(shù)據(jù)樣本空間上進行聚類并收斂于全局最優(yōu)解,聚類效率高。因此,本文采用譜聚類算法進行遷移聚類。

    相似度計算是聚類的關(guān)鍵。若將全部特征看成字符串采用常規(guī)的距離公式(如編輯距離)進行計算,則極有可能因模糊特征本身的意義而導(dǎo)致分類的準(zhǔn)確程度降低。例如按照的格式,3個遷移Ti,Tj和Tk的特征信息分別為Ti=,Tj=,Tk=。若采用編輯距離計算,則遷移Ti、Tj和Tk兩兩之間的編輯距離值均為1,導(dǎo)致聚類時3個需要不同測試腳本的遷移會被分為同一類。

    為此,本文設(shè)計如下公式來計算遷移特征間的相似程度S(Ti,Tj):

    S(Ti,Tj)=

    (4)

    式中:S(Ti)表示遷移Ti的特征,是由表示Etype、DL、Action、CDL特征信息構(gòu)成的字符串,TL是S(Ti)與S(Tj)的字符串總長,LCS表示2個字符串的最長公共子串的長度。

    當(dāng)2個遷移的輸入?yún)?shù)個數(shù)CIN不同時,這2個遷移對應(yīng)的Selenium原子操作個數(shù)也不同,S(Ti,Tj)=0;反之,通過特征字符串的最長公共字串來計算2個遷移之間的相似度。當(dāng)2個遷移的特征字符串沒有公共子串時,二者相似程度為0;當(dāng)2個遷移的特征字符串完全一樣時,二者的相似程度為1。根據(jù)相似度公式構(gòu)建遷移之間的相似矩陣S,用于譜聚類算法,可得到聚類結(jié)果。

    3) 測試腳本自動生成方法。

    測試腳本自動生成的映射規(guī)則包含2部分:第1層是粗粒度的,根據(jù)遷移的T.CIN和T.Action信息確定要調(diào)用的Selenium指令;第2層是細(xì)粒度的,將遷移的特征信息T.Etype、T.DL、T.CIN、T.CDL映射到Selenium原子操作命令語句的相關(guān)部分,通過字符串拼接的方式與Selenium的部分命令語句構(gòu)成完整的Selenium命令,從而構(gòu)成遷移測試腳本。測試腳本還需要引用一些Selenium模塊信息才能執(zhí)行,也需將這部分信息寫入遷移測試腳本庫中。

    測試腳本生成算法:輸入為遷移類別CResult,模板信息Template,每一類遷移的特征信息;輸出為:遷移測試腳本庫TransitionScriptLib;其中:Cstr,ACstr為不完整的selenium命令;DEstr為函數(shù)名標(biāo)識(一類遷移腳本封裝在一個函數(shù)中)。描述如下:

    TransitionScriptLib=?; ScriptContent=?;

    Cstr=“a=driver.find_element_by”;

    ACstr=“driver.switch_to_alert().accept()”;

    DEstr=”def TFunction%s(driver,object)”;

    for eachT∈CResultdo

    TestScriptLib ←DEstr;

    if T.Pnum=0 and T.Action ? AlertMessage//類別1

    ScriptContent=Function C1();

    if T.Pnum=0 and T.Action ? AlertMessage//類別2

    ScriptContent=Function C2();

    if T.Pnum!=0 and T.Action ? AlertMessage//類別3

    ScriptContent=Function C3();

    if T.Pnum!=0 and T.Action ? AlertMessage//類別4

    ScriptContent=Function C4();

    TransitionScriptLib ←Template, ScriptContent;

    return TransitionScriptLib;

    Function C1()

    StrA=Cstr+T.DL;

    StrB=“a.”+T.Etype;

    ScriptContent ← StrA,StrB;

    return ScriptContent

    Function C2()

    text=Function C1();

    ScriptContent←text,ACstr;

    Function C3()

    for each i ∈T.CIN do

    StrA=Cstr+T.DL(i);.send_keys(di));

    StrB=Cstr+T.DL;

    StrC=“a.”+T.Etype;

    end for

    ScriptContent ← StrA,StrB,StrC;

    return ScriptContent

    Function C4()

    text=Function C3();

    ScriptContent ←text,ACstr;

    當(dāng)2個遷移的輸入?yún)?shù)個數(shù)CIN不同時,這2個遷移對應(yīng)的Selenium原子操作個數(shù)也不同,S(Ti,Tj)=0;反之,通過特征字符串的最長公共字串來計算2個遷移之間的相似度。當(dāng)2個遷移的特征字符串沒有公共子串時,二者相似程度為0;當(dāng)2個遷移的特征字符串完全一樣時,二者的相似程度為1。根據(jù)相似度公式構(gòu)建遷移之間的相似矩陣S,用于譜聚類算法,可得到聚類結(jié)果。

    3) 測試腳本自動生成方法

    測試腳本自動生成的映射規(guī)則包含2部分:第1層是粗粒度的,根據(jù)遷移的T.CIN和T.Action信息確定要調(diào)用的Selenium指令;第2層是細(xì)粒度的,將遷移的特征信息T.Etype、T.DL、T.CIN、T.CDL映射到Selenium原子操作命令語句的相關(guān)部分,通過字符串拼接的方式與Selenium的部分命令語句構(gòu)成完整的Selenium命令,從而構(gòu)成遷移測試腳本。測試腳本還需要引用一些Selenium模塊信息才能執(zhí)行,也需將這部分信息寫入遷移測試腳本庫中。測試腳本生成算法如算法2所示。

    2 實驗及結(jié)果分析

    為評估所提方法的有效性,本文通過以下3個問題進行實驗研究。

    RQ1:遷移測試腳本庫構(gòu)建方法是否可行?

    RQ2:本文方法在Web應(yīng)用程序的測試用例生成中的效果如何?

    RQ3:本文方法與其他方法相比測試生成的效率如何?

    本文以開源Web應(yīng)用SchoolMate、Webchess和FAQforge作為實驗對象,相關(guān)信息見表2、表3。

    表2 實驗程序Table 2 Web applications of under test

    表3 實驗程序的模型及敏感路徑信息Table 3 Information for client-side EFSM model

    2.1 測試腳本自動構(gòu)建可行性驗證

    遷移聚類的準(zhǔn)確程度直接影響得到生成的測試腳本是否有效,而遷移聚類的核心是遷移之間的相似度性度量。為回答RQ1,本實驗以手工統(tǒng)計結(jié)果為基準(zhǔn),比較不同相似度的譜聚類精確度Acluster。Acluster為能正確分類的遷移數(shù)量(#CCTrans)除以遷移總數(shù)。本文與使用較為廣泛的編輯距離進行對比實驗,聚類精度結(jié)果如表4所示。

    表4 基于不同相似度公式的聚類精度結(jié)果Table 4 Cluster accuracy for two similarity formulas

    結(jié)果表明,采用本文相似度(SF-our)的譜聚類結(jié)果與基準(zhǔn)結(jié)果相同,并且明顯優(yōu)于采用編輯距離(SF-edit)的譜聚類結(jié)果。

    2.2 面向Web服務(wù)器端敏感路徑的擴展有限狀態(tài)機測試用例生成的有效性驗證

    為回答RQ2和RQ3,本文方法(MyGA+MySA)與其他2種組合方法,即本文的遺傳算法與爬山算法(MyGA+HC),傳統(tǒng)遺傳算法與爬山算法(GA+HC)進行對比實驗。與本文所提GA相比,在以路徑作為覆蓋目標(biāo)的優(yōu)化問題上,傳統(tǒng)GA將目標(biāo)敏感路徑與執(zhí)行路徑之間的距離作為個體的適應(yīng)值,并且不包含本文提到的更新策略。

    實驗結(jié)果如表5所示,在3個被測程序中,GA+HC方法的全局搜索代數(shù)分別為334、361、28,大于另外2種使用MyGA的組合方法,說明MyGA能比GA更快地搜索到能覆蓋所有敏感路徑源點的個體集合。MyGA+MySA與MyGA+HC在SchoolMate和Webchess中全局搜索代數(shù)比較接近,分別為51、53和63、65,但在局部搜索上, MySA優(yōu)于HC,說明MySA能比HC更快地搜索到完全覆蓋敏感路徑所需的測試數(shù)據(jù)。

    表5 測試用例生成的搜索代數(shù)比較Table 5 Iterations comparison of test case generation

    時間開銷由搜索個體和執(zhí)行個體2部分時間組成。由表6可以看出,本文方法在需要執(zhí)行的個體數(shù)量和時間開銷上顯著少于其他2種方法,并且個體執(zhí)行時間對總時間的占比均為95%以上,說明實際搜索個體的時間很少。

    表6 測試用例生成的時間開銷情況Table 6 The time cost of test case generation

    由圖3可以看出,3種測試生成方法經(jīng)過反復(fù)迭代最終都可以覆蓋Web應(yīng)用中的所有敏感路徑。隨著搜索代數(shù)的增加,3種方法生成的個體集合對敏感路徑集的覆蓋率逐漸提高,其中MyGA+MySA和MyGA+HC上升較快,而本文方法(MyGA+MySA)能較早地覆蓋所有敏感路徑。

    圖3 3種測試生成方法在3個被測程序搜索過程中對敏感路徑的覆蓋情況Fig.3 Coverage of sensitive paths by the three test generation methods during three search processes

    由此可見,對于3個被測程序,本文方法在總搜索代數(shù),執(zhí)行個體數(shù)量及時間開銷上優(yōu)于于其他兩種方法。此外,測試用例生成的結(jié)果表明本文方法可以生成滿足要求的測試用例,這意味著從客戶端行為模型擴展有限狀態(tài)機上生成的抽象測試用例可以轉(zhuǎn)換為測試腳本并執(zhí)行,進一步驗證了本文所提出的測試腳本自動生成方法是可行和有效的。

    3 結(jié)論

    1)基于Selenium的測試腳本自動構(gòu)建方法,能有效解決由模型生成的抽象測試用例不可直接執(zhí)行問題。

    2)Memetic進化搜索能從Web應(yīng)用客戶端EFSM生成測試用例覆蓋服務(wù)器端敏感路徑;并且在搜索過程中,以敏感路徑的覆蓋信息作為啟發(fā)信息設(shè)計的全局和局部適應(yīng)度函數(shù)能夠加速演化過程,在總搜索代數(shù),執(zhí)行個體數(shù)量及時間開銷上優(yōu)于其他2種方法。

    針對測試用例自動生成,在后續(xù)的工作中將考慮根據(jù)更多的過濾機制來生成多樣化的惡意數(shù)據(jù),增加測試用例的故障檢測效果。

    猜你喜歡
    源點狀態(tài)機測試用例
    基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
    基于有限狀態(tài)機的交會對接飛行任務(wù)規(guī)劃方法
    基于混合遺傳算法的回歸測試用例集最小化研究
    隱喻的語篇銜接模式
    首屆“絲路源點·青年學(xué)者研討會”主題論壇在我校成功舉辦
    淺析井控坐崗的源點
    基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
    FPGA設(shè)計中狀態(tài)機安全性研究
    基于反熔絲FPGA的有限狀態(tài)機加固設(shè)計
    軟件回歸測試用例選取方法研究
    免费在线观看亚洲国产| 国产爱豆传媒在线观看| 91av网一区二区| 国产午夜精品久久久久久| av视频在线观看入口| 久久久色成人| 高清在线国产一区| 国内精品一区二区在线观看| 人人妻,人人澡人人爽秒播| 亚洲18禁久久av| 舔av片在线| 好男人在线观看高清免费视频| 色尼玛亚洲综合影院| 国产1区2区3区精品| 成年版毛片免费区| 午夜a级毛片| 九九热线精品视视频播放| 毛片女人毛片| 看黄色毛片网站| 欧美三级亚洲精品| 免费看a级黄色片| 中文字幕人妻丝袜一区二区| 一本一本综合久久| 精品一区二区三区av网在线观看| 成年女人看的毛片在线观看| 岛国视频午夜一区免费看| 国产精品 国内视频| 国产97色在线日韩免费| 国产伦一二天堂av在线观看| 好男人电影高清在线观看| 亚洲av免费在线观看| 亚洲五月天丁香| 欧美黄色淫秽网站| 欧美日韩国产亚洲二区| av中文乱码字幕在线| 长腿黑丝高跟| 国产欧美日韩一区二区精品| 一级毛片女人18水好多| 国产一级毛片七仙女欲春2| 日本 av在线| 国产精品女同一区二区软件 | 日日夜夜操网爽| 黑人巨大精品欧美一区二区mp4| 亚洲欧美日韩无卡精品| 免费观看人在逋| 在线观看免费午夜福利视频| 国产伦精品一区二区三区四那| 国产精品99久久99久久久不卡| 亚洲欧美日韩无卡精品| 欧美日韩乱码在线| 少妇的丰满在线观看| 色综合婷婷激情| 老熟妇仑乱视频hdxx| 国产91精品成人一区二区三区| 最近最新中文字幕大全免费视频| www.精华液| 搞女人的毛片| 无遮挡黄片免费观看| 午夜福利免费观看在线| 老司机午夜十八禁免费视频| 国产亚洲精品av在线| 国产高潮美女av| 日韩欧美一区二区三区在线观看| 一边摸一边抽搐一进一小说| av黄色大香蕉| 一级黄色大片毛片| 美女黄网站色视频| 欧美乱妇无乱码| 成人18禁在线播放| 国产精品一区二区三区四区免费观看 | 亚洲性夜色夜夜综合| 在线观看免费午夜福利视频| 好看av亚洲va欧美ⅴa在| 日韩欧美国产一区二区入口| 国产精品精品国产色婷婷| 成人性生交大片免费视频hd| 一级毛片高清免费大全| 神马国产精品三级电影在线观看| 俄罗斯特黄特色一大片| 婷婷丁香在线五月| 成年版毛片免费区| 亚洲,欧美精品.| 久久精品91无色码中文字幕| 久久午夜综合久久蜜桃| 国产99白浆流出| 国产私拍福利视频在线观看| 两性夫妻黄色片| 美女扒开内裤让男人捅视频| 三级男女做爰猛烈吃奶摸视频| 精华霜和精华液先用哪个| а√天堂www在线а√下载| 色视频www国产| 亚洲国产日韩欧美精品在线观看 | 欧美性猛交╳xxx乱大交人| 欧美3d第一页| 白带黄色成豆腐渣| 99精品欧美一区二区三区四区| 欧美乱妇无乱码| 99热精品在线国产| 亚洲美女黄片视频| 天天躁日日操中文字幕| 亚洲在线观看片| 国产一区二区三区视频了| 一二三四社区在线视频社区8| 久久久色成人| 又黄又粗又硬又大视频| 在线永久观看黄色视频| 嫁个100分男人电影在线观看| xxx96com| 神马国产精品三级电影在线观看| 男女之事视频高清在线观看| 色尼玛亚洲综合影院| 成年女人看的毛片在线观看| 久久中文字幕人妻熟女| 久久伊人香网站| 麻豆成人av在线观看| 精品乱码久久久久久99久播| 久久这里只有精品19| 好看av亚洲va欧美ⅴa在| 18禁黄网站禁片免费观看直播| 亚洲欧美日韩卡通动漫| www.熟女人妻精品国产| 97碰自拍视频| 国产伦人伦偷精品视频| 欧美大码av| 国内精品美女久久久久久| 国产三级黄色录像| 欧美成人免费av一区二区三区| 亚洲色图av天堂| 国产精品av视频在线免费观看| 99riav亚洲国产免费| 欧美丝袜亚洲另类 | 国产精品日韩av在线免费观看| 制服丝袜大香蕉在线| 欧美成人一区二区免费高清观看 | 黄色日韩在线| 9191精品国产免费久久| 一区二区三区激情视频| 国产一区二区在线av高清观看| 午夜激情福利司机影院| 中文字幕av在线有码专区| 国产精品综合久久久久久久免费| 无遮挡黄片免费观看| 欧美性猛交黑人性爽| 一本久久中文字幕| 精品一区二区三区av网在线观看| 日本成人三级电影网站| 人人妻人人澡欧美一区二区| 日韩高清综合在线| 亚洲第一电影网av| 在线观看66精品国产| 2021天堂中文幕一二区在线观| 十八禁网站免费在线| 国产精品久久久久久人妻精品电影| 级片在线观看| 精品福利观看| 国产主播在线观看一区二区| 久久亚洲真实| 亚洲天堂国产精品一区在线| 婷婷精品国产亚洲av在线| 亚洲精品粉嫩美女一区| 亚洲国产色片| 99精品在免费线老司机午夜| 12—13女人毛片做爰片一| 嫩草影院精品99| 精品熟女少妇八av免费久了| 色综合婷婷激情| 一进一出抽搐gif免费好疼| 国产成年人精品一区二区| 亚洲黑人精品在线| 国产av一区在线观看免费| 国产亚洲精品一区二区www| 国产精品香港三级国产av潘金莲| 18禁美女被吸乳视频| 国产成人一区二区三区免费视频网站| 午夜日韩欧美国产| 国产精品影院久久| 90打野战视频偷拍视频| 无人区码免费观看不卡| 一级毛片高清免费大全| 国产成人系列免费观看| 欧美激情在线99| 两个人看的免费小视频| 嫩草影视91久久| 99国产精品一区二区蜜桃av| av黄色大香蕉| 久久国产乱子伦精品免费另类| 国产一区二区三区在线臀色熟女| 中文字幕最新亚洲高清| 午夜福利在线观看免费完整高清在 | 亚洲精品美女久久久久99蜜臀| 国产成人av教育| 国产激情欧美一区二区| 亚洲专区中文字幕在线| 噜噜噜噜噜久久久久久91| 亚洲成人久久爱视频| 国产精品一区二区免费欧美| av福利片在线观看| 久久久成人免费电影| 欧美日韩一级在线毛片| 中文字幕久久专区| 日本五十路高清| 噜噜噜噜噜久久久久久91| 亚洲第一电影网av| 午夜福利在线观看免费完整高清在 | 99在线视频只有这里精品首页| 一本精品99久久精品77| 国产一区二区三区视频了| 18禁国产床啪视频网站| 中出人妻视频一区二区| 熟妇人妻久久中文字幕3abv| 97人妻精品一区二区三区麻豆| 91av网站免费观看| 亚洲一区高清亚洲精品| 亚洲精品乱码久久久v下载方式 | 日本黄大片高清| 国内毛片毛片毛片毛片毛片| 99久久综合精品五月天人人| av天堂中文字幕网| 亚洲精品色激情综合| 夜夜夜夜夜久久久久| 91九色精品人成在线观看| 女人高潮潮喷娇喘18禁视频| 亚洲欧美日韩卡通动漫| 法律面前人人平等表现在哪些方面| 熟女电影av网| 嫩草影院精品99| 精品无人区乱码1区二区| 久久久久久久久中文| 18禁观看日本| 亚洲欧美一区二区三区黑人| 成人三级做爰电影| 18禁观看日本| а√天堂www在线а√下载| 精品久久久久久成人av| 一级黄色大片毛片| 精品国产乱码久久久久久男人| 色视频www国产| 中文资源天堂在线| 午夜a级毛片| 桃红色精品国产亚洲av| 婷婷亚洲欧美| 亚洲精品美女久久久久99蜜臀| 久久九九热精品免费| 精品久久久久久久久久免费视频| av天堂中文字幕网| 国产精品日韩av在线免费观看| 精品无人区乱码1区二区| 一本综合久久免费| 久久精品夜夜夜夜夜久久蜜豆| 国产精品美女特级片免费视频播放器 | 午夜视频精品福利| 视频区欧美日本亚洲| 久久这里只有精品19| 夜夜看夜夜爽夜夜摸| 亚洲精品美女久久av网站| x7x7x7水蜜桃| 在线十欧美十亚洲十日本专区| 亚洲精品美女久久av网站| 免费在线观看成人毛片| 欧美不卡视频在线免费观看| 88av欧美| 精品无人区乱码1区二区| 亚洲国产高清在线一区二区三| 日韩三级视频一区二区三区| 亚洲一区高清亚洲精品| 亚洲电影在线观看av| 亚洲av第一区精品v没综合| 午夜福利在线观看免费完整高清在 | 日本 欧美在线| 欧美国产日韩亚洲一区| 亚洲 欧美 日韩 在线 免费| 露出奶头的视频| 亚洲人成伊人成综合网2020| 国产黄片美女视频| 亚洲国产欧洲综合997久久,| 欧洲精品卡2卡3卡4卡5卡区| 人妻夜夜爽99麻豆av| 国产亚洲欧美在线一区二区| 中出人妻视频一区二区| 每晚都被弄得嗷嗷叫到高潮| a级毛片在线看网站| 制服人妻中文乱码| 国产爱豆传媒在线观看| 亚洲国产欧美一区二区综合| 欧美精品啪啪一区二区三区| 天堂动漫精品| 91老司机精品| 欧美av亚洲av综合av国产av| 操出白浆在线播放| 九九在线视频观看精品| 免费看美女性在线毛片视频| 国产探花在线观看一区二区| 色噜噜av男人的天堂激情| 美女 人体艺术 gogo| 婷婷亚洲欧美| 男女之事视频高清在线观看| 国产伦精品一区二区三区四那| 黑人巨大精品欧美一区二区mp4| 亚洲精品中文字幕一二三四区| 午夜久久久久精精品| 日本成人三级电影网站| 亚洲欧美日韩卡通动漫| 高潮久久久久久久久久久不卡| 亚洲电影在线观看av| 亚洲性夜色夜夜综合| 色尼玛亚洲综合影院| 18禁黄网站禁片免费观看直播| 久久精品91无色码中文字幕| 中文字幕av在线有码专区| 亚洲精品美女久久av网站| 99久久综合精品五月天人人| 久久精品91蜜桃| 母亲3免费完整高清在线观看| 亚洲国产日韩欧美精品在线观看 | 日本免费一区二区三区高清不卡| 性色avwww在线观看| 久久人妻av系列| av欧美777| 男人的好看免费观看在线视频| 国产精品国产高清国产av| 中文字幕人妻丝袜一区二区| 精品国产乱子伦一区二区三区| 国产精品影院久久| 在线观看免费午夜福利视频| 亚洲专区国产一区二区| 欧美一区二区国产精品久久精品| 亚洲av中文字字幕乱码综合| 国内揄拍国产精品人妻在线| 熟女少妇亚洲综合色aaa.| 国内精品美女久久久久久| 舔av片在线| 少妇的逼水好多| 欧美在线黄色| av女优亚洲男人天堂 | 国产精品av久久久久免费| 亚洲成a人片在线一区二区| 久久国产精品影院| 日韩欧美一区二区三区在线观看| 日韩高清综合在线| 中文资源天堂在线| 午夜福利在线观看免费完整高清在 | 成人特级av手机在线观看| 国产精品久久久久久亚洲av鲁大| 国产成人精品久久二区二区91| 国产熟女xx| 欧美日韩中文字幕国产精品一区二区三区| 成人欧美大片| 露出奶头的视频| 亚洲中文日韩欧美视频| 听说在线观看完整版免费高清| 丁香六月欧美| 露出奶头的视频| 国产欧美日韩精品一区二区| 国产精品,欧美在线| 亚洲精品一区av在线观看| 一区二区三区国产精品乱码| 久久亚洲精品不卡| 国产精品久久视频播放| 人妻丰满熟妇av一区二区三区| 精品久久久久久,| 午夜免费激情av| 91在线观看av| 宅男免费午夜| 欧美丝袜亚洲另类 | 亚洲成人免费电影在线观看| 久久久久九九精品影院| 一级a爱片免费观看的视频| av黄色大香蕉| 青草久久国产| 在线看三级毛片| 亚洲色图 男人天堂 中文字幕| 91久久精品国产一区二区成人 | 男女床上黄色一级片免费看| 少妇丰满av| 色哟哟哟哟哟哟| 人人妻人人看人人澡| 国产探花在线观看一区二区| 国产高清videossex| 欧美色视频一区免费| 亚洲一区高清亚洲精品| 国产aⅴ精品一区二区三区波| 国产伦在线观看视频一区| 曰老女人黄片| 18禁观看日本| 哪里可以看免费的av片| 给我免费播放毛片高清在线观看| 99久久精品国产亚洲精品| 国产成人精品久久二区二区免费| 成年女人看的毛片在线观看| 免费电影在线观看免费观看| 99精品久久久久人妻精品| 美女被艹到高潮喷水动态| 亚洲专区中文字幕在线| 欧美av亚洲av综合av国产av| 视频区欧美日本亚洲| 国产成人aa在线观看| 精品国内亚洲2022精品成人| 亚洲专区国产一区二区| 精品免费久久久久久久清纯| 真人做人爱边吃奶动态| 国产精品九九99| 国产aⅴ精品一区二区三区波| 国产精品98久久久久久宅男小说| 亚洲国产欧美一区二区综合| 熟妇人妻久久中文字幕3abv| 国产成人福利小说| 精品午夜福利视频在线观看一区| 亚洲专区中文字幕在线| 一个人观看的视频www高清免费观看 | 欧美黑人巨大hd| 99国产精品99久久久久| 久久中文看片网| 人妻久久中文字幕网| 国产精品久久久久久亚洲av鲁大| 亚洲aⅴ乱码一区二区在线播放| 欧美乱色亚洲激情| 成人特级av手机在线观看| 国产精品一区二区免费欧美| 精华霜和精华液先用哪个| 亚洲人与动物交配视频| 老熟妇乱子伦视频在线观看| 午夜福利视频1000在线观看| 国产精品国产高清国产av| 欧美一区二区国产精品久久精品| 日韩欧美国产在线观看| 欧美又色又爽又黄视频| 国产97色在线日韩免费| 欧美+亚洲+日韩+国产| 99riav亚洲国产免费| 亚洲专区字幕在线| 国产精品久久久久久人妻精品电影| 久久久久久久久中文| 欧美黄色片欧美黄色片| 天堂影院成人在线观看| 亚洲欧美日韩无卡精品| 美女扒开内裤让男人捅视频| 超碰成人久久| 我要搜黄色片| 欧美最黄视频在线播放免费| 色综合亚洲欧美另类图片| 色视频www国产| 黄色 视频免费看| 在线观看午夜福利视频| 三级国产精品欧美在线观看 | 国产探花在线观看一区二区| 久久天堂一区二区三区四区| 99久久综合精品五月天人人| 亚洲国产精品sss在线观看| 欧美日韩福利视频一区二区| 99国产精品一区二区三区| 久久精品综合一区二区三区| 久久国产精品人妻蜜桃| 精品国产三级普通话版| svipshipincom国产片| 日韩 欧美 亚洲 中文字幕| 免费在线观看亚洲国产| 麻豆久久精品国产亚洲av| 日本免费a在线| 国产精品99久久久久久久久| 在线免费观看的www视频| 欧洲精品卡2卡3卡4卡5卡区| 亚洲国产看品久久| 狂野欧美激情性xxxx| 悠悠久久av| 免费在线观看亚洲国产| 欧美+亚洲+日韩+国产| 99在线视频只有这里精品首页| 国产亚洲av高清不卡| 国产高清有码在线观看视频| 国产精品亚洲一级av第二区| 老鸭窝网址在线观看| 欧美乱码精品一区二区三区| 亚洲中文av在线| 两个人看的免费小视频| 亚洲无线在线观看| 久久久久久久久免费视频了| 久久精品亚洲精品国产色婷小说| 综合色av麻豆| 夜夜躁狠狠躁天天躁| 国产高清激情床上av| 国产单亲对白刺激| 午夜福利18| 法律面前人人平等表现在哪些方面| 亚洲成人中文字幕在线播放| 又爽又黄无遮挡网站| 国产精品久久久久久久电影 | 欧美zozozo另类| 亚洲无线观看免费| 国产成人精品无人区| 国内精品一区二区在线观看| а√天堂www在线а√下载| 白带黄色成豆腐渣| 久久久久久大精品| 看黄色毛片网站| 久久精品综合一区二区三区| 99国产综合亚洲精品| 99热精品在线国产| АⅤ资源中文在线天堂| 欧美国产日韩亚洲一区| 久久精品影院6| 淫妇啪啪啪对白视频| 国产精品av视频在线免费观看| 精品日产1卡2卡| 国产精品影院久久| 在线看三级毛片| 人妻夜夜爽99麻豆av| 99在线视频只有这里精品首页| 国产高清视频在线播放一区| 亚洲人成电影免费在线| 亚洲成人精品中文字幕电影| 日本撒尿小便嘘嘘汇集6| 又粗又爽又猛毛片免费看| 操出白浆在线播放| 亚洲午夜理论影院| 一二三四社区在线视频社区8| 国产激情欧美一区二区| 久久久水蜜桃国产精品网| 国产成人av激情在线播放| 亚洲精品国产精品久久久不卡| 亚洲av中文字字幕乱码综合| 国产午夜精品久久久久久| 国产在线精品亚洲第一网站| 人人妻人人澡欧美一区二区| 观看免费一级毛片| 国产成年人精品一区二区| 观看免费一级毛片| www.999成人在线观看| 欧美中文综合在线视频| 五月伊人婷婷丁香| 欧美极品一区二区三区四区| av国产免费在线观看| 国产单亲对白刺激| 日本精品一区二区三区蜜桃| 国产探花在线观看一区二区| 午夜福利免费观看在线| av福利片在线观看| 日韩高清综合在线| 亚洲人成网站在线播放欧美日韩| 欧美成人一区二区免费高清观看 | 深夜精品福利| www.熟女人妻精品国产| 色吧在线观看| 法律面前人人平等表现在哪些方面| 女人高潮潮喷娇喘18禁视频| 男插女下体视频免费在线播放| 久久精品亚洲精品国产色婷小说| 欧美日韩国产亚洲二区| 国产69精品久久久久777片 | 国产精品野战在线观看| 日韩 欧美 亚洲 中文字幕| x7x7x7水蜜桃| 三级男女做爰猛烈吃奶摸视频| 男女床上黄色一级片免费看| 久9热在线精品视频| 中文字幕av在线有码专区| 国产精品久久久人人做人人爽| 精品无人区乱码1区二区| 国产视频一区二区在线看| 51午夜福利影视在线观看| 小蜜桃在线观看免费完整版高清| 午夜福利高清视频| 日本a在线网址| 看黄色毛片网站| 哪里可以看免费的av片| 天堂影院成人在线观看| 国产精品av视频在线免费观看| 最新在线观看一区二区三区| 免费在线观看影片大全网站| 69av精品久久久久久| 人人妻人人看人人澡| 亚洲18禁久久av| 国产成人啪精品午夜网站| 午夜福利在线在线| 两性夫妻黄色片| 成人国产综合亚洲| 成在线人永久免费视频| 男女那种视频在线观看| 精品国产三级普通话版| 最新在线观看一区二区三区| 男人舔奶头视频| 国模一区二区三区四区视频 | 精品午夜福利视频在线观看一区| 三级国产精品欧美在线观看 | 久久性视频一级片| 亚洲avbb在线观看| 波多野结衣高清无吗| a在线观看视频网站| 亚洲自偷自拍图片 自拍| 哪里可以看免费的av片| 国产av一区在线观看免费| 亚洲国产精品999在线| 一级作爱视频免费观看| 免费av不卡在线播放| 午夜亚洲福利在线播放| 亚洲男人的天堂狠狠| 日韩欧美精品v在线| 女警被强在线播放| 亚洲熟女毛片儿| 日本a在线网址| 男女那种视频在线观看| 国产精品爽爽va在线观看网站| 亚洲一区二区三区不卡视频| 99久久国产精品久久久| 欧美又色又爽又黄视频| 成人三级做爰电影| 亚洲狠狠婷婷综合久久图片| www日本在线高清视频| 成人无遮挡网站| 久久精品人妻少妇| 免费在线观看亚洲国产| 午夜a级毛片| 日本一本二区三区精品| 欧美av亚洲av综合av国产av| 欧美最黄视频在线播放免费|