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

    金融科技軟件自動(dòng)化測(cè)試用例的冗余評(píng)價(jià)和削減方法

    2022-07-28 09:24:16徐立華趙瑞祥
    關(guān)鍵詞:容忍度測(cè)試用例套件

    龔 鑫, 徐立華, 竇 亮, 趙瑞祥

    (1. 華東師范大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上海 200062; 2. 上海紐約大學(xué) 工程與計(jì)算機(jī)科學(xué)部, 上海200122; 3. 中匯信息技術(shù)(上海)有限公司, 上海 201203)

    0 引 言

    金融科技指服務(wù)于金融領(lǐng)域的計(jì)算機(jī)技術(shù), 是技術(shù)驅(qū)動(dòng)的金融創(chuàng)新, 在金融機(jī)構(gòu)中發(fā)揮了重要的作用, 受到來自金融、軟件領(lǐng)域?qū)W者的廣泛關(guān)注. 據(jù)相關(guān)統(tǒng)計(jì), 2019 年全球在金融科技領(lǐng)域的投資金額達(dá)到了1 054 億美元[1]. 金融科技的軟件系統(tǒng)通常涉及關(guān)鍵的金融業(yè)務(wù), 任何程序缺陷或者錯(cuò)誤操作都可能導(dǎo)致巨大的經(jīng)濟(jì)損失. 由于金融科技軟件往往包含復(fù)雜的金融業(yè)務(wù)邏輯, 測(cè)試用例的字段之間具有復(fù)雜的約束關(guān)系, 因此金融科技軟件的測(cè)試任務(wù)往往需要耗費(fèi)較高的時(shí)間成本和人力成本.

    為了確保金融科技軟件的質(zhì)量, 同時(shí)降低軟件測(cè)試的成本, 學(xué)者們[2-3]提出了一系列自動(dòng)化測(cè)試用例生成方法 (Test Case Generation, TCG), 這些方法能夠在一定的條件下, 快速、自動(dòng)地生成測(cè)試套件. 然而, 自動(dòng)化測(cè)試用例生成方法往往以達(dá)到更高的代碼覆蓋率或者更大的變異分?jǐn)?shù)為目標(biāo), 傾向于生成數(shù)量更多的測(cè)試用例, 未考慮到可能引入的冗余因素, 因此極易造成測(cè)試冗余問題. 如果從測(cè)試套件中剔除一部分測(cè)試用例, 整體的測(cè)試質(zhì)量并不受到影響, 就表明存在測(cè)試冗余問題[4]. 測(cè)試套件中的冗余因素將提高測(cè)試執(zhí)行環(huán)節(jié)的成本, 并導(dǎo)致測(cè)試用例的管理變得更加困難[5].

    本文對(duì)實(shí)際的金融科技軟件 (由中匯信息技術(shù) (上海) 有限公司提供的外匯交易系統(tǒng)下的軟件構(gòu)件) 進(jìn)行了研究, 發(fā)現(xiàn)確實(shí)存在測(cè)試用例過多的問題, 并且難以使用人工方法高效地判斷其冗余程度.這個(gè)交易系統(tǒng)為銀行間外匯市場(chǎng)、貨幣市場(chǎng)等提供發(fā)行服務(wù)、交易服務(wù)、交易后處理服務(wù)、信息咨詢服務(wù)以及技術(shù)服務(wù), 具有龐大的體量. 系統(tǒng)在測(cè)試過程中使用了針對(duì)金融科技的兩種測(cè)試用例生成方法: FACTS (Automated BlaCk-box Testing for FinTech Systems)[2]和FinExpert[3], 這兩種方法雖然能夠生成覆蓋率足夠高的測(cè)試套件, 但是所生成的測(cè)試套件十分龐大, 會(huì)引入一定的冗余因素. 在實(shí)際的測(cè)試環(huán)節(jié)中, 測(cè)試人員更關(guān)注業(yè)務(wù)功能的覆蓋情況, 即業(yè)務(wù)代碼能否被測(cè)試用例覆蓋的情況, 因此, 如果能夠通過代碼覆蓋率對(duì)測(cè)試冗余進(jìn)行評(píng)估, 這樣的評(píng)估方法對(duì)于金融科技軟件來說就具有較理想的實(shí)際應(yīng)用價(jià)值.

    針對(duì)金融科技領(lǐng)域的軟件測(cè)試環(huán)節(jié), 本文提出了最佳覆蓋項(xiàng)冗余指標(biāo)MVI (Most Valuable Item),這是一種基于覆蓋率的測(cè)試冗余評(píng)價(jià)指標(biāo), 能夠?qū)y(cè)試套件的冗余因素進(jìn)行量化. MVI 指標(biāo)關(guān)注程序代碼的覆蓋項(xiàng), 并通過覆蓋項(xiàng)對(duì)測(cè)試套件的整體冗余情況進(jìn)行評(píng)估. 為了驗(yàn)證MVI 指標(biāo)的有效性, 本文進(jìn)一步提出了一種基于MVI 指標(biāo)的測(cè)試用例削減算法MVIR (Most Valuable Item Reduction). 實(shí)驗(yàn)結(jié)果顯示, MVIR 能夠在保證測(cè)試性能損失小于9.20%的前提下, 實(shí)現(xiàn)大于89.88%的測(cè)試用例削減比例, 同時(shí)證明了MVI 指標(biāo)能夠有效反映測(cè)試套件中的冗余程度. 最后, 使用MVI 指標(biāo)對(duì)FACTS 和FinExpert 這兩種測(cè)試用例生成方法的冗余程度進(jìn)行了評(píng)估, 結(jié)果顯示, 這兩種方法在生成測(cè)試用例的同時(shí)會(huì)引入較多的冗余因素. 同時(shí), 實(shí)驗(yàn)結(jié)果發(fā)現(xiàn), MVIR 能夠?qū)ACTS 和FinExpert 這兩種方法所引入的冗余因素進(jìn)行有效消解, 將自動(dòng)化測(cè)試用例生成方法與測(cè)試用例削減算法相結(jié)合, 能夠生成質(zhì)量較高、冗余程度較低的測(cè)試套件.

    1 相關(guān)工作

    1.1 測(cè)試冗余問題

    測(cè)試冗余不是一種確切的測(cè)試缺陷, 而是一種能夠揭示程序潛在缺陷的代碼特征. 測(cè)試冗余會(huì)影響測(cè)試套件的可讀性與可維護(hù)性, 降低測(cè)試質(zhì)量[6]. 產(chǎn)生測(cè)試冗余的根本原因, 往往是開發(fā)階段和測(cè)試階段的重復(fù)編碼, 或者軟件代碼的變更[4,7-8].

    測(cè)試冗余問題一直以來受到學(xué)者們[7,9-13]的廣泛關(guān)注, 各類針對(duì)測(cè)試用例削減技術(shù)的研究都對(duì)該問題進(jìn)行了討論. 測(cè)試用例削減技術(shù)以減少測(cè)試套件中的冗余因素為目標(biāo), 主要關(guān)注測(cè)試用例層面的冗余值, 通常將測(cè)試用例區(qū)分為“冗余”和“不冗余”兩類, 在削減的過程中剔除“冗余”測(cè)試用例, 只保留“不冗余”測(cè)試用例. 部分文獻(xiàn)[4-5]將測(cè)試用例的冗余值進(jìn)行了粒度更細(xì)的區(qū)分, 并且在削減的過程中,優(yōu)先刪除冗余值較高的測(cè)試用例. Koochakzadeh 等[4]基于“語句覆蓋”“分支覆蓋”“條件覆蓋”和“循環(huán)覆蓋”這4 類代碼覆蓋率, 提出測(cè)試套件冗余指標(biāo), 該指標(biāo)對(duì)測(cè)試用例之間的相交覆蓋項(xiàng)進(jìn)行分析,并以相交覆蓋項(xiàng)數(shù)量的百分比作為測(cè)試用例的冗余值, 將冗余值為0 的測(cè)試用例視為不冗余的, 冗余值大于0 的測(cè)試用例視為冗余的. 實(shí)驗(yàn)結(jié)果顯示, 僅僅使用上述4 種覆蓋率指標(biāo), 對(duì)測(cè)試用例的冗余判斷精確度較低. Koochakzadeh 等[4]建議應(yīng)該使用更多樣化的覆蓋率準(zhǔn)則進(jìn)行更細(xì)致的冗余指標(biāo)計(jì)算. Marijan 等[5]提出了一種方法, 即在高度可配置軟件的持續(xù)集成測(cè)試環(huán)節(jié)中, 使用配置選項(xiàng)覆蓋率指標(biāo)和歷史的缺陷信息作為冗余指標(biāo), 將所有測(cè)試用例分為“完全冗余”“部分冗余”和“不冗余”這3 類, 刪除“完全冗余”的測(cè)試用例, 保留“不冗余”的測(cè)試用例, 并根據(jù)是否發(fā)現(xiàn)新的缺陷, 對(duì)“部分冗余”的測(cè)試用例進(jìn)行選擇性的保留. 實(shí)驗(yàn)結(jié)果顯示, 該方法能夠在不明顯降低測(cè)試套件的缺陷檢測(cè)能力的情況下, 有效地縮短回歸測(cè)試環(huán)節(jié)的測(cè)試執(zhí)行時(shí)間.

    Koochakzadeh 等[4]與Marijan 等[5]提到的方法能夠在一定程度上對(duì)套件的冗余程度進(jìn)行度量, 但仍具有提升空間. Koochakzadeh 等[4]的方法雖然所使用的覆蓋項(xiàng)信息具有較細(xì)的粒度, 但是對(duì)測(cè)試用例進(jìn)行冗余判斷時(shí)的粒度較粗; Marijan 等[5]的方法將所有測(cè)試用例分為3 種類型, 但是對(duì)于同一種類型的測(cè)試用例, 缺乏更細(xì)粒度的區(qū)分, Marijan 等[5]的方法使用到了歷史缺陷信息, 這是一種較為難以獲取的數(shù)據(jù), 限制了該方法的適用性.

    1.2 測(cè)試用例生成方法: FACTS 和FinExpert

    本文研究的金融科技軟件在測(cè)試過程中使用了FACTS[2]和FinExpert[3]這兩種測(cè)試用例生成方法.

    FACTS 是一種黑盒的測(cè)試用例生成方法, 其通過對(duì)已有測(cè)試套件進(jìn)行變異操作, 隨機(jī)刪除、修改測(cè)試用例的部分字段值, 從而快速生成大量的測(cè)試用例. 其優(yōu)點(diǎn)在于: ①能夠在已有測(cè)試用例數(shù)量較少的情況下, 生成大量新的測(cè)試用例; ②所生成的測(cè)試套件能夠達(dá)到較高的代碼覆蓋率. 其缺點(diǎn)在于:①由于涉及隨機(jī)變異操作, 所生成的測(cè)試用例可能不滿足被測(cè)程序的約束條件, 進(jìn)而可能在測(cè)試執(zhí)行時(shí)觸發(fā)異常, 生成無意義的測(cè)試用例, 無法保證可用性; ②經(jīng)過實(shí)踐檢驗(yàn), FACTS 測(cè)試用例生成方法會(huì)生成大量無意義的測(cè)試用例.

    FinExpert 基于領(lǐng)域特定知識(shí), 使用領(lǐng)域特定語言 (Domain Specific Language, DSL), 根據(jù)預(yù)先定義的字段類型、字段取值范圍、字段約束條件等信息, 生成大量符合領(lǐng)域特定知識(shí)的測(cè)試用例. 其優(yōu)點(diǎn)在于: 由于使用到了領(lǐng)域特定知識(shí), 因此所生成的測(cè)試用例能夠有效地滿足被測(cè)程序的約束條件,不容易觸發(fā)異常, 避免生成無意義的測(cè)試用例. 其缺點(diǎn)在于: ①人工成本較高, 只有懂得業(yè)務(wù)邏輯與程序邏輯的領(lǐng)域?qū)<? 才有能力編寫領(lǐng)域特定知識(shí)信息; ②所生成的測(cè)試套件的質(zhì)量高低, 取決于領(lǐng)域特定知識(shí)信息的準(zhǔn)確與否. 在使用FinExpert 時(shí), 為了生成高質(zhì)量的測(cè)試套件, 準(zhǔn)確而有效的領(lǐng)域特定知識(shí)信息是必要的.

    2 方 法

    2.1 樣 例

    軟件程序的代碼覆蓋率, 是軟件測(cè)試中的一種常用度量指標(biāo), 用于描述測(cè)試用例被執(zhí)行的代碼數(shù)量占源代碼總量的比例. 覆蓋項(xiàng)是覆蓋率準(zhǔn)則的單位. 不同的覆蓋率準(zhǔn)則, 具有不同的覆蓋項(xiàng)類型, 例如行覆蓋率指標(biāo)使用代碼行作為覆蓋項(xiàng), 分支覆蓋率指標(biāo)使用代碼分支作為覆蓋項(xiàng). 代碼覆蓋率信息,能夠作為測(cè)試用例冗余程度量化的依據(jù).

    為了直觀地展示代碼覆蓋項(xiàng)對(duì)于測(cè)試冗余的影響, 本節(jié)給出一個(gè)樣例, 該樣例取自金融科技軟件Bcbip 的代碼片段. 圖1 給出了樣例程序的簡(jiǎn)化代碼, 其中只保留主要的代碼邏輯結(jié)構(gòu), 已對(duì)類名、方法名與變量名進(jìn)行混淆, 并標(biāo)注出了6 個(gè)覆蓋項(xiàng). 圖2 給出了樣例程序的流程圖. 該程序只包含3 條可行的執(zhí)行路徑, 每一條執(zhí)行路徑都具有獨(dú)特的覆蓋項(xiàng), 而這些獨(dú)特的覆蓋項(xiàng)(覆蓋項(xiàng)2、覆蓋項(xiàng)4 和覆蓋項(xiàng)5)僅被一條路徑覆蓋, 部分覆蓋項(xiàng)(覆蓋項(xiàng)1、覆蓋項(xiàng)3 和覆蓋項(xiàng)6)至少被2 條執(zhí)行路徑覆蓋,部分覆蓋項(xiàng)(覆蓋項(xiàng)1 和覆蓋項(xiàng)6)被所有的路徑覆蓋. 獨(dú)特覆蓋項(xiàng)具有特殊價(jià)值, 如果獨(dú)特覆蓋項(xiàng)被覆蓋, 所對(duì)應(yīng)的路徑必定被執(zhí)行.

    圖1 樣例程序的簡(jiǎn)化代碼Fig. 1 Simplified source code of the working example

    圖2 樣例程序的流程圖Fig. 2 Flow chart of the working example

    表1 給出了第一個(gè)測(cè)試套件, 包含測(cè)試用例與覆蓋項(xiàng)的覆蓋信息. 該測(cè)試套件包含3 條不冗余的測(cè)試用例, 每條用例分別執(zhí)行了不同的路徑. 根據(jù)覆蓋到覆蓋項(xiàng)的測(cè)試用例數(shù)量, 能夠判斷該覆蓋項(xiàng)的冗余程度. 對(duì)于所有覆蓋項(xiàng)來說: ① 獨(dú)特覆蓋項(xiàng) (不冗余覆蓋項(xiàng)), 指僅被1 條測(cè)試用例覆蓋到的覆蓋項(xiàng), 使用“0”來表示; ② 冗余覆蓋項(xiàng), 指至少被兩條測(cè)試用例覆蓋到的覆蓋項(xiàng), 使用“1”來表示; ③ 未被覆蓋到的覆蓋項(xiàng), 指未被任何測(cè)試用例覆蓋到的覆蓋項(xiàng), 使用“#”來表示.

    表1 第一個(gè)測(cè)試套件的信息Tab. 1 Information about test suite No.1

    對(duì)于測(cè)試用例來說, 當(dāng)一條測(cè)試用例覆蓋了獨(dú)特覆蓋項(xiàng), 那么這條測(cè)試用例是不冗余的; 當(dāng)一條測(cè)試用例僅覆蓋了冗余覆蓋項(xiàng), 沒有覆蓋任何獨(dú)特覆蓋項(xiàng), 那么這條測(cè)試用例是冗余的.

    分析表1 中數(shù)據(jù)可知, 3 條測(cè)試用例都覆蓋到獨(dú)特覆蓋項(xiàng), 因此所有測(cè)試用例都是不冗余的.

    表2 給出了第二個(gè)測(cè)試套件. 該套件在表1 的基礎(chǔ)上, 增加了測(cè)試用例4. 測(cè)試用例4 與測(cè)試用例3 是完全相同的, 從直觀上來說, 這兩條測(cè)試用例應(yīng)該是冗余的. 重新統(tǒng)計(jì)所有覆蓋項(xiàng)的冗余情況, 可以發(fā)現(xiàn): 覆蓋項(xiàng)5 從獨(dú)特覆蓋項(xiàng)變?yōu)槿哂喔采w項(xiàng), 進(jìn)而導(dǎo)致測(cè)試用例3 與測(cè)試用例4 都沒有覆蓋任何獨(dú)特覆蓋項(xiàng), 變?yōu)槿哂鄿y(cè)試用例.

    表2 第二個(gè)測(cè)試套件的信息Tab. 2 Information about test suite No.2

    分析表1—2 可知, 覆蓋項(xiàng)的冗余信息能夠反映測(cè)試用例的冗余情況. 受此啟發(fā), 本文使用覆蓋率指標(biāo)信息對(duì)測(cè)試冗余進(jìn)行分析, 從而提出測(cè)試冗余的有效量化方法.

    2.2 最佳覆蓋項(xiàng)測(cè)試冗余指標(biāo)

    本節(jié)提出最佳覆蓋項(xiàng)測(cè)試冗余指標(biāo)MVI, 該指標(biāo)使用覆蓋率信息來衡量測(cè)試套件冗余程度. 如圖3 所示, MVI 指標(biāo)分為3 個(gè)部分: 覆蓋項(xiàng)冗余、測(cè)試用例冗余和測(cè)試套件冗余. 本節(jié)詳細(xì)介紹每個(gè)部分的計(jì)算公式.

    圖3 MVI 冗余指標(biāo)的框架圖Fig. 3 Frame diagram of the MVI redundancy metric

    2.2.1 覆蓋項(xiàng)冗余

    MVI 指標(biāo)基于代碼覆蓋率進(jìn)行計(jì)算. 根據(jù)覆蓋項(xiàng)被整個(gè)測(cè)試套件覆蓋的情況, 將覆蓋項(xiàng)分為多種類型.① 未覆蓋覆蓋項(xiàng): 不被任何測(cè)試用例覆蓋, 不冗余, 不提升覆蓋率; ② 獨(dú)特覆蓋項(xiàng): 僅被一條測(cè)試用例覆蓋, 不冗余, 提升覆蓋率; ③ 冗余覆蓋項(xiàng): 至少被兩條測(cè)試用例覆蓋, 存在冗余, 提升覆蓋率.

    在計(jì)算覆蓋項(xiàng)冗余時(shí), MVI 指標(biāo)只考慮被測(cè)試用例覆蓋到的覆蓋項(xiàng), 即只考慮“獨(dú)特覆蓋項(xiàng)”與“冗余覆蓋項(xiàng)”, 而忽略“未覆蓋覆蓋項(xiàng)”.

    定義1 覆蓋項(xiàng)冗余值:

    覆蓋項(xiàng)冗余值反映覆蓋項(xiàng)的冗余情況, 其計(jì)算方式如式(1)所示. 式(1)中:I表示一個(gè)覆蓋項(xiàng),NI表示測(cè)試套件中覆蓋了I的測(cè)試用例的數(shù)量. 當(dāng)一個(gè)覆蓋項(xiàng)的冗余值等于0 時(shí), 表示該覆蓋項(xiàng)僅被1 條測(cè)試用例覆蓋到, 是不冗余的; 當(dāng)一個(gè)覆蓋項(xiàng)的冗余值大于0 時(shí), 表示該覆蓋項(xiàng)至少被兩條測(cè)試用例覆蓋到, 是冗余的. 覆蓋項(xiàng)冗余值雖然不能直觀地反映測(cè)試冗余情況, 但是該指標(biāo)能夠用于計(jì)算測(cè)試用例的冗余指標(biāo)以及測(cè)試套件的冗余指標(biāo).

    2.2.2 測(cè)試用例冗余

    根據(jù)測(cè)試用例對(duì)覆蓋項(xiàng)的覆蓋情況, 將測(cè)試用例分為多種類型.

    獨(dú)特測(cè)試用例: 當(dāng)一條測(cè)試用例覆蓋到獨(dú)特覆蓋項(xiàng)時(shí), 它是獨(dú)特的、不冗余的, 這條測(cè)試用例對(duì)于覆蓋率具有不可替代的貢獻(xiàn); 如果一條獨(dú)特測(cè)試用例被刪除, 測(cè)試套件的整體覆蓋率將下降.

    非獨(dú)特測(cè)試用例: 當(dāng)一條測(cè)試用例無法覆蓋到獨(dú)特覆蓋項(xiàng)時(shí), 它是冗余的, 這條測(cè)試用例能夠被替代; 如果一條非獨(dú)特測(cè)試用例被刪除, 并不影響測(cè)試套件的整體覆蓋率.

    獨(dú)特測(cè)試用例是不冗余的, 而非獨(dú)特測(cè)試用例是冗余的. 對(duì)于一條非獨(dú)特測(cè)試用例, 如果它所覆蓋到的覆蓋項(xiàng)的冗余程度越小, 那么它的不可替代性越強(qiáng), 更有可能在其他測(cè)試用例被削減時(shí)變?yōu)楠?dú)特測(cè)試用例. 因此, MVI 指標(biāo)認(rèn)為冗余值更小的覆蓋項(xiàng)具有更高的價(jià)值.

    定義2 測(cè)試用例冗余值:

    式(2)中:C表示一條測(cè)試用例,I表示C所覆蓋到的覆蓋項(xiàng),RI表示覆蓋項(xiàng)I的冗余值. MVI 指標(biāo)優(yōu)先統(tǒng)計(jì)一條測(cè)試用例所覆蓋到的所有覆蓋項(xiàng), 并取覆蓋項(xiàng)冗余值的最小值作為測(cè)試用例冗余值. 測(cè)試用例冗余值直接反映了每一條測(cè)試用例的冗余情況, 能夠指導(dǎo)測(cè)試人員對(duì)測(cè)試用例進(jìn)行篩選、排序,也能夠用于指導(dǎo)科研人員對(duì)測(cè)試用例削減算法進(jìn)行研究.

    2.2.3 測(cè)試套件冗余

    定義3 測(cè)試套件冗余值:

    式(3)中:S表示測(cè)試套件,C表示S所包含的測(cè)試用例,RC表示測(cè)試用例C的冗余值. 測(cè)試套件冗余值取測(cè)試用例冗余值的均值, 該指標(biāo)能夠直觀地顯示出整個(gè)測(cè)試套件的冗余程度. 對(duì)于測(cè)試人員來說, 如果一個(gè)測(cè)試套件的冗余值過大, 則需要考慮對(duì)測(cè)試套件進(jìn)行削減.

    2.3 有效性分析方法

    針對(duì)測(cè)試冗余指標(biāo)的有效性, 目前學(xué)術(shù)界沒有較為直觀而有效的驗(yàn)證方法. 在以往的研究[4-5]中往往將冗余指標(biāo)作為一個(gè)中間量, 只對(duì)測(cè)試用例削減算法的有效性進(jìn)行驗(yàn)證, 而不對(duì)冗余指標(biāo)的有效性進(jìn)行驗(yàn)證. 對(duì)于測(cè)試用例削減算法來說, 測(cè)試冗余指標(biāo)的有效性是必要的, 因此本文提出推論: 如果測(cè)試用例削減算法是有效的, 則該削減算法所使用的測(cè)試冗余指標(biāo)必然是有效的.

    根據(jù)以上推論, 本節(jié)在MVI 指標(biāo)的基礎(chǔ)上, 提出了MVIR 測(cè)試用例削減算法. 通過驗(yàn)證MVIR 的有效性, 能夠從側(cè)面驗(yàn)證MVI 指標(biāo)的有效性.

    2.3.1 MVIR 測(cè)試用例削減算法

    為了評(píng)價(jià)MVI 指標(biāo)的有效性, 本文提出一種基于貪心策略的測(cè)試用例削減算法MVIR. MVIR 流程見算法1.

    算法1 MVIR So輸入: 未削減的測(cè)試套件 ; 冗余容忍度T輸出: 削減后的測(cè)試套件Sr 1: S ←So 2: Do:S 3: 計(jì)算 中每條測(cè)試用例的冗余值4: Rmax ← S 中測(cè)試用例冗余值的最大值5: S ←將 S 中冗余值最大的測(cè)試用例剔除Rmax 6: While > T 7: Sr ←S 8: ReturnSr

    MVIR 具有一個(gè)額外的輸入?yún)?shù), 稱為冗余容忍度, 記為T. 冗余容忍度的取值必須是非負(fù)整數(shù).MVIR 允許削減后的測(cè)試套件中保留一定程度的冗余, 并且通過調(diào)整冗余容忍度來控制所保留的冗余因素多少, 從而獲得更好的測(cè)試質(zhì)量. 當(dāng)選取冗余容忍度為0 時(shí), MVIR 能夠保證削減后不存在冗余的測(cè)試用例. 隨著冗余容忍度的增大, 所保留的冗余因素將增多.

    MVIR 的流程: ①根據(jù)測(cè)試用例冗余值, 將所有測(cè)試用例進(jìn)行排序. ②刪除冗余值最大的測(cè)試用例. ③對(duì)于剩余的測(cè)試用例, 判斷是否所有的測(cè)試用例冗余值都不大于冗余容忍度. 若不是, 則重復(fù)算法1 中的第1 至第3 步; 若是, 則MVIR 執(zhí)行結(jié)束, 使用剩余的測(cè)試用例組成新的測(cè)試套件.

    2.3.2 測(cè)試冗余指標(biāo)有效性驗(yàn)證

    根據(jù)測(cè)試冗余的定義[5], 如果能夠從測(cè)試套件中刪除一部分測(cè)試用例, 并且不對(duì)測(cè)試套件的質(zhì)量造成影響, 那么測(cè)試套件中必然存在一定的冗余因素. 因此, 在保證測(cè)試質(zhì)量不變或者測(cè)試質(zhì)量損耗較低的前提下, 如果能夠從測(cè)試套件中刪除越多的測(cè)試用例, 則說明測(cè)試用例削減算法的效果越好,并且能夠從側(cè)面證實(shí)該測(cè)試用例削減算法所使用的測(cè)試用例冗余指標(biāo)同樣具有較好的效果.

    本文使用變異測(cè)試方法對(duì)測(cè)試套件的質(zhì)量進(jìn)行評(píng)估, 該方法被廣泛用于衡量測(cè)試套件質(zhì)量[13]. 變異測(cè)試方法通過特定的方式對(duì)被測(cè)程序的源代碼進(jìn)行修改, 從而注入缺陷, 分析測(cè)試套件是否能夠有效地檢測(cè)出所注入的缺陷, 進(jìn)而對(duì)測(cè)試套件的質(zhì)量進(jìn)行評(píng)估. 每一個(gè)被注入缺陷的源代碼版本被稱為變異體, 每個(gè)變異體中僅存在一個(gè)特定的缺陷. 在對(duì)變異體的測(cè)試過程中, 如果測(cè)試用例的斷言失敗,則說明測(cè)試套件能夠“殺死”該變異體. “變異分?jǐn)?shù)”指測(cè)試套件能夠殺死的變異體數(shù)量與所有變異體數(shù)量的比值, 變異分?jǐn)?shù)越大, 則說明測(cè)試套件的測(cè)試質(zhì)量越高.

    對(duì)于MVI 指標(biāo)有效性的具體證明過程如下: ①針對(duì)同一個(gè)測(cè)試套件, 選取不同的冗余容忍度, 使用MVIR 進(jìn)行不同程度的削減操作, 得到多個(gè)削減測(cè)試套件; ②對(duì)于被MVIR 削減前后的測(cè)試套件,使用變異測(cè)試方法計(jì)算變異分?jǐn)?shù), 評(píng)估“測(cè)試質(zhì)量”; ③對(duì)于被MVIR 削減前后的測(cè)試套件, 統(tǒng)計(jì)測(cè)試用例數(shù)量變化情況, 評(píng)估“削減程度”; ④如果“測(cè)試質(zhì)量”與“削減程度”越高, 則證明MVIR 與MVI 指標(biāo)越有效.

    3 實(shí) 驗(yàn)

    3.1 實(shí)驗(yàn)設(shè)置

    3.1.1 被測(cè)對(duì)象

    在實(shí)驗(yàn)階段使用金融科技軟件下的Bcbip 構(gòu)件進(jìn)行, Bcbip 的主要功能是根據(jù)發(fā)行信息、訂單信息以及配售約束信息等輸入信息, 計(jì)算并輸出配售結(jié)果. Bcbip 具有3 個(gè)測(cè)試接口, 每個(gè)測(cè)試接口都有一個(gè)所對(duì)應(yīng)的測(cè)試套件, 對(duì)于每個(gè)測(cè)試套件, 由人工方法生成的測(cè)試用例數(shù)以及分支覆蓋率信息如表3 所示.

    表3 Bcbip 基本信息Tab. 3 Basic information about Bcbip

    3.1.2 測(cè)試套件

    本文使用FinExpert 和FACTS 進(jìn)行實(shí)驗(yàn). 表4 展示了由人工方法、FinExpert 與FACTS 生成的測(cè)試套件中的測(cè)試用例數(shù), 圖4 展示了三者的分支覆蓋率信息.

    圖4 由人工方法、FinExpert 和FACTS 得到的分支覆蓋率信息Fig. 4 Branch coverage generated by the manual, FinExpert, and FACTS methods

    表4 由人工方法、FinExpert 和FACTS 生成的測(cè)試用例數(shù)Tab. 4 Number of test cases generated by the manual, FinExpert, and FACTS methods

    觀察測(cè)試用例數(shù). 由人工方法生成的測(cè)試用例數(shù)量最少, 遠(yuǎn)少于兩種自動(dòng)化生成方法. 由FinExpert 生成的測(cè)試用例數(shù)是人為給定的, 為了取得較高的測(cè)試質(zhì)量, 對(duì)每個(gè)測(cè)試接口都生成1 000條測(cè)試用例. 由FACTS 生成的測(cè)試用例數(shù)與測(cè)試用例的復(fù)雜程度有關(guān), 對(duì)越復(fù)雜的測(cè)試接口,FACTS 所生成的測(cè)試用例數(shù)越多. FinExpert 和FACTS 所能生成的測(cè)試用例數(shù)具有相同的數(shù)量級(jí).

    分析覆蓋率信息. 在3 種方法中, FACTS 對(duì)于所有接口均能得到最高的分支覆蓋率; 對(duì)于接口api1 和api3, FinExpert 能得到優(yōu)于人工方法的分支覆蓋率; 對(duì)于接口api2, 在3 種方法中, FinExpert所得到的分支覆蓋率最低.

    FinExpert 對(duì)于接口api2 的測(cè)試效果不佳, 其根本原因在于: 接口api2 具有較為復(fù)雜的約束條件,而當(dāng)使用FinExpert 對(duì)接口api2 編寫的領(lǐng)域特定知識(shí)信息時(shí), 無法滿足一部分約束條件, 進(jìn)而導(dǎo)致部分的測(cè)試用例在執(zhí)行時(shí)觸發(fā)異常信息, 生成了較多無意義的測(cè)試用例. 由于FinExpert 針對(duì)接口api2 生成的測(cè)試套件存在可用性問題, 因此在實(shí)驗(yàn)結(jié)果的分析階段, 不考慮與其相關(guān)的數(shù)據(jù).

    3.2 冗余指標(biāo)有效性驗(yàn)證實(shí)驗(yàn)

    冗余指標(biāo)有效性驗(yàn)證實(shí)驗(yàn)分為兩個(gè)部分: 第一部分, 對(duì)削減前后生成的測(cè)試套件的質(zhì)量進(jìn)行分析;第二部分, 對(duì)削減前后生成的測(cè)試用例的數(shù)量進(jìn)行分析.

    對(duì)于實(shí)驗(yàn)的第一部分, 本文使用PIT[14]變異測(cè)試工具對(duì)測(cè)試套件的質(zhì)量進(jìn)行分析.

    本節(jié)的實(shí)驗(yàn)對(duì)MVIR 的冗余容忍度選取了5 個(gè)值: 10、5、2、1 和0. 因此, 對(duì)于每個(gè)給定的接口和測(cè)試用例生成方法, 將產(chǎn)生5 個(gè)不同的削減測(cè)試套件, 以比較不同削減程度下的質(zhì)量差異.

    3.2.1 測(cè)試質(zhì)量評(píng)估

    圖5 列出了削減后測(cè)試套件的變異分?jǐn)?shù). 圖例中的“原始”代表未經(jīng)過MVIR 削減的測(cè)試套件,T10、T5、T2、T1和T0分別代表取冗余容忍度為10、5、2、1、0 時(shí)的MVIR 削減后所得到的測(cè)試套件.

    圖5 削減后測(cè)試套件的變異分?jǐn)?shù)Fig. 5 Mutation score of the reduced suite

    為了更直觀地展示測(cè)試質(zhì)量在削減前后的差異, 使用式 (4) 對(duì)變異分?jǐn)?shù)的相對(duì)損失進(jìn)行計(jì)算.

    圖6 列出了削減后測(cè)試套件的變異分?jǐn)?shù)損失, 即性能損失. 從圖6 中能夠看出, 只有FinExpert(對(duì)于接口api2)所得到的性能損失較高, 其余測(cè)試套件的性能損失均小于9.20%, 由人工方法生成的測(cè)試用例經(jīng)過削減之后, 性能損失都小于5.26%. MVIR 整體上不對(duì)測(cè)試套件的性能產(chǎn)生較大的影響.

    圖6 削減后測(cè)試套件的變異分?jǐn)?shù)損失Fig. 6 Mutation score loss of the reduced suite

    3.2.2 測(cè)試用例數(shù)量評(píng)估

    表5 列出了所有測(cè)試套件經(jīng)過MVIR 削減前后的測(cè)試用例數(shù)量, 其中“原始”代表未經(jīng)過MVIR 削減的測(cè)試套件,T10、T5、T2、T1和T0分別代表取冗余容忍度為10、5、2、1、0 時(shí)MVIR 削減后所得到的測(cè)試套件.

    表5 所有測(cè)試套件經(jīng)過MVIR 削減前后的測(cè)試用例數(shù)Tab. 5 Number of test cases for the MVIR reduced and original test suites

    圖7 展示了削減后的測(cè)試套件的測(cè)試用例數(shù)量. 分析表5 與圖7 的數(shù)據(jù)可知, 未經(jīng)削減的FinExpert 測(cè)試套件和FACTS 測(cè)試套件的測(cè)試用例數(shù)量范圍為 [820,1804] , 而由人工方法生成的測(cè)試用例的數(shù)量范圍為 [10,22] , 數(shù)量相差較大; 但是經(jīng)過削減的FinExpert 的T10、T5、T2、T1和T0的測(cè)試用例數(shù)量范圍都為 [2,19] , FACTS 的T2、T1和T0的測(cè)試用例數(shù)量范圍都為 [11,23] , 這些削減后的測(cè)試套件具有與人工方法生成的測(cè)試套件相似的測(cè)試用例數(shù)量, 可以認(rèn)為這些削減后的結(jié)果達(dá)到了與人工方法生成的測(cè)試用例相同的數(shù)量級(jí).

    圖7 削減后測(cè)試套件的測(cè)試用例數(shù)Fig. 7 Number of test cases for the reduced suite

    為了更直觀地展示測(cè)試用例數(shù)量在削減前后的差異, 使用式 (5) 對(duì)測(cè)試用例數(shù)量的削減比例進(jìn)行計(jì)算.

    式 (5) 中:Sr表示削減后的測(cè)試套件,So表示未削減的測(cè)試套件,NSo(NSr) 表示測(cè)試套件So(Sr) 的測(cè)試用例數(shù)量.

    圖8 列出了所有測(cè)試套件經(jīng)過MVIR 削減后的測(cè)試用例削減比例信息. 分析數(shù)據(jù)可知, 對(duì)于FinExpert 和FACTS, 所有測(cè)試套件的測(cè)試用例削減比例都在89.88%以上; 對(duì)于FinExpert 和FACTS 的T0測(cè)試套件, 即經(jīng)過MVIR 削減后不包含冗余因素的測(cè)試套件, 測(cè)試用例削減比例都在98.66%以上. 結(jié)果顯示MVIR 能剔除大部分的冗余測(cè)試用例, 同時(shí)有效消解了測(cè)試套件中的冗余因素.

    圖8 測(cè)試套件經(jīng)過MVIR 削減后的測(cè)試用例削減比例Fig. 8 Test case reduction ratios for the MVIR reduced suite

    3.2.3 小 結(jié)

    使用MVIR 進(jìn)行測(cè)試用例削減, 能夠在測(cè)試性能損失較低 (小于9.20%) 的前提下, 達(dá)到較高的測(cè)試用例削減比例 (大于89.88%). 該實(shí)驗(yàn)結(jié)果證明MVIR 能夠有效地消解冗余因素, 同時(shí)從側(cè)面證明MVI 指標(biāo)能夠有效地反映測(cè)試冗余的程度.

    3.3 測(cè)試用例生成方法的冗余分析

    本節(jié)使用MVI 指標(biāo)探究測(cè)試用例生成方法的冗余情況. 表6 展示了由人工方法、FinExpert 和FACTS 這3 種方法所生成的原始測(cè)試套件的冗余值. 由人工方法、FinExpert 和FACTS 所生成的測(cè)試套件的平均冗余值分別為5.32、636.94 和336.15, FinExpert 和FACTS 所產(chǎn)生的冗余程度均遠(yuǎn)高于由人工方法所產(chǎn)生的冗余程度. 實(shí)驗(yàn)數(shù)據(jù)表明, FinExpert 和FACTS 這兩種方法在自動(dòng)化生成測(cè)試用例的同時(shí), 引入了較多的冗余因素. 在使用此類自動(dòng)化測(cè)試用例生成方法時(shí), 應(yīng)該對(duì)測(cè)試冗余問題予以重視.

    表6 人工方法、FinExpert 和FACTS 的原始測(cè)試套件的測(cè)試套件冗余Tab. 6 Suite redundancy for the original test suites of manual, FinExpert and FACTS

    表7 展示了所有測(cè)試套件經(jīng)過MVIR 削減前后的冗余值. 分析數(shù)據(jù)可知, 當(dāng)冗余容忍度小于等于10 時(shí), FinExpert 和FACTS 所生成的測(cè)試套件經(jīng)過MVIR 削減后都能夠獲得與未經(jīng)過削減的由人工方法生成的測(cè)試套件相當(dāng)?shù)娜哂嘀? 由此可見, 將測(cè)試用例生成方法和測(cè)試用例削減算法相結(jié)合, 能夠自動(dòng)化地生成高質(zhì)量、低冗余的測(cè)試套件.

    表7 所有測(cè)試套件經(jīng)過MVIR 削減前后的測(cè)試套件冗余Tab. 7 Suite redundancy for the original and reduced test suites

    3.4 冗余容忍度的選取

    在實(shí)際應(yīng)用中, 冗余容忍度的選擇直接影響MVIR 的實(shí)際效果: 減小冗余容忍度, 能夠提高測(cè)試套件的削減比例, 但是將會(huì)降低測(cè)試質(zhì)量; 合適的冗余容忍度能夠?qū)ο鳒p比例與測(cè)試質(zhì)量進(jìn)行有效的權(quán)衡.

    在選取冗余容忍度時(shí), 本文建議遵守以下原則.

    (1) 如果測(cè)試環(huán)境允許進(jìn)行變異測(cè)試, 并且能夠接受變異測(cè)試的時(shí)間成本, 則建議使用變異測(cè)試方法來指導(dǎo)冗余容忍度的取值. 在保證測(cè)試質(zhì)量的前提下, 應(yīng)選取盡可能小的冗余容忍度. 使用測(cè)試套件中測(cè)試用例的數(shù)量作為冗余容忍度的初始值, 并且不斷減小冗余容忍度, 使用MVIR 對(duì)測(cè)試套件進(jìn)行削減, 同時(shí)使用變異測(cè)試方法計(jì)算削減后測(cè)試套件的變異分?jǐn)?shù). 在理想情況下, 當(dāng)冗余容忍度從初始值不斷減小時(shí), 冗余程度較高的測(cè)試用例被優(yōu)先剔除, 不會(huì)降低測(cè)試質(zhì)量, 因此變異分?jǐn)?shù)不發(fā)生改變; 當(dāng)冗余容忍度減小到一定程度時(shí), 所保留的測(cè)試用例已經(jīng)具備足夠的測(cè)試質(zhì)量, 如果繼續(xù)減小冗余容忍度將會(huì)導(dǎo)致測(cè)試質(zhì)量下降, 這種情況下的冗余容忍度是最佳的.

    (2) 如果原則 (1) 并不適用, 被測(cè)程序本身具有由人工方法生成的測(cè)試套件, 并且該測(cè)試套件具備一定的參考價(jià)值, 則建議使用該測(cè)試套件來指導(dǎo)冗余容忍度的取值, 保證削減后的測(cè)試套件與人工測(cè)試套件具有較為接近的冗余程度. 首先使用MVI 指標(biāo)計(jì)算人工測(cè)試套件的冗余值, 將該冗余值作為冗余容忍度的初始值, 并且不斷增大冗余容忍度, 同時(shí)使用MVIR 對(duì)測(cè)試套件進(jìn)行削減. 當(dāng)削減后的測(cè)試套件的冗余值與人工測(cè)試套件冗余值大致相等時(shí), 則所對(duì)應(yīng)的冗余容忍度的取值是較為合適的.

    (3) 如果原則(1) 與 (2) 均不適用, 則建議使用經(jīng)驗(yàn)值來確定冗余容忍度. 在實(shí)際的軟件項(xiàng)目中,往往難以使用變異測(cè)試方法, 并且不能保證被測(cè)程序已具有合適的人工測(cè)試套件. 在這種情況下, 只能依據(jù)其他軟件項(xiàng)目的經(jīng)驗(yàn)來指導(dǎo)冗余容忍度的取值. 針對(duì)相關(guān)項(xiàng)目或者開源項(xiàng)目, 使用原則 (1) 或者原則(2) 計(jì)算冗余容忍度, 計(jì)算所得到的冗余容忍度也是具有參考意義的. 本文根據(jù)實(shí)驗(yàn)部分的數(shù)據(jù), 給出冗余容忍度的經(jīng)驗(yàn)值: FinExpert 的冗余容忍度建議設(shè)置為10, FACTS 的冗余容忍度建議設(shè)置為5.

    4 有效性威脅

    外部有效性. 實(shí)驗(yàn)部分所使用到的被測(cè)程序只有1 個(gè), 數(shù)量較少, 可能缺乏代表性. 本文的工作主要關(guān)注金融科技領(lǐng)域的軟件測(cè)試, 希望通過選取實(shí)際的工業(yè)軟件進(jìn)行實(shí)驗(yàn), 從而提高外部有效性. 然而, 由于金融科技領(lǐng)域的軟件對(duì)于軟件開發(fā)流程的安全性具有較高要求, 導(dǎo)致實(shí)驗(yàn)中能夠獲取到的樣本程序數(shù)量非常有限. 期望在后期的工作中能夠從合作機(jī)構(gòu)獲取更多的工業(yè)軟件, 進(jìn)一步檢驗(yàn)本文所提出方法的實(shí)際效果, 獲取更加豐富的實(shí)驗(yàn)數(shù)據(jù).

    內(nèi)部有效性. 第一, 測(cè)試冗余的概念較為抽象, 本文對(duì)抽象的測(cè)試冗余指標(biāo)進(jìn)行量化, 可能與業(yè)界的已有認(rèn)知之間存在一定的偏差. 第二, 本文推斷MVIR 的有效性能夠充分說明MVI 指標(biāo)的有效性,但是無法保證不存在例外情況.

    5 結(jié) 論

    本文針對(duì)金融科技領(lǐng)域的軟件測(cè)試, 提出了一種基于最佳覆蓋項(xiàng)的冗余評(píng)價(jià)指標(biāo)MVI, 用于對(duì)測(cè)試套件的冗余因素進(jìn)行量化分析. 為了驗(yàn)證MVI 指標(biāo)的有效性, 本文在MVI 指標(biāo)的基礎(chǔ)上提出了MVIR 測(cè)試用例削減方法. 實(shí)驗(yàn)部分使用了金融科技領(lǐng)域的軟件進(jìn)行探究, 結(jié)果顯示MVIR 能夠在測(cè)試性能損失較低的前提下, 達(dá)到較好的削減效果. 實(shí)驗(yàn)結(jié)果從側(cè)面證明了MVI 指標(biāo)能夠有效反映測(cè)試套件中的冗余因素. 最后, 使用MVI 指標(biāo)分析金融科技領(lǐng)域的自動(dòng)化測(cè)試用例生成方法:FinExpert 和FACTS, 發(fā)現(xiàn)這兩種方法均會(huì)引入較多的冗余因素, 但是如果使用MVI 指標(biāo)來優(yōu)化這兩種方法, 能夠有效地緩解冗余情況, 生成高質(zhì)量的測(cè)試套件.

    猜你喜歡
    容忍度測(cè)試用例套件
    基于維修費(fèi)用的關(guān)鍵部套件分析
    基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
    “龍吟套件”創(chuàng)作感悟
    山東陶瓷(2020年5期)2020-03-19 01:35:36
    基于混合遺傳算法的回歸測(cè)試用例集最小化研究
    工業(yè)照明超頻三天棚燈套件改造工程
    模糊容忍度與專門用途英語閱讀水平相關(guān)性研究
    新課程(下)(2016年5期)2016-03-02 03:40:33
    基于依賴結(jié)構(gòu)的測(cè)試用例優(yōu)先級(jí)技術(shù)
    口語產(chǎn)出質(zhì)量與模糊容忍度的相關(guān)研究
    新疆少數(shù)民族大學(xué)生模糊容忍度調(diào)查研究
    CSRmesh開發(fā)套件加速物聯(lián)網(wǎng)產(chǎn)品開發(fā)
    91大片在线观看| 国产精品久久久久久亚洲av鲁大| 久久精品影院6| 色精品久久人妻99蜜桃| 色综合欧美亚洲国产小说| 午夜日韩欧美国产| 波多野结衣高清无吗| 亚洲avbb在线观看| 欧美日韩瑟瑟在线播放| 国产真人三级小视频在线观看| 久久精品人人爽人人爽视色| 人人妻人人澡人人看| 最新美女视频免费是黄的| 美女国产高潮福利片在线看| 免费少妇av软件| 亚洲人成77777在线视频| 青草久久国产| 久久影院123| 老司机在亚洲福利影院| 在线永久观看黄色视频| a在线观看视频网站| 在线av久久热| 日韩精品中文字幕看吧| 美女大奶头视频| 99国产综合亚洲精品| av福利片在线| netflix在线观看网站| 自线自在国产av| 精品一品国产午夜福利视频| 69av精品久久久久久| 性少妇av在线| 咕卡用的链子| av中文乱码字幕在线| 久久久水蜜桃国产精品网| 一区二区三区精品91| www.精华液| 色婷婷久久久亚洲欧美| 亚洲自拍偷在线| 丝袜美腿诱惑在线| 亚洲欧美精品综合久久99| 搡老熟女国产l中国老女人| 此物有八面人人有两片| 99国产综合亚洲精品| 免费不卡黄色视频| 女性被躁到高潮视频| 一级a爱片免费观看的视频| 午夜亚洲福利在线播放| 欧美中文综合在线视频| 一本大道久久a久久精品| 日本五十路高清| 黄色视频不卡| bbb黄色大片| 日日爽夜夜爽网站| 亚洲专区中文字幕在线| 精品国产乱码久久久久久男人| 国产亚洲欧美98| 中文字幕av电影在线播放| 悠悠久久av| 1024香蕉在线观看| 久99久视频精品免费| 亚洲色图综合在线观看| 悠悠久久av| 国产午夜精品久久久久久| 欧美色视频一区免费| 中文字幕久久专区| 国产男靠女视频免费网站| 久久久国产精品麻豆| 国产成人一区二区三区免费视频网站| 一级毛片高清免费大全| 伊人久久大香线蕉亚洲五| 亚洲av电影在线进入| 久99久视频精品免费| 怎么达到女性高潮| 成人国产综合亚洲| 一进一出抽搐gif免费好疼| 十八禁网站免费在线| 欧美成狂野欧美在线观看| 9色porny在线观看| 韩国精品一区二区三区| 天天添夜夜摸| 国产亚洲欧美精品永久| 亚洲成人免费电影在线观看| 99国产精品免费福利视频| 中文字幕人妻熟女乱码| 亚洲av成人一区二区三| 美女午夜性视频免费| 久久久久久久久久久久大奶| 50天的宝宝边吃奶边哭怎么回事| 少妇粗大呻吟视频| 91av网站免费观看| 黄色丝袜av网址大全| 欧美乱码精品一区二区三区| 久久久久久久久中文| 亚洲aⅴ乱码一区二区在线播放 | 久久精品国产亚洲av高清一级| 色播亚洲综合网| 欧美日韩一级在线毛片| 午夜久久久在线观看| 国产1区2区3区精品| 少妇 在线观看| 天天躁夜夜躁狠狠躁躁| 丰满的人妻完整版| 国产精品免费一区二区三区在线| 搞女人的毛片| 身体一侧抽搐| 巨乳人妻的诱惑在线观看| 国产精品日韩av在线免费观看 | 日韩有码中文字幕| 老司机午夜福利在线观看视频| 人人澡人人妻人| 美女国产高潮福利片在线看| 神马国产精品三级电影在线观看 | 正在播放国产对白刺激| 精品国产乱码久久久久久男人| 51午夜福利影视在线观看| 69精品国产乱码久久久| 性欧美人与动物交配| 亚洲第一电影网av| 波多野结衣巨乳人妻| 精品不卡国产一区二区三区| 亚洲av成人不卡在线观看播放网| 国产精品,欧美在线| 香蕉丝袜av| 麻豆国产av国片精品| 欧美国产日韩亚洲一区| 一本综合久久免费| 国产亚洲精品久久久久久毛片| 国产成人系列免费观看| 国产亚洲欧美在线一区二区| 成人手机av| 久久草成人影院| 看片在线看免费视频| 精品一区二区三区视频在线观看免费| 亚洲精品国产区一区二| 国产av精品麻豆| www国产在线视频色| 亚洲午夜精品一区,二区,三区| 丰满的人妻完整版| 97超级碰碰碰精品色视频在线观看| 久久精品亚洲熟妇少妇任你| 日本精品一区二区三区蜜桃| 日本一区二区免费在线视频| 亚洲午夜精品一区,二区,三区| 精品乱码久久久久久99久播| 欧美黄色淫秽网站| 妹子高潮喷水视频| 18禁美女被吸乳视频| 国产av一区在线观看免费| 妹子高潮喷水视频| 最近最新中文字幕大全免费视频| 免费在线观看日本一区| 午夜福利欧美成人| 国产极品粉嫩免费观看在线| 曰老女人黄片| 亚洲无线在线观看| 国产片内射在线| 久久婷婷成人综合色麻豆| 国产成人精品在线电影| 欧美国产日韩亚洲一区| 亚洲精品一区av在线观看| 99国产精品一区二区蜜桃av| 看片在线看免费视频| 亚洲第一av免费看| 少妇粗大呻吟视频| 国产成人精品在线电影| 国产人伦9x9x在线观看| 久久久久亚洲av毛片大全| 国产成人精品久久二区二区91| 天堂影院成人在线观看| 午夜免费成人在线视频| 欧美成狂野欧美在线观看| 欧美乱码精品一区二区三区| 在线免费观看的www视频| 午夜老司机福利片| 久热爱精品视频在线9| 国产欧美日韩精品亚洲av| 夜夜夜夜夜久久久久| 曰老女人黄片| 精品久久久久久久毛片微露脸| 精品午夜福利视频在线观看一区| 亚洲专区中文字幕在线| 亚洲av熟女| 久久国产精品人妻蜜桃| 亚洲欧美日韩无卡精品| 国产熟女午夜一区二区三区| 亚洲国产精品合色在线| 亚洲精品美女久久久久99蜜臀| 十分钟在线观看高清视频www| 精品不卡国产一区二区三区| 免费女性裸体啪啪无遮挡网站| 国产精品 欧美亚洲| 18禁观看日本| 亚洲五月婷婷丁香| 欧美绝顶高潮抽搐喷水| 99在线人妻在线中文字幕| 操美女的视频在线观看| 老汉色∧v一级毛片| 嫩草影院精品99| 高清在线国产一区| 色在线成人网| 后天国语完整版免费观看| 好看av亚洲va欧美ⅴa在| 免费av毛片视频| 非洲黑人性xxxx精品又粗又长| 亚洲一区中文字幕在线| 91成年电影在线观看| 精品久久久久久成人av| 乱人伦中国视频| 欧美成人一区二区免费高清观看 | 女人高潮潮喷娇喘18禁视频| 一级a爱视频在线免费观看| 最新在线观看一区二区三区| 校园春色视频在线观看| 成人永久免费在线观看视频| 亚洲全国av大片| 亚洲精品粉嫩美女一区| 在线观看免费午夜福利视频| 亚洲精品av麻豆狂野| 天天躁夜夜躁狠狠躁躁| 天天添夜夜摸| 日本vs欧美在线观看视频| 精品卡一卡二卡四卡免费| 自线自在国产av| av在线天堂中文字幕| 夜夜夜夜夜久久久久| 免费在线观看视频国产中文字幕亚洲| 亚洲欧美日韩无卡精品| 久久人妻福利社区极品人妻图片| 亚洲成国产人片在线观看| xxx96com| 亚洲午夜精品一区,二区,三区| 久久人人精品亚洲av| 国产蜜桃级精品一区二区三区| 大型av网站在线播放| 91麻豆av在线| 亚洲少妇的诱惑av| 99在线视频只有这里精品首页| 又黄又爽又免费观看的视频| 俄罗斯特黄特色一大片| 欧美一级a爱片免费观看看 | 一边摸一边做爽爽视频免费| 51午夜福利影视在线观看| 国产激情欧美一区二区| 久久精品国产亚洲av香蕉五月| 国产欧美日韩综合在线一区二区| 不卡一级毛片| www.www免费av| 国产伦一二天堂av在线观看| 女生性感内裤真人,穿戴方法视频| 人妻久久中文字幕网| 一进一出抽搐gif免费好疼| 国产精品 国内视频| 久久精品国产综合久久久| 亚洲av美国av| 色尼玛亚洲综合影院| 国产野战对白在线观看| 亚洲人成伊人成综合网2020| 精品电影一区二区在线| 国产成人影院久久av| 一本综合久久免费| 久久久精品欧美日韩精品| 91老司机精品| 国产91精品成人一区二区三区| 精品久久蜜臀av无| av天堂在线播放| tocl精华| 激情视频va一区二区三区| 两个人视频免费观看高清| 日日摸夜夜添夜夜添小说| 国产主播在线观看一区二区| 久99久视频精品免费| 欧美乱码精品一区二区三区| 精品人妻在线不人妻| 女人精品久久久久毛片| 亚洲 国产 在线| 色播亚洲综合网| 精品国内亚洲2022精品成人| 国产精品,欧美在线| 午夜福利成人在线免费观看| 国产野战对白在线观看| 日本撒尿小便嘘嘘汇集6| 色哟哟哟哟哟哟| 99国产精品一区二区蜜桃av| 欧美国产精品va在线观看不卡| 久久久久久国产a免费观看| xxx96com| 日韩欧美三级三区| 色尼玛亚洲综合影院| 美女大奶头视频| 国产麻豆69| 亚洲电影在线观看av| 99国产精品一区二区蜜桃av| 欧美精品啪啪一区二区三区| 18禁美女被吸乳视频| 亚洲国产欧美网| 久久久水蜜桃国产精品网| 最近最新中文字幕大全电影3 | 国产91精品成人一区二区三区| 成人三级做爰电影| 亚洲国产精品999在线| 国产国语露脸激情在线看| 午夜两性在线视频| 国产成人影院久久av| 亚洲色图av天堂| 国内毛片毛片毛片毛片毛片| 亚洲av成人一区二区三| 亚洲人成77777在线视频| 99精品在免费线老司机午夜| 国产成年人精品一区二区| 国产av一区在线观看免费| 久久狼人影院| 欧美另类亚洲清纯唯美| 午夜a级毛片| 亚洲成a人片在线一区二区| 亚洲全国av大片| 男人操女人黄网站| 悠悠久久av| 一区二区三区国产精品乱码| 久久久水蜜桃国产精品网| 人人澡人人妻人| 午夜免费观看网址| 欧洲精品卡2卡3卡4卡5卡区| 啦啦啦免费观看视频1| e午夜精品久久久久久久| 成人国产一区最新在线观看| 一级作爱视频免费观看| 日本免费一区二区三区高清不卡 | 日本五十路高清| 国产麻豆成人av免费视频| 亚洲熟女毛片儿| 1024视频免费在线观看| 侵犯人妻中文字幕一二三四区| 啪啪无遮挡十八禁网站| 一边摸一边抽搐一进一出视频| 免费看美女性在线毛片视频| av电影中文网址| 日韩视频一区二区在线观看| 国产成人啪精品午夜网站| 欧美+亚洲+日韩+国产| 丝袜美腿诱惑在线| 欧美一级毛片孕妇| 91在线观看av| 村上凉子中文字幕在线| 午夜福利在线观看吧| 国产在线精品亚洲第一网站| 男人舔女人的私密视频| av超薄肉色丝袜交足视频| 天堂影院成人在线观看| 在线观看日韩欧美| 久久久久久久久中文| 亚洲国产看品久久| 亚洲色图 男人天堂 中文字幕| 岛国在线观看网站| 国产一区二区三区综合在线观看| 久久久久国产一级毛片高清牌| 久久久久久免费高清国产稀缺| 国产一区二区在线av高清观看| 欧美另类亚洲清纯唯美| 精品电影一区二区在线| 两个人视频免费观看高清| 一卡2卡三卡四卡精品乱码亚洲| 又紧又爽又黄一区二区| 久久人人精品亚洲av| 色播亚洲综合网| 亚洲色图综合在线观看| 无遮挡黄片免费观看| 男女下面插进去视频免费观看| 制服人妻中文乱码| 999精品在线视频| 在线永久观看黄色视频| 淫秽高清视频在线观看| 99riav亚洲国产免费| 久久久久国产一级毛片高清牌| 黑人操中国人逼视频| 国产视频一区二区在线看| 国产成人系列免费观看| 亚洲精品国产精品久久久不卡| a在线观看视频网站| √禁漫天堂资源中文www| 欧美乱色亚洲激情| 一进一出抽搐gif免费好疼| 国产精品免费一区二区三区在线| 国产成人精品久久二区二区91| 免费在线观看黄色视频的| 久久人人爽av亚洲精品天堂| 欧美乱码精品一区二区三区| 久久婷婷成人综合色麻豆| 丁香欧美五月| 女性生殖器流出的白浆| 日韩大码丰满熟妇| 欧美色欧美亚洲另类二区 | 午夜免费鲁丝| 久热爱精品视频在线9| 大型黄色视频在线免费观看| 国产真人三级小视频在线观看| 日韩三级视频一区二区三区| 少妇裸体淫交视频免费看高清 | 成人亚洲精品av一区二区| 国产精品一区二区精品视频观看| 免费av毛片视频| 国产麻豆69| 国产精品一区二区精品视频观看| 日韩欧美三级三区| 亚洲成av人片免费观看| 国产熟女xx| 免费av毛片视频| 国产国语露脸激情在线看| 成年版毛片免费区| 99国产精品免费福利视频| 精品欧美一区二区三区在线| 黄色成人免费大全| 亚洲熟妇熟女久久| 成熟少妇高潮喷水视频| 日本黄色视频三级网站网址| 久久精品影院6| 久久草成人影院| 不卡一级毛片| 一夜夜www| 淫妇啪啪啪对白视频| 免费看a级黄色片| 嫁个100分男人电影在线观看| 香蕉久久夜色| 男女下面进入的视频免费午夜 | 天堂动漫精品| 99久久精品国产亚洲精品| 美女国产高潮福利片在线看| 日本精品一区二区三区蜜桃| 老司机福利观看| 久久久久久人人人人人| 日日干狠狠操夜夜爽| 久久国产亚洲av麻豆专区| 日韩欧美一区视频在线观看| 又大又爽又粗| 国产成人av激情在线播放| 欧美+亚洲+日韩+国产| 99国产精品一区二区蜜桃av| 国产精品一区二区在线不卡| 亚洲伊人色综图| 在线观看免费日韩欧美大片| 亚洲自偷自拍图片 自拍| 91麻豆精品激情在线观看国产| 免费看十八禁软件| 日日夜夜操网爽| 亚洲成人精品中文字幕电影| 电影成人av| 精品一区二区三区av网在线观看| 韩国精品一区二区三区| 久久久久久久精品吃奶| 国产片内射在线| 精品电影一区二区在线| 99国产综合亚洲精品| 国产片内射在线| 久久人人97超碰香蕉20202| 亚洲成人久久性| 亚洲精品中文字幕一二三四区| √禁漫天堂资源中文www| 午夜精品国产一区二区电影| 大陆偷拍与自拍| 正在播放国产对白刺激| 久久欧美精品欧美久久欧美| 欧美在线一区亚洲| 日日爽夜夜爽网站| 一级a爱片免费观看的视频| 亚洲精品久久成人aⅴ小说| 男女之事视频高清在线观看| 久久国产精品人妻蜜桃| 涩涩av久久男人的天堂| 久久久久国内视频| 欧美日本视频| 一进一出好大好爽视频| 亚洲一区高清亚洲精品| 亚洲 欧美 日韩 在线 免费| 极品教师在线免费播放| 午夜免费鲁丝| 国产xxxxx性猛交| 国产精品美女特级片免费视频播放器 | 叶爱在线成人免费视频播放| 亚洲情色 制服丝袜| 亚洲国产精品999在线| 如日韩欧美国产精品一区二区三区| 天天一区二区日本电影三级 | 正在播放国产对白刺激| 国产三级在线视频| 丝袜人妻中文字幕| 黑人操中国人逼视频| 一二三四社区在线视频社区8| 久久久国产成人精品二区| 好男人电影高清在线观看| 欧美色视频一区免费| 精品不卡国产一区二区三区| 99国产精品一区二区蜜桃av| 国产成+人综合+亚洲专区| 免费在线观看完整版高清| 国产精品久久电影中文字幕| 久久人人精品亚洲av| bbb黄色大片| 国产亚洲精品久久久久久毛片| 最近最新中文字幕大全免费视频| 国产熟女xx| 色综合站精品国产| 亚洲欧美日韩高清在线视频| 1024香蕉在线观看| 法律面前人人平等表现在哪些方面| 亚洲自拍偷在线| 精品国产一区二区久久| 亚洲成人久久性| 日韩高清综合在线| 精品福利观看| 久久亚洲真实| 老司机深夜福利视频在线观看| 琪琪午夜伦伦电影理论片6080| 久久人人爽av亚洲精品天堂| 少妇被粗大的猛进出69影院| 中文字幕色久视频| 黑人巨大精品欧美一区二区蜜桃| 99在线视频只有这里精品首页| 日本黄色视频三级网站网址| 嫁个100分男人电影在线观看| 黑人操中国人逼视频| videosex国产| 精品国内亚洲2022精品成人| 男女床上黄色一级片免费看| 国产日韩一区二区三区精品不卡| 国产av一区二区精品久久| 国产亚洲欧美精品永久| 国产在线观看jvid| 成年女人毛片免费观看观看9| 欧美日本亚洲视频在线播放| 18禁黄网站禁片午夜丰满| 国产高清视频在线播放一区| 黄片大片在线免费观看| 国产精品一区二区精品视频观看| 一个人观看的视频www高清免费观看 | 午夜福利在线观看吧| 成人国产综合亚洲| 国产成人精品久久二区二区91| 国产成+人综合+亚洲专区| 91av网站免费观看| netflix在线观看网站| 黑丝袜美女国产一区| 国产亚洲精品综合一区在线观看 | 中文字幕高清在线视频| 亚洲精品美女久久久久99蜜臀| 91大片在线观看| 国产精品久久久久久精品电影 | √禁漫天堂资源中文www| 欧美在线黄色| 久久久国产成人精品二区| 久久久国产欧美日韩av| 日本撒尿小便嘘嘘汇集6| 久久欧美精品欧美久久欧美| 可以在线观看的亚洲视频| 午夜精品国产一区二区电影| 国产欧美日韩一区二区精品| 成人av一区二区三区在线看| 欧美人与性动交α欧美精品济南到| 亚洲电影在线观看av| 这个男人来自地球电影免费观看| 九色亚洲精品在线播放| 色播亚洲综合网| 国语自产精品视频在线第100页| 色精品久久人妻99蜜桃| 亚洲五月色婷婷综合| 免费搜索国产男女视频| 成年版毛片免费区| 搡老妇女老女人老熟妇| 国产精品乱码一区二三区的特点 | 男男h啪啪无遮挡| 欧美日韩中文字幕国产精品一区二区三区 | 亚洲男人的天堂狠狠| 亚洲第一av免费看| www国产在线视频色| 亚洲国产精品sss在线观看| 97超级碰碰碰精品色视频在线观看| 动漫黄色视频在线观看| 黄色视频,在线免费观看| 看黄色毛片网站| 国产一区二区激情短视频| 国产成人啪精品午夜网站| 婷婷精品国产亚洲av在线| 亚洲人成伊人成综合网2020| 亚洲精品一区av在线观看| 免费不卡黄色视频| 亚洲自拍偷在线| 欧美中文综合在线视频| 国产蜜桃级精品一区二区三区| 久久久久精品国产欧美久久久| 久久精品aⅴ一区二区三区四区| 国产成人啪精品午夜网站| 久久亚洲精品不卡| 日本三级黄在线观看| 日韩欧美一区二区三区在线观看| 级片在线观看| 在线免费观看的www视频| 天堂影院成人在线观看| 岛国视频午夜一区免费看| 制服人妻中文乱码| 欧美黑人欧美精品刺激| 久久青草综合色| 女生性感内裤真人,穿戴方法视频| 成人欧美大片| 国产亚洲欧美在线一区二区| a级毛片在线看网站| 9热在线视频观看99| 久久精品91无色码中文字幕| 亚洲熟女毛片儿| 一区在线观看完整版| 女人被躁到高潮嗷嗷叫费观| 欧美日韩福利视频一区二区| 国产高清视频在线播放一区| 无人区码免费观看不卡| 91成人精品电影| 国产亚洲欧美精品永久| 免费av毛片视频| 久久热在线av|