999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Android軟件可靠性測(cè)試用例自動(dòng)生成的設(shè)計(jì)研究

2016-05-05 01:47:11陽(yáng)
關(guān)鍵詞:用戶

李 震 王 肖 盧 超 王 敏 李 陽(yáng)

1(江蘇科技大學(xué)電子信息學(xué)院 江蘇 鎮(zhèn)江 212003)

2(金舟軟件有限責(zé)任公司 江蘇 鎮(zhèn)江 212003)

?

Android軟件可靠性測(cè)試用例自動(dòng)生成的設(shè)計(jì)研究

李震1,2王肖1盧超2王敏1李陽(yáng)1

1(江蘇科技大學(xué)電子信息學(xué)院江蘇 鎮(zhèn)江 212003)

2(金舟軟件有限責(zé)任公司江蘇 鎮(zhèn)江 212003)

摘要Android是近幾年新興的智能手機(jī)操作系統(tǒng),同時(shí)也出現(xiàn)了各種類型的Android應(yīng)用軟件,競(jìng)爭(zhēng)激烈。對(duì)其進(jìn)行可靠性測(cè)試是保證Android軟件質(zhì)量和可靠性的重要途徑,同時(shí)也可幫助開發(fā)方在滿足用戶期望和盡快上市發(fā)布產(chǎn)品兩者之間找到合理的平衡。而測(cè)試用例的生成是軟件可靠性測(cè)試的重要環(huán)節(jié)。針對(duì)Android軟件可靠性測(cè)試用例的自動(dòng)生成問(wèn)題,首先提出收集用戶對(duì)Android軟件使用的習(xí)慣數(shù)據(jù),以便于構(gòu)建軟件的馬爾科夫鏈模型的方法,并基于馬爾科夫鏈模型,提出和實(shí)現(xiàn)了設(shè)置狀態(tài)間轉(zhuǎn)移概率算法和測(cè)試用例生成算法,最終根據(jù)以上的研究?jī)?nèi)容設(shè)計(jì)了帶有自動(dòng)記錄用戶操作習(xí)慣模塊的Android文件管理器和Android軟件可靠性測(cè)試用例自動(dòng)生成工具,給出了Android軟件可靠性測(cè)試用例設(shè)計(jì)的總體思路。實(shí)驗(yàn)結(jié)果表明,該方法大大降低了Android軟件測(cè)試用例生成的難度,同時(shí)節(jié)約了測(cè)試用例生成的時(shí)間和成本,提高了可靠性測(cè)試的效率。

關(guān)鍵詞馬爾科夫鏈模型Android軟件開發(fā)測(cè)試用例自動(dòng)生成Eclipse插件開發(fā)遍歷算法

0引言

軟件可靠性是衡量軟件質(zhì)量的重要指標(biāo),它是綜合考慮測(cè)試資源和測(cè)試效果的一種定量測(cè)試方法,可用于軟件產(chǎn)品發(fā)布前的綜合測(cè)試[1],能夠從資源使用的角度最大限度地滿足用戶期望和平衡開發(fā)方成本。Android是近幾年新興的智能手機(jī)操作系統(tǒng),同時(shí)也出現(xiàn)了各種類型的Android應(yīng)用軟件,市場(chǎng)競(jìng)爭(zhēng)激烈,對(duì)其進(jìn)行可靠性測(cè)試是保證Android軟件質(zhì)量和可靠性的重要途徑,也可幫助開發(fā)方在滿足用戶期望和盡快上市發(fā)布產(chǎn)品兩者之間找到合理的平衡。

軟件可靠性測(cè)試用例的編寫是軟件可靠性工程的重要活動(dòng)之一。但Android軟件的可靠性測(cè)試中還沒(méi)有一個(gè)明確的測(cè)試用例生成的方案,所以能有一個(gè)完善的從軟件的設(shè)計(jì)到根據(jù)軟件的功能生成對(duì)應(yīng)的測(cè)試用例的方案顯得格外重要。

軟件的可靠性測(cè)試的主要特征是按照用戶實(shí)際使用軟件的習(xí)慣來(lái)測(cè)試軟件的,所以測(cè)試用例的設(shè)計(jì)必須要符合這個(gè)要求[2],否則測(cè)試得出的數(shù)據(jù)是不可靠的。針對(duì)新開發(fā)的軟件沒(méi)有用戶歷史使用數(shù)據(jù)的問(wèn)題,本文提出了一個(gè)收集用戶使用軟件習(xí)慣的方法。設(shè)計(jì)出了帶記錄用戶操作習(xí)慣模塊的Android文件管理器軟件。

測(cè)試用例的編寫是一個(gè)費(fèi)時(shí)費(fèi)力的工作,一般都是由專業(yè)人員完成的[4]。本文基于馬爾科夫鏈模型,通過(guò)兩種算法設(shè)計(jì)和實(shí)現(xiàn)了Android軟件測(cè)試用例自動(dòng)生成工具,節(jié)約了Android軟件測(cè)試用例生成的時(shí)間和成本,提高了可靠性測(cè)試效率。

1馬爾科夫鏈模型

馬爾科夫鏈?zhǔn)菭顟B(tài)和時(shí)間都離散的馬爾科夫過(guò)程[5]。它是滿足以下兩種假設(shè)的隨機(jī)過(guò)程:

1) t+1時(shí)刻系統(tǒng)的概率分布只與t時(shí)刻的狀態(tài)有關(guān),與t時(shí)刻以前的狀態(tài)無(wú)關(guān);

2) 從t時(shí)刻到t+1時(shí)刻的狀態(tài)轉(zhuǎn)移與t的值無(wú)關(guān)[6]。一個(gè)馬爾科夫鏈模型可表示為M=(S,P,Q),其中各元素的含義如下:

(1) S是系統(tǒng)所有可能的狀態(tài)組成的非空狀態(tài)空間。用Si、Sj表示狀態(tài)。

2基于用戶操作習(xí)慣的馬爾科夫鏈模型的測(cè)試用例生成

2.1Android原子操作和用戶操作習(xí)慣數(shù)據(jù)的收集

對(duì)于新開發(fā)的軟件,程序員可以先開發(fā)一個(gè)包含自動(dòng)記錄用戶操作習(xí)慣模塊的測(cè)試版本的軟件。首先把測(cè)試版本軟件分發(fā)給不同的人群試用,經(jīng)過(guò)一定的時(shí)間,把這些用戶的操作數(shù)據(jù)收集起來(lái),通過(guò)統(tǒng)計(jì)分析就可以得到用戶實(shí)際的操作習(xí)慣[9]。通過(guò)這些數(shù)據(jù)構(gòu)造軟件的馬爾科夫鏈模型,最終生成的測(cè)試用例就能夠符合可靠性測(cè)試的要求。

編寫自動(dòng)記錄模塊前提是必須要知道Android系統(tǒng)的所有原子操作,只有了解了這些原子操作,才能根據(jù)用戶的操作記錄相應(yīng)的內(nèi)容。通過(guò)對(duì)Android系統(tǒng)的研究,可以得到Android系統(tǒng)的原子操作如表1所示。

表1 Android系統(tǒng)原子操作及解釋

續(xù)表1

然后對(duì)用戶的操作進(jìn)行監(jiān)聽就可以得到用戶的操作習(xí)慣數(shù)據(jù)。具體方法和實(shí)現(xiàn)將在第3節(jié)介紹。

2.2狀態(tài)間轉(zhuǎn)移概率設(shè)置算法設(shè)計(jì)

為保證生成的測(cè)試用例有針對(duì)性,本文提出的做法是根據(jù)用戶的操作習(xí)慣來(lái)設(shè)置軟件的馬爾科夫鏈模型的狀態(tài)間轉(zhuǎn)移概率,這種做法不僅符合可靠性測(cè)試的特點(diǎn),而且能夠保證可靠性測(cè)試的充分性[10]。由馬爾科夫鏈特點(diǎn)可知,設(shè)計(jì)的算法不僅要滿足能夠?qū)λ械臓顟B(tài)間轉(zhuǎn)移概率進(jìn)行配置,還要能夠檢測(cè)出同一狀態(tài)的所有出邊概率之和是否為1。狀態(tài)間轉(zhuǎn)移概率設(shè)置算法設(shè)計(jì)如算法1。

算法1狀態(tài)間轉(zhuǎn)移概率設(shè)置算法。

//node為馬爾科夫鏈模型的一個(gè)節(jié)點(diǎn)

Procedure WidthTraversal(node){

//如果node有子節(jié)點(diǎn)

if node.hasChild

then{

//得到子節(jié)點(diǎn)個(gè)數(shù)

num=node. getChildren.size();

for i=0 to num

do{

//得到子節(jié)點(diǎn)并添加到數(shù)組array中

childNode = node. getChildren.get(i);

childNode. setProbability(probability);

array.add(childNode);

}

//對(duì)array數(shù)組進(jìn)行遍歷

For i=0 to array.length()

do{

//把a(bǔ)rray數(shù)組中節(jié)點(diǎn)所有的概率值相加

sum += array[i];

}

//如果所有節(jié)點(diǎn)的概率值不等于1,則說(shuō)明配置有錯(cuò)

if sum !=1

then {

inputError = true;

}

for i=0 to node.getChildren.size()

do{

childNode = node.getChild.get(i);

//遞歸調(diào)用

WidthTraversal(childNode);

}

}

}

如果inputError為true,則說(shuō)明配置有錯(cuò),提示用戶重新輸入即可。

2.3測(cè)試用例生成算法設(shè)計(jì)

測(cè)試用例生成算法必須要能根據(jù)軟件的馬爾科夫鏈模型自動(dòng)識(shí)別出測(cè)試路徑,并根據(jù)路徑的節(jié)點(diǎn)信息生成對(duì)應(yīng)的測(cè)試用例。本文設(shè)計(jì)的測(cè)試用例生成算法如算法2。

算法2測(cè)試用例生成算法。

//node為馬爾科夫鏈模型的一個(gè)節(jié)點(diǎn)

Procedure DepthTraversal(node){

//如果node有子節(jié)點(diǎn)

if node.hasChild

then{

//循環(huán)遍歷子節(jié)點(diǎn)

for i=0 to node. getChildren.size()

do{

//得到一個(gè)子節(jié)點(diǎn)

childNode=node. getChildren.get(i);

//信息向下推壓,把子節(jié)點(diǎn)信息設(shè)置為父節(jié)

//點(diǎn)加自身節(jié)點(diǎn)信息

childNode.setInfo(node.getInfo()+childNode.getInfo());

//遞歸調(diào)用

DepthTraversal(childNode);

}

}

else{

//如果沒(méi)有子節(jié)點(diǎn),直接輸出節(jié)點(diǎn)信息即為

//此路徑對(duì)應(yīng)的測(cè)試用例

print node.getInfo();

}

}

3Android軟件和測(cè)試用例自動(dòng)生成工具的設(shè)計(jì)

根據(jù)第2節(jié)的提出的方法,本節(jié)設(shè)計(jì)出了Android文件管理器軟件和測(cè)試用例自動(dòng)生成工具,最終生成了文件管理器的測(cè)試用例集。流程圖如圖1所示。

圖1 生成測(cè)試用例流程圖

3.1Android文件管理器介紹

本文編寫的Android文件管理器主要實(shí)現(xiàn)的是對(duì)文件的基本操作,主要界面如圖2所示。

圖2 文件管理器界面

主要功能包括瀏覽文件、新建文件、新建文件夾、復(fù)制、剪切、粘貼、重命名、刪除、查看文件屬性,由于內(nèi)容限制,在此對(duì)其實(shí)現(xiàn)過(guò)程不做具體介紹。

3.2文件管理器記錄用戶操作習(xí)慣數(shù)據(jù)模塊的實(shí)現(xiàn)

自動(dòng)記錄模塊利用Android平臺(tái)提供的SharedPreferences類的key-value對(duì)來(lái)保存數(shù)據(jù)[11],保存用戶操作習(xí)慣數(shù)據(jù)流程如圖3所示。

圖3 記錄用戶操作模塊流程

編寫記錄用戶操作模塊前,要了解用戶會(huì)執(zhí)行哪些操作,例如執(zhí)行新建文件功能時(shí),用戶可能會(huì)執(zhí)行如圖4“新建文件馬爾科夫鏈模型”的操作。

圖4 新建文件馬爾科夫鏈模型

只需對(duì)用戶的這些操作進(jìn)行監(jiān)聽,在用戶點(diǎn)擊觸發(fā)一個(gè)操作的時(shí)候,記錄用戶點(diǎn)擊此操作次數(shù)的變量加1,最后退出軟件時(shí),把這些記錄用戶操作次數(shù)的變量存儲(chǔ)到手機(jī)中即可。

3.3測(cè)試用例自動(dòng)生成工具的實(shí)現(xiàn)

本文設(shè)計(jì)的測(cè)試用例自動(dòng)生成工具是使用Eclipse開發(fā)的,可以實(shí)現(xiàn)手機(jī)屏幕在PC上的實(shí)時(shí)顯示,并能通過(guò)PC直接控制手機(jī),記錄用戶操作軟件時(shí)的坐標(biāo)和操作步驟名稱。能夠支持對(duì)任何不同分辨率、不同尺寸和不同Android系統(tǒng)版本手機(jī)的測(cè)試用例的生成。測(cè)試用例自動(dòng)生成工具操作流程圖如圖5所示。

圖5 測(cè)試用例自動(dòng)生成工具操作流程

其中,根據(jù)用戶的輸入設(shè)置狀態(tài)轉(zhuǎn)移概率用到的方法是2.2節(jié)介紹的狀態(tài)間轉(zhuǎn)移概率設(shè)置算法,遍歷軟件的馬爾科夫鏈模型生成測(cè)試用例用到的方法是2.3節(jié)介紹的測(cè)試用例生成算法。

測(cè)試用例自動(dòng)生成工具主要界面如圖6所示,通過(guò)向?qū)?chuàng)建一個(gè)Android軟件測(cè)試用例自動(dòng)生成工程。

圖6 設(shè)置工程名和測(cè)試功能點(diǎn)對(duì)話框

通過(guò)鼠標(biāo)右鍵就可以添加下一步操作,如圖7所示。

圖7 Android軟件的原子操作

這里提供了操作Android軟件所需的所有原子操作,點(diǎn)擊不同的選項(xiàng)會(huì)彈出對(duì)應(yīng)的對(duì)話框,例如圖8是點(diǎn)擊了touch原子操作所彈出的對(duì)話框。

圖8 配置Touch原子操作對(duì)話框

在這個(gè)對(duì)話框中可以直接操作手機(jī),命名操作步驟的名稱并自動(dòng)記錄功能按鈕的坐標(biāo)。另加入了findAndTouch操作,在執(zhí)行自動(dòng)化測(cè)試時(shí),在特定位置的矩形方框內(nèi)如果發(fā)現(xiàn)指定的圖片則點(diǎn)擊它,如果發(fā)現(xiàn)不了則就說(shuō)明程序出錯(cuò)了,點(diǎn)擊findAndTouch后出現(xiàn)的對(duì)話框如圖9所示。

圖9 findAndTouch對(duì)話框

可以編輯操作步驟的名稱,自動(dòng)記錄截取的圖片及其坐標(biāo)。最終文件管理器要進(jìn)行測(cè)試的操作步驟如圖10所示。

圖10 文件管理器的功能操作

點(diǎn)擊右上角測(cè)試用例生成按鈕會(huì)彈出如圖11所示設(shè)置操作步驟轉(zhuǎn)移概率對(duì)話框。

圖11 設(shè)置操作步驟轉(zhuǎn)移概率

可以根據(jù)用戶的操作習(xí)慣配置操作步驟間的轉(zhuǎn)移概率,并且會(huì)自動(dòng)的檢測(cè)同一操作出邊狀態(tài)的概率之和是否為1。點(diǎn)擊確定按鈕,會(huì)自動(dòng)根據(jù)配置的概率和測(cè)試用例總個(gè)數(shù)生成對(duì)應(yīng)個(gè)數(shù)的測(cè)試用例,如圖12所示。

圖12 測(cè)試用例生成個(gè)數(shù)對(duì)話框

生成的測(cè)試用例的信息如圖13和圖14所示,最終Android文件管理器測(cè)試用例的自動(dòng)生成工程完成。接下來(lái)就可以將生成的測(cè)試用例導(dǎo)入到自動(dòng)化測(cè)試工具中進(jìn)行可靠性測(cè)試,本文就不做介紹了。

圖13 所有測(cè)試用例的信息

圖14 新建文件夾路徑2測(cè)試用例詳細(xì)信息

4結(jié)語(yǔ)

本文介紹了收集 Android 軟件用戶操作習(xí)慣數(shù)據(jù)的方法,從馬爾科夫鏈模型出發(fā),提出了設(shè)置馬爾科夫鏈狀態(tài)間轉(zhuǎn)移概率算法和測(cè)試用例生成算法。根據(jù)所提的方法和算法編寫了 Android 文件管理器和測(cè)試用例自動(dòng)生成工具,最終利用所開發(fā)的工具生成了文件管理器的測(cè)試用例集,節(jié)約了測(cè)試用例生成的時(shí)間和成本,提高了可靠性測(cè)試效率。

對(duì)于其他的Android軟件,都可以通過(guò)本文介紹的方法來(lái)實(shí)現(xiàn)測(cè)試用例的自動(dòng)生成。對(duì)于用戶操作習(xí)慣數(shù)據(jù)的收集方法來(lái)說(shuō),因?yàn)橛脩魧?duì)軟件的操作都是通過(guò)觸控不同的功能按鈕來(lái)實(shí)現(xiàn)的,只需要對(duì)這些動(dòng)作進(jìn)行監(jiān)聽就可以得到用戶的操作數(shù)據(jù);對(duì)于測(cè)試用例自動(dòng)生成工具的設(shè)計(jì),因?yàn)楸疚脑O(shè)計(jì)的工具是支持Android手機(jī)的所有原子操作,所以可以對(duì)不同的Android應(yīng)用程序進(jìn)行測(cè)試用例的生成。因此本文所介紹的內(nèi)容和方法具有通用性,最終給出了Android軟件測(cè)試用例自動(dòng)生成的一個(gè)新思路。

參考文獻(xiàn)

[1] 孫海濤.軟件可靠性評(píng)價(jià)與輔助測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].電子科技大學(xué),2010.

[2] 鄭曦.基于組件式軟件系統(tǒng)的可靠性指標(biāo)分配與預(yù)測(cè)模型[D].華南理工大學(xué),2012.

[3] 路曉波.軟件開發(fā)過(guò)程中白盒測(cè)試方法和工具的研究及應(yīng)用[D].南京郵電大學(xué),2013.

[4] 李孟庭.軟件測(cè)試用例生成的研究與應(yīng)用[D].北京郵電大學(xué),2013.

[5] 隋磊.面向DB2應(yīng)用的自動(dòng)測(cè)試系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].哈爾濱工業(yè)大學(xué),2012.

[6] 楊治.手機(jī)軟件交互設(shè)計(jì)研究[D].哈爾濱工程大學(xué),2013.

[7] 鄭曦.基于組件式軟件系統(tǒng)的可靠性指標(biāo)分配與預(yù)測(cè)模型[D].華南理工大學(xué),2012.

[8] 尹魯燕.基于UML的軟件可靠性分析模型自動(dòng)轉(zhuǎn)換研究[D].重慶大學(xué),2012.

[9] 孫寶云.軟件測(cè)試用例自動(dòng)生成技術(shù)的應(yīng)用研究[D] .吉林大學(xué),2012.

[10] 伍小薈.面向軟件可靠性的性能測(cè)試方法研究與應(yīng)用[D].上海交通大學(xué),2012.

[11] 于濤.基于動(dòng)態(tài)權(quán)重和靜態(tài)權(quán)重的軟件可靠性混合模型研究[D].西南大學(xué),2013.

ON DESIGNING AUTOMATIC GENERATION OF ANDROID SOFTWARE RELIABILITY TEST CASES

Li Zhen1,2Wang Xiao1Lu Chao2Wang Min1Li Yang1

1(SchoolofElectronicsandInformation,JiangsuUniversityofScienceandTechnology,Zhenjiang212003,Jiangsu,China)2(JinzhouSoftwareCo.,Ltd,Zhenjiang212003,Jiangsu,China)

AbstractIntelligent mobile phone operating system, Android, is emerging in recent years, and various types of Android software have become a flood with fierce competition. Reliability testing is the important way to ensure the quality and reliability of Android software, which can also help the developers to catch a balance between the expectations of users and releasing the software as earlier as possible. And test case generation is an important part of software reliability testing. The main contents of this paper are as follows: First, we proposed a method to collect usage data of users on Android software so as to build software Markov chain model. Secondly, based on Markov chain model, we proposed and implemented the algorithms of setting transition probabilities between the states and the test case generation. Finally, according to the above two proposals, we designed the Android file manager software which contains a module automatically recording users’ operation habits and an automatic generation tool for Android software reliability test cases, and gave the general idea of designing Android software reliability test cases. Experimental result showed that the method greatly reduced the difficulty of Android software reliability test cases and saved the time and cost of test cases generation as well, and the efficiency of the reliability test was increased as well.

KeywordsMarkov chain modelAndroid software developmentAutomatic test case generationEclipse plug-in developmentTraversal algorithm

中圖分類號(hào)TP311.56

文獻(xiàn)標(biāo)識(shí)碼A

DOI:10.3969/j.issn.1000-386x.2016.01.058

收稿日期:2014-05-28。江蘇高校優(yōu)勢(shì)學(xué)科建設(shè)工程資助項(xiàng)目;江蘇省2012年度企業(yè)博士集聚計(jì)劃;鎮(zhèn)江市第六批“331”計(jì)劃。李震,副教授,主研領(lǐng)域:系統(tǒng)安全性,系統(tǒng)可靠性,軟件測(cè)試。王肖,碩士生。盧超,工程師。王敏,副教授。李陽(yáng),講師。

猜你喜歡
用戶
雅閣國(guó)內(nèi)用戶交付突破300萬(wàn)輛
車主之友(2022年4期)2022-08-27 00:58:26
您撥打的用戶已戀愛,請(qǐng)稍后再哭
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年5期)2016-11-28 09:55:15
兩新黨建新媒體用戶與全網(wǎng)新媒體用戶之間有何差別
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
挖掘用戶需求尖端科技應(yīng)用
Camera360:拍出5億用戶
100萬(wàn)用戶
主站蜘蛛池模板: 在线免费不卡视频| 成人福利在线免费观看| 国产精鲁鲁网在线视频| 国产精品内射视频| 日a本亚洲中文在线观看| 国产真实乱子伦视频播放| 欧美成人二区| 亚洲午夜国产精品无卡| 亚洲欧美极品| 欧美日韩国产一级| 久久这里只有精品8| 99九九成人免费视频精品| 日韩久草视频| 国产第一页亚洲| 2021精品国产自在现线看| 99久视频| 中字无码av在线电影| 免费aa毛片| 日本三级欧美三级| 亚洲浓毛av| 亚洲制服丝袜第一页| 色婷婷综合在线| 噜噜噜综合亚洲| 中文字幕永久在线观看| 国产成人盗摄精品| 中文字幕亚洲综久久2021| 色婷婷色丁香| 高清视频一区| 免费在线a视频| 欧美精品黑人粗大| 国产草草影院18成年视频| 亚洲免费毛片| 色妺妺在线视频喷水| 国产乱子伦精品视频| 国产精品30p| 国产精品免费入口视频| 激情综合网激情综合| 欧美成人午夜影院| 国产欧美日韩免费| 欧美区一区二区三| 国产自视频| 国产白浆一区二区三区视频在线| lhav亚洲精品| 亚洲综合天堂网| 国产美女免费| 国产在线视频导航| 欧美亚洲另类在线观看| 2021天堂在线亚洲精品专区| 午夜成人在线视频| 国产成年无码AⅤ片在线| 亚洲综合色吧| 老司机午夜精品视频你懂的| 伊人婷婷色香五月综合缴缴情| 国产成年女人特黄特色大片免费| 中文字幕 欧美日韩| 99成人在线观看| 国产精品自拍合集| 国产爽歪歪免费视频在线观看 | 精品一区二区久久久久网站| 免费啪啪网址| 国产99精品视频| 香蕉国产精品视频| 狠狠色狠狠综合久久| 美女毛片在线| 亚洲一道AV无码午夜福利| 无码丝袜人妻| 福利在线不卡| 国产网站免费观看| 日韩a在线观看免费观看| 色一情一乱一伦一区二区三区小说| 99re这里只有国产中文精品国产精品 | 国产精品区视频中文字幕| 免费A级毛片无码无遮挡| 视频一区视频二区中文精品| 久久亚洲高清国产| 一区二区理伦视频| 天天躁日日躁狠狠躁中文字幕| 亚洲成a∧人片在线观看无码| 国产极品嫩模在线观看91| 人妻无码中文字幕第一区| 国产成人永久免费视频| av色爱 天堂网|