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

    基于強化學習選擇策略的路徑覆蓋測試數(shù)據(jù)生成算法

    2024-08-15 00:00:00劉超丁蕊朱雨寒
    計算機應用研究 2024年8期

    摘 要:面向路徑覆蓋的測試是軟件測試的重要方法之一。如何快速生成高質(zhì)量測試數(shù)據(jù)使其滿足路徑覆蓋要求,一直是研究熱點問題。為解決現(xiàn)有智能優(yōu)化方法運行時間長、探索過程不穩(wěn)定以及生成測試用例冗余的問題,提出一種基于強化學習思想的選擇策略,用于以路徑覆蓋為準則的測試數(shù)據(jù)生成中。通過將可執(zhí)行路徑定義為智能體狀態(tài),算法每一輪迭代更新后的數(shù)據(jù)選擇定義為智能體動作,并將獎勵函數(shù)與狀態(tài)變化關聯(lián),在狀態(tài)更新過程中使用貪心策略來引導輸入數(shù)據(jù)不斷向未獲取狀態(tài)變異更新,以此不斷選擇能夠覆蓋新可執(zhí)行路徑的數(shù)據(jù),從而實現(xiàn)對待測程序所有執(zhí)行路徑覆蓋的目標。實驗結果表明,與其他算法相比,所提策略的運行時間和迭代次數(shù)明顯降低,同時覆蓋率快速提高。結合理論分析可以得出結論:所提策略在實際運用中能夠有效實現(xiàn)路徑覆蓋并提高測試數(shù)據(jù)生成效率。

    關鍵詞:測試數(shù)據(jù)生成; 路徑覆蓋; 強化學習; 選擇策略

    中圖分類號:TP311 文獻標志碼:A

    文章編號:1001-3695(2024)08-031-2467-07

    doi:10.19734/j.issn.1001-3695.2023.11.0592

    Algorithm for path coverage test data generation based onreinforcement learning selection strategy

    Liu Chaoa, Ding Ruib, Zhu Yuhana

    (a.School of Mathematics & Science, b.School of Computing & Information Technology,Mudanjiang Normal University, Mudanjiang Heilongjiang 157000, China)

    Abstract:Path-coverage oriented testing is a crucial method in software testing, and the rapid generation of high-quality test data to satisfy path coverage requirements has been a persistent research challenge. To address issues such as long running times, unstable exploration processes, and the generation of redundant test cases in existing intelligent optimization methods, this paper proposed a selection strategy based on the reinforcement learning paradigm applied to test data generation with path coverage as the criterion. By defining executable paths as the state of the intelligent agent, it defined the data selection after each iteration update as the agent’s action. It associated the reward function with state changes, and employed a greedy strategy during the state update process to guide input data towards continuous variations in unexplored states. This iterative selection process aimed to continuously choose data that covered new executable paths, thereby achieving the goal of covering all execution paths of the target program. Experimental results demonstrate that compared to other algorithms, the proposed strategy significantly reduces running times and iteration counts while achieving notable improvements in coverage. Theoretical ana-lysis supports the conclusion that the proposed strategy effectively realizes path coverage and enhances the efficiency of test data generation in practical applications.

    Key words:test data generation; path coverage; reinforcement learning; selection strategy

    0 引言

    軟件測試是保障軟件質(zhì)量的重要方法。其對軟件進行大量的測試,用來發(fā)現(xiàn)軟件中可能存在的缺陷和錯誤[1]。當下對軟件行業(yè)的統(tǒng)計結果顯示,關乎軟件測試的花費成本很高,往往能占整個項目開發(fā)的一半[2]。而軟件測試的核心在于生成有效的測試數(shù)據(jù),用來滿足規(guī)定的測試充分性準則。因此,如何高效地生成測試數(shù)據(jù),就具有重要的現(xiàn)實意義和經(jīng)濟價值[3]。

    面向覆蓋的測試數(shù)據(jù)生成方法通過覆蓋待測軟件的需要滿足測試要求,是經(jīng)典的測試數(shù)據(jù)生成方法。路徑覆蓋作為面向覆蓋的最基本充分性準則之一,其要求選取足夠多的測試數(shù)據(jù),使待測程序的每條可達路徑都至少執(zhí)行一次??梢詫栴}描述為:對于給定程序的目標路徑,需要在程序的輸入空間里尋找或生成能夠覆蓋目標路徑的測試數(shù)據(jù)[4]。

    對于測試數(shù)據(jù)生成,傳統(tǒng)優(yōu)化算法方面,Goschen等人[5]利用遺傳規(guī)劃方法來進行自動化軟件測試,動態(tài)地生成輸入值來探索給定軟件的輸入域,從而實現(xiàn)更好的路徑覆蓋。Sun等人[6]將分布式代理引導進化優(yōu)化與測試用例生成相結合,以提高程序中路徑覆蓋測試的測試用例生成效率。Zhang等人[7]提出覆蓋引導的模糊測試生成測試數(shù)據(jù),以此來檢測軟件運行中的缺陷和故障。Potluri等人[8]提出了一種混合群智能方法,將粒子群、蜜蜂群和螢火蟲、布谷鳥算法結合,以優(yōu)化測試覆蓋率,從而高效地生成測試數(shù)據(jù)。Damia等人[9]提出基于群的遺傳算法,采用全新的適應度函數(shù)來更新種群,實現(xiàn)測試數(shù)據(jù)的生成。丁蕊等人[10]提出關鍵點路徑表示法來計算理論路徑的數(shù)目,從覆蓋難易程度上對路徑進行分類,并使用遺傳算法來生成難覆蓋路徑的測試數(shù)據(jù)。錢忠勝等人[11]提出一種結合關鍵點與路徑相似度的多種群多覆蓋策略,來提高測試數(shù)據(jù)生成效率。Kumar等人[12]針對測試數(shù)據(jù)自動生成問題,提出了一種蟻群優(yōu)化負選擇算法,對生成的數(shù)據(jù)進行細化,以此來提高測試數(shù)據(jù)質(zhì)量。雖然傳統(tǒng)的優(yōu)化算法能夠有效地生成測試數(shù)據(jù),但是其受搜索能力以及更新速度等因素限制,容易陷入過早收斂,并且由于其缺乏并行性,在大規(guī)模路徑覆蓋或者復雜程序的測試數(shù)據(jù)生成問題中,存在計算時間過長、生成測試數(shù)據(jù)效率不高的問題。

    在測試數(shù)據(jù)生成問題中,執(zhí)行路徑受到輸入數(shù)據(jù)、內(nèi)部結構變化等因素影響,構成了一個動態(tài)的環(huán)境。同時,路徑覆蓋問題中需要探索全局最優(yōu)解,測試數(shù)據(jù)的生成要考慮長期目標,而不是局部最優(yōu)解,這些都需要在高維度的決策空間中進行搜索。強化學習[24]作為利用智能體與環(huán)境的交互進行學習以達成回報最大化或?qū)崿F(xiàn)特定目標的方法,在面向復雜程序的測試時,以動態(tài)環(huán)境為基礎,通過獎勵函數(shù),在動態(tài)環(huán)境中展現(xiàn)出比其他智能優(yōu)化算法更好的環(huán)境適應性和靈活性。同時,強化學習具有一個長期的獎勵導向功能,能夠高效地處理高維度的決策問題,與其他智能優(yōu)化算法相比,能夠更好地探索全局最優(yōu)解,不易陷入局部最優(yōu)。

    在強化學習方面,曹靜[13]提出一種基于強化學習的智能化測試用例生成方法,通過強化學習模型建立測試智能體Xbot,將測試用例生成問題轉(zhuǎn)換為多步?jīng)Q策優(yōu)化問題,以此來快速生成測試用例。Spieker等人[14]使用一種基于強化學習的方法Retecs,其根據(jù)數(shù)據(jù)持續(xù)時間、上次執(zhí)行時間和失敗歷史來選擇測試用例,提供了一種更輕量級的學習方法,證明了強化學習能夠在持續(xù)集成和回歸測試中進行有效的自動化自適應測試用例選擇。Esnaashari等人[15]提出一種模因算法,將強化學習作為遺傳算法中的一種局部搜索方法,以此來提高測試數(shù)據(jù)生成速度。Reddy等人[16]提出一種基于表格策略的強化學習方法RLCheck,將隨機選擇問題形式化成多樣化引導問題,通過RLCheck方法生成有效的測試數(shù)據(jù)。Cˇegiň等人[17]提出一種基于強化學習的測試數(shù)據(jù)生成方法,通過獎賞函數(shù)對每一組測試數(shù)據(jù)形成的覆蓋率提供一個獎勵,同時將測試函數(shù)主體添加到強化學習算法中,根據(jù)被測函數(shù)的復雜度推斷個體嘗試次數(shù),再利用神經(jīng)網(wǎng)絡對獎勵進行訓練,以此達到路徑的完全覆蓋或滿足給定的嘗試次數(shù)。Kim等人[18]使用強化學習取代元啟發(fā)式算法,將被測軟件重構為強化學習環(huán)境,構建了GunPowder框架,利用深度神經(jīng)網(wǎng)絡訓練一個雙深度Q-Networks智能體,通過實驗驗證了其在分支路徑覆蓋上的可行性。Harries等人[19]提出一種用于功能軟件測試的強化學習(RL)框架DRIVE,并提出Batch-RL方法進行Q學習,用圖神經(jīng)網(wǎng)絡對狀態(tài)-動作值函數(shù)進行建模,證明此框架可以用自動化的方式觸發(fā)所需的軟件功能,能夠高效地測試具有大范圍測試目標的軟件。Tsai等人[20]提出了DeepRNG框架,其主要通過在框架里增加深度強化學習代理來提高軟件的測試數(shù)據(jù)生成效率。王立歆[21]提出了一種基于分層強化學習的混合測試算法LCCT,采用馬爾可夫決策過程作為上層控制,模糊測試方法作為決策補充來測試數(shù)據(jù)。Pan等人[22]提出了一種基于強化學習方法的Q-Testing,使用一種好奇心驅(qū)動的策略來探索被測程序,該策略利用已訪問過的部分狀態(tài)來引導測試轉(zhuǎn)向不熟悉的程序區(qū)域。Pan等人[23]提出一種將可測性分析與強化學習相結合的方法,利用強化學習方法來大大縮減測試數(shù)據(jù)生成的時間,并提高代碼覆蓋率。綜上,強化學習算法通過將數(shù)據(jù)生成過程轉(zhuǎn)換成與環(huán)境的交互學習過程,能夠避免算法陷入過早收斂。同時,智能體通過自主探索解空間,充分利用計算資源,能夠提高測試數(shù)據(jù)生成的效率。但現(xiàn)有的強化學習算法在面對路徑覆蓋的測試數(shù)據(jù)生成研究中仍面臨一些挑戰(zhàn),如探索過程不穩(wěn)定、測試用例贅余等問題。

    為了應對上述挑戰(zhàn),本文研究基于強化學習算法的路徑覆蓋測試數(shù)據(jù)生成方法,提出強化學習選擇算法(reinforcement learning selection algorithm,RLSA),將強化學習思想融入面向路徑覆蓋的測試數(shù)據(jù)生成中。在測試數(shù)據(jù)生成問題中,首先以待測程序的動態(tài)環(huán)境為基礎,定義智能體的狀態(tài)及動作,將待測程序的可執(zhí)行路徑定義為狀態(tài),將每一輪更新的數(shù)據(jù)選擇定義為動作,通過這種定義方式,極大地減少了無效數(shù)據(jù)的產(chǎn)生,降低了生成冗余測試數(shù)據(jù)的可能性;然后,將貪心策略與Q學習方法相結合,設計基于環(huán)境反饋Q值學習的貪心選擇策略,用確定性的動作選擇來提高智能體學習的穩(wěn)定性和效率,以此避免隨機性探索時可能造成的探索過程不穩(wěn)定問題,實現(xiàn)測試數(shù)據(jù)生成的全局性;最后,利用獎勵函數(shù)引導智能體在高維度的決策空間選擇最優(yōu)決策,使得智能體能夠快速地生成覆蓋所有可執(zhí)行路徑的數(shù)據(jù),以此來提高算法的效率。

    1 相關知識及定義

    強化學習[24]是利用智能體與周圍環(huán)境的感知來獲取最大獎勵值,并基于此來尋找最優(yōu)化策略的方法過程。本文將強化學習的尋優(yōu)過程應用到程序結構上,先將程序結構抽象成控制流圖,再利用智能體對環(huán)境的感知交互來作出決策,最后根據(jù)決策方法不斷迭代,從而實現(xiàn)目標。對應于軟件測試數(shù)據(jù)生成問題,下面定義在強化學習中智能體學習時涉及的相關概念及條件。

    1.1 控制流圖

    在待測程序中,控制流圖是一個表示程序執(zhí)行流程的有向圖G=〈V,W,s,e〉,也對應著強化學習中智能體的整體學習環(huán)境。如圖1所示,其中節(jié)點表示程序的基本塊,邊表示基本塊之間的跳轉(zhuǎn)關系。記V={V1,V2,…,Vn}為有向圖的節(jié)點集,W={W1,W2,…,Wn}為有向圖的邊集,有Wjk=〈Vj,Vk〉,s和e分別為程序輸入的入口和出口。以圖1為例,有V={s,1,2,3,4,5,6,7,e},Ws1=〈s,1〉。

    1.2 執(zhí)行路徑及其數(shù)目計算

    執(zhí)行路徑是程序入口節(jié)點開始到出口節(jié)點的一條路徑,其通過節(jié)點的序列進行表示,如圖1中“〈s,1,3,7,e〉”就是一條由節(jié)點序列組成的執(zhí)行路徑。對于可執(zhí)行路徑的數(shù)量,利用節(jié)點、兄弟節(jié)點以及分支節(jié)點數(shù)目計算,以圖1為例,其計算方式如下所示:路徑數(shù)目=兄弟節(jié)點+節(jié)點×[分支節(jié)點×(分支子節(jié)點+分支子節(jié)點)+兄弟節(jié)點],M=②+③×[④×(⑤+⑥)+⑦],將所有節(jié)點代入數(shù)值1,得路徑數(shù)目為4。

    1.3 狀態(tài)空間

    對于狀態(tài)空間X={x0,…,xi,…},其中每一個狀態(tài)點xi都是對待測程序的一條可執(zhí)行路徑的描述,狀態(tài)空間為所有可執(zhí)行路徑的集合。以圖1為例,其狀態(tài)空間為X={〈s,1,2,e〉,〈s,1,3,4,5,e〉,〈s,1,3,4,6,e〉,〈s,1,3,7,e〉}。

    1.4 動作空間

    對于動作空間A={a0,a1,a2,…,ai,…},每一個動作ai都是對新一輪更新后的數(shù)據(jù)進行選擇行為的刻畫。以圖1程序為例,初始輸入的數(shù)據(jù)為t,新一輪對輸入數(shù)據(jù)t進行更新操作后產(chǎn)生的數(shù)據(jù)為t1,t2,t3,…,動作a0=〈t,t1〉,a1=〈t1,t2〉。例如圖1中,若輸入數(shù)據(jù)為(a,b,c),進行更新后產(chǎn)生的數(shù)據(jù)為(a1,b1,c1),(a2,b2,c2),動作a0=〈(a,b,c),(a1,b1,c1)〉,a1=〈(a,b,c),(a2,b2,c2)〉。

    1.5 獎勵函數(shù)

    獎勵函數(shù)R與測試數(shù)據(jù)所要達成的目標相關。對面向路徑覆蓋的測試數(shù)據(jù)來說,獎勵函數(shù)影響著智能體的決策。因此需要對智能體的不同動作賦予不同的獎勵值,在每一輪更新的數(shù)據(jù)中,若這些數(shù)據(jù)中能夠執(zhí)行之前未通過的新路徑,那么給智能體一個正向獎勵,否則沒有獎勵。具體如式(1)表示。

    R=iR if data have new iR path(s)

    R=0else(1)

    以圖1為例,若初始數(shù)據(jù)集(a,b,c)更新后的數(shù)據(jù)為(a1,b1,c1),相較初始數(shù)據(jù)集多執(zhí)行了一條新路徑,則更新后的數(shù)據(jù)(a1,b1,c1)獲得獎勵R=1。

    2 基于強化學習的測試數(shù)據(jù)生成方法

    本文研究利用強化學習思想提高測試數(shù)據(jù)生成效率的方法,從而快速實現(xiàn)待測程序的路徑覆蓋目標。在強化學習中,智能體是在與環(huán)境的交互中獲得信息的,在基于強化學習的路徑覆蓋測試數(shù)據(jù)生成中,智能體需要使用策略來進行狀態(tài)-動作的選擇,從而生成覆蓋路徑的測試數(shù)據(jù)。為此,提出了一種學習策略來進行智能體的模型訓練,利用確定性的狀態(tài)-動作選擇來加速智能體的學習過程,同時簡化計算過程。

    2.1 建立基于強化學習的測試數(shù)據(jù)生成模型

    在本文提出的基于強化學習的測試數(shù)據(jù)生成模型中,首先對初始數(shù)據(jù)集中覆蓋的路徑進行覆蓋率計算。若滿足覆蓋率要求,初始數(shù)據(jù)集即為滿足要求的測試數(shù)據(jù);若不滿足覆蓋要求,則利用強化學習方法更新數(shù)據(jù),生成新的初始數(shù)據(jù)集。循環(huán)迭代,直到滿足覆蓋率要求輸出數(shù)據(jù)。其具體的模型運行過程如圖2所示。

    本文目標是生成覆蓋所有路徑的數(shù)據(jù),即生成的測試數(shù)據(jù)能覆蓋待測程序的所有可執(zhí)行路徑。本文策略將貪心算法與Q學習算法相結合,用貪心選擇替換原本探索過程中的概率選擇。通過貪心算法,使得強化學習智能體更傾向于選擇當前Q值最高的動作,通過累積的Q值來引導智能體決策,促使算法能夠更快地收斂,并得到一組優(yōu)質(zhì)的測試數(shù)據(jù)。同時,貪心算法和Q學習的結合能夠減少很多在概率探索過程中的不必要嘗試,更有針對性地選擇未覆蓋的可執(zhí)行路徑,使得生成的測試數(shù)據(jù)更有可能覆蓋未被探索的可執(zhí)行路徑,從而提高測試數(shù)據(jù)的質(zhì)量,提高算法的運行效率,讓智能體能夠快速選擇出優(yōu)質(zhì)數(shù)據(jù),實現(xiàn)待測程序可執(zhí)行路徑的全覆蓋。

    具體實現(xiàn)思路如下:首先,通過控制流圖,得到所有可執(zhí)行路徑的數(shù)目,同時將每一條可執(zhí)行路徑都定義為智能體的一種狀態(tài);然后,根據(jù)隨機方法生成初始輸入數(shù)據(jù),利用智能體轉(zhuǎn)換獲得初始狀態(tài)集合,當這個初始狀態(tài)集合為狀態(tài)空間X的真子集時,說明有可執(zhí)行路徑未被覆蓋,通過變異、隨機擾動等方式更新初始輸入數(shù)據(jù),并生成多組更新后的數(shù)據(jù),以此來增加未覆蓋的可執(zhí)行路徑選擇概率;接著進行更新數(shù)據(jù)的獎勵函數(shù)值設定,在這些新生成的數(shù)據(jù)中,若有數(shù)據(jù)發(fā)現(xiàn)了初始數(shù)據(jù)集未覆蓋的執(zhí)行路徑,則智能體對這組數(shù)據(jù)選擇賦予正向獎勵值,反之無獎勵值;最終,智能體將獎勵值最大的數(shù)據(jù)替換為新的初始數(shù)據(jù)集,繼續(xù)迭代,直到智能體的狀態(tài)覆蓋整個狀態(tài)空間,即覆蓋了待測程序的所有可執(zhí)行路徑。其更新以及動作選擇的模型如圖3所示。

    2.2 基于強化學習的測試數(shù)據(jù)生成模型實現(xiàn)

    強化學習選擇策略的具體行為如下。在整個策略的具體行為上,首先通過分析待測程序控制流圖結構,計算出待測程序所有的可執(zhí)行路徑集合P以及對應的完整狀態(tài)空間X。隨機生成初始數(shù)據(jù)集t0后,通過智能體轉(zhuǎn)換環(huán)境信息,獲得初始數(shù)據(jù)集t0當前覆蓋的可執(zhí)行路徑p0,并得到初始狀態(tài)空間X0、初始動作空間A0,并設置初始Q0值為0。接下來,對X0與X進行比較。若X0X,則說明初始數(shù)據(jù)集t0未能完全覆蓋待測程序執(zhí)行路徑;若X0=X,則說明初始數(shù)據(jù)集t0已經(jīng)完全覆蓋待測程序執(zhí)行路徑,此時t0即為符合條件的測試用例。

    下面說明在更新過程中,強化學習選擇策略的具體實現(xiàn):當初始數(shù)據(jù)集未能完全覆蓋待測程序可執(zhí)行路徑時,強化學習選擇策略將Q學習與貪心方法相結合來指導智能體進一步探索學習,通過對數(shù)據(jù)集ti中各重復覆蓋可執(zhí)行路徑的數(shù)據(jù)ti,j進行m次變異、擾動操作δ,使得智能體向下探索生成新數(shù)據(jù)集為ti,jδ={ti,j1,ti,j2,…,ti,jm},由智能體動作空間A的定義,此時智能體的動作集為{ai,jk=〈ti,j,ti,jδ〉|k=1,2,…,m},同時動作空間更新為Ai+1=Ai∪{ai,jk}。再根據(jù)上述獎勵函數(shù)R的定義,給予新數(shù)據(jù)集中不同數(shù)據(jù)對應的獎勵值iR,通過貪心策略選擇新數(shù)據(jù)集ti,jδ中具有最大獎勵值的數(shù)據(jù)ti,jk,即有R(ti,j,ti,jk)=max R(ti,j,ti,jδ),同時更新狀態(tài)空間Xi+1以及數(shù)據(jù)集ti+1,并生成對應的執(zhí)行路徑pi+1。在更新好數(shù)據(jù)集及狀態(tài)空間后,再通過強化學習選擇策略來更新Q值,使其不斷地引導智能體決策,更新公式如下:

    Qi+1=(1-α)Qi+α(iRi+γ×max Q(x,a))(2)

    其中:Qi+1為新數(shù)據(jù)集ti+1的Q值;α為智能體學習效率;Qi為當前數(shù)據(jù)的Q值;iRi為所做動作的獎勵;γ為折扣因子;max Q(x,a)為新狀態(tài)下能獲取的最大動作獎勵。最后將更新后的數(shù)據(jù)ti+1作為新的數(shù)據(jù)集,重復上述過程,不斷向下進行探索迭代,直到生成覆蓋所有執(zhí)行路徑的數(shù)據(jù)并輸出結果。

    2.3 算法偽代碼分析

    算法1 強化學習選擇策略

    輸入:隨機生成的被測程序的一組測試數(shù)據(jù)。

    輸出:一組能夠覆蓋所有路徑的測試數(shù)據(jù)及各測試數(shù)據(jù)對應的路徑。

    1 function R(olddata,newdata)

    2 if newdata have new iR path(s)

    3 return iR //返回獎勵值

    4 end if

    5 return 0

    6 end function

    7 main RLSA(X,P)

    8 t0=random(data),t0,j∈t0 //數(shù)據(jù)域中隨機生成數(shù)據(jù)集

    9 t0→p0 //由數(shù)據(jù)生成對應路徑

    10X0=Xt0,A0=At0,Q0=0

    11for i=0 to N do

    12 if XiX then

    13 T=ti,jδ //變異、擾動生成下一代數(shù)據(jù)集

    14 ai,jk=〈ti,j,T〉

    15 Ai+1=Ai∪{ai,jk}

    16 iRi=max R(ti,T)

    17 ai,jk→ti,jk∈T|iRi //選擇獎勵最大的數(shù)據(jù)

    18 (ai,jk,ti,jk)→xi,jk

    19 Xi+1=Xi∪{xi,jk} //更新狀態(tài)空間

    20 ti+1=(ti\{ti,j})∪{ti,jk}

    21 ti+1→pi+1

    22 Qi+1=(1-α)Qi+α(iRi+γ×max Q(x,a))

    23 end if

    24 return datas=models(ti+1)

    25 return paths=models(pi+1)

    26?; if Xi==X then

    27 break

    28 end if

    29 end for

    在上述代碼中,首先定義算法的獎勵函數(shù)(第1行),通過判斷新數(shù)據(jù)是否涵蓋新的可執(zhí)行路徑,以此來賦予不同的獎勵值(第2~5行)。接下來,指定算法策略(第7行),隨機生成初始數(shù)據(jù)集(第8行),由初始數(shù)據(jù)得到已覆蓋的路徑情況(第9行)、初始狀態(tài)空間、動作空間以及Q值(第10行)。然后執(zhí)行本文算法的循環(huán)更新過程(第12~29行)。通過比較初始數(shù)據(jù)集狀態(tài)空間與整個待測程序狀態(tài)空間的包含關系來判定是否生成新數(shù)據(jù),若此時初始狀態(tài)集合為待測程序狀態(tài)空間集合真子集(第12行),則通過變異、擾動等方式對重復覆蓋路徑的數(shù)據(jù)進行更新(第13行),然后更新動作集(第14行)以及動作空間(第15行),再通過最大獎勵值(第16行)進行動作選擇更新數(shù)據(jù)(第17行),以及更新數(shù)據(jù)對應的狀態(tài)集(第18行)和狀態(tài)空間(第19行),之后更新數(shù)據(jù)集(第20行)、對應的路徑(第21行)以及Q值(第22行)。最后,重復迭代上述過程,直到更新后數(shù)據(jù)集的狀態(tài)空間等于待測程序狀態(tài)空間或滿足迭代終止條件,輸出此時的測試數(shù)據(jù)(第24行)以及其對應的可執(zhí)行路徑(第25行)。

    2.4 時間復雜度分析

    本文算法每次更新Q值表時需要進行的計算量與狀態(tài)數(shù)目及動作數(shù)目相關。具體來說,對于一個有n條可執(zhí)行路徑的程序,其狀態(tài)數(shù)為n,記每一次動作選擇的數(shù)目為m,其中m不超過算法設定的最大變異數(shù)。在每次更新Q值表時,需要計算所有狀態(tài)下可能的動作獎勵,每個動作的獎勵需要進行m次計算。又由于每次訓練都需要進行狀態(tài)的更新,所以總的計算量為O(N(nm)),其中N表示迭代次數(shù)。

    3 實驗分析

    為驗證本文方法在路徑覆蓋率方面的性能和可靠性,選擇隨機方法(RA)、傳統(tǒng)優(yōu)化算法中的遺傳算法(GA)、改進的粒子群算法(PSO)[25]、TOGA算法[26]、GPSGA算法[27]和(RLSA),以及在不同的探索率下的強化學習Q-learning算法在兩個基準程序以及兩個工業(yè)程序上進行實驗對比,以檢驗本文算法是否具有更高的測試數(shù)據(jù)生成效率。本文所對比的幾種算法進行測試數(shù)據(jù)生成時,在全局搜索以及在處理復雜結構方面都有較好的表現(xiàn),具有較好的尋優(yōu)能力。所有的程序在Python 3.8軟件環(huán)境下運行,Windows 10操作系統(tǒng),機器主頻是2.80 GHz,內(nèi)存為16 GB。通過對比實驗旨在回答下面幾個問題:

    問題1 本文方法的數(shù)據(jù)生成效率是否優(yōu)于一些現(xiàn)有的優(yōu)化方法?

    問題2 本文方法在覆蓋率方面是否優(yōu)于一些現(xiàn)有的優(yōu)化方法?

    問題3 貪心探索策略在本文方法中是否優(yōu)于其他探索策略?

    3.1 測試程序以及參數(shù)

    本文使用的測試程序基本信息以及相關的實驗參數(shù)如表1和2所示。其中:triangle classification和password strength程序都是傳統(tǒng)軟件測試中常用的基準程序,其程序邏輯簡單,可以適應多種不同的測試環(huán)境,以滿足不同條件下的測試;text sentiment和decision-making support都是在現(xiàn)實生活中被廣泛應用的工業(yè)程序,具有一定的現(xiàn)實場景,能夠證明所提的測試策略在實際應用中的性能和可靠性。

    3.2 實驗結果與分析

    為了降低單次實驗造成的結果誤差,將6種算法在測試程序上運行20次,取其平均值作為對比數(shù)據(jù)。表3為6種算法在兩個基準測試程序中的運行時間、迭代次數(shù)以及多次運行后平均覆蓋率的結果比較。

    從表3中可以看出,在基準程序1中,RA的隨機選擇導致其運行時間最長,改進后的PSO算法憑借其較快的收斂速度使其運行時間相對較少,而RLSA運行時間少于其他所有算法,這是因為RLSA通過貪心策略進行選擇,提高算法計算速度的同時,一定程度上和其他算法相比減少了選擇范圍;在迭代次數(shù)方面,在這兩個基準程序中,RLSA算法也都遠少于其他的優(yōu)化算法以及隨機方法,這是因為強化學習策略有較強的適應性,能夠快速適應問題及環(huán)境找到最優(yōu)解;在覆蓋率方面,在基準程序1中,RLSA策略以及改進后的PSO、TOGA算法都能夠成功找到覆蓋所有可執(zhí)行路徑的測試數(shù)據(jù),并且在一定程度上優(yōu)于GA、GPSGA以及隨機方法。這是因為它們在全局搜索方面都進行了相應的優(yōu)化,都能夠跳出局部最優(yōu)。與此同時,RLSA策略在兩個基準程序上都可以使用較少的運行時間來覆蓋待測程序的可執(zhí)行路徑,且都具有較好的覆蓋率。這是因為RLSA策略是通過將待測程序的可執(zhí)行路徑作為狀態(tài)空間中的元素,這樣能夠更快地通過獎勵函數(shù)的引導提高路徑的覆蓋率。圖4表示算法在各程序中隨時間變化的覆蓋率。圖4(a)為程序1的運行時間與覆蓋率變化關系,其中RLSA策略可以最早達到100%覆蓋;圖(b)為程序2的運行時間與覆蓋率變化關系,其中RLSA策略同樣可以最早達到100%覆蓋,RLSA策略相對于其余策略可以達到100%覆蓋,并且運行時間最短、效率更高。

    表4為6種算法在兩個工業(yè)測試程序中的運行時間、迭代次數(shù)以及多次運行后平均覆蓋率的結果比較。

    從表4中可以看出,在text sentiment(程序3)程序的實驗中,RLSA策略在運行時間上優(yōu)于RA、GA和PSO算法,進一步說明強化學習選擇策略在智能程序上的適用性;在迭代次數(shù)方面,RLSA也有著較好的性能,說明在數(shù)據(jù)生成方面強化學習選擇策略也有較好的收斂速度;在覆蓋率方面,RLSA能夠成功找到覆蓋所有可執(zhí)行路徑的測試數(shù)據(jù),高于TOGA以及PSO算法。在decision-making support程序(程序4)實驗中,在運行時間方面,RLSA遠低于RA、TOGA以及GPSGA,這是因為RLSA在面對復雜結構時,能夠高效地在高維度決策空間中選擇最優(yōu)策略;迭代次數(shù)方面,RLSA依然具有優(yōu)勢;在覆蓋率方面,RLSA覆蓋率為100%,TOGA和GPSGA也有較高的覆蓋率,而其他算法覆蓋率則較低,這是因為在面對復雜的程序時,其他算法在高維度空間決策方面能力較差,而TOGA策略使用反向?qū)W習提高未覆蓋路徑的搜索效率,GPSAG通過保留佳點集中的優(yōu)秀個體來提高搜索精度,RLSA策略利用獎勵函數(shù)不斷引導智能體自主學習探索未知狀態(tài),增加智能體在復雜程序中的探索范圍和搜索效率,以此來實現(xiàn)更好的路徑覆蓋。因此,對于工業(yè)程序,RLSA算法在覆蓋率方面仍然保持著較好的性能。圖4(c)為程序3的運行時間與覆蓋率變化關系,其中只有RLSA策略達到100%覆蓋;圖(d)為程序4的運行時間與覆蓋率變化關系,同樣只有RLSA策略可以達到100%覆蓋,其余算法都未達到100%的覆蓋,說明RLSA策略在覆蓋率方面顯著優(yōu)于其他方法。

    本文所提策略中使用貪心策略,相比于強化學習方法中原本的概率選擇方法,生成的測試數(shù)據(jù)能夠更好地覆蓋此前未覆蓋的可執(zhí)行路徑,較好地提高測試數(shù)據(jù)的生成效率。表5為強化學習選擇策略和其他使用不同探索率的強化學習Q-learning算法在運行4種待測程序后的運行時間比較。

    從表5中可以看出,對于面向路徑覆蓋的測試數(shù)據(jù)生成問題,強化學習算法探索率ε和被測程序的運行時間呈正相關。而本文貪心策略能夠?qū)崿F(xiàn)最高的探索率,使得強化學習選擇策略能夠?qū)崿F(xiàn)最短的運行時間。這是由于可執(zhí)行路徑的確定,在RLSA中,將可執(zhí)行路徑作為動作的選擇,每一次動作更新都是對未被覆蓋路徑的選擇,每一次智能體向前探索時,都會優(yōu)先選擇未被探索的可執(zhí)行路徑,以此來極大地縮短運行時間,而概率選擇方法缺少搜索精度,效率會明顯低于貪心策略。圖5是在不同探索率下的強化學習Q-learning算法和本文算法在待測程序上的運行時間比較。

    3.3 算法穩(wěn)定性分析

    通過分析RLSA對以上效率、覆蓋率、迭代次數(shù)影響的實驗,得出RLSA算法在性能方面有較好的優(yōu)勢。為進一步分析RLSA策略的穩(wěn)定性,將RLSA與TOGA、GPSGA等算法進行穩(wěn)定性對比。由于RLSA的最大迭代次數(shù)為50,所以僅選擇上述實驗分析中迭代次數(shù)少于50次的算法進行穩(wěn)定性對比。

    下面重點分析RLSA、GPSGA、TOGA算法的穩(wěn)定性。對各算法種群迭代次數(shù)進行統(tǒng)計分析,選取基準測試程序和工業(yè)測試程序分別對比被測程序在各算法上種群迭代次數(shù),為避免結果的隨機性,使用各算法在被測程序上執(zhí)行5 000次的迭代次數(shù)數(shù)值來分析算法穩(wěn)定性。迭代次數(shù)統(tǒng)計結果使用帶有正態(tài)曲線的箱線圖進行展示,箱線圖用來表現(xiàn)一組種群迭代次數(shù)數(shù)據(jù)的離散程度,正態(tài)曲線可以展示數(shù)據(jù)的分布情況。箱線圖由上至下依次表示異常值、上限、上四分位數(shù)(Q3)、中位數(shù)、下四分位數(shù)(Q1)、下限。采用上四分位數(shù)和下四分位數(shù)之差(IOR=Q3-Q4)表示統(tǒng)計數(shù)據(jù)的穩(wěn)定性,即箱線圖中箱子的高度,箱子高度越高說明數(shù)據(jù)離散程度越大,反之離散程度越小。

    如圖6所示,RLSA與GPSA、TOGA算法對應箱線圖的中位數(shù)值明顯低于其余算法的中位數(shù)值。在程序2中,RLSA策略的中位數(shù)值略低于TOGA和GPSGA,是因為強化學習思想需要有強化和學習的過程,所以RLSA策略會存在少量的迭代學習過程,而在測試程序1、3、4中,RLSA策略優(yōu)勢明顯,均小于其余算法。從4個被測程序整體看,RLSA策略的迭代次數(shù)均保持在10代左右。

    從箱線圖中的IQR值來看,RLSA策略在4個測試程序中的IQR值均小于其余算法的IQR值,這說明RLSA策略的穩(wěn)定性優(yōu)于GPSGA和TOGA。

    對比箱線圖中的上四分位線,4個被測程序中,除被測程序2以外,RLSA策略均明顯低于其余算法,其中被測程序4的優(yōu)勢不明顯,其余被測程序中,RLSA策略均明顯優(yōu)于其余算法。從正態(tài)曲線看出,RLSA的數(shù)據(jù)分布離散程度最小,異常值較少,數(shù)據(jù)分布情況相比于其余算法較密集??傮w來說,RLSA策略比傳統(tǒng)算法和GPSGA、TOGA算法優(yōu)勢明顯,RLSA的覆蓋率、效率、穩(wěn)定程度均高于其余算法。

    綜上,通過已得到的實驗結果以及相關分析,逐一回答了之前的問題:

    對于問題1:基于強化學習選擇算法的測試數(shù)據(jù)生成方法能夠更好地提高測試數(shù)據(jù)生成效率,因其通過合理的狀態(tài)定義以及高效的選擇策略,使得本文方法的測試數(shù)據(jù)生成效率優(yōu)于傳統(tǒng)的優(yōu)化算法。

    對于問題2:與傳統(tǒng)的優(yōu)化方法相比,基于強化學習選擇算法的測試數(shù)據(jù)生成方法提高了路徑覆蓋率,并具有更好的穩(wěn)定性。

    對于問題3:與其他探索策略相比,基于貪心的探索策略在本文方法中具有更好的性能。

    4 結束語

    本文提出了一種基于強化學習的測試數(shù)據(jù)生成方法RLSA,通過貪心策略的強化學習方法來實現(xiàn)高效率的測試數(shù)據(jù)生成。同時,提出一種新的狀態(tài)表示方式,并設計新的動作選擇方式為強化學習策略提供指導,避免了使用強化學習方法生成測試數(shù)據(jù)時造成的大量贅余,提高了生成的測試數(shù)據(jù)的質(zhì)量。實驗表明,RLSA在迭代次數(shù)、運行時間以及路徑覆蓋率上優(yōu)于現(xiàn)有的一些方法。

    未來,將通過優(yōu)化數(shù)據(jù)更新方式來進一步改善狀態(tài)空間遍歷情況,以期能夠進一步減少智能體訓練時間。同時,對于貪心策略在一些程序中可能產(chǎn)生的測試數(shù)據(jù)生成效率不高的問題,將繼續(xù)優(yōu)化智能體在探索和利用方面的性能,以此增強算法的普適性,進一步提高測試數(shù)據(jù)生的成效率。

    參考文獻:

    [1]喬夢晴, 李琳, 王頡, 等. 基于遺傳規(guī)劃和集成學習的惡意軟件檢測[J]. 計算機應用研究, 2023, 40(3): 898-904. (Qiao Mengqing, Li Lin, Wang Jie, et al. Malware detection based on genetic programming and ensemble learning[J]. Application Research of Computers, 2023, 40(3): 898-904.)

    [2]張威楠, 孟昭逸, 熊焰, 等. 基于異質(zhì)信息網(wǎng)絡的安卓虛擬化程序檢測方法[J]. 計算機應用研究, 2023, 40(6): 1764-1770. (Zhang Weinan, Meng Zhaoyi, Xiong Yan, et al. Detection method of Android virtualization program based on heterogeneous information network[J]. Application Research of Computers, 2023, 40(6): 1764-1770.)

    [3]Anand S, Burke E K, Chen T Y, et al. An orchestrated survey of methodologies for automated software test case generation[J]. Journal of Systems & Software, 2013, 86(8): 1978-2001.

    [4]單錦輝, 姜瑛, 孫萍, 等. 軟件測試研究進展[J]. 北京大學學報: 自然科學版, 2005, 41(1): 134-145. (Shan Jinhui, Jiang Ying, Sun Ping, et al. Research advances in software testing[J]. Journal of Peking University: Natural Science Edition, 2005, 41(1): 134-145.)

    [5]Goschen J, Bosman A S, Gruner S, et al. Genetic Micro-programs for automated software testing with large path coverage[C]//Proc of IEEE Congress on Evolutionary Computation. Piscataway, NJ: IEEE Press, 2022: 1-8.

    [6]Sun Baicai, Gong Dunwei, Yao Xiangjuan, et al. Integrating DSGEO into test case generation for path coverage of MPI programs[J]. Information and Software Technology, 2023, 153: 107068.

    [7]Zhang Wenxi, Sakamoto K, Washizaki H, et al. Improving fuzzing coverage with execution path length selection[C]//Proc of IEEE International Symposium on Software Reliability Engineering Workshops. Piscataway, NJ: IEEE Press, 2022: 132-133.

    [8]Potluri S, Ravindra J, Mohammad G B, et al. Optimized test cove-rage with hybrid particle swarm bee colony and firefly cuckoo search algorithms in model based software testing[C]//Proc of the 1st International Conference on Artificial Intelligence Trends and Pattern Recognition. Piscataway, NJ: IEEE Press,2022: 1-9.

    [9]Damia A, Esnaashari M, Parvizimosaed M. Automatic test data ge-neration based on the prime path coverage criterion: a grouping-based GA approach[EB/OL]. (2023-04-12). https://doi.org/10.21203/rs.3.rs-2796131/v1.

    [10]丁蕊, 董紅斌, 張巖, 等. 基于關鍵點路徑的快速測試用例自動生成方法[J]. 軟件學報, 2016, 27(4): 814-827. (Ding Rui, Dong Hongbin, Zhang Yan, et al. Rapid test case generation method based on critical path[J]. Journal of Software, 2016, 27(4): 814-827.)

    [11]錢忠勝, 祝潔, 朱懿敏. 結合關鍵點概率與路徑相似度的多路徑覆蓋策略[J].軟件學報,2022, 33(2): 434-454.(Qian Zhong-sheng, Zhu Jie, Zhu Yimin. Multi-path coverage strategy combining key point probability and path similarity[J]. Journal of Software, 2022, 33(2): 434-454.)

    [12]Kumar G, Chopra V. Automatic test data generation for basis path testing[J]. Indian Journal of Science and Technology, 2022, 15(41): 2151-2161.

    [13]曹靜. 基于強化學習的Web API功能測試用例生成研究[D]. 上海:東華大學, 2021. (Cao Jing. Research on Web API functional test case generation based on reinforcement learning[D]. Shanghai: Donghua University, 2021.)

    [14]Spieker H, Gotlieb A, Marijan D, et al. Reinforcement learning for automatic test case prioritization and selection in continuous integration[C]//Proc of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis. New York:ACM Press, 2017: 12-22.

    [15]Esnaashari M, Damia A H. Automation of software test data generation using genetic algorithm and reinforcement learning[J]. Expert Systems with Applications, 2021, 183: 115446.

    [16]Reddy S, Lemieux C, Padhye R, et al. Quickly generating diverse valid test inputs with reinforcement learning[C]//Proc of the 42nd ACM/IEEE International Conference on Software Engineering. Pisca-taway, NJ: IEEE Press, 2020: 1410-1421.

    [17]Cˇegiň J, Rástocˇny K. Test data generation for MC/DC criterion using reinforcement learning[C]//Proc of IEEE International Conference on Software Testing, Verification and Validation Workshops. Pisca-taway, NJ: IEEE Press, 2020: 354-357.

    [18]Kim J, Kwon M, Yoo S, et al. Generating test input with deep reinforcement learning[C]//Proc of the 11th International Workshop on Search-Based Software Testing. Piscataway, NJ: IEEE Press, 2018: 51-58.

    [19]Harries L, Clarke R S, Chapman T, et al. Drift: deep reinforcement learning for functional software testing[EB/OL]. (2020-07-16). https://arxiv.org/abs/2007.08220.

    [20]Tsai C Y, Taylor G W. DeepRNG: towards deep reinforcement learning-assisted generative testing of software[EB/OL]. (2022-01-29). https://arxiv.org/abs/2201.12602.

    [21]王立歆. 基于分層強化學習的自動化軟件測試技術研究[D]. 沈陽:遼寧大學, 2022. (Wang Lixin. Research on automated software testing technology based on hierarchical reinforcement learning[D].Shenyang: Liaoning University, 2022.)

    [22]Pan Minxue, Huang An, Wang Guoxin, et al. Reinforcement lear-ning based curiosity-driven testing of Android applications[C]//Proc of the 29th ACM SIGSOFT International Symposium on Software Testing and Analysis. New York:ACM Press, 2020: 153-164.

    [23]Pan Zhixin, Mishra P. Automated test generation for hardware trojan detection using reinforcement learning[C]//Proc of the 26th Asia and South Pacific Design Automation Conference. Piscataway, NJ: IEEE Press, 2021: 408-413.

    [24]張汝波, 顧國昌, 劉照德, 等. 強化學習理論, 算法及應用[J]. 控制理論與應用, 2000, 17(5): 637-642. (Zhang Rubo, Gu Guochang, Liu Zhaode, et al. Reinforcement learning: theory, algorithms, and applications[J]. Control Theory & Applications, 2000, 17(5): 637-642.)

    [25]Jaiswal U, Prajapati A. Optimized test case generation for basis path testing using improved fitness function with PSO[C]//Proc of the 13th International Conference on Contemporary Computing. New York:ACM Press, 2021: 475-483.

    [26]Cheng Mengfei, Ding Rui, Huo Tingting, et al. A hyper-heuristic algorithm for test data generation[C]//Proc of the 6th International Conference on Big Data Research. New York:ACM Press, 2022: 26-31.

    [27]程孟飛, 丁蕊. 基于佳點集遺傳算法的多路徑覆蓋測試用例生成[J]. 計算機與數(shù)字工程, 2022, 50(9): 1940-1944. (Cheng Mengfei, Ding Rui. Multi-path coverage test case generation based on optimal point set genetic algorithm[J]. Computer and Digital Engineering, 2022, 50(9): 1940-1944.)

    国产69精品久久久久777片 | 亚洲aⅴ乱码一区二区在线播放| 久久香蕉精品热| 在线观看日韩欧美| 中文字幕久久专区| 午夜a级毛片| 精品久久久久久久久久久久久| 啪啪无遮挡十八禁网站| 草草在线视频免费看| 99精品在免费线老司机午夜| 午夜福利18| 丰满人妻熟妇乱又伦精品不卡| 十八禁人妻一区二区| 亚洲九九香蕉| 床上黄色一级片| 露出奶头的视频| 51午夜福利影视在线观看| 一本一本综合久久| 在线播放国产精品三级| 在线观看舔阴道视频| ponron亚洲| avwww免费| 成年女人永久免费观看视频| 两性夫妻黄色片| 女警被强在线播放| 免费观看精品视频网站| 久久国产精品影院| 日本与韩国留学比较| 他把我摸到了高潮在线观看| 亚洲九九香蕉| 首页视频小说图片口味搜索| 精品国产乱子伦一区二区三区| 欧美日韩瑟瑟在线播放| 久久久久久人人人人人| www日本黄色视频网| or卡值多少钱| 国产淫片久久久久久久久 | 日本成人三级电影网站| 精华霜和精华液先用哪个| 免费高清视频大片| 中亚洲国语对白在线视频| 精品日产1卡2卡| 窝窝影院91人妻| 国语自产精品视频在线第100页| 日韩精品青青久久久久久| 欧美又色又爽又黄视频| 久久久水蜜桃国产精品网| 亚洲七黄色美女视频| 亚洲成人久久爱视频| 免费观看精品视频网站| 午夜福利在线观看免费完整高清在 | 欧美日本视频| 精品电影一区二区在线| 精品国产美女av久久久久小说| 他把我摸到了高潮在线观看| 日本 欧美在线| 日本撒尿小便嘘嘘汇集6| 久久久久久久久免费视频了| 九色国产91popny在线| 一个人免费在线观看电影 | www.999成人在线观看| 国产精品久久久人人做人人爽| 久久人人精品亚洲av| 亚洲自拍偷在线| 在线视频色国产色| 国产欧美日韩一区二区三| 麻豆国产97在线/欧美| 18禁观看日本| 欧美+亚洲+日韩+国产| 成人国产一区最新在线观看| 人人妻,人人澡人人爽秒播| 美女午夜性视频免费| 黄色女人牲交| 久久久久久久久久黄片| 精品乱码久久久久久99久播| 国内揄拍国产精品人妻在线| 国产精品,欧美在线| 亚洲国产欧美人成| 舔av片在线| 亚洲精品中文字幕一二三四区| 中文字幕熟女人妻在线| 十八禁网站免费在线| 国产一区二区三区在线臀色熟女| 日本a在线网址| 国产亚洲精品久久久com| 国产精华一区二区三区| 一边摸一边抽搐一进一小说| 免费在线观看成人毛片| 老司机午夜十八禁免费视频| 97超级碰碰碰精品色视频在线观看| 国产97色在线日韩免费| av片东京热男人的天堂| 亚洲av电影不卡..在线观看| 欧洲精品卡2卡3卡4卡5卡区| 蜜桃久久精品国产亚洲av| 久久午夜综合久久蜜桃| 一个人看视频在线观看www免费 | 丰满人妻熟妇乱又伦精品不卡| 人妻丰满熟妇av一区二区三区| 一级毛片高清免费大全| 女人被狂操c到高潮| 亚洲国产中文字幕在线视频| 国产久久久一区二区三区| 两个人看的免费小视频| 国产单亲对白刺激| 香蕉国产在线看| 久久亚洲真实| 成熟少妇高潮喷水视频| 91在线观看av| 精品电影一区二区在线| 久久精品夜夜夜夜夜久久蜜豆| 久久久国产精品麻豆| 久久久久久大精品| 热99re8久久精品国产| 久久热在线av| 国产精品影院久久| 亚洲性夜色夜夜综合| 男女之事视频高清在线观看| 制服人妻中文乱码| 亚洲精品在线美女| 国产精品香港三级国产av潘金莲| 国产亚洲精品久久久com| 国内久久婷婷六月综合欲色啪| 变态另类成人亚洲欧美熟女| 丰满人妻一区二区三区视频av | 视频区欧美日本亚洲| 青草久久国产| 精品久久久久久久久久久久久| 老司机在亚洲福利影院| 99久久精品热视频| 亚洲国产色片| 亚洲av片天天在线观看| 一级a爱片免费观看的视频| 欧美激情在线99| 美女 人体艺术 gogo| 可以在线观看毛片的网站| 亚洲人成网站在线播放欧美日韩| 久久香蕉国产精品| 亚洲人成伊人成综合网2020| 欧美乱色亚洲激情| 一区福利在线观看| 18美女黄网站色大片免费观看| 国产久久久一区二区三区| 亚洲 欧美一区二区三区| 日韩欧美国产一区二区入口| 日韩欧美免费精品| 精品日产1卡2卡| 成人欧美大片| 伊人久久大香线蕉亚洲五| 天堂√8在线中文| 给我免费播放毛片高清在线观看| 丁香六月欧美| 免费看a级黄色片| 成人特级av手机在线观看| 真人一进一出gif抽搐免费| 啦啦啦韩国在线观看视频| 色综合婷婷激情| 国产精品亚洲美女久久久| 成年版毛片免费区| 免费av不卡在线播放| 黑人巨大精品欧美一区二区mp4| 国产精品亚洲一级av第二区| 亚洲国产高清在线一区二区三| 999久久久精品免费观看国产| 日韩欧美 国产精品| 在线观看免费视频日本深夜| 国产97色在线日韩免费| 欧美另类亚洲清纯唯美| 亚洲成av人片在线播放无| 国内精品一区二区在线观看| 亚洲熟女毛片儿| 久久国产乱子伦精品免费另类| 色综合亚洲欧美另类图片| 久久中文字幕人妻熟女| 成人无遮挡网站| 国产精品美女特级片免费视频播放器 | 国产激情欧美一区二区| 国产成人啪精品午夜网站| 老司机福利观看| 一本精品99久久精品77| 亚洲中文日韩欧美视频| 人妻久久中文字幕网| 日本黄色片子视频| 观看免费一级毛片| 色综合婷婷激情| 欧美日本亚洲视频在线播放| 最近最新中文字幕大全免费视频| 观看免费一级毛片| 97碰自拍视频| 欧美在线一区亚洲| 一本精品99久久精品77| 日韩免费av在线播放| 99精品欧美一区二区三区四区| 欧美日韩福利视频一区二区| 一二三四在线观看免费中文在| 国产精品一区二区三区四区久久| 欧美一级毛片孕妇| 大型黄色视频在线免费观看| 国产成人精品久久二区二区免费| 一进一出好大好爽视频| 成年免费大片在线观看| 女同久久另类99精品国产91| 日韩有码中文字幕| 97碰自拍视频| 听说在线观看完整版免费高清| 狂野欧美白嫩少妇大欣赏| 两性午夜刺激爽爽歪歪视频在线观看| 五月玫瑰六月丁香| 91麻豆av在线| 嫩草影视91久久| 日本a在线网址| 熟女少妇亚洲综合色aaa.| 欧美三级亚洲精品| 69av精品久久久久久| 观看免费一级毛片| 午夜影院日韩av| 十八禁人妻一区二区| 国产综合懂色| 人人妻,人人澡人人爽秒播| 母亲3免费完整高清在线观看| 国产人伦9x9x在线观看| 亚洲专区中文字幕在线| 成人特级av手机在线观看| 精品午夜福利视频在线观看一区| 欧美日韩综合久久久久久 | 麻豆久久精品国产亚洲av| 亚洲国产欧洲综合997久久,| 最近在线观看免费完整版| 亚洲专区字幕在线| 国产精品,欧美在线| 久9热在线精品视频| 久久国产精品人妻蜜桃| 亚洲真实伦在线观看| 一夜夜www| 亚洲精品乱码久久久v下载方式 | 丁香欧美五月| 日本一二三区视频观看| 欧美一级a爱片免费观看看| 老熟妇仑乱视频hdxx| av在线天堂中文字幕| 桃色一区二区三区在线观看| 国内精品美女久久久久久| 亚洲av日韩精品久久久久久密| 亚洲一区高清亚洲精品| 人妻夜夜爽99麻豆av| 亚洲无线在线观看| 欧洲精品卡2卡3卡4卡5卡区| 动漫黄色视频在线观看| 久久亚洲真实| 国产激情偷乱视频一区二区| 无遮挡黄片免费观看| 一边摸一边抽搐一进一小说| xxx96com| 亚洲熟女毛片儿| 少妇人妻一区二区三区视频| 免费看十八禁软件| 亚洲av片天天在线观看| 18禁国产床啪视频网站| 日本黄色片子视频| 亚洲精品在线美女| av在线天堂中文字幕| 精品久久蜜臀av无| 不卡av一区二区三区| 亚洲精品美女久久久久99蜜臀| 国产成人一区二区三区免费视频网站| av天堂中文字幕网| 欧美日韩乱码在线| 最近最新中文字幕大全电影3| 日韩欧美 国产精品| 久久精品aⅴ一区二区三区四区| 国产美女午夜福利| 又黄又爽又免费观看的视频| 99热只有精品国产| 欧美黑人巨大hd| 最近最新免费中文字幕在线| 久久亚洲精品不卡| 欧美成人性av电影在线观看| 一本一本综合久久| 久久性视频一级片| 久久午夜综合久久蜜桃| 手机成人av网站| 国内精品美女久久久久久| 九九久久精品国产亚洲av麻豆 | 国产黄片美女视频| 国产三级中文精品| 久久久精品欧美日韩精品| 毛片女人毛片| 真实男女啪啪啪动态图| 国产精品乱码一区二三区的特点| 超碰成人久久| 国产av在哪里看| 露出奶头的视频| 欧美色欧美亚洲另类二区| 欧美3d第一页| 久久伊人香网站| 一个人看的www免费观看视频| 美女大奶头视频| 深夜精品福利| 久久九九热精品免费| 欧美3d第一页| 白带黄色成豆腐渣| 亚洲片人在线观看| 男人舔奶头视频| 亚洲精品色激情综合| 午夜福利在线观看吧| 精品日产1卡2卡| 夜夜看夜夜爽夜夜摸| 日韩三级视频一区二区三区| 最近在线观看免费完整版| 欧美色欧美亚洲另类二区| 天堂影院成人在线观看| 国产精品国产高清国产av| 91av网一区二区| 搡老妇女老女人老熟妇| 久久这里只有精品19| 国产伦精品一区二区三区四那| 99久久久亚洲精品蜜臀av| 久久中文看片网| 美女cb高潮喷水在线观看 | 99国产精品99久久久久| 成人av一区二区三区在线看| 久久久久久久久久黄片| 十八禁人妻一区二区| 无人区码免费观看不卡| 精品久久久久久久久久久久久| 亚洲色图av天堂| 亚洲av成人av| 少妇的丰满在线观看| 国产亚洲精品一区二区www| 九九久久精品国产亚洲av麻豆 | 国产精品av久久久久免费| 淫妇啪啪啪对白视频| 日本与韩国留学比较| 日本 欧美在线| 免费看光身美女| 亚洲熟妇中文字幕五十中出| 黄色丝袜av网址大全| 色在线成人网| 亚洲人与动物交配视频| 亚洲人成网站高清观看| 国产免费av片在线观看野外av| 狂野欧美白嫩少妇大欣赏| 国产精品一区二区三区四区免费观看 | 久久久久亚洲av毛片大全| av视频在线观看入口| 久久久久精品国产欧美久久久| 亚洲国产精品sss在线观看| 国产精华一区二区三区| 激情在线观看视频在线高清| 日本精品一区二区三区蜜桃| 亚洲第一欧美日韩一区二区三区| ponron亚洲| 日本一二三区视频观看| 老熟妇乱子伦视频在线观看| 香蕉丝袜av| 午夜日韩欧美国产| АⅤ资源中文在线天堂| 欧美一级毛片孕妇| 人人妻人人澡欧美一区二区| 很黄的视频免费| 一区二区三区激情视频| 久久久久久久精品吃奶| 婷婷精品国产亚洲av| 99国产综合亚洲精品| 人人妻人人看人人澡| 欧美黄色片欧美黄色片| 法律面前人人平等表现在哪些方面| 国产一区在线观看成人免费| 免费在线观看成人毛片| 身体一侧抽搐| 男人和女人高潮做爰伦理| 少妇熟女aⅴ在线视频| 99在线人妻在线中文字幕| 欧美3d第一页| 少妇人妻一区二区三区视频| bbb黄色大片| 国产精品综合久久久久久久免费| a在线观看视频网站| 亚洲欧美日韩东京热| 国产精品av久久久久免费| 人妻丰满熟妇av一区二区三区| 精品国产三级普通话版| 国产亚洲欧美98| 久久久久亚洲av毛片大全| 亚洲五月婷婷丁香| 岛国在线观看网站| 亚洲国产欧美一区二区综合| 国产免费男女视频| 久久久水蜜桃国产精品网| 99热这里只有精品一区 | 国产午夜精品久久久久久| 黄色片一级片一级黄色片| 变态另类成人亚洲欧美熟女| 少妇裸体淫交视频免费看高清| 波多野结衣巨乳人妻| 国产精品免费一区二区三区在线| 国内久久婷婷六月综合欲色啪| 久久精品aⅴ一区二区三区四区| 亚洲欧美精品综合久久99| 久久久久亚洲av毛片大全| aaaaa片日本免费| 身体一侧抽搐| 青草久久国产| 99久久久亚洲精品蜜臀av| 18禁裸乳无遮挡免费网站照片| 成年版毛片免费区| 亚洲七黄色美女视频| 日韩欧美在线乱码| 观看美女的网站| 99国产精品99久久久久| 亚洲精品粉嫩美女一区| 一区二区三区国产精品乱码| 国产一区二区在线av高清观看| 午夜福利成人在线免费观看| 国产野战对白在线观看| 在线免费观看不下载黄p国产 | 免费看美女性在线毛片视频| 中文字幕av在线有码专区| 精品乱码久久久久久99久播| 人妻丰满熟妇av一区二区三区| 香蕉av资源在线| 成熟少妇高潮喷水视频| 欧美av亚洲av综合av国产av| 国产淫片久久久久久久久 | 色精品久久人妻99蜜桃| 久久久久久久久中文| 亚洲国产欧洲综合997久久,| 亚洲第一电影网av| 亚洲自拍偷在线| 久久这里只有精品19| 1000部很黄的大片| 国产成人av教育| 久久精品人妻少妇| 桃红色精品国产亚洲av| av在线蜜桃| 国产精华一区二区三区| 亚洲成人久久性| 黄片大片在线免费观看| www.熟女人妻精品国产| 99热只有精品国产| 久久国产精品人妻蜜桃| av欧美777| 亚洲国产精品久久男人天堂| 久久精品aⅴ一区二区三区四区| av黄色大香蕉| 国产免费av片在线观看野外av| 欧美另类亚洲清纯唯美| 1024香蕉在线观看| 国产 一区 欧美 日韩| 18禁观看日本| 久久久久性生活片| 一卡2卡三卡四卡精品乱码亚洲| 国产男靠女视频免费网站| 成人性生交大片免费视频hd| 波多野结衣高清无吗| 在线观看免费午夜福利视频| 亚洲成人久久性| 精品一区二区三区四区五区乱码| 久久欧美精品欧美久久欧美| 久久精品国产99精品国产亚洲性色| 日本五十路高清| 在线观看免费午夜福利视频| 国内揄拍国产精品人妻在线| 日本 欧美在线| 国产精品一区二区三区四区免费观看 | 叶爱在线成人免费视频播放| 欧美日韩国产亚洲二区| 最近最新免费中文字幕在线| 99久久久亚洲精品蜜臀av| 国产视频内射| 国产主播在线观看一区二区| 一级毛片女人18水好多| 极品教师在线免费播放| 免费av不卡在线播放| 亚洲色图 男人天堂 中文字幕| 午夜福利在线在线| 校园春色视频在线观看| 99热只有精品国产| 国产亚洲精品av在线| 国产高清有码在线观看视频| 一区二区三区激情视频| 久久这里只有精品19| 亚洲国产精品sss在线观看| 色尼玛亚洲综合影院| 十八禁网站免费在线| 久久久久久久久中文| 成人午夜高清在线视频| 国产一级毛片七仙女欲春2| 免费在线观看成人毛片| 国产精品av视频在线免费观看| 国产综合懂色| 亚洲狠狠婷婷综合久久图片| 国产精品一区二区精品视频观看| 99在线视频只有这里精品首页| 伊人久久大香线蕉亚洲五| 国产69精品久久久久777片 | 老司机午夜十八禁免费视频| 久久热在线av| 国产精品久久久av美女十八| 在线观看日韩欧美| 韩国av一区二区三区四区| 草草在线视频免费看| 日日摸夜夜添夜夜添小说| 婷婷六月久久综合丁香| 久99久视频精品免费| 亚洲中文字幕日韩| 亚洲欧美一区二区三区黑人| 久久性视频一级片| 国产av麻豆久久久久久久| 美女免费视频网站| 蜜桃久久精品国产亚洲av| 久久精品夜夜夜夜夜久久蜜豆| 国产又黄又爽又无遮挡在线| 97超视频在线观看视频| 人妻丰满熟妇av一区二区三区| 国产精品久久久av美女十八| 国产又黄又爽又无遮挡在线| 十八禁网站免费在线| 亚洲欧美日韩高清在线视频| 偷拍熟女少妇极品色| 不卡av一区二区三区| 69av精品久久久久久| 国内精品美女久久久久久| 在线观看免费午夜福利视频| 女人高潮潮喷娇喘18禁视频| 伦理电影免费视频| 十八禁网站免费在线| 一级毛片女人18水好多| 观看美女的网站| 激情在线观看视频在线高清| 日韩av在线大香蕉| 国产精品亚洲一级av第二区| 麻豆国产av国片精品| 久久久久久人人人人人| 中出人妻视频一区二区| 日韩欧美一区二区三区在线观看| svipshipincom国产片| 国产三级在线视频| 黄片大片在线免费观看| av女优亚洲男人天堂 | 国产av一区在线观看免费| 嫩草影视91久久| 欧美成人性av电影在线观看| 国产av麻豆久久久久久久| 午夜a级毛片| 国产97色在线日韩免费| 久久精品91蜜桃| 久久亚洲真实| www国产在线视频色| 2021天堂中文幕一二区在线观| 一夜夜www| 搡老熟女国产l中国老女人| 欧美性猛交黑人性爽| 国内精品久久久久精免费| 色在线成人网| 中出人妻视频一区二区| 午夜视频精品福利| 午夜免费激情av| 亚洲自偷自拍图片 自拍| АⅤ资源中文在线天堂| 亚洲第一电影网av| 无遮挡黄片免费观看| 婷婷丁香在线五月| 亚洲欧美日韩无卡精品| 亚洲色图 男人天堂 中文字幕| 久久精品国产综合久久久| 久久精品夜夜夜夜夜久久蜜豆| 美女高潮的动态| 亚洲 欧美 日韩 在线 免费| 久久久久国内视频| 欧美乱色亚洲激情| 综合色av麻豆| 精品久久久久久成人av| 亚洲最大成人中文| 国产精品女同一区二区软件 | 国产高清激情床上av| 精品一区二区三区四区五区乱码| 一二三四在线观看免费中文在| 欧美性猛交╳xxx乱大交人| 成人欧美大片| 亚洲精品国产精品久久久不卡| 国产 一区 欧美 日韩| 国产精品久久久久久精品电影| 久久久久国产一级毛片高清牌| 午夜福利高清视频| 1024香蕉在线观看| 在线观看日韩欧美| 一区二区三区激情视频| 国模一区二区三区四区视频 | 操出白浆在线播放| 亚洲午夜精品一区,二区,三区| a在线观看视频网站| 在线a可以看的网站| 亚洲aⅴ乱码一区二区在线播放| 一个人看视频在线观看www免费 | 午夜亚洲福利在线播放| 国内精品久久久久精免费| 久久中文字幕一级| 欧美乱码精品一区二区三区| 国产精品九九99| 午夜精品一区二区三区免费看| 岛国视频午夜一区免费看| 精品久久久久久成人av| 宅男免费午夜| 欧洲精品卡2卡3卡4卡5卡区| 成人三级黄色视频| 99久久精品国产亚洲精品| 国内少妇人妻偷人精品xxx网站 | 女生性感内裤真人,穿戴方法视频| 久久久精品大字幕| 国产av不卡久久| 无限看片的www在线观看| 亚洲精品粉嫩美女一区| 在线十欧美十亚洲十日本专区| 国产一区二区三区在线臀色熟女|