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

嵌入式軟件覆蓋率測試的研究與應用

2014-09-15 17:59:37孫隴平
現代電子技術 2014年18期

孫隴平

摘 要: 覆蓋率測試是檢驗軟件測試完整性、充分性的重要方式,這里介紹了覆蓋率測試基礎理論、覆蓋率的測試類型、覆蓋率測試工作流程、比較了覆蓋率測試工具Bullseye Coverage、LDRA TestBed。并通過LDRA Testbed測試工具對被測軟件程序插裝,分析插裝程序輸出的結果得到語句覆蓋率、分支覆蓋率等數據,以達到對軟件問題的查找和對測試充分性、全面性的驗證。同時給出了Turbo C開發環境下DOS操作系統的嵌入式軟件,利用LDRA Testbed進行覆蓋率分析和通過查看未覆蓋的代碼定位軟件問題、測試用例覆蓋情況的詳細步驟。

關鍵詞: 嵌入式軟件; 覆蓋率測試; LDRA Testbed; 測試方法

中圖分類號: TN911?34 文獻標識碼: A 文章編號: 1004?373X(2014)18?0067?03

Research and application of embedded software coverage rate testing

SUN Long?ping

(Jiangsu Automation Research Institute, Lianyungang 222061, China)

Abstract: Coverage testing is an important method to check software integrity and adequacy. This article introduces cover testing theories, testing methods, testing process and compares testing tools, Bullseye Coverage and LDRA TestBed Use testing tool,LDRA Testbed, to instrument tested program, analyze the output of instumentation software to get the data of Statement coverage and branch coverage, and find out the software int question, to check coverage testing adequacy and comprehensiveness. At the same time, it provides the following steps: Embedded software, which running under Turbo developement environment and DOS system, use LDRA Testbed to analyze software coverage, through viewing the code of uncovered prograss to position software problem and check testcase coverage.

Keywords: embedded software; coverage rate testing; LDRA Testbed; testing method

隨著嵌入式設備在越來越多的領域中得到使用,與之相依附的嵌入式軟件也得到了快速的發展。面對日益復雜的嵌入式軟件,如何進行快速、全面、有效地測試已經成為當前測試工作的焦點。嵌入式軟件通常與硬件聯系緊密,常規的測試方法和技術難以對軟件進行全面測試。因此,必須采用基于對軟件程序進行插裝的覆蓋率測試技術,實現對嵌入式軟件的測試,以達到降低測試難度,提高測試效率。

1 覆蓋率測試

1.1 覆蓋率測試概念

覆蓋率測試(也稱邏輯測試)是度量測試完整性和查找軟件問題的必要手段,是測試有效性的度量。

覆蓋率測試的目的是確保軟件所有的程序至少被執行一次,盡可能全的覆蓋軟件程序的各個語句及其分支結構,所以設計測試用例要盡可能多地覆蓋軟件程序的內部邏輯結構,以便發現軟件中的錯誤和問題。覆蓋率測試的類型如下:語句覆蓋率,被測軟件程序中每行語句至少執行一次,語句覆蓋率=至少被執行一次的語句數量/可執行的語句總數;判定覆蓋率,被測軟件程序中每個判定表達式至少獲得一次“true”值和“false”值,以確保程序的每一個分支至少都通過一次,判定覆蓋率=判定結果被評價的次數/判定結果的總數; 條件覆蓋率,確保判定表達式中每個條件的各種可能的值至少出現一次,條件覆蓋率=條件操作數值至少被評價一次的數量/條件操作數值的總數;判定/條件覆蓋率,確保判定表達式的每個條件的所有可能取值至少出現一次,并使每個判定表達式所有可能的結果也至少出現一次,判定/條件覆蓋率=條件操作數值或判定結果至少被評價一次的數量/(條件操作數值總數+判定結果總數);路徑覆蓋率,測試用例覆蓋被測程序中所有可能的路徑,路徑覆蓋率=至少被執行到一次的路徑數/總的路徑數。

1.2 覆蓋率測試方法

覆蓋率測試通過對被測軟件程序進行插裝,并對插裝后的被測軟件程序編譯生成可執行程序。然后在軟件運行的實際環境中運行該可執行程序,同時執行功能、性能、接口、人機交互界面、強度、安全性、邊界、恢復性測試等測試用例和測試數據。如果覆蓋率沒有到軟件規定要求,分析原因后,必要時補充軟件的功能、性能、接口、人機交互界面等測試類型的測試用例,保證覆蓋率測試指標滿足軟件要求。覆蓋率測試的工作流程如圖1所示。覆蓋率測試的關鍵是對軟件程序進行插裝,插裝是在保證軟件程序邏輯完整的基礎上,插入一些探針,通過分析探針執行拋出的特征數據,達到對軟件覆蓋情況的測試。

1.3 覆蓋率測試工具

由于當前潛入式軟件開發語言多為C/C++,而針對C/C++做覆蓋率常用的工具有Bullseye Coverage和LDRA TestBed。Bullseye Coverage是Bullseye公司支持Unix,Windows操作系統和Boland C++,Gun C++,Inter C++等開發環境,提供的覆蓋率是分支覆蓋率而不是一般的覆蓋率。

圖1 覆蓋率測試工作流程

LDRA TestBed是LDRA公司研發的一款成熟的軟件測試商用工具,包括以下多個功能:按照編碼規則對代碼評審;分析代碼的復雜度、密度和可測試性,達到對軟件質量的評審;分析接口,變量使用,控制流,識別隱藏的錯誤變量;對軟件代碼進行單元測試;對軟件代碼進行插裝,并分析軟件的語句、分支等覆蓋率;對測試過程中的用例、文檔等進行管理。

LDRA Testbed提供了BitMap插樁技術來解決覆蓋率測試。BitMap是一種位圖技術,插裝后的軟件在實際環境運行時將探針的特征值信息存放到一個固定大小的數組中,當需要對代碼覆蓋率進行分析時,通過Testbed提供的get_history命令得到歷史文件,再將該內容提供給Testbed進行覆蓋率分析。

TestBed作為覆蓋率測試工具,具有以下特性:

(1) 能夠與被測軟件編譯器相結合對源程序進行自動插裝,被插裝的程序即可以是平臺軟件也可以是嵌入式軟件;

(2) 根據插裝軟件輸出的覆蓋數據,能夠快速、清晰的分析出軟件總體、每個函數的語句覆蓋率、分支覆蓋率等;

(3) 根據分析出的函數覆蓋率數據,幫助測試人員快速定位未覆蓋的軟件程序,便于改進測試用例沒計的缺陷,進而提高軟件的覆蓋率。

2 基于LDRA TestBed的覆蓋率測試應用

2.1 被測軟件概況

被測軟件是基于Turbo C開發環境的嵌入式軟件,運行于微機板上TF存儲卡的DOS系統,通過接收上位機的控制參數及獲取外部導航設備的導航信息、傳感器的傳感器數據后,經數據處理后向外部設備發送控制命令,達到對外部設備的控制。

圖2 軟件運行連接圖

2.2 覆蓋率測試應用

被測軟件通過以下步驟實現覆蓋率測試:

(1) 在Testbed中新建一個Coverage Test的工程,并將被測軟件的程序文件test.c(不需要程序的.h文件)加入工程中。

(2) 選中Configure菜單下的Instrumentation Option選項,去掉:□Instrumentation for MC/DC Coverage;選中:□Compress Execution History Bitmap;在edit Instrument SourceFile Name(s):inszt_name.c中Name不能超過8個字符。然后在Analysis菜單點擊Start Analysis進行插裝,Testbed在和test.c同目錄下產生inszt_test.c文件該文件為經過插裝后的程序文件。

(3) 在inszt_test.c文件中查找“static unsigned int bitmaparr[]”,去掉其中的static;查找qqqbranches,將bitmaparr[qqqbranches/8+1]數據填入該數組;在main函數中添加覆蓋數據輸出到test.txt代碼,如下所示:

char str[sizeof(bitmaparr)];

FILE *dfile=fopen("c:\\test.txt","wt");

int j=sizeof(bitmaparr)/sizeof(int);

for (int i=0;i

{

sprintf(str,"%d\n",bitmaparr[i]);

fprintf(dfile, str);

}

fclose(dfile);

(4) 將inszt_test.c文件,刪除前面的“inszt_”標識后,拷貝到TF卡中,替換未插裝的test.c,啟動Turbo C跟其他的源文件一起編譯,產生可執行的目標文件test.exe;

(5) 啟動軟件并執行功能、性能、接口、邊界、性能、安全性、恢復性等測試類型,將軟件輸出的test.txt(文件中的數字內容為186個大于等于0,小于等于255的整型數字)文件修改為history.exh(分析后該文件會被刪除,注意備份),使用Testbed進行分析,即可獲得相應的程序或分支覆蓋率。

分析后找到test.dyn.htm文件就可以看到覆蓋率分析數據如圖3所示。

圖3 軟件覆蓋率分析數據

(6) 如某一個函數覆蓋率沒有達到100%,需要進入函數具體分析界面,如圖4所示。其中線框起來的是未執行到的部分,需要查找原因,如果是用例設計不夠充分,需要添加設計測試用例,執行插裝軟件后再分析覆蓋數據,直到覆蓋率指標達到要求為止。

圖4 軟件程序覆蓋執行情況

3 結 語

通過嵌入式軟件覆蓋率測試研究與應用,發現LDRA TestBed不僅能夠快速地對軟件程序進行插裝、覆蓋數據分析,而且根據覆蓋率結果的函數覆蓋情況,快速定位到未執行的程序。針對開發人員可以定位軟件錯誤,針對測試人員,根據代碼覆蓋情況可以梳理、優化、減少冗余的測試用例,爭取達到對程序的全覆蓋。覆蓋率測試工具在嵌入式軟件測試中廣泛應用,能夠大幅度提高覆蓋水平,規避嵌入式軟件難于測試的缺點,幫助測試人員大幅提高測試效率。

參考文獻

[1] 范勇,蘭景英,李繪卓.軟件測試技術[M].西安:西安電子科技大學出版社,2009.

[2] 鄭人杰.軟件工程[M].北京:清華大學出版社,1999.

[3] 上海創景計算機系統有限公司.LDRA Testbed中文技術說明[EB/OL].[2007?11?04].http://wenku.baidu.com.

[4] 朱紅軍.一種嵌入式軟件覆蓋和分析測試方法[J].航空計算技術,2009(5):65?67.

[5] 流螢,王英,劉漫丹.嵌入式軟件的覆蓋測試[J].自動化儀表,2012(6):63?66.

[6] 金維佳,施小敏.基于嵌入式軟件的覆蓋測試問題研究[J].信息技術,2011(4):117?120.

由于當前潛入式軟件開發語言多為C/C++,而針對C/C++做覆蓋率常用的工具有Bullseye Coverage和LDRA TestBed。Bullseye Coverage是Bullseye公司支持Unix,Windows操作系統和Boland C++,Gun C++,Inter C++等開發環境,提供的覆蓋率是分支覆蓋率而不是一般的覆蓋率。

圖1 覆蓋率測試工作流程

LDRA TestBed是LDRA公司研發的一款成熟的軟件測試商用工具,包括以下多個功能:按照編碼規則對代碼評審;分析代碼的復雜度、密度和可測試性,達到對軟件質量的評審;分析接口,變量使用,控制流,識別隱藏的錯誤變量;對軟件代碼進行單元測試;對軟件代碼進行插裝,并分析軟件的語句、分支等覆蓋率;對測試過程中的用例、文檔等進行管理。

LDRA Testbed提供了BitMap插樁技術來解決覆蓋率測試。BitMap是一種位圖技術,插裝后的軟件在實際環境運行時將探針的特征值信息存放到一個固定大小的數組中,當需要對代碼覆蓋率進行分析時,通過Testbed提供的get_history命令得到歷史文件,再將該內容提供給Testbed進行覆蓋率分析。

TestBed作為覆蓋率測試工具,具有以下特性:

(1) 能夠與被測軟件編譯器相結合對源程序進行自動插裝,被插裝的程序即可以是平臺軟件也可以是嵌入式軟件;

(2) 根據插裝軟件輸出的覆蓋數據,能夠快速、清晰的分析出軟件總體、每個函數的語句覆蓋率、分支覆蓋率等;

(3) 根據分析出的函數覆蓋率數據,幫助測試人員快速定位未覆蓋的軟件程序,便于改進測試用例沒計的缺陷,進而提高軟件的覆蓋率。

2 基于LDRA TestBed的覆蓋率測試應用

2.1 被測軟件概況

被測軟件是基于Turbo C開發環境的嵌入式軟件,運行于微機板上TF存儲卡的DOS系統,通過接收上位機的控制參數及獲取外部導航設備的導航信息、傳感器的傳感器數據后,經數據處理后向外部設備發送控制命令,達到對外部設備的控制。

圖2 軟件運行連接圖

2.2 覆蓋率測試應用

被測軟件通過以下步驟實現覆蓋率測試:

(1) 在Testbed中新建一個Coverage Test的工程,并將被測軟件的程序文件test.c(不需要程序的.h文件)加入工程中。

(2) 選中Configure菜單下的Instrumentation Option選項,去掉:□Instrumentation for MC/DC Coverage;選中:□Compress Execution History Bitmap;在edit Instrument SourceFile Name(s):inszt_name.c中Name不能超過8個字符。然后在Analysis菜單點擊Start Analysis進行插裝,Testbed在和test.c同目錄下產生inszt_test.c文件該文件為經過插裝后的程序文件。

(3) 在inszt_test.c文件中查找“static unsigned int bitmaparr[]”,去掉其中的static;查找qqqbranches,將bitmaparr[qqqbranches/8+1]數據填入該數組;在main函數中添加覆蓋數據輸出到test.txt代碼,如下所示:

char str[sizeof(bitmaparr)];

FILE *dfile=fopen("c:\\test.txt","wt");

int j=sizeof(bitmaparr)/sizeof(int);

for (int i=0;i

{

sprintf(str,"%d\n",bitmaparr[i]);

fprintf(dfile, str);

}

fclose(dfile);

(4) 將inszt_test.c文件,刪除前面的“inszt_”標識后,拷貝到TF卡中,替換未插裝的test.c,啟動Turbo C跟其他的源文件一起編譯,產生可執行的目標文件test.exe;

(5) 啟動軟件并執行功能、性能、接口、邊界、性能、安全性、恢復性等測試類型,將軟件輸出的test.txt(文件中的數字內容為186個大于等于0,小于等于255的整型數字)文件修改為history.exh(分析后該文件會被刪除,注意備份),使用Testbed進行分析,即可獲得相應的程序或分支覆蓋率。

分析后找到test.dyn.htm文件就可以看到覆蓋率分析數據如圖3所示。

圖3 軟件覆蓋率分析數據

(6) 如某一個函數覆蓋率沒有達到100%,需要進入函數具體分析界面,如圖4所示。其中線框起來的是未執行到的部分,需要查找原因,如果是用例設計不夠充分,需要添加設計測試用例,執行插裝軟件后再分析覆蓋數據,直到覆蓋率指標達到要求為止。

圖4 軟件程序覆蓋執行情況

3 結 語

通過嵌入式軟件覆蓋率測試研究與應用,發現LDRA TestBed不僅能夠快速地對軟件程序進行插裝、覆蓋數據分析,而且根據覆蓋率結果的函數覆蓋情況,快速定位到未執行的程序。針對開發人員可以定位軟件錯誤,針對測試人員,根據代碼覆蓋情況可以梳理、優化、減少冗余的測試用例,爭取達到對程序的全覆蓋。覆蓋率測試工具在嵌入式軟件測試中廣泛應用,能夠大幅度提高覆蓋水平,規避嵌入式軟件難于測試的缺點,幫助測試人員大幅提高測試效率。

參考文獻

[1] 范勇,蘭景英,李繪卓.軟件測試技術[M].西安:西安電子科技大學出版社,2009.

[2] 鄭人杰.軟件工程[M].北京:清華大學出版社,1999.

[3] 上海創景計算機系統有限公司.LDRA Testbed中文技術說明[EB/OL].[2007?11?04].http://wenku.baidu.com.

[4] 朱紅軍.一種嵌入式軟件覆蓋和分析測試方法[J].航空計算技術,2009(5):65?67.

[5] 流螢,王英,劉漫丹.嵌入式軟件的覆蓋測試[J].自動化儀表,2012(6):63?66.

[6] 金維佳,施小敏.基于嵌入式軟件的覆蓋測試問題研究[J].信息技術,2011(4):117?120.

由于當前潛入式軟件開發語言多為C/C++,而針對C/C++做覆蓋率常用的工具有Bullseye Coverage和LDRA TestBed。Bullseye Coverage是Bullseye公司支持Unix,Windows操作系統和Boland C++,Gun C++,Inter C++等開發環境,提供的覆蓋率是分支覆蓋率而不是一般的覆蓋率。

圖1 覆蓋率測試工作流程

LDRA TestBed是LDRA公司研發的一款成熟的軟件測試商用工具,包括以下多個功能:按照編碼規則對代碼評審;分析代碼的復雜度、密度和可測試性,達到對軟件質量的評審;分析接口,變量使用,控制流,識別隱藏的錯誤變量;對軟件代碼進行單元測試;對軟件代碼進行插裝,并分析軟件的語句、分支等覆蓋率;對測試過程中的用例、文檔等進行管理。

LDRA Testbed提供了BitMap插樁技術來解決覆蓋率測試。BitMap是一種位圖技術,插裝后的軟件在實際環境運行時將探針的特征值信息存放到一個固定大小的數組中,當需要對代碼覆蓋率進行分析時,通過Testbed提供的get_history命令得到歷史文件,再將該內容提供給Testbed進行覆蓋率分析。

TestBed作為覆蓋率測試工具,具有以下特性:

(1) 能夠與被測軟件編譯器相結合對源程序進行自動插裝,被插裝的程序即可以是平臺軟件也可以是嵌入式軟件;

(2) 根據插裝軟件輸出的覆蓋數據,能夠快速、清晰的分析出軟件總體、每個函數的語句覆蓋率、分支覆蓋率等;

(3) 根據分析出的函數覆蓋率數據,幫助測試人員快速定位未覆蓋的軟件程序,便于改進測試用例沒計的缺陷,進而提高軟件的覆蓋率。

2 基于LDRA TestBed的覆蓋率測試應用

2.1 被測軟件概況

被測軟件是基于Turbo C開發環境的嵌入式軟件,運行于微機板上TF存儲卡的DOS系統,通過接收上位機的控制參數及獲取外部導航設備的導航信息、傳感器的傳感器數據后,經數據處理后向外部設備發送控制命令,達到對外部設備的控制。

圖2 軟件運行連接圖

2.2 覆蓋率測試應用

被測軟件通過以下步驟實現覆蓋率測試:

(1) 在Testbed中新建一個Coverage Test的工程,并將被測軟件的程序文件test.c(不需要程序的.h文件)加入工程中。

(2) 選中Configure菜單下的Instrumentation Option選項,去掉:□Instrumentation for MC/DC Coverage;選中:□Compress Execution History Bitmap;在edit Instrument SourceFile Name(s):inszt_name.c中Name不能超過8個字符。然后在Analysis菜單點擊Start Analysis進行插裝,Testbed在和test.c同目錄下產生inszt_test.c文件該文件為經過插裝后的程序文件。

(3) 在inszt_test.c文件中查找“static unsigned int bitmaparr[]”,去掉其中的static;查找qqqbranches,將bitmaparr[qqqbranches/8+1]數據填入該數組;在main函數中添加覆蓋數據輸出到test.txt代碼,如下所示:

char str[sizeof(bitmaparr)];

FILE *dfile=fopen("c:\\test.txt","wt");

int j=sizeof(bitmaparr)/sizeof(int);

for (int i=0;i

{

sprintf(str,"%d\n",bitmaparr[i]);

fprintf(dfile, str);

}

fclose(dfile);

(4) 將inszt_test.c文件,刪除前面的“inszt_”標識后,拷貝到TF卡中,替換未插裝的test.c,啟動Turbo C跟其他的源文件一起編譯,產生可執行的目標文件test.exe;

(5) 啟動軟件并執行功能、性能、接口、邊界、性能、安全性、恢復性等測試類型,將軟件輸出的test.txt(文件中的數字內容為186個大于等于0,小于等于255的整型數字)文件修改為history.exh(分析后該文件會被刪除,注意備份),使用Testbed進行分析,即可獲得相應的程序或分支覆蓋率。

分析后找到test.dyn.htm文件就可以看到覆蓋率分析數據如圖3所示。

圖3 軟件覆蓋率分析數據

(6) 如某一個函數覆蓋率沒有達到100%,需要進入函數具體分析界面,如圖4所示。其中線框起來的是未執行到的部分,需要查找原因,如果是用例設計不夠充分,需要添加設計測試用例,執行插裝軟件后再分析覆蓋數據,直到覆蓋率指標達到要求為止。

圖4 軟件程序覆蓋執行情況

3 結 語

通過嵌入式軟件覆蓋率測試研究與應用,發現LDRA TestBed不僅能夠快速地對軟件程序進行插裝、覆蓋數據分析,而且根據覆蓋率結果的函數覆蓋情況,快速定位到未執行的程序。針對開發人員可以定位軟件錯誤,針對測試人員,根據代碼覆蓋情況可以梳理、優化、減少冗余的測試用例,爭取達到對程序的全覆蓋。覆蓋率測試工具在嵌入式軟件測試中廣泛應用,能夠大幅度提高覆蓋水平,規避嵌入式軟件難于測試的缺點,幫助測試人員大幅提高測試效率。

參考文獻

[1] 范勇,蘭景英,李繪卓.軟件測試技術[M].西安:西安電子科技大學出版社,2009.

[2] 鄭人杰.軟件工程[M].北京:清華大學出版社,1999.

[3] 上海創景計算機系統有限公司.LDRA Testbed中文技術說明[EB/OL].[2007?11?04].http://wenku.baidu.com.

[4] 朱紅軍.一種嵌入式軟件覆蓋和分析測試方法[J].航空計算技術,2009(5):65?67.

[5] 流螢,王英,劉漫丹.嵌入式軟件的覆蓋測試[J].自動化儀表,2012(6):63?66.

[6] 金維佳,施小敏.基于嵌入式軟件的覆蓋測試問題研究[J].信息技術,2011(4):117?120.

主站蜘蛛池模板: 亚洲中文字幕久久无码精品A| 亚洲欧美成人影院| 亚洲精品无码日韩国产不卡| 国产福利在线免费观看| 欧美国产日韩在线| 成人va亚洲va欧美天堂| 久久不卡国产精品无码| 91美女在线| 国产精品自拍露脸视频| 久久香蕉欧美精品| 精品国产电影久久九九| 全免费a级毛片免费看不卡| 欧美亚洲第一页| 久久天天躁夜夜躁狠狠| 婷婷色中文网| 麻豆精品国产自产在线| 欧美性爱精品一区二区三区| 一区二区三区国产| 久久精品中文无码资源站| 亚洲性色永久网址| 久久9966精品国产免费| 国产激情无码一区二区三区免费| 亚洲精品在线观看91| 欧美色视频在线| 国产精品美女免费视频大全| 色丁丁毛片在线观看| 色精品视频| 亚洲色图欧美激情| 日韩a级毛片| 91精品啪在线观看国产| 亚洲国产中文欧美在线人成大黄瓜 | 四虎在线观看视频高清无码| 国产精品第一区| 国产91小视频| 精品人妻一区无码视频| 欧美午夜在线视频| 欧美精品啪啪| 亚洲第一国产综合| 日本亚洲最大的色成网站www| 亚洲黄网在线| 熟妇丰满人妻| 一级毛片不卡片免费观看| 日韩国产精品无码一区二区三区 | 国产成人精品一区二区不卡| 国产另类视频| 亚洲无码熟妇人妻AV在线| 一个色综合久久| 亚洲免费黄色网| 国产精品免费福利久久播放| 成人亚洲天堂| 日韩在线第三页| 国产精品黄色片| 午夜限制老子影院888| 中日无码在线观看| 亚洲av无码牛牛影视在线二区| 97亚洲色综久久精品| 91色爱欧美精品www| 在线观看精品国产入口| 亚洲国产欧美目韩成人综合| yy6080理论大片一级久久| 国产精品一区二区不卡的视频| 久久久久久久蜜桃| 国产区网址| 免费毛片视频| 国产啪在线91| 亚洲精品波多野结衣| 国产91av在线| 一本一道波多野结衣av黑人在线| 亚洲天堂成人在线观看| 国产乱子伦一区二区=| 综合成人国产| 日韩欧美国产成人| 天天做天天爱天天爽综合区| www.狠狠| 亚洲成aⅴ人片在线影院八| 国产高清无码麻豆精品| 国产成年无码AⅤ片在线| 91伊人国产| 日韩毛片免费观看| 免费不卡在线观看av| 免费人欧美成又黄又爽的视频| 亚洲色图欧美一区|