• <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ā)
    成人无遮挡网站| 18禁观看日本| 成年美女黄网站色视频大全免费| 成人国产麻豆网| 日韩 亚洲 欧美在线| 国产成人精品在线电影| 女性生殖器流出的白浆| 亚洲精品自拍成人| 91国产中文字幕| 久久99一区二区三区| 一级毛片黄色毛片免费观看视频| 国产在线一区二区三区精| 一区二区三区四区激情视频| 夜夜骑夜夜射夜夜干| 人妻人人澡人人爽人人| 91精品国产国语对白视频| 男人操女人黄网站| 人人妻人人澡人人看| 亚洲av男天堂| 日韩人妻精品一区2区三区| 亚洲精品自拍成人| 日韩一本色道免费dvd| 汤姆久久久久久久影院中文字幕| 搡女人真爽免费视频火全软件| av片东京热男人的天堂| 免费不卡的大黄色大毛片视频在线观看| 久久人人爽人人爽人人片va| 七月丁香在线播放| 久久ye,这里只有精品| 下体分泌物呈黄色| 人妻 亚洲 视频| 寂寞人妻少妇视频99o| 久久久久久伊人网av| 高清不卡的av网站| 欧美精品一区二区大全| 黄色怎么调成土黄色| 久久青草综合色| 国产亚洲最大av| 综合色丁香网| 寂寞人妻少妇视频99o| 免费大片黄手机在线观看| 黄色一级大片看看| 最近中文字幕2019免费版| 亚洲一码二码三码区别大吗| 国产av码专区亚洲av| 永久免费av网站大全| 亚洲天堂av无毛| 日韩大片免费观看网站| 国产免费视频播放在线视频| 中文字幕精品免费在线观看视频 | 久久久久久人人人人人| 国产免费又黄又爽又色| 国产探花极品一区二区| 午夜福利网站1000一区二区三区| 大话2 男鬼变身卡| av福利片在线| 五月玫瑰六月丁香| 亚洲精品aⅴ在线观看| 精品人妻偷拍中文字幕| 国产精品成人在线| 亚洲伊人久久精品综合| 人人妻人人澡人人看| 久久人人爽av亚洲精品天堂| 中文字幕av电影在线播放| 高清欧美精品videossex| 免费黄网站久久成人精品| 国产精品国产av在线观看| 精品人妻在线不人妻| 亚洲久久久国产精品| 大香蕉久久网| videos熟女内射| 赤兔流量卡办理| 伦理电影大哥的女人| 视频在线观看一区二区三区| 亚洲熟女精品中文字幕| 美女国产视频在线观看| 成人影院久久| 夜夜骑夜夜射夜夜干| 一边摸一边做爽爽视频免费| 夜夜爽夜夜爽视频| 国产高清不卡午夜福利| 一级片免费观看大全| 一区二区三区精品91| 少妇被粗大猛烈的视频| 一本色道久久久久久精品综合| 欧美精品av麻豆av| 精品国产国语对白av| 日韩 亚洲 欧美在线| 亚洲图色成人| 日韩成人伦理影院| 你懂的网址亚洲精品在线观看| 在线观看免费日韩欧美大片| 亚洲一级一片aⅴ在线观看| 日本爱情动作片www.在线观看| 下体分泌物呈黄色| 97在线人人人人妻| 亚洲国产日韩一区二区| 亚洲精品久久久久久婷婷小说| 美女主播在线视频| 精品少妇久久久久久888优播| 女的被弄到高潮叫床怎么办| 免费女性裸体啪啪无遮挡网站| 菩萨蛮人人尽说江南好唐韦庄| 18禁在线无遮挡免费观看视频| 乱人伦中国视频| 人体艺术视频欧美日本| 夫妻午夜视频| 婷婷成人精品国产| 久久女婷五月综合色啪小说| 有码 亚洲区| 最近的中文字幕免费完整| 熟女av电影| 制服诱惑二区| 精品久久久精品久久久| 国产色婷婷99| 欧美精品一区二区免费开放| 嫩草影院入口| 国产av一区二区精品久久| 视频在线观看一区二区三区| 卡戴珊不雅视频在线播放| 黑人巨大精品欧美一区二区蜜桃 | 亚洲欧美清纯卡通| 国产精品人妻久久久久久| 亚洲熟女精品中文字幕| 一本大道久久a久久精品| 亚洲国产看品久久| 欧美亚洲 丝袜 人妻 在线| 天美传媒精品一区二区| 国产亚洲av片在线观看秒播厂| 精品熟女少妇av免费看| 一级毛片电影观看| 中文字幕免费在线视频6| 欧美最新免费一区二区三区| 一级毛片电影观看| 亚洲图色成人| 亚洲国产精品一区二区三区在线| 在线观看美女被高潮喷水网站| 女的被弄到高潮叫床怎么办| 边亲边吃奶的免费视频| 日日爽夜夜爽网站| 男人添女人高潮全过程视频| 欧美亚洲 丝袜 人妻 在线| 91在线精品国自产拍蜜月| 日韩制服丝袜自拍偷拍| 一级片免费观看大全| 综合色丁香网| 天天影视国产精品| 男人操女人黄网站| 亚洲高清免费不卡视频| 考比视频在线观看| 又大又黄又爽视频免费| 九色亚洲精品在线播放| 色94色欧美一区二区| www.色视频.com| 五月天丁香电影| 成年av动漫网址| 国产一区二区三区综合在线观看 | 成人综合一区亚洲| 婷婷色综合大香蕉| 日本爱情动作片www.在线观看| 欧美xxxx性猛交bbbb| 免费在线观看完整版高清| 精品国产露脸久久av麻豆| 最近最新中文字幕免费大全7| 五月天丁香电影| a级片在线免费高清观看视频| 哪个播放器可以免费观看大片| 毛片一级片免费看久久久久| 人妻 亚洲 视频| 亚洲熟女精品中文字幕| 成年人午夜在线观看视频| 免费人成在线观看视频色| 99国产综合亚洲精品| 中文字幕另类日韩欧美亚洲嫩草| 久久99蜜桃精品久久| xxx大片免费视频| 亚洲色图综合在线观看| 国产精品一区www在线观看| 亚洲伊人色综图| 在线天堂中文资源库| 欧美日韩成人在线一区二区| 国产男女内射视频| 最后的刺客免费高清国语| 国产一区二区在线观看av| 激情五月婷婷亚洲| 高清欧美精品videossex| 天天躁夜夜躁狠狠躁躁| 午夜福利乱码中文字幕| 22中文网久久字幕| 久久久久久伊人网av| 久久韩国三级中文字幕| 国产成人aa在线观看| 国产又爽黄色视频| 国产成人精品福利久久| 中文欧美无线码| 国产综合精华液| 秋霞在线观看毛片| 国产精品不卡视频一区二区| 亚洲av欧美aⅴ国产| 极品人妻少妇av视频| 视频中文字幕在线观看| 超碰97精品在线观看| 美女中出高潮动态图| 90打野战视频偷拍视频| 日本午夜av视频| 高清不卡的av网站| 日韩一区二区三区影片| 国产高清三级在线| 精品国产一区二区三区久久久樱花| 人人妻人人澡人人看| 人人妻人人添人人爽欧美一区卜| 性色avwww在线观看| 女人被躁到高潮嗷嗷叫费观| av在线老鸭窝| 国产一区二区三区综合在线观看 | 日本欧美国产在线视频| 亚洲精品国产av蜜桃| 欧美激情 高清一区二区三区| 欧美日韩一区二区视频在线观看视频在线| 日韩不卡一区二区三区视频在线| 亚洲,一卡二卡三卡| 超碰97精品在线观看| 欧美激情国产日韩精品一区| 街头女战士在线观看网站| 亚洲国产精品一区三区| 亚洲五月色婷婷综合| 少妇的逼水好多| 久久久久久久久久久久大奶| 97在线视频观看| 最近2019中文字幕mv第一页| 精品人妻在线不人妻| 久久久亚洲精品成人影院| 欧美国产精品一级二级三级| 九色亚洲精品在线播放| kizo精华| 国产黄频视频在线观看| 黄色怎么调成土黄色| 国产精品一二三区在线看| 中国美白少妇内射xxxbb| 久久99一区二区三区| 亚洲欧洲日产国产| 一区二区三区乱码不卡18| 建设人人有责人人尽责人人享有的| 内地一区二区视频在线| 考比视频在线观看| 亚洲精品视频女| 男女国产视频网站| 久久人人爽人人片av| 免费看不卡的av| 在线观看免费日韩欧美大片| 国产精品女同一区二区软件| 国产日韩欧美视频二区| 18禁国产床啪视频网站| 欧美亚洲 丝袜 人妻 在线| 搡老乐熟女国产| 少妇熟女欧美另类| 国产在线视频一区二区| 69精品国产乱码久久久| 亚洲成人手机| av在线老鸭窝| 亚洲第一区二区三区不卡| 少妇被粗大猛烈的视频| 久久青草综合色| 亚洲图色成人| 欧美人与善性xxx| 丝袜人妻中文字幕| 精品第一国产精品| 欧美日韩亚洲高清精品| www.av在线官网国产| 亚洲国产av新网站| av国产久精品久网站免费入址| 丁香六月天网| 伊人亚洲综合成人网| 夫妻午夜视频| 性色av一级| 十八禁网站网址无遮挡| 亚洲欧洲国产日韩| 日韩欧美精品免费久久| 亚洲国产毛片av蜜桃av| 成人毛片60女人毛片免费| 黄片播放在线免费| 少妇的逼水好多| 少妇的丰满在线观看| 18禁动态无遮挡网站| 午夜日本视频在线| 国内精品宾馆在线| 国产av精品麻豆| 91在线精品国自产拍蜜月| 赤兔流量卡办理| 日韩中文字幕视频在线看片| av在线app专区| 国产一区二区三区av在线| 欧美日韩av久久| 国产av码专区亚洲av| 亚洲,一卡二卡三卡| 国产成人午夜福利电影在线观看| 国产男人的电影天堂91| 乱码一卡2卡4卡精品| freevideosex欧美| 日本av手机在线免费观看| 国产一级毛片在线| 性高湖久久久久久久久免费观看| 成人国产麻豆网| 亚洲欧美清纯卡通| 免费av不卡在线播放| 久久人人爽av亚洲精品天堂| 国产又爽黄色视频| 午夜福利网站1000一区二区三区| 久久久久视频综合| 午夜激情av网站| 黄色一级大片看看| 亚洲情色 制服丝袜| 亚洲国产毛片av蜜桃av| 国产精品偷伦视频观看了| 日韩欧美精品免费久久| 成人午夜精彩视频在线观看| 国产一区二区三区av在线| 国产av国产精品国产| 免费黄网站久久成人精品| 国产精品秋霞免费鲁丝片| 国产精品久久久久成人av| 18禁国产床啪视频网站| 免费在线观看黄色视频的| 亚洲欧美清纯卡通| 国产有黄有色有爽视频| 性色avwww在线观看| 成人免费观看视频高清| 啦啦啦视频在线资源免费观看| 热99久久久久精品小说推荐| 欧美国产精品一级二级三级| h视频一区二区三区| av又黄又爽大尺度在线免费看| 国产乱人偷精品视频| 欧美bdsm另类| 欧美 日韩 精品 国产| 一区二区三区精品91| 狂野欧美激情性bbbbbb| 精品人妻熟女毛片av久久网站| 一级片免费观看大全| 久久精品人人爽人人爽视色| 精品久久久久久电影网| 亚洲精品国产av成人精品| 久热这里只有精品99| 国产一区二区三区av在线| 精品国产国语对白av| 日韩一区二区视频免费看| 亚洲熟女精品中文字幕| 51国产日韩欧美| 国产女主播在线喷水免费视频网站| 我要看黄色一级片免费的| 成人亚洲欧美一区二区av| 午夜福利视频精品| 老司机影院毛片| 少妇猛男粗大的猛烈进出视频| 日韩,欧美,国产一区二区三区| 在线观看国产h片| 一区二区日韩欧美中文字幕 | 欧美人与性动交α欧美软件 | 人妻少妇偷人精品九色| 高清黄色对白视频在线免费看| 最近手机中文字幕大全| 免费观看在线日韩| 热99国产精品久久久久久7| 成人亚洲欧美一区二区av| 国产成人a∨麻豆精品| 成年人免费黄色播放视频| 亚洲国产精品一区三区| 高清视频免费观看一区二区| 人人妻人人添人人爽欧美一区卜| 国产探花极品一区二区| 亚洲欧美日韩卡通动漫| 久久久久久久久久久免费av| 午夜福利视频精品| 黑丝袜美女国产一区| 嫩草影院入口| 精品国产一区二区三区久久久樱花| 毛片一级片免费看久久久久| 波野结衣二区三区在线| 精品少妇内射三级| 成人免费观看视频高清| 性色avwww在线观看| 99视频精品全部免费 在线| 久久午夜福利片| 色网站视频免费| 午夜老司机福利剧场| 九九在线视频观看精品| 我要看黄色一级片免费的| 免费观看av网站的网址| av女优亚洲男人天堂| 天天操日日干夜夜撸| 人妻少妇偷人精品九色| 视频在线观看一区二区三区| 欧美丝袜亚洲另类| 日韩中字成人| 乱人伦中国视频| 亚洲av.av天堂| 十八禁高潮呻吟视频| 女人精品久久久久毛片| 男人添女人高潮全过程视频| 精品久久国产蜜桃| 18+在线观看网站| 一级片'在线观看视频| 国产精品久久久久久精品古装| 97在线人人人人妻| 欧美日韩国产mv在线观看视频| 免费人成在线观看视频色| 亚洲精品色激情综合| 日韩制服丝袜自拍偷拍| 亚洲美女黄色视频免费看| 久久精品夜色国产| 中文字幕另类日韩欧美亚洲嫩草| 午夜福利视频精品| 成年人免费黄色播放视频| 9色porny在线观看| 久久久久久久亚洲中文字幕| 最新中文字幕久久久久| 久久精品久久久久久久性| 国产极品天堂在线| 亚洲欧美中文字幕日韩二区| 香蕉丝袜av| 男男h啪啪无遮挡| 久久久久精品人妻al黑| 91久久精品国产一区二区三区| 国产又爽黄色视频| 亚洲av.av天堂| 美女视频免费永久观看网站| 午夜福利网站1000一区二区三区| 婷婷色综合www| 最近中文字幕2019免费版| 嫩草影院入口| 亚洲精品美女久久久久99蜜臀 | 欧美日韩视频高清一区二区三区二| 又黄又爽又刺激的免费视频.| 国产麻豆69| 欧美3d第一页| 1024视频免费在线观看| 日韩免费高清中文字幕av| 国产在线免费精品| 国产高清国产精品国产三级| 成年女人在线观看亚洲视频| 各种免费的搞黄视频| 美女视频免费永久观看网站| 2022亚洲国产成人精品| 国产精品久久久久久精品电影小说| av有码第一页| www.熟女人妻精品国产 | 亚洲国产av影院在线观看| 国产无遮挡羞羞视频在线观看| 纵有疾风起免费观看全集完整版| 国产免费一区二区三区四区乱码| 在线精品无人区一区二区三| 日本猛色少妇xxxxx猛交久久| 涩涩av久久男人的天堂| 免费播放大片免费观看视频在线观看| 在线观看www视频免费| 纵有疾风起免费观看全集完整版| 日韩免费高清中文字幕av| 看十八女毛片水多多多| 在线观看美女被高潮喷水网站| 国产精品国产av在线观看| 一级片'在线观看视频| 男女午夜视频在线观看 | 亚洲国产成人一精品久久久| av福利片在线| 亚洲欧美色中文字幕在线| 一级毛片电影观看| 久久久久国产网址| 一区二区三区乱码不卡18| 精品福利永久在线观看| 亚洲精品中文字幕在线视频| 亚洲欧洲日产国产| 老司机亚洲免费影院| 晚上一个人看的免费电影| 国产 一区精品| 亚洲成人一二三区av| 你懂的网址亚洲精品在线观看| 国产综合精华液| 欧美老熟妇乱子伦牲交| 少妇的逼好多水| 亚洲三级黄色毛片| 午夜激情久久久久久久| 精品亚洲成a人片在线观看| 日韩一本色道免费dvd| 成年人午夜在线观看视频| 亚洲第一区二区三区不卡| 性色avwww在线观看| 亚洲欧美精品自产自拍| 老司机影院成人| 美女脱内裤让男人舔精品视频| 成人无遮挡网站| 你懂的网址亚洲精品在线观看| 亚洲欧美清纯卡通| 寂寞人妻少妇视频99o| 国产免费视频播放在线视频| 免费大片黄手机在线观看| 两个人看的免费小视频| 日韩精品免费视频一区二区三区 | 男女高潮啪啪啪动态图| 天天躁夜夜躁狠狠躁躁| 香蕉国产在线看| 亚洲五月色婷婷综合| 国产精品 国内视频| 黄色视频在线播放观看不卡| 制服丝袜香蕉在线| 99久久精品国产国产毛片| 美女脱内裤让男人舔精品视频| 亚洲精品久久午夜乱码| 一本一本久久a久久精品综合妖精 国产伦在线观看视频一区 | 纵有疾风起免费观看全集完整版| 99九九在线精品视频| 精品酒店卫生间| 黄色怎么调成土黄色| 97超碰精品成人国产| √禁漫天堂资源中文www| 免费看不卡的av| 美女福利国产在线| 边亲边吃奶的免费视频| 久久久久久久大尺度免费视频| 亚洲一级一片aⅴ在线观看| 97超碰精品成人国产| 亚洲欧美日韩卡通动漫| 伦理电影大哥的女人| 国产成人a∨麻豆精品| 久久久久久久大尺度免费视频| 国产一区二区激情短视频 | 国产又色又爽无遮挡免| 国产精品欧美亚洲77777| 免费少妇av软件| 一本—道久久a久久精品蜜桃钙片| 亚洲国产精品国产精品| 少妇人妻 视频| 亚洲精品国产av蜜桃| 日韩av在线免费看完整版不卡| 少妇人妻 视频| 韩国高清视频一区二区三区| 日产精品乱码卡一卡2卡三| 亚洲欧美一区二区三区国产| 亚洲精品乱码久久久久久按摩| 男人爽女人下面视频在线观看| 国产福利在线免费观看视频| 亚洲四区av| 大话2 男鬼变身卡| 色婷婷久久久亚洲欧美| 欧美xxⅹ黑人| 女性被躁到高潮视频| 午夜福利在线观看免费完整高清在| 丰满少妇做爰视频| 国产一区二区激情短视频 | 色网站视频免费| 欧美日韩国产mv在线观看视频| 亚洲av电影在线进入| 精品卡一卡二卡四卡免费| 人人妻人人澡人人爽人人夜夜| av卡一久久| 人人妻人人澡人人爽人人夜夜| www日本在线高清视频| 婷婷色综合大香蕉| 九九爱精品视频在线观看| 国产一区二区在线观看av| 久久久国产欧美日韩av| 99热网站在线观看| 亚洲伊人色综图| 18禁裸乳无遮挡动漫免费视频| 亚洲精品国产av蜜桃| 成人国产av品久久久| 午夜福利视频在线观看免费| www.色视频.com| 丝袜喷水一区| 国产成人精品婷婷| 国产色婷婷99| www.熟女人妻精品国产 | 黄色毛片三级朝国网站| 久久久亚洲精品成人影院| 国产在线一区二区三区精| 制服人妻中文乱码| 午夜福利在线观看免费完整高清在| 国产一级毛片在线| 亚洲内射少妇av| 人人妻人人澡人人爽人人夜夜| 亚洲精品成人av观看孕妇| 99久久中文字幕三级久久日本| 亚洲,欧美,日韩| 亚洲精品日本国产第一区| av福利片在线| 国产精品国产av在线观看| 国产在视频线精品| av免费观看日本| 久久精品aⅴ一区二区三区四区 | 国产老妇伦熟女老妇高清| 观看av在线不卡| 在线观看免费视频网站a站| 好男人视频免费观看在线| 2022亚洲国产成人精品| 一级爰片在线观看| 一区二区三区四区激情视频| 日韩一本色道免费dvd| 91成人精品电影| 最近中文字幕高清免费大全6| 一级片免费观看大全| 极品少妇高潮喷水抽搐| 天美传媒精品一区二区| 久久久久久久久久久久大奶| 韩国精品一区二区三区 | 国产男女超爽视频在线观看| 久久99热6这里只有精品| 国产成人精品婷婷| 90打野战视频偷拍视频| 热re99久久精品国产66热6| 国产成人精品婷婷| 免费高清在线观看日韩| 亚洲成人一二三区av| 国产精品欧美亚洲77777| 国产精品久久久久久久电影| 国产一级毛片在线| www.熟女人妻精品国产 |