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

    針對(duì)事件驅(qū)動(dòng)軟件的測(cè)試集排序準(zhǔn)則

    2015-12-20 06:54:48張圣迪高建華
    關(guān)鍵詞:測(cè)試用例調(diào)用復(fù)雜度

    張圣迪,高建華

    (上海師范大學(xué) 計(jì)算機(jī)科學(xué)與工程系,上海200234)

    0 引 言

    事件驅(qū)動(dòng)軟件是軟件的一個(gè)重要分支,GUI軟件與Web軟件是其中最典型的例子。它們都在測(cè)試方面面臨著巨大的挑戰(zhàn)和困難。這兩類軟件的測(cè)試難度主要在于:其一,它們是基于事件驅(qū)動(dòng)的,圖形化用戶界面可以為用戶提供大量的輸入事件,要完全測(cè)試這些狀態(tài)則需要大量的測(cè)試,同時(shí),這些輸入事件之間還可能會(huì)有一定的關(guān)聯(lián)性;其二,它們都具有以用戶為中心的性質(zhì),它們?cè)陂_發(fā)維護(hù)的過程中經(jīng)常要發(fā)生改變,而這又將帶來更多的測(cè)試需求。測(cè)試集排序準(zhǔn)則可以對(duì)測(cè)試集排序,使得可以以最少量的代價(jià)來最大程度的進(jìn)行軟件測(cè)試。雖然WEB 軟件和GUI軟件在各自的領(lǐng)域都有不少的研究學(xué)者對(duì)它們的測(cè)試進(jìn)行研究,包括測(cè)試?yán)碚摗⒛P?、方法,但將GUI軟件和WEB軟件整合在一起的研究卻非常少,缺少合適的研究工具以及合適的模型是主要的因素。Sreedevi等[1]對(duì)于缺少模型的問題作了一系列的研究,他們提出了一個(gè)將GUI軟件和WEB軟件整合在一起研究的簡(jiǎn)單模型,并且他們還提出了一些基于這個(gè)模型的測(cè)試集排序準(zhǔn)則。本文針對(duì)這幾種準(zhǔn)則進(jìn)行了擴(kuò)展,提出了3種同時(shí)用于GUI軟件和WEB 軟件的測(cè)試集排序準(zhǔn)則,并以一個(gè)實(shí)驗(yàn)來驗(yàn)證其有效性。

    1 WEB軟件測(cè)試與GUI軟件測(cè)試的特點(diǎn)和共性

    1.1 GUI軟件與GUI軟件測(cè)試

    GUI軟件包含了軟件的前端圖形化界面以及后臺(tái)的代碼。它從一個(gè)固定的事件集中接受輸入并產(chǎn)生確定的輸出。用戶通過觸發(fā)相應(yīng)的事件來與軟件交互,事件通常以某些方式被綁定在前端的某些控件上,當(dāng)用戶對(duì)控件實(shí)行特定的操作就觸發(fā)了相應(yīng)的事件,而程序則改變自身的狀態(tài)來進(jìn)行回應(yīng)。

    事件綁定機(jī)制使得用戶的輸入變得不確定,一方面用戶可以隨意觸發(fā)本狀態(tài)下可以觸發(fā)的所有事件;另一方面即使是同一個(gè)事件,所傳遞的參數(shù)不同,軟件程序執(zhí)行結(jié)果和路徑就不同。不僅如此,有些事件之間還具有關(guān)聯(lián)性,它們的執(zhí)行順序也會(huì)影響程序的執(zhí)行結(jié)果。由于用戶輸入的不確定性以及事件之間所具有的關(guān)聯(lián)性直接導(dǎo)致了GUI軟件測(cè)試的困境。研究結(jié)果表明,GUI軟件的錯(cuò)誤與它所隱含的業(yè)務(wù)邏輯有關(guān)[2]。大量可能的事件使得測(cè)試的成本巨大且效率低下,而以用戶為中心的性質(zhì)和用戶觸發(fā)事件的隨意性也使得自動(dòng)化測(cè)試難以實(shí)現(xiàn)。

    GUI軟件測(cè)試的研究成果主要有基于模型的測(cè)試用例生成、執(zhí)行、回歸測(cè)試[3]。有研究將基于代碼覆蓋的測(cè)試集排序準(zhǔn)則和基于模型的測(cè)試集排序準(zhǔn)則進(jìn)行對(duì)比,得出通過基于模型的測(cè)試集排序準(zhǔn)則排序的測(cè)試集能更快發(fā)現(xiàn)軟件中的錯(cuò)誤的結(jié)論[4]。

    1.2 WEB軟件與WEB軟件測(cè)試

    WEB軟件包含了一個(gè)頁面的集合,用戶可以通過瀏覽器借助網(wǎng)絡(luò)訪問它們。WEB軟件接收事件作為輸入,并改變自身狀態(tài)?,F(xiàn)在的WEB軟件前端通常使用圖形化用戶界面來與用戶交互,所以其與GUI軟件有共通之處。WEB軟件的頁面呈現(xiàn)可以是靜態(tài)的編寫,也可以通過服務(wù)端代碼獲取數(shù)據(jù)后填充而形成動(dòng)態(tài)頁面。事件的綁定和觸發(fā)也與GUI軟件類似,但WEB軟件通常基于URL 的方式來進(jìn)行請(qǐng)求。WEB軟件分成客戶端和服務(wù)端兩部分,它們各自可以由很多種語言來實(shí)現(xiàn),WEB軟件的語言構(gòu)成可以比較復(fù)雜,因此它的測(cè)試難度也就比較高。

    WEB軟件測(cè)試的主要研究成果有:基于用戶會(huì)話的測(cè)試用例排序和刪減[5,6],這些準(zhǔn)則基于測(cè)試長(zhǎng)度、請(qǐng)求序列的出現(xiàn)頻率以及參數(shù)值對(duì)的覆蓋情況進(jìn)行排序;基于代碼覆蓋的回歸測(cè)試排序和刪減[7,8];基于方法覆蓋率作的測(cè)試集排序準(zhǔn)則[9]。

    WEB軟件測(cè)試目前的測(cè)試工具大多基于捕捉/回放機(jī)制的測(cè)試軟件,捕捉測(cè)試者與程序的交互并將其重放[10]。與GUI軟件類似,用戶輸入的不確定性以及事件之間所具有的約束性和事件執(zhí)行的不同順序使得WEB軟件的測(cè)試也面臨著巨大的挑戰(zhàn)。

    1.3 WEB軟件與GUI軟件的共性

    WEB軟件與GUI軟件都使用圖形化用戶界面,所以它們的前端有很多相似的地方,這一點(diǎn)Sreedevi Sampah等已經(jīng)做了研究并且歸納出了一個(gè)模型[1]。而同作為事件驅(qū)動(dòng)軟件的兩大分支,它們后臺(tái)也有很多的相似之處。

    (1)它們通常都采用面向?qū)ο蟮木幊谭绞?,?shí)例化對(duì)象并調(diào)用它們的方法來完成功能。

    (2)它們的后臺(tái)代碼都采用分層的模式來逐層調(diào)用,基本不允許跨層調(diào)用以及下層調(diào)用上層方法。

    (3)它們方法的復(fù)雜度和它們潛在的業(yè)務(wù)邏輯或是功能的復(fù)雜性成正比,功能或業(yè)務(wù)邏輯越復(fù)雜,方法的復(fù)雜度就越高。

    (4)一個(gè)事件對(duì)應(yīng)一個(gè)入口,通過入口就可以找出事件的調(diào)用路徑。通過靜態(tài)掃描步驟得到調(diào)用路徑時(shí),并不能準(zhǔn)確判斷調(diào)用路徑,對(duì)于一個(gè)事件掃描得到的調(diào)用方法數(shù)量會(huì)多于實(shí)際情況。

    2 測(cè)試集排序準(zhǔn)則的理論

    2.1 需要優(yōu)先測(cè)試的方法

    一個(gè)GUI和WEB 軟件中所用到的方法非常多,從中定義出需要優(yōu)先測(cè)試的方法則是比較重要的。一般有兩種:

    (1)程序的業(yè)務(wù)核心方法。業(yè)務(wù)核心方法是指完成程序核心業(yè)務(wù)流程所必須經(jīng)過的方法,特點(diǎn)是使用頻繁。這種方法可以通過使用次數(shù)來辨別,根據(jù)使用日志等方法生成的測(cè)試用例中此類方法的調(diào)用次數(shù)都明顯多于其它方法。另外根據(jù)使用次數(shù)也可以篩選出測(cè)試集中期望重點(diǎn)測(cè)試的方法,因?yàn)槠谕攸c(diǎn)測(cè)試的方法往往會(huì)在測(cè)試集生成時(shí)被賦予較大的比重。業(yè)務(wù)流程中核心實(shí)體依據(jù)業(yè)務(wù)邏輯會(huì)發(fā)生的多種狀態(tài)轉(zhuǎn)換,狀態(tài)轉(zhuǎn)換通常有嚴(yán)格的限制使得核心實(shí)體之間具有復(fù)雜的相互依賴。它們的業(yè)務(wù)邏輯和軟件中許多其它的模塊都有牽連。這樣的方法實(shí)現(xiàn)的過程中容易產(chǎn)生出錯(cuò)和疏漏,甚至?xí)嬖谠O(shè)計(jì)缺陷導(dǎo)致軟件中斷和數(shù)據(jù)異常從而造成損失。這樣的方法具有危害性大影響面廣的特點(diǎn)。既為了軟件質(zhì)量也為了用戶體驗(yàn),這種方法應(yīng)該被優(yōu)先測(cè)試。

    (2)程序中實(shí)現(xiàn)復(fù)雜的方法。這種方法實(shí)現(xiàn)復(fù)雜,大多承擔(dān)著數(shù)據(jù)類型轉(zhuǎn)換、文件格式轉(zhuǎn)換、圖表統(tǒng)計(jì)導(dǎo)等高級(jí)功能,在實(shí)現(xiàn)之中不僅數(shù)據(jù)的處理容易發(fā)生錯(cuò)誤,類型的轉(zhuǎn)換也容易發(fā)生異常。編碼中往往會(huì)留有一些漏洞使得程序存在安全隱患,這樣的方法也應(yīng)該被優(yōu)先測(cè)試。

    2.2 事件入口

    事件入口在本文中指與事件綁定的處理事件的后臺(tái)方法。GUI軟件和WEB軟件都是事件驅(qū)動(dòng)的,每一個(gè)事件都對(duì)應(yīng)一個(gè)事件入口。如JSP 的WEB 軟件中的表單 (form)有一個(gè)action屬性,通過配置這個(gè)屬性可以為form 綁定事件,圖1 中 的form 指 定 的action 為 “findFinOrder”則form 綁定了事件 “findFinOrder”。圖2配置事件 “findFin-Order”由finFinOrder()方法處理,提交form 就觸發(fā)了事件 “findFinOrder”,而finFinOrder()方法就是事件 “find-FinOrder”的事件入口。通過finFinOrder()方法就可以得到其調(diào)用路徑上的所有方法加以測(cè)試。對(duì)于GUI軟件則是觸發(fā)綁定在控件上的事件即可,后臺(tái)會(huì)有監(jiān)聽器 (Liste-ner)監(jiān)聽并交給對(duì)應(yīng)的方法處理,此對(duì)應(yīng)方法就是事件入口。事件入口在文本中作為調(diào)用路徑的起點(diǎn)。

    2.3 調(diào)用路徑

    調(diào)用路徑指的是事件所對(duì)應(yīng)的事件入口所可能調(diào)用的方法組成的樹形結(jié)構(gòu),它可以對(duì)軟件代碼進(jìn)行靜態(tài)掃描得到。本文中事件的調(diào)用路徑用于統(tǒng)計(jì)測(cè)試用例調(diào)用了哪些方法以及方法在測(cè)試集中被調(diào)用的次數(shù),本文提出的測(cè)試集排序準(zhǔn)則將方法在測(cè)試集中的被調(diào)用的次數(shù)作為排序依據(jù)之一。

    靜態(tài)掃描得到的調(diào)用路徑有以下特點(diǎn):

    (1)它包含的節(jié)點(diǎn)數(shù)可能多于單次實(shí)際調(diào)用的方法數(shù)量。由于不帶參數(shù)的靜態(tài)掃描無法精確定位程序的調(diào)用路徑,故會(huì)將如分支結(jié)構(gòu)中if和else會(huì)執(zhí)行的方法都納入統(tǒng)計(jì),導(dǎo)致得到的調(diào)用路徑的節(jié)點(diǎn)數(shù)量會(huì)多于實(shí)際。

    (2)以事件入口為根節(jié)點(diǎn),以事件入口所可能調(diào)用的方法為子節(jié)點(diǎn),并根據(jù)它們的調(diào)用關(guān)系構(gòu)成樹形結(jié)構(gòu)。由于GUI軟件和WEB 軟件都采用逐層調(diào)用的方式編碼,上層調(diào)用下層的方法完成功能,并基本不允許跨層以及反向調(diào)用,故調(diào)用路徑可以以樹形結(jié)構(gòu)描述。

    如圖3為調(diào)用路徑的圖示,調(diào)用方式為逐層調(diào)用。

    圖1 部分JSP代碼

    圖2 Struts2配置

    圖3 調(diào)用路徑

    2.4 圈復(fù)雜度

    圈復(fù)雜度是描述方法復(fù)雜度的指標(biāo),它基于控制流程圖計(jì)算,分支和循環(huán)越多,對(duì)應(yīng)的圈復(fù)雜度越高。圈復(fù)雜度數(shù)量上表現(xiàn)為獨(dú)立路徑條數(shù),即合理的預(yù)防錯(cuò)誤所需測(cè)試的最少路徑條數(shù)。根據(jù)方法的圈復(fù)雜度可以找出實(shí)現(xiàn)復(fù)雜的方法,因?yàn)閷?shí)現(xiàn)復(fù)雜的方法通常都會(huì)有較多的分支和循環(huán)來組成,其圈復(fù)雜度也就比較高??梢哉f圈復(fù)雜度是最接近方法復(fù)雜程度本質(zhì)的度量方式。本文中的測(cè)試集排序準(zhǔn)則將方法的圈復(fù)雜度作為排序的依據(jù)之一,找出實(shí)現(xiàn)復(fù)雜的方法并給予高優(yōu)先級(jí)。

    方法的圈復(fù)雜度基于控制流程圖進(jìn)行計(jì)算,如圖4所示,圈復(fù)雜度在本文中應(yīng)用計(jì)算方法:V(G)=e-n+2p。e是控制流圖中邊的數(shù)量,n是代表其中節(jié)點(diǎn)的數(shù)量,p代表其中組件數(shù),由于控制流程都是連通的所以p為1。圈復(fù)雜度為V(G)=6-5+2=3。

    圖4 方法的控制流程

    已有工具可以計(jì)算出每個(gè)方法的復(fù)雜度如,Maven的JAVANCSS插件,在多數(shù)代碼質(zhì)量管理軟件中圈復(fù)雜度都是一項(xiàng)重要指標(biāo)。

    2.5 測(cè)試集排序準(zhǔn)則

    測(cè)試集排序準(zhǔn)則定義如下,給定一個(gè)任意測(cè)試集T,T中所有測(cè)試用例可能的排序集合P 以及P 到實(shí)數(shù)集的映射f,測(cè)試集排序準(zhǔn)則的目標(biāo)是要找出P’∈P,使得對(duì)于任意的P’’∈P 且P’≠P’’的 情 況 下,f(P’)≥f(P’’)成立。

    f是一個(gè)估值函數(shù),決定以什么標(biāo)準(zhǔn)確立測(cè)試優(yōu)先級(jí)的高低。測(cè)試優(yōu)先級(jí)的高低可以以覆蓋率、測(cè)試代價(jià)等標(biāo)準(zhǔn)確立。

    3 排序算法與測(cè)試集排序準(zhǔn)則

    本文提出的排序算法基于貪心算法,以一個(gè)未經(jīng)過排序的測(cè)試集作為輸入,對(duì)測(cè)試集中所有測(cè)試用例進(jìn)行排序,并輸出排序完成的測(cè)試集。

    在該排序方法中會(huì)調(diào)用的方法:

    (1)coverage()接受單個(gè)測(cè)試用例t為輸入,輸出t中測(cè)試集排序準(zhǔn)則所關(guān)心的元素。例如以覆蓋方法數(shù)量作為衡量標(biāo)準(zhǔn)排序,coverage(t)返回t所覆蓋的方法的集合。coverage()可依據(jù)測(cè)試集排序準(zhǔn)則的需求去除重復(fù)元素。

    (2)allcoverage()接受測(cè)試集T 為輸入,返回測(cè)試集T 中每個(gè)測(cè)試用例t中測(cè)試集排序準(zhǔn)則所關(guān)心的元素之合。例如以覆蓋方法數(shù)量作為衡量標(biāo)準(zhǔn),輸入測(cè)試集中有 {t1,t2}兩個(gè)測(cè)試用例,那么返回的就是t1與t2覆蓋方法集合的合。該方法同樣可以依據(jù)測(cè)試集排序準(zhǔn)則的需求去除重復(fù)元素,除去重復(fù)元素后,結(jié)果相當(dāng)于對(duì)測(cè)試集中的每個(gè)測(cè)試用例運(yùn)行coverage()并取并集。而對(duì)于不關(guān)心重復(fù)元素的測(cè)試集排序準(zhǔn)則,allcoverage()通常返回空集合。此方法的輸入測(cè)試集T 一般為已被選擇優(yōu)先測(cè)試的測(cè)試用例的集合,主要目的是引入反饋機(jī)制,對(duì)已經(jīng)被覆蓋過的方法做出權(quán)值遞減等處理。

    (3)score()接收coverage()和allcoverage()的返回值作為參數(shù)。計(jì)算測(cè)試用例的評(píng)分,評(píng)分是排序的最終依據(jù)。

    3.1 排序算法Order Test Suite

    步驟:

    (1)接收未排序的測(cè)試集T 為輸入,其中的測(cè)試用例記為t1……tn;

    (2)構(gòu)造一個(gè)空的集合R 來存放輸出排序完成后的測(cè)試集;

    (3)統(tǒng)計(jì)測(cè)試集中所有方法的圈復(fù)雜度以及測(cè)試集中事件的調(diào)用路徑;

    (4)設(shè)置標(biāo)志變量p為MININT;

    (5)對(duì)于R 運(yùn)行allcoverage()方法,對(duì)于某些不關(guān)心重復(fù)元素的測(cè)試集排序準(zhǔn)則,allcoverage()返回空集合;

    (6)對(duì)于測(cè)試集T 中的測(cè)試用例t運(yùn)行coverage()方法;

    (7)將coverage(t)的返回值以及allcoverage(R)的返回值傳遞給score()運(yùn)算;

    (8)將score()返回值v與p比較,若v大于p則將s賦值給p并將測(cè)試用例t作為候選測(cè)試用例記為s,若已有s則用t替換原來的s。若v小于p則不做處理。若v=p則隨機(jī)決定是否將t作為候選測(cè)試用例;

    (9)重復(fù) (5)~ (8)直到所有T 中的測(cè)試用例都被評(píng)分,將測(cè)試用例s插入到R 的尾部,并將s從T 中移除;

    (10)重復(fù) (4)~ (9)直到T 中所有測(cè)試用例都被移除,即所有測(cè)試用例都被排序,輸出R。

    3.2 測(cè)試集排序準(zhǔn)則

    3.2.1 APSFuncation準(zhǔn)則

    這種測(cè)試集排序準(zhǔn)則引入方法被調(diào)用的次數(shù),來確定哪些方法是業(yè)務(wù)上比較重要的,覆蓋這些重要方法的測(cè)試用例應(yīng)該被優(yōu)先執(zhí)行。對(duì)于事件驅(qū)動(dòng)軟件,均有必須實(shí)現(xiàn)的核心功能,在軟件運(yùn)作中會(huì)被經(jīng)常使用。這些功能往往都牽涉到很多的類和數(shù)據(jù)庫中的表,這樣的功能往往業(yè)務(wù)邏輯是比較復(fù)雜的,比較容易出錯(cuò)。

    對(duì)于這個(gè)測(cè)試集排序準(zhǔn)則,需要使用事件的調(diào)用路徑,根據(jù)事件調(diào)用路徑統(tǒng)計(jì)測(cè)試集中所有被覆蓋的方法被調(diào)用的次數(shù),存放在一個(gè)以Java實(shí)現(xiàn)的列表中,每個(gè)統(tǒng)計(jì)出的方法信息以 {method,testcase,value}形式存放,其中method是方法,testcase是調(diào)用method最多的測(cè)試用例,若有相同調(diào)用次數(shù)的測(cè)試用例則隨機(jī)選取,value是method在整個(gè)測(cè)試集中被調(diào)用的總次數(shù)。如M8方法被調(diào)用5次,其中t1調(diào)用M8次數(shù)最多,則記為 {M8,t1,5}。coverage(t)會(huì)在列表中尋找testcase為測(cè)試用例t的記錄,并尋找其中value值最大的記錄并返回value值。此測(cè)試集排序準(zhǔn)則allcoverage()返回空集合所以score()對(duì)coverage()的返回值不做任何處理直接返回,并將其作為測(cè)試用例的評(píng)分。

    3.2.2 WeightedFunction準(zhǔn)則

    這個(gè)測(cè)試集排序準(zhǔn)則引入方法的圈復(fù)雜度來找出實(shí)現(xiàn)復(fù)雜的方法,測(cè)試用例所覆蓋的方法的圈復(fù)雜度的總和越高,它所被給予的測(cè)試優(yōu)先級(jí)越高。

    這個(gè)測(cè)試集排序準(zhǔn)則需要使用事件的調(diào)用路徑以及測(cè)試集中方法的圈復(fù)雜度,測(cè)試集中方法的圈復(fù)雜度以列表形式儲(chǔ)存,其中的每一個(gè)元素都是 {method,cycle}形式,method是方法,cycle是方法的圈復(fù)雜度。coverage(t)獲取測(cè)試用例t所調(diào)用的各個(gè)方法的復(fù)雜度信息,將測(cè)試用例t調(diào)用方法的圈復(fù)雜度作為權(quán)值,將其相加作為返回值。

    此測(cè)試集排序準(zhǔn)則allcoverage()返回空集合,sorce()將coverage()的返回值作為測(cè)試用例評(píng)分返回。

    3.2.3 WeightedFunctionWithFeedback (WFFB)準(zhǔn)則

    前兩節(jié)提出的測(cè)試集排序準(zhǔn)則從兩個(gè)不同的方法對(duì)測(cè)試集進(jìn)行排序,但是兩者都有一些共同的缺點(diǎn):

    (1)前兩節(jié)提出的測(cè)試集排序準(zhǔn)則都專注于一個(gè)單一屬性在測(cè)試集中的覆蓋率對(duì)測(cè)試集進(jìn)行排序。這樣的測(cè)試集排序準(zhǔn)則針對(duì)性強(qiáng),但通常并不能非常好的應(yīng)對(duì)所有測(cè)試集。對(duì)于某些測(cè)試集排序效果很好的測(cè)試集排序準(zhǔn)則可能對(duì)于另一些測(cè)試集效果并不佳。生成測(cè)試集的策略和項(xiàng)目本身的性質(zhì)等都可能影響排序測(cè)試集排序準(zhǔn)則的效果。如對(duì)于圈復(fù)雜度相近的方法組成的測(cè)試集中,圈復(fù)雜度作為排序依據(jù)的效果會(huì)大大降低,反之亦然。

    (2)前兩種方法的另一個(gè)主要缺點(diǎn)是沒有反饋機(jī)制。由于測(cè)試用例執(zhí)行有先后,同一個(gè)方法在測(cè)試集中可能會(huì)被執(zhí)行多次。而因?yàn)樗囊徊糠执a在前一次或幾次的執(zhí)行中已經(jīng)被測(cè)試了,所以一個(gè)已經(jīng)被執(zhí)行過的方法的重要性應(yīng)比它未執(zhí)行時(shí)低。而前兩種方法對(duì)于已被執(zhí)行過的方法并未做出處理。

    本節(jié)提出的WFFB 準(zhǔn)則在WeightedFunction的基礎(chǔ)上與APSFunction結(jié)合,將圈復(fù)雜度和方法被調(diào)用的次數(shù)結(jié)合共同作為排序依據(jù)。不依據(jù)單一屬性排序可以增加測(cè)試集排序準(zhǔn)則效果的穩(wěn)定性,更適用于普遍情況,以此來一定程度彌補(bǔ)缺點(diǎn) (1)。

    同時(shí),本節(jié)提出的WFFB準(zhǔn)則將會(huì)引入反饋機(jī)制來解決缺點(diǎn) (2)。當(dāng)有測(cè)試用例被選擇優(yōu)先執(zhí)行時(shí),這些測(cè)試用例所覆蓋的方法在接下來的排序中的權(quán)值會(huì)降低。權(quán)值降低的公式為

    式中:C——方法的圈復(fù)雜度,Y——方法在測(cè)試集中總共被覆蓋的次數(shù),X——方法在先前被選擇的測(cè)試用例中被覆蓋的次數(shù),W——得到的新權(quán)值。式 (1)可以確保重復(fù)執(zhí)行時(shí)方法的權(quán)值遞減,同時(shí)又可以根據(jù)測(cè)試集的情況自動(dòng)調(diào)節(jié)。覆蓋高調(diào)用次數(shù)以及高復(fù)雜度的方法的測(cè)試用例優(yōu)先級(jí)最高,而覆蓋高復(fù)雜度低調(diào)用次數(shù)的方法的測(cè)試用例和覆蓋低復(fù)雜度高調(diào)用次數(shù)的方法的測(cè)試用例則相對(duì)持平。從而補(bǔ)足了依據(jù)單一屬性的不足。

    該測(cè)試集排序準(zhǔn)則同樣需要使用事件調(diào)用路徑以及測(cè)試集中方法的圈復(fù)雜度。在WeightedFunction 的基礎(chǔ)上,算法在每一輪排序中,將現(xiàn)有的排序結(jié)果集R 作為輸入?yún)?shù)傳入allcoverage()中,返回R 中覆蓋的方法,統(tǒng)計(jì)這些方法被覆蓋的次數(shù)X。對(duì)于每個(gè)測(cè)試用例t,score()對(duì)每個(gè)其覆蓋的方法,將X 與方法總共被調(diào)用的次數(shù)Y 以及方法的圈復(fù)雜度C 代入公式,更新方法在這一輪中的權(quán)值。將t所覆蓋的每個(gè)方法的權(quán)值相加作為測(cè)試用例的評(píng)分。

    4 示 例

    表1所示,t代表測(cè)試用例,t1、t2、t3組成了一個(gè)測(cè)試集T。M 代表方法。t1包含兩個(gè)事件E1、E2,兩個(gè)事件的入口分別是M1和M3;t2包含事件E3,入口為M6;t3包含事件E4,入口為M8。圖5表達(dá)了各個(gè)方法間的調(diào)用情況,M1會(huì)調(diào)用M2和M4,M3會(huì)調(diào)用M4等。M 邊上的數(shù)字代表其圈復(fù)雜度,在表2中列出。本文的方法的圈復(fù)雜度由方法的控制流程圖基于McCable方法計(jì)算得到,即V(G)=e-n+2p。

    表1 示例包含的事件和事件入口

    圖5 示例各個(gè)事件可能調(diào)用的方法樹

    表2 各個(gè)方法的圈復(fù)雜度

    4.1 APSFuncation排序示例

    對(duì)于示例,由事件調(diào)用路徑統(tǒng)計(jì)得到的方法在測(cè)試集中被調(diào)用的次數(shù)見表3,對(duì)于方法M5,t2和t3擁有相同的調(diào)用次數(shù)故使用隨機(jī)來決定,假設(shè)隨機(jī)結(jié)果為t2,由于與t1相關(guān)的最大值是3所以coverage(t1)返回3,同理coverage(t2)=2,coverage(t3)=1,此測(cè)試集排序準(zhǔn)則allcoverage()返回空集合而sorce()對(duì)coverage()的返回值不作處理,所以排序結(jié)果為t1,t2,t3。

    表3 各個(gè)方法被調(diào)用的情況

    4.2 WeightedFunction排序示例

    對(duì)于示例,方法的圈復(fù)雜度見表2,所以對(duì)于各個(gè)測(cè)試用例評(píng)分結(jié)果見表4。

    表4 WeightedFunction排序過程

    此測(cè)試集排序準(zhǔn)則allcoverage()返回空集合而sorce()對(duì)coverage()的返回值不作處理,所以排序結(jié)果是t1,t2,t3。

    4.3 WFFB排序示例

    對(duì)于示例,方法的圈復(fù)雜度見表2,所以對(duì)于各個(gè)測(cè)試用例第一輪的測(cè)試用例評(píng)分見表5。

    表5 WFFB的第一輪排序

    第一輪評(píng)分的結(jié)果是t1 被選為優(yōu)先測(cè)試的測(cè)試用例,將t1放入R 中。隨后開始第二輪測(cè)試用例評(píng)分。

    如表6所示,由于M1、M2、M3、M4在t1中已被覆蓋過,故它們?cè)诘诙喌脑u(píng)分中權(quán)值有所降低。以M4 為例,查表3可知,M4 在測(cè)試集中總共被調(diào)用3 次故Y 為3,而M4在已被選擇的t1中被覆蓋2次故X 為2,M4的圈復(fù)雜度為10故C為10,代入式 (1),本輪M4的權(quán)值為10* [(3-2)/3]=3.3,為原來的1/3。第二輪評(píng)分的結(jié)果是t3被選為優(yōu)先測(cè)試的測(cè)試用例,將t3放入R 中。最后的排序結(jié)果為t1,t3,t2。

    表6 WFFB的第二輪排序

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

    表7中是 “BBS系統(tǒng)”的一部分,對(duì)這部分進(jìn)行實(shí)驗(yàn)來研究一個(gè)問題:以上3個(gè)測(cè)試集排序準(zhǔn)則的有效性如何?

    表7 GAMEBBS的情況

    測(cè)試評(píng)判標(biāo)準(zhǔn)我們使用APFD (average percentage of faults detected),APFD 是Rothermel定義的一個(gè)用來評(píng)估測(cè)試集排序準(zhǔn)則效力的標(biāo)準(zhǔn)。公式如下

    其中,n是測(cè)試集T 中測(cè)試用例的數(shù)量,m 是總共被測(cè)試出的錯(cuò)誤數(shù)量,F(xiàn) 是所有被T 檢測(cè)出的錯(cuò)誤的集合。TFi是檢測(cè)出的軟件錯(cuò)誤i的測(cè)試用例在T 中的排序位置。TFi越小APFD 就越大,所以排序在前的測(cè)試用例檢測(cè)出的錯(cuò)誤越多,那么APFD 就越大,測(cè)試集排序準(zhǔn)則的效果就越好。

    圖6表示了GAMEBBS的部分方法調(diào)用圖,將其導(dǎo)入到排序算法,再導(dǎo)入GAMEBBS中的各個(gè)方法的圈復(fù)雜度。最后,根據(jù)測(cè)試集的事件入口來獲取對(duì)應(yīng)的調(diào)用路徑得到方法被調(diào)用的次數(shù),依據(jù)方法被調(diào)用的次數(shù)信息和圈復(fù)雜度信息對(duì)測(cè)試集進(jìn)行排序。使用的測(cè)試用例基于使用記錄日志得到,工程中的錯(cuò)誤由人工錄入。

    圖6 GAMEBBS部分調(diào)用

    此處引入了兩個(gè)測(cè)試集排序準(zhǔn)則進(jìn)行輔助比較:GBest貪心最佳準(zhǔn)則,給予發(fā)現(xiàn)最多錯(cuò)誤的測(cè)試用例高測(cè)試優(yōu)先級(jí);Random 隨機(jī)排序。

    運(yùn)行程序,得到的AFPD 情況如圖7所示。

    APFD 值列表,見表8。

    從圖7和表8中可以看出,由于WFFB綜合考慮了方法在測(cè)試集中被調(diào)用的次數(shù)以及方法自身的圈復(fù)雜度,故WFFB的結(jié)果相比較于其它的測(cè)試集排序準(zhǔn)則略優(yōu)一些。而由于測(cè)試集中有一些復(fù)雜的導(dǎo)入和報(bào)表生成方法,并在其中布的錯(cuò)誤數(shù)相對(duì)較多,所以WeightedFunction排第二。實(shí)驗(yàn)的測(cè)試集在各個(gè)調(diào)用數(shù)量上差距并不非常明顯,所以APSFunction僅在Random之前。也印證了依據(jù)單一屬性排序的測(cè)試集排序準(zhǔn)則對(duì)于測(cè)試集的特性依賴較大。今后將進(jìn)行更大量的實(shí)驗(yàn)以對(duì)這些測(cè)試集排序準(zhǔn)則有一個(gè)更精確的研究結(jié)果。

    圖7 各個(gè)測(cè)試集排序準(zhǔn)則的APFD

    表8 APFD 統(tǒng)計(jì)

    6 結(jié)束語

    本文從后臺(tái)代碼角度分析了:①GUI軟件和WEB軟件在實(shí)現(xiàn)以及調(diào)用方式上的共性。②事件和事件入口以及調(diào)用路徑之間的聯(lián)系。③圈復(fù)雜度、方法被調(diào)用的次數(shù)與測(cè)試優(yōu)先級(jí)的關(guān)系。借由此提出和實(shí)現(xiàn)了3 種可以適用于GUI和WEB的測(cè)試集排序準(zhǔn)則。通過實(shí)例闡述排序方式并通過實(shí)現(xiàn)驗(yàn)證其有效性。

    然而,仍有未解決的問題:①對(duì)于依據(jù)復(fù)合屬性排序的測(cè)試集排序準(zhǔn)則探索不夠全面深入,應(yīng)更多的探索復(fù)合準(zhǔn)則的可能性。②實(shí)現(xiàn)的代碼泛用性不足,并且自動(dòng)化程度不夠,應(yīng)加以改進(jìn),使其能夠適用于更多的測(cè)試集排序準(zhǔn)則,并提高自動(dòng)化程度。③實(shí)驗(yàn)量不夠,對(duì)測(cè)試集排序準(zhǔn)則的有效性的展現(xiàn)不夠充分。應(yīng)加大實(shí)驗(yàn)量,更精確的研究制定的測(cè)試集排序準(zhǔn)則的效力,特別是依據(jù)復(fù)合屬性排序的測(cè)試集排序準(zhǔn)則的效力。今后將就以上三點(diǎn)作為主要研究方向。

    [1]Bryce R,Sampath S,Memon M.Developing a single model and test prioritization strategies for event-driven software [J].IEEE Transactions on Software Engineering,2011,37 (1):48-64.

    [2]Brooks P,Robinson B,Memon AM.An initial characterization of industrial graphical user interface systems [C]//Proc IEEE Int’l Conf Software Testing,Verification,and Validation,Edmonton,2009:11-20.

    [3]Yuan Xun,Cohen Myra B,Memon AM.Interaction testing:Incorporating event context [J].IEEE Transactions on Software Engineering,2011,37 (4):559-574.

    [4]Bogdan Korel.George koutsogiannakis experimental comparison of code-based and model-based test prioritization [C]//International Conference on Conference:Software Testing,Veri-fication and Validation Workshops,2009:77-84.

    [5]Sampath S,Bryce R,Viswanath G,et al.User-session-based test cases for web application testing [C]//Proc IEEE Int’l Conf Software Testing,Verification,and Validation,Lillehammer,2008:141-150.

    [6]Sreedevi Sampath,Renee C Bryce,Sachin Jain,et al.A tool for combinatorial-based prioritization and reduction of user-session-based test suites[C]//IEEE International Conference on Software Maintenance,2011:574-577.

    [7]Arpad Beszedes,Tamas Gergely,Lajos Schrrettner,et al.Code-coverage-based regression test selection and prioritization in WebKit[C]//IEEE International Conference on Software Maintenance,2012:47-55.

    [8]Dusica Marijan,Arnaud Gotlieb,Sagar Sen.Test case prioritization for continuous regression testing:An industrial case study [C]//IEEE International Conference on Software Maintenance,2013:541-543.

    [9]Hong Mei,Dan Hao,Lingming Zhang,et al.A static approach to prioritizing JUnit test cases[J].IEEE Transactions on Software Engineering,2012,38 (6):1258-1275.

    [10]Rick Hower.Web site test tools and site management tools[EB/OL].[2014-04-09].http://www.softwareqatest.com/qatweb1.html.

    猜你喜歡
    測(cè)試用例調(diào)用復(fù)雜度
    基于SmartUnit的安全通信系統(tǒng)單元測(cè)試用例自動(dòng)生成
    核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
    一種低復(fù)雜度的慣性/GNSS矢量深組合方法
    LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
    基于混合遺傳算法的回歸測(cè)試用例集最小化研究
    求圖上廣探樹的時(shí)間復(fù)雜度
    基于系統(tǒng)調(diào)用的惡意軟件檢測(cè)技術(shù)研究
    某雷達(dá)導(dǎo)51 頭中心控制軟件圈復(fù)雜度分析與改進(jìn)
    出口技術(shù)復(fù)雜度研究回顧與評(píng)述
    基于依賴結(jié)構(gòu)的測(cè)試用例優(yōu)先級(jí)技術(shù)
    久久国产精品大桥未久av| 宅男免费午夜| 又紧又爽又黄一区二区| 人妻人人澡人人爽人人| 国产成人精品久久二区二区免费| 9191精品国产免费久久| 国产高清视频在线播放一区 | 欧美人与善性xxx| 老司机影院毛片| 十八禁网站网址无遮挡| 建设人人有责人人尽责人人享有的| 中文字幕最新亚洲高清| 两人在一起打扑克的视频| 又大又黄又爽视频免费| 青草久久国产| 91国产中文字幕| 大话2 男鬼变身卡| 成人亚洲精品一区在线观看| 久久鲁丝午夜福利片| 国产淫语在线视频| 午夜福利视频在线观看免费| 国产深夜福利视频在线观看| 大陆偷拍与自拍| 中文字幕人妻熟女乱码| 国产一区二区 视频在线| 亚洲精品一卡2卡三卡4卡5卡 | 波多野结衣av一区二区av| 亚洲中文av在线| 国产精品一国产av| 啦啦啦中文免费视频观看日本| 国产亚洲一区二区精品| 99国产精品免费福利视频| 婷婷色麻豆天堂久久| 成人三级做爰电影| av不卡在线播放| 午夜免费成人在线视频| 一级毛片黄色毛片免费观看视频| 亚洲av成人精品一二三区| 一级毛片女人18水好多 | 女警被强在线播放| 欧美日韩视频高清一区二区三区二| h视频一区二区三区| 亚洲九九香蕉| 首页视频小说图片口味搜索 | 伊人亚洲综合成人网| av又黄又爽大尺度在线免费看| av电影中文网址| 亚洲av成人不卡在线观看播放网 | 后天国语完整版免费观看| 搡老乐熟女国产| 久热爱精品视频在线9| 一区福利在线观看| 国产成人影院久久av| 国产亚洲午夜精品一区二区久久| 国产亚洲av高清不卡| 精品人妻在线不人妻| 欧美精品人与动牲交sv欧美| 青春草亚洲视频在线观看| 一级a爱视频在线免费观看| 国产精品久久久av美女十八| 男的添女的下面高潮视频| 中文精品一卡2卡3卡4更新| 一本综合久久免费| 青春草视频在线免费观看| 51午夜福利影视在线观看| 成人国语在线视频| 曰老女人黄片| 午夜福利,免费看| 91国产中文字幕| 亚洲av电影在线观看一区二区三区| 精品少妇一区二区三区视频日本电影| 亚洲男人天堂网一区| 汤姆久久久久久久影院中文字幕| 久久青草综合色| 每晚都被弄得嗷嗷叫到高潮| 大陆偷拍与自拍| 欧美黄色淫秽网站| 美国免费a级毛片| 亚洲少妇的诱惑av| 天天操日日干夜夜撸| av网站在线播放免费| a级毛片黄视频| 国产精品香港三级国产av潘金莲 | 老司机靠b影院| 成年人免费黄色播放视频| 麻豆国产av国片精品| 校园人妻丝袜中文字幕| 97在线人人人人妻| 大话2 男鬼变身卡| 国产精品一区二区免费欧美 | 日本黄色日本黄色录像| 精品一区二区三区四区五区乱码 | 久久久久精品人妻al黑| 日韩大片免费观看网站| 一二三四在线观看免费中文在| 午夜免费男女啪啪视频观看| 69精品国产乱码久久久| 精品久久久精品久久久| 欧美变态另类bdsm刘玥| 欧美亚洲 丝袜 人妻 在线| 在线观看国产h片| 天堂俺去俺来也www色官网| 一本一本久久a久久精品综合妖精| 欧美成狂野欧美在线观看| 日日夜夜操网爽| 精品人妻1区二区| 精品国产乱码久久久久久男人| 亚洲精品乱久久久久久| 亚洲五月色婷婷综合| 亚洲,欧美精品.| 制服诱惑二区| 咕卡用的链子| 热99久久久久精品小说推荐| 免费在线观看黄色视频的| 99九九在线精品视频| 亚洲第一av免费看| 在线观看免费日韩欧美大片| 亚洲国产欧美网| 国产亚洲精品第一综合不卡| 中国美女看黄片| 人人澡人人妻人| 成年av动漫网址| 最近中文字幕2019免费版| 亚洲国产欧美在线一区| 久久久久久免费高清国产稀缺| 久久久久精品人妻al黑| 国产精品人妻久久久影院| 黄色视频在线播放观看不卡| 国产在线免费精品| 亚洲国产欧美在线一区| 国产一级毛片在线| 大话2 男鬼变身卡| 亚洲欧美日韩高清在线视频 | 国产无遮挡羞羞视频在线观看| 岛国毛片在线播放| 成人三级做爰电影| 亚洲国产成人一精品久久久| 国产成人精品无人区| 欧美精品av麻豆av| 欧美成人精品欧美一级黄| 成人亚洲精品一区在线观看| 国产片内射在线| 免费看av在线观看网站| 亚洲人成77777在线视频| 婷婷丁香在线五月| 免费在线观看影片大全网站 | 久久精品久久精品一区二区三区| 国产真人三级小视频在线观看| 汤姆久久久久久久影院中文字幕| 91九色精品人成在线观看| 在线观看人妻少妇| 超色免费av| 男男h啪啪无遮挡| 少妇精品久久久久久久| 成人黄色视频免费在线看| 大片免费播放器 马上看| tube8黄色片| 老鸭窝网址在线观看| 两个人看的免费小视频| 久久久国产欧美日韩av| 后天国语完整版免费观看| 欧美日韩国产mv在线观看视频| 亚洲第一av免费看| 别揉我奶头~嗯~啊~动态视频 | 女人高潮潮喷娇喘18禁视频| 亚洲av国产av综合av卡| 精品卡一卡二卡四卡免费| 国产真人三级小视频在线观看| 亚洲五月婷婷丁香| 色婷婷久久久亚洲欧美| 女人久久www免费人成看片| 国产成人欧美在线观看 | 亚洲欧美成人综合另类久久久| 老司机亚洲免费影院| 色网站视频免费| 自拍欧美九色日韩亚洲蝌蚪91| 一区二区三区激情视频| 亚洲av电影在线进入| 免费久久久久久久精品成人欧美视频| 亚洲精品国产av蜜桃| 亚洲av日韩在线播放| av天堂久久9| 黑人巨大精品欧美一区二区蜜桃| 亚洲av国产av综合av卡| 日韩免费高清中文字幕av| 赤兔流量卡办理| 欧美日韩一级在线毛片| 亚洲欧美一区二区三区国产| 亚洲中文av在线| 亚洲国产欧美在线一区| 午夜精品国产一区二区电影| 日韩一本色道免费dvd| 久久青草综合色| 搡老岳熟女国产| 欧美成狂野欧美在线观看| 午夜福利影视在线免费观看| 成年人免费黄色播放视频| xxx大片免费视频| 建设人人有责人人尽责人人享有的| 老司机影院毛片| 男女国产视频网站| 乱人伦中国视频| 麻豆av在线久日| 真人做人爱边吃奶动态| 国产欧美日韩一区二区三 | 日本猛色少妇xxxxx猛交久久| 国产精品久久久久久精品古装| 中文字幕人妻丝袜制服| 国产精品一区二区免费欧美 | 天堂中文最新版在线下载| 亚洲av电影在线观看一区二区三区| 97在线人人人人妻| 久久精品亚洲av国产电影网| 亚洲国产精品成人久久小说| 99精国产麻豆久久婷婷| 91老司机精品| avwww免费| 亚洲人成电影免费在线| 午夜激情av网站| 国产精品九九99| 大片电影免费在线观看免费| 亚洲专区中文字幕在线| 免费人妻精品一区二区三区视频| 亚洲一区中文字幕在线| 五月开心婷婷网| 午夜久久久在线观看| 中文字幕制服av| 国产精品久久久久久人妻精品电影 | 久久亚洲精品不卡| av片东京热男人的天堂| 黄色 视频免费看| 国产成人精品无人区| 免费一级毛片在线播放高清视频 | 国产日韩欧美亚洲二区| 国产一区二区三区av在线| 国产精品熟女久久久久浪| 日韩,欧美,国产一区二区三区| 中文精品一卡2卡3卡4更新| 中文字幕制服av| 男女边摸边吃奶| 午夜日韩欧美国产| www.av在线官网国产| 国产一区亚洲一区在线观看| 国产深夜福利视频在线观看| 青草久久国产| 在现免费观看毛片| 最近中文字幕2019免费版| 我的亚洲天堂| 热99久久久久精品小说推荐| 国产精品免费大片| 亚洲图色成人| 精品国产乱码久久久久久小说| 狂野欧美激情性bbbbbb| 久久精品国产亚洲av高清一级| 高清不卡的av网站| 一二三四社区在线视频社区8| 午夜激情久久久久久久| 亚洲国产毛片av蜜桃av| 亚洲av男天堂| 99久久人妻综合| 汤姆久久久久久久影院中文字幕| 亚洲美女黄色视频免费看| 在线精品无人区一区二区三| 狠狠婷婷综合久久久久久88av| 大香蕉久久成人网| 国产人伦9x9x在线观看| 一级黄片播放器| 国产xxxxx性猛交| 一边摸一边抽搐一进一出视频| 日韩精品免费视频一区二区三区| 日韩av在线免费看完整版不卡| 大码成人一级视频| 精品久久久精品久久久| 老熟女久久久| 肉色欧美久久久久久久蜜桃| 老司机午夜十八禁免费视频| 91老司机精品| 国产精品一二三区在线看| 久久亚洲精品不卡| 母亲3免费完整高清在线观看| 国产精品欧美亚洲77777| a 毛片基地| 黄片小视频在线播放| 麻豆国产av国片精品| 91老司机精品| 热re99久久精品国产66热6| 久热这里只有精品99| 久久久久久久久久久久大奶| 欧美少妇被猛烈插入视频| 日本五十路高清| 日本av免费视频播放| 国产精品99久久99久久久不卡| 久久中文字幕一级| 91精品伊人久久大香线蕉| 亚洲av美国av| 国产男女内射视频| 久久国产精品男人的天堂亚洲| 国产成人av教育| 婷婷色av中文字幕| 中文欧美无线码| 丝袜脚勾引网站| 最近中文字幕2019免费版| 黄色毛片三级朝国网站| 一二三四社区在线视频社区8| 伦理电影免费视频| 国产精品国产av在线观看| 国产高清视频在线播放一区 | 免费人妻精品一区二区三区视频| 99热全是精品| 亚洲精品日韩在线中文字幕| 97精品久久久久久久久久精品| 亚洲七黄色美女视频| 亚洲欧美一区二区三区久久| 久久女婷五月综合色啪小说| 午夜福利视频精品| www.999成人在线观看| 免费不卡黄色视频| 97人妻天天添夜夜摸| 亚洲伊人色综图| 老汉色∧v一级毛片| 亚洲视频免费观看视频| 人成视频在线观看免费观看| 国产一区二区激情短视频 | 国产精品九九99| 久久精品亚洲av国产电影网| 精品国产一区二区三区久久久樱花| 在线观看免费午夜福利视频| 午夜免费鲁丝| 亚洲伊人色综图| 欧美日韩综合久久久久久| 国产一区二区在线观看av| 热99国产精品久久久久久7| 国产在线一区二区三区精| 性色av乱码一区二区三区2| 在线av久久热| 曰老女人黄片| 久久精品国产亚洲av涩爱| 亚洲欧洲国产日韩| 99九九在线精品视频| 飞空精品影院首页| 中文字幕人妻丝袜制服| 久久久久视频综合| 亚洲欧美一区二区三区国产| 欧美激情 高清一区二区三区| 国产麻豆69| 亚洲中文日韩欧美视频| 一区二区日韩欧美中文字幕| 精品久久久久久电影网| 亚洲成人免费电影在线观看 | 国产精品欧美亚洲77777| 日韩制服丝袜自拍偷拍| 免费人妻精品一区二区三区视频| 热99国产精品久久久久久7| 国产精品九九99| 国产精品三级大全| 精品人妻一区二区三区麻豆| 嫁个100分男人电影在线观看 | 国产熟女欧美一区二区| 久久综合国产亚洲精品| 国产成人系列免费观看| 99香蕉大伊视频| 一级黄色大片毛片| 成在线人永久免费视频| 在线观看国产h片| 一本大道久久a久久精品| 中文乱码字字幕精品一区二区三区| 亚洲成av片中文字幕在线观看| av又黄又爽大尺度在线免费看| 又紧又爽又黄一区二区| 看免费成人av毛片| 国产欧美日韩综合在线一区二区| 免费看十八禁软件| 欧美大码av| 女人高潮潮喷娇喘18禁视频| 欧美精品人与动牲交sv欧美| 亚洲色图综合在线观看| 大码成人一级视频| a级毛片黄视频| 日本黄色日本黄色录像| 亚洲国产av新网站| 免费在线观看视频国产中文字幕亚洲 | 色视频在线一区二区三区| 在线观看一区二区三区激情| 欧美成狂野欧美在线观看| 我要看黄色一级片免费的| 久久久久精品人妻al黑| 亚洲欧洲日产国产| videos熟女内射| 国产黄频视频在线观看| 亚洲精品国产av成人精品| 中文字幕人妻丝袜一区二区| 精品欧美一区二区三区在线| 亚洲国产成人一精品久久久| 一级片免费观看大全| 国产成人精品久久二区二区免费| 国产欧美日韩一区二区三 | 麻豆av在线久日| 人妻人人澡人人爽人人| 中文字幕人妻丝袜一区二区| 一边亲一边摸免费视频| 亚洲伊人色综图| 大香蕉久久成人网| 男人爽女人下面视频在线观看| 人人妻人人澡人人爽人人夜夜| 中文字幕最新亚洲高清| 国产xxxxx性猛交| 一区二区av电影网| 另类精品久久| 欧美精品人与动牲交sv欧美| 国产精品一区二区精品视频观看| 只有这里有精品99| 久久久久久人人人人人| 桃花免费在线播放| 亚洲精品久久成人aⅴ小说| 黑人猛操日本美女一级片| 熟女av电影| 校园人妻丝袜中文字幕| 亚洲人成77777在线视频| 婷婷色综合www| 最近最新中文字幕大全免费视频 | 别揉我奶头~嗯~啊~动态视频 | 成在线人永久免费视频| 成年人午夜在线观看视频| 久久天躁狠狠躁夜夜2o2o | 国产精品秋霞免费鲁丝片| 亚洲av在线观看美女高潮| 日韩大片免费观看网站| 人妻 亚洲 视频| 亚洲欧洲精品一区二区精品久久久| 亚洲第一青青草原| 国产成人免费无遮挡视频| 99精国产麻豆久久婷婷| 9热在线视频观看99| 日韩av不卡免费在线播放| 久久久精品区二区三区| 国产极品粉嫩免费观看在线| 天天躁狠狠躁夜夜躁狠狠躁| 亚洲欧洲日产国产| 熟女av电影| 美女扒开内裤让男人捅视频| 国产日韩欧美在线精品| 免费av中文字幕在线| 久久久久视频综合| 日韩欧美一区视频在线观看| 国产成人av激情在线播放| 国产欧美亚洲国产| 伦理电影免费视频| 亚洲av美国av| 精品卡一卡二卡四卡免费| 51午夜福利影视在线观看| 国产精品免费视频内射| 久9热在线精品视频| 韩国精品一区二区三区| 久久久国产一区二区| 免费看不卡的av| av国产精品久久久久影院| 久久女婷五月综合色啪小说| 女性被躁到高潮视频| 国产成人影院久久av| 久久久久久人人人人人| 一本色道久久久久久精品综合| 久热这里只有精品99| 天堂8中文在线网| 人人妻人人澡人人爽人人夜夜| av不卡在线播放| cao死你这个sao货| 超碰97精品在线观看| 制服诱惑二区| 91成人精品电影| 国产激情久久老熟女| 亚洲,欧美,日韩| 大片免费播放器 马上看| 亚洲av日韩在线播放| 欧美成人午夜精品| 免费在线观看黄色视频的| 波多野结衣av一区二区av| 亚洲综合色网址| 国产不卡av网站在线观看| 久久青草综合色| 国产有黄有色有爽视频| 亚洲精品一卡2卡三卡4卡5卡 | 狂野欧美激情性xxxx| 国产又色又爽无遮挡免| 中文字幕高清在线视频| 亚洲av欧美aⅴ国产| 国产精品久久久久久精品古装| 性少妇av在线| 国产深夜福利视频在线观看| 亚洲av成人精品一二三区| 91字幕亚洲| 亚洲欧美成人综合另类久久久| 午夜精品国产一区二区电影| 日本色播在线视频| 亚洲熟女毛片儿| 丝袜人妻中文字幕| 一级a爱视频在线免费观看| 99国产精品一区二区蜜桃av | av在线app专区| 老司机午夜十八禁免费视频| 好男人电影高清在线观看| 99香蕉大伊视频| 欧美日韩亚洲高清精品| 亚洲一卡2卡3卡4卡5卡精品中文| 啦啦啦啦在线视频资源| 亚洲精品自拍成人| 一级黄色大片毛片| 麻豆av在线久日| 国产视频一区二区在线看| 视频在线观看一区二区三区| 亚洲欧美一区二区三区国产| 一级片免费观看大全| 一级a爱视频在线免费观看| 亚洲精品久久久久久婷婷小说| 亚洲 国产 在线| 免费久久久久久久精品成人欧美视频| 久久鲁丝午夜福利片| 在现免费观看毛片| 亚洲美女黄色视频免费看| 91成人精品电影| 中国国产av一级| 大陆偷拍与自拍| 亚洲精品成人av观看孕妇| 国产精品秋霞免费鲁丝片| 成人午夜精彩视频在线观看| 热re99久久国产66热| a级毛片在线看网站| 飞空精品影院首页| 久久久国产一区二区| 国产一区二区三区综合在线观看| 日本欧美国产在线视频| 麻豆国产av国片精品| 日本欧美视频一区| 免费在线观看日本一区| 大话2 男鬼变身卡| 欧美日韩亚洲高清精品| 国产精品免费大片| 国产精品.久久久| 97人妻天天添夜夜摸| 国产国语露脸激情在线看| 午夜免费观看性视频| 啦啦啦视频在线资源免费观看| 欧美在线一区亚洲| 男人舔女人的私密视频| svipshipincom国产片| 人人妻人人澡人人爽人人夜夜| 亚洲欧美精品综合一区二区三区| 国产麻豆69| 久久天堂一区二区三区四区| 91九色精品人成在线观看| 欧美日韩成人在线一区二区| av在线老鸭窝| 看免费av毛片| 欧美在线一区亚洲| 欧美+亚洲+日韩+国产| 丰满人妻熟妇乱又伦精品不卡| 久久女婷五月综合色啪小说| 久久人人爽人人片av| 桃花免费在线播放| 国产精品二区激情视频| www日本在线高清视频| 亚洲色图 男人天堂 中文字幕| 久久国产精品男人的天堂亚洲| 亚洲 欧美一区二区三区| 交换朋友夫妻互换小说| 亚洲av成人不卡在线观看播放网 | 黄网站色视频无遮挡免费观看| 成人国语在线视频| 十八禁网站网址无遮挡| 9热在线视频观看99| 久久久精品国产亚洲av高清涩受| 亚洲视频免费观看视频| 一本大道久久a久久精品| 后天国语完整版免费观看| 久久狼人影院| 热re99久久国产66热| 国产成人影院久久av| 丝袜喷水一区| av在线播放精品| 一级,二级,三级黄色视频| 涩涩av久久男人的天堂| 校园人妻丝袜中文字幕| 久久久久久久久久久久大奶| 精品亚洲乱码少妇综合久久| 久久人人爽av亚洲精品天堂| 精品免费久久久久久久清纯 | 国产精品人妻久久久影院| 黄色视频不卡| 亚洲五月色婷婷综合| 国产成人免费观看mmmm| 十八禁网站网址无遮挡| 777久久人妻少妇嫩草av网站| 老司机午夜十八禁免费视频| 欧美黑人欧美精品刺激| 国产精品久久久久久精品电影小说| 久久久精品国产亚洲av高清涩受| 黄片小视频在线播放| 欧美精品啪啪一区二区三区 | 日本猛色少妇xxxxx猛交久久| 午夜福利在线免费观看网站| 激情视频va一区二区三区| 高清av免费在线| 成人亚洲精品一区在线观看| 国产亚洲一区二区精品| 2018国产大陆天天弄谢| 视频区欧美日本亚洲| 建设人人有责人人尽责人人享有的| 777米奇影视久久| 国产精品.久久久| 国产精品一二三区在线看| 久久久国产一区二区| 国产高清不卡午夜福利| 国产一级毛片在线| 男女高潮啪啪啪动态图| 狠狠婷婷综合久久久久久88av| 狠狠精品人妻久久久久久综合|