• <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ā)
    最近视频中文字幕2019在线8| 久久久久久久久中文| 亚洲国产精品合色在线| 亚洲av二区三区四区| 亚洲国产日韩欧美精品在线观看| 国产亚洲精品综合一区在线观看| 特级一级黄色大片| 亚洲午夜理论影院| 人妻制服诱惑在线中文字幕| 又黄又爽又免费观看的视频| 三级男女做爰猛烈吃奶摸视频| 女同久久另类99精品国产91| 精品国产亚洲在线| 我的女老师完整版在线观看| 美女cb高潮喷水在线观看| 欧洲精品卡2卡3卡4卡5卡区| 精品不卡国产一区二区三区| 最新中文字幕久久久久| 最近最新免费中文字幕在线| 精品人妻一区二区三区麻豆 | 别揉我奶头~嗯~啊~动态视频| 国产综合懂色| 国产免费一级a男人的天堂| 国产高清激情床上av| 美女高潮喷水抽搐中文字幕| 天堂动漫精品| a级毛片a级免费在线| 噜噜噜噜噜久久久久久91| 日日干狠狠操夜夜爽| 一区二区三区免费毛片| 成人性生交大片免费视频hd| 18禁黄网站禁片午夜丰满| 久久久久性生活片| 欧美色视频一区免费| 欧美xxxx性猛交bbbb| 能在线免费观看的黄片| 成人av在线播放网站| 久久草成人影院| 淫妇啪啪啪对白视频| 熟妇人妻久久中文字幕3abv| 午夜视频国产福利| 亚洲中文日韩欧美视频| 日韩国内少妇激情av| .国产精品久久| 亚洲第一区二区三区不卡| 又粗又爽又猛毛片免费看| 国产成人福利小说| 久久99热6这里只有精品| 欧美高清成人免费视频www| 久久热精品热| 一级毛片久久久久久久久女| 校园春色视频在线观看| 又紧又爽又黄一区二区| 五月玫瑰六月丁香| 能在线免费观看的黄片| 国产精品亚洲美女久久久| 免费看a级黄色片| 18禁在线播放成人免费| 午夜福利成人在线免费观看| 小说图片视频综合网站| 99热只有精品国产| 亚洲最大成人手机在线| 99久久精品一区二区三区| 每晚都被弄得嗷嗷叫到高潮| 亚洲精品粉嫩美女一区| 日韩有码中文字幕| 欧美日本视频| 999久久久精品免费观看国产| 久久精品国产亚洲av香蕉五月| 久久精品影院6| 9191精品国产免费久久| 亚洲自拍偷在线| 日韩欧美免费精品| 91麻豆av在线| 99视频精品全部免费 在线| 黄片小视频在线播放| 久久性视频一级片| 少妇的逼水好多| 亚洲 国产 在线| 丰满乱子伦码专区| 色综合欧美亚洲国产小说| 人妻制服诱惑在线中文字幕| 久久久久久久久久黄片| 狂野欧美白嫩少妇大欣赏| 小蜜桃在线观看免费完整版高清| 3wmmmm亚洲av在线观看| 亚洲精华国产精华精| 欧美国产日韩亚洲一区| 人妻夜夜爽99麻豆av| 他把我摸到了高潮在线观看| 我要看日韩黄色一级片| 亚洲av第一区精品v没综合| 男人和女人高潮做爰伦理| 最新在线观看一区二区三区| 国产aⅴ精品一区二区三区波| 久久久久久久久久成人| 国产欧美日韩一区二区三| 久久久久九九精品影院| 午夜免费男女啪啪视频观看 | 欧美最新免费一区二区三区 | 中出人妻视频一区二区| 天天一区二区日本电影三级| 免费电影在线观看免费观看| 亚洲五月天丁香| 成人鲁丝片一二三区免费| 中文在线观看免费www的网站| 小蜜桃在线观看免费完整版高清| 在线十欧美十亚洲十日本专区| 国内精品美女久久久久久| eeuss影院久久| 国产成人福利小说| 国产精华一区二区三区| 日本三级黄在线观看| 国产精品人妻久久久久久| 亚洲人成网站在线播放欧美日韩| 欧美一区二区精品小视频在线| 久久精品久久久久久噜噜老黄 | 又紧又爽又黄一区二区| 日本五十路高清| 国产私拍福利视频在线观看| 极品教师在线免费播放| 亚洲av免费高清在线观看| 日日夜夜操网爽| av在线观看视频网站免费| 免费看美女性在线毛片视频| 欧美xxxx性猛交bbbb| 老女人水多毛片| 少妇的逼水好多| av福利片在线观看| 国产午夜精品久久久久久一区二区三区 | 欧美+日韩+精品| 女同久久另类99精品国产91| 日韩欧美精品v在线| 天堂动漫精品| 色精品久久人妻99蜜桃| 99久国产av精品| 赤兔流量卡办理| 99国产精品一区二区三区| 一进一出抽搐gif免费好疼| 一级a爱片免费观看的视频| 一个人看视频在线观看www免费| 国产一级毛片七仙女欲春2| 欧美一区二区国产精品久久精品| 欧洲精品卡2卡3卡4卡5卡区| 国产乱人伦免费视频| 亚洲成人精品中文字幕电影| 亚洲激情在线av| 99国产精品一区二区蜜桃av| 日韩有码中文字幕| 欧美一级a爱片免费观看看| 757午夜福利合集在线观看| 亚洲自拍偷在线| 亚洲精华国产精华精| 天堂网av新在线| 日本免费一区二区三区高清不卡| 九色成人免费人妻av| 久久午夜福利片| 一边摸一边抽搐一进一小说| 亚洲欧美精品综合久久99| 国产伦在线观看视频一区| 嫩草影视91久久| 我的女老师完整版在线观看| 露出奶头的视频| 欧美成狂野欧美在线观看| 久久人妻av系列| 97碰自拍视频| 一区二区三区四区激情视频 | 美女高潮的动态| 免费av观看视频| 亚洲av二区三区四区| 成人av在线播放网站| 如何舔出高潮| 成年版毛片免费区| 久久国产乱子伦精品免费另类| 久久久精品欧美日韩精品| 日韩有码中文字幕| 级片在线观看| 在线十欧美十亚洲十日本专区| 亚洲专区中文字幕在线| 毛片一级片免费看久久久久 | 精品一区二区三区av网在线观看| 五月伊人婷婷丁香| 狂野欧美白嫩少妇大欣赏| 又黄又爽又免费观看的视频| 精品久久国产蜜桃| 精品99又大又爽又粗少妇毛片 | 国产一区二区激情短视频| 国产单亲对白刺激| 波野结衣二区三区在线| 久久精品国产亚洲av香蕉五月| a级毛片免费高清观看在线播放| 国产探花在线观看一区二区| 亚洲 欧美 日韩 在线 免费| 日韩欧美三级三区| 国产精品嫩草影院av在线观看 | 美女黄网站色视频| 亚洲最大成人手机在线| 99热6这里只有精品| 久久久国产成人免费| 一区二区三区免费毛片| 成人欧美大片| 国产真实伦视频高清在线观看 | 免费高清视频大片| 国产日本99.免费观看| 亚洲欧美日韩东京热| 一a级毛片在线观看| 长腿黑丝高跟| 51国产日韩欧美| 中文资源天堂在线| 12—13女人毛片做爰片一| 天堂动漫精品| 亚洲狠狠婷婷综合久久图片| 狂野欧美白嫩少妇大欣赏| 国产激情偷乱视频一区二区| 熟女电影av网| 美女黄网站色视频| 国产成人av教育| 亚洲成av人片在线播放无| 亚洲真实伦在线观看| 欧美zozozo另类| 免费黄网站久久成人精品 | 老鸭窝网址在线观看| 日本三级黄在线观看| 亚洲国产高清在线一区二区三| 亚州av有码| 欧美黑人巨大hd| 级片在线观看| 在线a可以看的网站| 久久久成人免费电影| 又黄又爽又免费观看的视频| 日韩精品青青久久久久久| 变态另类丝袜制服| 久久性视频一级片| 99久久九九国产精品国产免费| 国产一区二区在线av高清观看| 一级av片app| 每晚都被弄得嗷嗷叫到高潮| 色精品久久人妻99蜜桃| 国产亚洲精品综合一区在线观看| 国产私拍福利视频在线观看| 蜜桃亚洲精品一区二区三区| 日本黄色视频三级网站网址| 国产伦人伦偷精品视频| 亚洲av成人精品一区久久| 久久欧美精品欧美久久欧美| 18禁裸乳无遮挡免费网站照片| 国产在线男女| 国产欧美日韩一区二区三| 51国产日韩欧美| 成年版毛片免费区| 欧美性猛交╳xxx乱大交人| 精品久久久久久久久久久久久| 91久久精品电影网| 毛片一级片免费看久久久久 | 国产精华一区二区三区| 欧美乱色亚洲激情| 亚洲国产欧美人成| 精品一区二区三区av网在线观看| avwww免费| 男人和女人高潮做爰伦理| 成人永久免费在线观看视频| 床上黄色一级片| 中出人妻视频一区二区| 1000部很黄的大片| 亚洲精品久久国产高清桃花| 老师上课跳d突然被开到最大视频 久久午夜综合久久蜜桃 | 成人午夜高清在线视频| 日韩欧美在线乱码| 亚洲av日韩精品久久久久久密| 乱码一卡2卡4卡精品| av在线观看视频网站免费| 一本久久中文字幕| 亚洲欧美日韩东京热| 国产国拍精品亚洲av在线观看| 一级av片app| 三级国产精品欧美在线观看| 欧美成人一区二区免费高清观看| 在线观看舔阴道视频| 亚洲av.av天堂| 国产69精品久久久久777片| 亚洲国产高清在线一区二区三| 制服丝袜大香蕉在线| 亚洲欧美日韩高清在线视频| 国产精品av视频在线免费观看| 国产成人av教育| 亚洲成人免费电影在线观看| 亚洲国产精品成人综合色| 美女被艹到高潮喷水动态| 亚洲片人在线观看| 国产单亲对白刺激| 欧美+亚洲+日韩+国产| 一区二区三区免费毛片| 亚洲欧美日韩东京热| 亚洲内射少妇av| 欧美极品一区二区三区四区| 人人妻,人人澡人人爽秒播| 日韩高清综合在线| 国产精品一区二区三区四区免费观看 | 精品99又大又爽又粗少妇毛片 | 精华霜和精华液先用哪个| 亚洲国产色片| 熟女电影av网| 欧美黑人巨大hd| 特级一级黄色大片| 日本免费a在线| 午夜免费男女啪啪视频观看 | 美女黄网站色视频| 久久人妻av系列| 草草在线视频免费看| 欧美色欧美亚洲另类二区| 悠悠久久av| 国产亚洲av嫩草精品影院| 欧美最新免费一区二区三区 | 欧美日韩国产亚洲二区| 国产精品女同一区二区软件 | 久久人人精品亚洲av| 亚洲国产色片| 国产高潮美女av| 亚洲最大成人手机在线| 不卡一级毛片| 亚洲欧美日韩高清专用| 欧美日韩黄片免| 99riav亚洲国产免费| 国语自产精品视频在线第100页| 男女之事视频高清在线观看| 免费看光身美女| 极品教师在线免费播放| 午夜免费男女啪啪视频观看 | 99国产极品粉嫩在线观看| 禁无遮挡网站| 久久久久免费精品人妻一区二区| 他把我摸到了高潮在线观看| 51国产日韩欧美| 少妇高潮的动态图| 国产成人福利小说| 99热这里只有是精品在线观看 | 欧美性猛交黑人性爽| 精品午夜福利视频在线观看一区| 麻豆成人av在线观看| 色哟哟·www| 欧洲精品卡2卡3卡4卡5卡区| 国产高清视频在线播放一区| 真人一进一出gif抽搐免费| 国产视频一区二区在线看| 国产精品久久视频播放| 变态另类成人亚洲欧美熟女| 18禁裸乳无遮挡免费网站照片| 欧美最新免费一区二区三区 | 老司机深夜福利视频在线观看| 综合色av麻豆| 9191精品国产免费久久| 欧美一区二区亚洲| 国产精品99久久久久久久久| 国产黄色小视频在线观看| 亚洲,欧美,日韩| 舔av片在线| 国产精品不卡视频一区二区 | 久久久久免费精品人妻一区二区| 欧美日本亚洲视频在线播放| 亚洲第一区二区三区不卡| 亚洲,欧美精品.| 国产成人欧美在线观看| 亚洲人成网站在线播放欧美日韩| 九九热线精品视视频播放| 精品久久久久久久久久久久久| 在线观看av片永久免费下载| 久久久久久大精品| 午夜福利成人在线免费观看| 亚洲一区二区三区色噜噜| 日韩欧美免费精品| 亚洲精品456在线播放app | 国产三级中文精品| 免费搜索国产男女视频| 日韩欧美在线乱码| 亚洲自偷自拍三级| 性欧美人与动物交配| 精品不卡国产一区二区三区| 久久久久久大精品| 天堂影院成人在线观看| 搡老岳熟女国产| 简卡轻食公司| 国产极品精品免费视频能看的| 中亚洲国语对白在线视频| 久久久久国产精品人妻aⅴ院| 乱人视频在线观看| 免费一级毛片在线播放高清视频| 免费电影在线观看免费观看| 亚洲精品乱码久久久v下载方式| 亚洲国产精品sss在线观看| 精品人妻熟女av久视频| 麻豆久久精品国产亚洲av| 夜夜爽天天搞| 精品久久久久久久人妻蜜臀av| 亚洲精品色激情综合| 又爽又黄a免费视频| 亚洲精品日韩av片在线观看| 亚洲欧美清纯卡通| 国内精品一区二区在线观看| 国内毛片毛片毛片毛片毛片| 在线国产一区二区在线| 波多野结衣高清作品| 欧美xxxx性猛交bbbb| 一区二区三区高清视频在线| 久久天躁狠狠躁夜夜2o2o| 国产激情偷乱视频一区二区| 免费电影在线观看免费观看| 欧美丝袜亚洲另类 | 美女大奶头视频| 一区二区三区免费毛片| 伦理电影大哥的女人| 久久精品综合一区二区三区| 真实男女啪啪啪动态图| 久久久成人免费电影| 蜜桃久久精品国产亚洲av| 欧美在线黄色| 国产亚洲欧美98| 99久久久亚洲精品蜜臀av| 在线观看午夜福利视频| 欧美日韩综合久久久久久 | 精品久久国产蜜桃| 真实男女啪啪啪动态图| 热99在线观看视频| 精品日产1卡2卡| 18+在线观看网站| 午夜福利免费观看在线| 中文字幕人妻熟人妻熟丝袜美| 色噜噜av男人的天堂激情| 免费在线观看成人毛片| 国产精品综合久久久久久久免费| 日本一二三区视频观看| 欧美区成人在线视频| 性插视频无遮挡在线免费观看| 国产白丝娇喘喷水9色精品| 搡老妇女老女人老熟妇| 伊人久久精品亚洲午夜| а√天堂www在线а√下载| 99国产精品一区二区三区| 69人妻影院| 91狼人影院| 噜噜噜噜噜久久久久久91| 脱女人内裤的视频| 深夜精品福利| 欧美xxxx性猛交bbbb| 中文亚洲av片在线观看爽| 俺也久久电影网| 亚洲第一区二区三区不卡| 亚洲aⅴ乱码一区二区在线播放| 日日摸夜夜添夜夜添av毛片 | 老司机午夜福利在线观看视频| 一本综合久久免费| 亚洲av成人av| 黄色丝袜av网址大全| 美女大奶头视频| xxxwww97欧美| 久久热精品热| 欧美乱妇无乱码| 精品不卡国产一区二区三区| 一个人观看的视频www高清免费观看| 国产在线男女| 欧美性猛交╳xxx乱大交人| 日韩精品中文字幕看吧| 国产亚洲精品久久久com| 久久久久久九九精品二区国产| 亚洲欧美激情综合另类| 热99在线观看视频| 精品国内亚洲2022精品成人| 在线观看美女被高潮喷水网站 | 国内毛片毛片毛片毛片毛片| 亚洲精品一卡2卡三卡4卡5卡| 日本一二三区视频观看| 人人妻,人人澡人人爽秒播| 亚洲av电影不卡..在线观看| 日本精品一区二区三区蜜桃| 国产熟女xx| 免费搜索国产男女视频| 悠悠久久av| 成人鲁丝片一二三区免费| 黄色女人牲交| 欧美潮喷喷水| 亚洲av熟女| 国产亚洲精品久久久久久毛片| 99精品久久久久人妻精品| 日韩欧美精品v在线| 高清在线国产一区| 丰满乱子伦码专区| 成年版毛片免费区| 成人av在线播放网站| 深夜a级毛片| 高清在线国产一区| 成人特级av手机在线观看| 欧美精品啪啪一区二区三区| 午夜精品在线福利| 国产真实伦视频高清在线观看 | 国产极品精品免费视频能看的| 亚洲人成伊人成综合网2020| 九九久久精品国产亚洲av麻豆| 啦啦啦韩国在线观看视频| 欧美性猛交黑人性爽| 99久久九九国产精品国产免费| 男人和女人高潮做爰伦理| 国产三级在线视频| 99久久成人亚洲精品观看| 国产成人福利小说| 国产毛片a区久久久久| 色精品久久人妻99蜜桃| 国产老妇女一区| 丰满乱子伦码专区| 国产伦人伦偷精品视频| 看黄色毛片网站| 变态另类丝袜制服| 免费在线观看日本一区| 哪里可以看免费的av片| 成人一区二区视频在线观看| 十八禁网站免费在线| 国产成人a区在线观看| 久久中文看片网| 国产精品一区二区免费欧美| 九色成人免费人妻av| 成人高潮视频无遮挡免费网站| 一本一本综合久久| 亚洲成人中文字幕在线播放| 怎么达到女性高潮| 久久6这里有精品| 每晚都被弄得嗷嗷叫到高潮| 色综合欧美亚洲国产小说| 国产欧美日韩精品亚洲av| 日本熟妇午夜| 久久久色成人| 搡老岳熟女国产| 国产色婷婷99| 亚洲七黄色美女视频| av在线蜜桃| 国产精品伦人一区二区| 波多野结衣高清作品| 99国产精品一区二区三区| 一本一本综合久久| 精品久久久久久久久亚洲 | 成年版毛片免费区| 欧美xxxx性猛交bbbb| 国产高清激情床上av| 赤兔流量卡办理| 中国美女看黄片| 日本五十路高清| 久久人妻av系列| 一个人免费在线观看电影| 亚洲一区二区三区色噜噜| 如何舔出高潮| 女生性感内裤真人,穿戴方法视频| 欧美不卡视频在线免费观看| 亚洲人与动物交配视频| 亚洲美女视频黄频| 在线播放无遮挡| 日韩av在线大香蕉| 小说图片视频综合网站| 久久久色成人| 嫩草影视91久久| 亚洲欧美精品综合久久99| 91麻豆精品激情在线观看国产| 成人一区二区视频在线观看| 露出奶头的视频| 国产免费男女视频| 一夜夜www| 波野结衣二区三区在线| 男人的好看免费观看在线视频| 人妻夜夜爽99麻豆av| 狂野欧美白嫩少妇大欣赏| 亚洲成人精品中文字幕电影| 色视频www国产| 美女免费视频网站| 久久久久久久亚洲中文字幕 | 国产亚洲精品久久久久久毛片| 麻豆av噜噜一区二区三区| 国产精品一区二区三区四区久久| 黄色一级大片看看| 三级毛片av免费| 宅男免费午夜| 欧美精品啪啪一区二区三区| bbb黄色大片| 日韩欧美一区二区三区在线观看| 国产伦一二天堂av在线观看| 国产淫片久久久久久久久 | 国产v大片淫在线免费观看| 久久精品影院6| .国产精品久久| 欧美丝袜亚洲另类 | 嫁个100分男人电影在线观看| 久久久久久九九精品二区国产| 国产单亲对白刺激| 欧美激情久久久久久爽电影| 嫩草影视91久久| 亚洲av不卡在线观看| 欧美bdsm另类| 国产精品伦人一区二区| 黄片小视频在线播放| 少妇的逼水好多| 天美传媒精品一区二区| 亚洲人成网站在线播放欧美日韩| 亚洲欧美日韩高清专用| 国产三级在线视频| 黄色丝袜av网址大全| 99在线人妻在线中文字幕| 在线观看舔阴道视频| 日本 欧美在线| 精品一区二区三区人妻视频| 美女高潮的动态| 久久久久久久久大av| 亚洲av中文字字幕乱码综合| 黄色视频,在线免费观看| 国语自产精品视频在线第100页| 久久久色成人| 日本与韩国留学比较| 别揉我奶头 嗯啊视频| 国产国拍精品亚洲av在线观看| 在线观看舔阴道视频| 日本 欧美在线|