欧美日韩国产综合网_欧美精品大片_亚洲一区二区三区高清不卡_一区二区三区免费看_亚洲综合好骚_亚洲欧美影院_国产视频不卡_亚洲高清视频一区_免费精品视频_欧美精品一级

  • 基于模塊化設(shè)計(jì)的嵌入式軟件測(cè)試方法
    控制工程

          摘要:分析嵌入式軟件的特點(diǎn),綜述傳統(tǒng)的軟件測(cè)試方法;針對(duì)嵌入式軟件的特點(diǎn),提出嵌入式軟件的四級(jí)測(cè)試流程和集成測(cè)試的測(cè)試模型,并結(jié)合開(kāi)發(fā)數(shù)控系統(tǒng)的實(shí)例進(jìn)行分析。 
          關(guān)鍵字:嵌入式;模塊化
      嵌入式設(shè)計(jì)已經(jīng)成為工業(yè)現(xiàn)代化、智能化的必經(jīng)之路,嵌入式產(chǎn)品已經(jīng)深入到各行各業(yè)。嵌入式系統(tǒng)的專(zhuān)用程度較高,系統(tǒng)的整體繼承性相對(duì)較小,為了保證系統(tǒng)的穩(wěn)定性,軟件的測(cè)試成為嵌入式開(kāi)發(fā)的一個(gè)重要環(huán)節(jié)。由于嵌入式軟件自身的特點(diǎn),傳統(tǒng)的軟件測(cè)試?yán)碚摬荒苤苯佑糜谇度胧杰浖臏y(cè)試,因此,研究嵌入式軟件的測(cè)試有重要意義。 
          1 基本概念簡(jiǎn)述 
         1.1 模塊化設(shè)計(jì) 
          軟件的設(shè)計(jì)是以一定的方法為基礎(chǔ)的。面對(duì)越來(lái)越復(fù)雜的軟件開(kāi)發(fā)任務(wù),人們提出了各種軟件設(shè)計(jì)的模型。從用戶需求和系統(tǒng)要實(shí)現(xiàn)的任務(wù)功能出發(fā),把大型的軟件劃分為相對(duì)較小的模塊。為了減少模塊與模塊之間的關(guān)聯(lián)性,模塊之間的邏輯結(jié)構(gòu)相對(duì)獨(dú)立,無(wú)函數(shù)的交叉調(diào)用,數(shù)據(jù)傳遞由全局變量完成,這就是模塊化設(shè)計(jì)的基本思想。模塊化設(shè)計(jì)的核心是模塊的獨(dú)立性,主要包括功能獨(dú)立性和結(jié)構(gòu)獨(dú)立性,這使得軟件開(kāi)發(fā)的分工易于實(shí)現(xiàn)。軟件測(cè)試是軟件開(kāi)發(fā)中的關(guān)鍵環(huán)節(jié),基于模塊化設(shè)計(jì)的軟件測(cè)試模型簡(jiǎn)單,查錯(cuò)和糾錯(cuò)都易于實(shí)現(xiàn)。下面以單鏈路數(shù)據(jù)傳遞的軟件模型說(shuō)明模塊化軟件設(shè)計(jì)的軟件測(cè)試的基本原則。函數(shù)F(X-Y)定義為軟件模塊X到軟件模塊Y的接口函數(shù),用來(lái)通過(guò)終端顯示由模塊X進(jìn)入模塊Y的數(shù)據(jù)。如果模塊C執(zhí)行后發(fā)生錯(cuò)誤,則由模塊B和模塊C的數(shù)據(jù)接口函數(shù)F(B-C)判斷是否是模塊B出來(lái)的數(shù)據(jù)就是錯(cuò)誤的。如果F(B-C)不錯(cuò),則證明模塊C存在錯(cuò)誤;如果F(B-C)傳遞數(shù)據(jù)錯(cuò)誤,再察看F(A-B)傳出的數(shù)據(jù)是否錯(cuò)誤,如果不錯(cuò)則證明模塊B存在錯(cuò)誤。用此依次前推孤立錯(cuò)誤的方法,即可以很容易地定位錯(cuò)誤所在的模塊。這就是模塊化設(shè)計(jì)時(shí)軟件測(cè)試的基本原則。  
          1.2 嵌入式系統(tǒng)  
          嵌入式系統(tǒng)開(kāi)發(fā)有其自身的特點(diǎn)。一般先進(jìn)行硬件部分的開(kāi)發(fā),主要包括形成裸機(jī)平臺(tái),根據(jù)需要移植實(shí)時(shí)操作系統(tǒng),開(kāi)發(fā)底層的硬件驅(qū)動(dòng)程序等。硬件平臺(tái)測(cè)試通過(guò)后,應(yīng)該軟件的開(kāi)發(fā)調(diào)試是基于該硬件平臺(tái)進(jìn)行的,這同時(shí)也是對(duì)硬件平臺(tái)的一個(gè)測(cè)試。因此可以說(shuō),嵌入式系統(tǒng)的開(kāi)發(fā)過(guò)程是一個(gè)軟硬件互相協(xié)調(diào),互相反饋和互相測(cè)試的過(guò)程。一般來(lái)說(shuō),在嵌入式系統(tǒng)軟件中,底層驅(qū)動(dòng)程序、操作系統(tǒng)和應(yīng)用程序的界線是不清晰的,根據(jù)需要甚至混編在一起。這主要是由于嵌入式系統(tǒng)中軟件對(duì)硬件的依賴性造成的。嵌入式軟件對(duì)硬件的依賴性要求,軟件測(cè)試時(shí)必須最大限度地模擬被測(cè)軟件的實(shí)際運(yùn)行環(huán)境,以保證測(cè)試的可靠性。底層程序和應(yīng)用程序界限的不清晰增加了測(cè)試時(shí)的難度,測(cè)試時(shí)只有確認(rèn)嵌入式系統(tǒng)平臺(tái)及底層程序正確的情況下才能進(jìn)行應(yīng)用程序的測(cè)試,而且在系統(tǒng)測(cè)試時(shí),錯(cuò)誤的定位較為困難。軟件的專(zhuān)用性也是嵌入式軟件的一個(gè)重要特點(diǎn)。由于嵌入式軟件設(shè)計(jì)是以一定的目標(biāo)硬件平臺(tái)為基礎(chǔ)的、面向固定的任務(wù)進(jìn)行的,因此,一旦被加載到目標(biāo)系統(tǒng)上,功能必須完全確定。這個(gè)特點(diǎn)決定了嵌入式應(yīng)用軟件的繼承性較差,延長(zhǎng)的系統(tǒng)的測(cè)試時(shí)間,增加了測(cè)試費(fèi)用。嵌入式軟件的另外一個(gè)重要特點(diǎn)就是實(shí)時(shí)性。這是從軟件的執(zhí)行角度出發(fā)說(shuō)明的,也就是說(shuō)嵌入式軟件的執(zhí)行要滿足一定的時(shí)間約束。嵌入式系統(tǒng)中,應(yīng)用軟件自身算法的復(fù)雜度和操作系統(tǒng)任務(wù)調(diào)度,決定了系統(tǒng)資源的分配和消耗,因此,對(duì)系統(tǒng)實(shí)時(shí)性進(jìn)行測(cè)試時(shí),要借助一定的測(cè)試工具對(duì)應(yīng)用程序算法復(fù)雜度和操作系統(tǒng)任務(wù)調(diào)度進(jìn)行分析測(cè)試。可見(jiàn)嵌入式軟件與傳統(tǒng)的面向?qū)ο蠛兔嫦蜻^(guò)程的軟件相比有其自身的特點(diǎn)。針對(duì)這些特點(diǎn)對(duì)嵌入式軟件的測(cè)試進(jìn)行研究是必要的,有意義的。  
          1.3 嵌入式軟件測(cè)試  
          軟件測(cè)試是從經(jīng)濟(jì)、效率的角度出發(fā),對(duì)軟件代碼進(jìn)行質(zhì)量、正確性保證的一個(gè)過(guò)程。軟件測(cè)試是軟件開(kāi)發(fā)中的一個(gè)重要環(huán)節(jié),也是軟件從開(kāi)發(fā)過(guò)程到應(yīng)用過(guò)程的關(guān)鍵一環(huán)。嵌入式軟件也不例外,軟件測(cè)試逐漸成為一門(mén)成熟的學(xué)科,前人針對(duì)面向?qū)ο蠛兔嫦蜻^(guò)程的非實(shí)時(shí)軟件的測(cè)試作了大量的研究,其中大部分方法可以用到嵌入式軟件的測(cè)試。 
            根據(jù)不同的指標(biāo),軟件測(cè)試方法有不同的劃分方法。從軟件開(kāi)發(fā)過(guò)程中測(cè)試所處的不同階段可分為模塊測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試。根據(jù)是否需要運(yùn)行目標(biāo)代碼分為動(dòng)態(tài)測(cè)試和靜態(tài)測(cè)試;根據(jù)目標(biāo)代碼的可見(jiàn)性可分為白盒測(cè)試(結(jié)構(gòu)測(cè)試)和黑盒測(cè)試(功能測(cè)試)。在軟件的測(cè)試中,每種測(cè)試方法都不是孤立的。為了最經(jīng)濟(jì)最有效地達(dá)到測(cè)試的目的,各種測(cè)試方法往往是互相嵌套的。例如,在軟件的單元測(cè)試階段,可以用黑盒測(cè)試和白盒測(cè)試的方法分別進(jìn)行動(dòng)態(tài)測(cè)試。 
           值得一提的是,近年來(lái)軟件測(cè)試中,測(cè)試代碼的覆蓋率逐漸成為軟件測(cè)試的統(tǒng)一標(biāo)準(zhǔn),因此不管采用何種測(cè)試方法,盡可能地提高軟件測(cè)試中的代碼覆蓋率是必需的。軟件測(cè)試代碼覆蓋率是基于白盒測(cè)試方法的,因此,為了提高軟件測(cè)試的代碼覆蓋率,測(cè)試人員必須清楚源代碼的結(jié)構(gòu),擁有程序設(shè)計(jì)文檔,以便設(shè)計(jì)測(cè)試用例使測(cè)試盡可能地覆蓋程序內(nèi)部結(jié)構(gòu)的每條語(yǔ)句,提高代碼的覆蓋率。 
           2 基于模塊化設(shè)計(jì)的嵌入式軟件四級(jí)測(cè)試流程 
           根據(jù)嵌入式系統(tǒng)的開(kāi)發(fā)流程,為了最經(jīng)濟(jì)地實(shí)現(xiàn)系統(tǒng)的功能,采用自頂向下、層層推進(jìn)的方法對(duì)嵌入式系統(tǒng)進(jìn)行測(cè)試,在四級(jí)測(cè)試中,本測(cè)試階段以前的測(cè)試完成后,當(dāng)發(fā)現(xiàn)錯(cuò)誤時(shí),可排隊(duì)此測(cè)試階段以前的錯(cuò)誤,在本測(cè)試階段內(nèi)查找錯(cuò)誤。這并不是一個(gè)絕對(duì)準(zhǔn)確的方法,但最大限度地節(jié)了錯(cuò)誤定位的時(shí)間。 
           2.1 系統(tǒng)平臺(tái)測(cè)試
          這部分包括硬件電路測(cè)試、操作系統(tǒng)及底層驅(qū)動(dòng)程序的測(cè)試等。硬件電路的測(cè)試需要用專(zhuān)門(mén)的測(cè)試工具進(jìn)行測(cè)試。這里不再多述。操作系統(tǒng)和底層驅(qū)動(dòng)程序的測(cè)試主要包括測(cè)試操作系統(tǒng)的任務(wù)調(diào)度、實(shí)時(shí)性能、通信端口的數(shù)據(jù)傳輸率。該階段測(cè)試完成后,系統(tǒng)應(yīng)為一個(gè)完整的嵌入式系統(tǒng)平臺(tái),用戶只需添加應(yīng)用程序即可完成特定的任務(wù)。 
          2.2 模塊測(cè)試 
           把大型的嵌入式軟件系統(tǒng)劃分為若干個(gè)相對(duì)較小的任務(wù)模塊,由不同的程序員分別同時(shí)對(duì)其進(jìn)行編碼。編碼完成后,把各個(gè)模塊集成起來(lái)前,必須對(duì)單個(gè)模塊進(jìn)行測(cè)試。由于沒(méi)有其它數(shù)據(jù)模塊進(jìn)行數(shù)據(jù)傳遞的支持,該階段測(cè)試一段是在宿主機(jī)上進(jìn)行的(宿主機(jī)有豐富的資源和方便的調(diào)試環(huán)境)。此階段主要是進(jìn)行白盒測(cè)試,盡可能地測(cè)試每一個(gè)函數(shù)、每一個(gè)條件分支、每一個(gè)程序語(yǔ)句,提高代碼測(cè)試的覆蓋率 
    。由于只有單個(gè)模塊正確才有整體集成的必要性,因此,單個(gè)模塊測(cè)試時(shí)測(cè)試一定要充分、完整。模塊測(cè)試階段,測(cè)試用例的構(gòu)造不但要測(cè)試系統(tǒng)正常的運(yùn)行情況,還要進(jìn)行邊界測(cè)試。邊界測(cè)試就是進(jìn)行某一數(shù)據(jù)變量的最大值和最小值的測(cè)試,同時(shí)進(jìn)行越界測(cè)試,即輸入不該輸入的數(shù)據(jù)變量測(cè)試系統(tǒng)的運(yùn)行情況。理想的嵌入式系統(tǒng)是不應(yīng)該由用戶的信息交互導(dǎo)致死機(jī)的,這也是嵌入式設(shè)計(jì)的一個(gè)基本要求。因此,不論進(jìn)行何種測(cè)試,系統(tǒng)死機(jī)都該被作為測(cè)試錯(cuò)誤處理。在模塊測(cè)試階段,由模塊化編程的基本思想,根據(jù)模塊內(nèi)部的緊湊程序,也可以把大的模塊劃分成小的模塊。在程序內(nèi)部,小模塊之間數(shù)據(jù)傳遞的入口設(shè)計(jì)接口函數(shù),用于快速地定位錯(cuò)誤。用此模塊嵌套的思想進(jìn)行軟件測(cè)試,需要模塊內(nèi)部結(jié)構(gòu)清晰,數(shù)據(jù)鏈路簡(jiǎn)單。 
           2.3 集成測(cè)試 
          單個(gè)軟件模塊測(cè)試正確之后,將所有模塊集成起來(lái)進(jìn)行測(cè)試。本階段主要是找出各模塊之間數(shù)據(jù)傳遞和系統(tǒng)組成后的邏輯結(jié)構(gòu)的錯(cuò)誤。在宿主機(jī)上采用黑盒與白盒相結(jié)合的方法進(jìn)行測(cè)試,要最大限度地模擬實(shí)際運(yùn)行環(huán)境,可以屏蔽掉一些不影響系統(tǒng)執(zhí)行的和數(shù)據(jù)傳遞的難以模擬的函數(shù)。集成測(cè)試是模塊化設(shè)計(jì)軟件的測(cè)試優(yōu)點(diǎn)充分體現(xiàn)的階段。集成測(cè)試前,應(yīng)該由程序員根據(jù)模塊之間的數(shù)據(jù)的輸入輸出編寫(xiě)模塊接口函數(shù),這需要負(fù)責(zé)不同軟件模塊的程序員共同協(xié)調(diào)完成,然后將模塊接口函數(shù)集成到接收數(shù)據(jù)模塊的入口處。由前面的分析可知,單鏈路數(shù)據(jù)傳遞的軟件模塊集成測(cè)試時(shí)容易定位錯(cuò)誤所在的軟件模塊。一個(gè)軟件模塊的數(shù)據(jù)不一定只有另外一個(gè)模塊提供,即軟件模塊的數(shù)據(jù)鏈路不一定只是單鏈路的,測(cè)試時(shí)可以把復(fù)雜鏈路結(jié)構(gòu)的數(shù)據(jù)傳遞劃分為單鏈路結(jié)構(gòu)數(shù)據(jù)傳送進(jìn)行錯(cuò)誤定位。修改輸出數(shù)據(jù)的軟件模塊時(shí),可能導(dǎo)致輸入數(shù)據(jù)的軟件模塊引入新的錯(cuò)誤,因此在這里引入關(guān)聯(lián)矩陣確定修改某一模塊后需要重要測(cè)試的模塊。 
         假定模塊化設(shè)計(jì)的嵌入式系統(tǒng)軟件由軟件模塊Ai(i=1,2,…,m,n)組成,m表示矩陣的行號(hào),n表示矩陣的列號(hào)。在關(guān)聯(lián)矩陣中,Aij=1表示Aj接受了Ai輸出的數(shù)據(jù),故修改了Ai重新測(cè)試Ai的同時(shí)也需重新測(cè)試Aj。集成測(cè)試是在擁有程序設(shè)計(jì)文檔、程序結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)時(shí),對(duì)軟件模塊在集成中出現(xiàn)的錯(cuò)誤進(jìn)行測(cè)試。集成測(cè)試時(shí),根據(jù)模塊接口函數(shù)定位錯(cuò)誤修改代碼,根據(jù)關(guān)聯(lián)矩陣確定重新測(cè)試的軟件模塊。
            2.4 系統(tǒng)測(cè)試 
           集成測(cè)試完成后,退出宿主機(jī)測(cè)試環(huán)境,把系統(tǒng)移植到目標(biāo)機(jī)上來(lái),完成應(yīng)用到現(xiàn)場(chǎng)環(huán)境中,從用戶的角度對(duì)系統(tǒng)進(jìn)行黑盒測(cè)試,驗(yàn)證每一項(xiàng)具體的功能。由于測(cè)試者對(duì)程序內(nèi)容程序執(zhí)行情況一無(wú)所知,因此本測(cè)試階段的錯(cuò)誤定位比較困難。系統(tǒng)測(cè)試階段應(yīng)該進(jìn)行意外測(cè)試和破壞性測(cè)試,即測(cè)試系統(tǒng)正常執(zhí)行情況下不該發(fā)生的激發(fā)活動(dòng)和人為的破壞性的測(cè)試,進(jìn)一步驗(yàn)證系統(tǒng)性能。系統(tǒng)測(cè)試階段不應(yīng)該確定錯(cuò)誤后立即修改代碼,應(yīng)根據(jù)一定的錯(cuò)誤發(fā)生頻率,確定測(cè)試周期,在每個(gè)測(cè)試周期結(jié)束時(shí)修改代碼,進(jìn)行反復(fù)測(cè)試;否則,不但增加了完全測(cè)試的任務(wù)量,而且降低了測(cè)試的可信度。 
            2.5 測(cè)試結(jié)果分析 
           測(cè)試結(jié)果的分析可以定位錯(cuò)誤,指導(dǎo)程序員修改代碼,同時(shí)指出測(cè)試進(jìn)行的程序并進(jìn)一步指明測(cè)試方向。測(cè)試結(jié)果的分析是一個(gè)由測(cè)試結(jié)果和測(cè)試預(yù)得結(jié)果進(jìn)行分析、比較和定位錯(cuò)誤的過(guò)程。測(cè)試結(jié)果的分析是一次測(cè)試的最后環(huán)節(jié),分析時(shí)應(yīng)該考慮軟件的運(yùn)行環(huán)境和實(shí)際運(yùn)行環(huán)境的差異以及各種外界因素的影響等。 
            2.6 測(cè)試用例的構(gòu)造與管理 
            測(cè)試用例是為了測(cè)試目標(biāo)程序設(shè)計(jì)的包括輸入項(xiàng)和預(yù)得結(jié)果的一種文件,根據(jù)測(cè)試環(huán)境和測(cè)試目標(biāo)程序的不同,可分為某種格式的文檔或某種輸入行為(如一次按鍵)等。測(cè)試用例的構(gòu)造要盡可能覆蓋所有可能的取值范圍,使測(cè)試盡可能地覆蓋所有程序代碼,提高代碼的測(cè)試覆蓋率,同時(shí)又不作多余、重復(fù)和無(wú)意義的測(cè)試。在嵌入式軟件測(cè)試的不同階段,要構(gòu)造不同的測(cè)試用例;在系統(tǒng)平臺(tái)測(cè)試階段,要構(gòu)造針對(duì)系統(tǒng)任務(wù)調(diào)度、實(shí)時(shí)性能和底層驅(qū)動(dòng)程序的測(cè)試用例;在模塊測(cè)試階段,應(yīng)構(gòu)造針對(duì)某一模塊進(jìn)行測(cè)試的測(cè)試用例;在集成測(cè)試階段,針對(duì)系統(tǒng)集成時(shí)數(shù)據(jù)傳遞、結(jié)構(gòu)斜接的問(wèn)題構(gòu)造相應(yīng)的測(cè)試用例;在系統(tǒng)測(cè)試階段,要構(gòu)造針對(duì)某項(xiàng)功能的或多項(xiàng)功能結(jié)合在一起的測(cè)試用例,或使用已經(jīng)在同類(lèi)產(chǎn)品上已經(jīng)驗(yàn)證正確的測(cè)試用例。測(cè)試用例是可復(fù)用的。此外大型的軟件開(kāi)發(fā)過(guò)程中,測(cè)試用例的種類(lèi)繁多,應(yīng)該按一定的方法進(jìn)行管理。用數(shù)據(jù)庫(kù)的來(lái)管理測(cè)試用例是一個(gè)很好的選擇。根據(jù)測(cè)試階段將測(cè)試用例進(jìn)行劃分,然后用關(guān)鍵字唯一確定。這樣在使用、修改和保存測(cè)試用例時(shí)都很方便,直接用查詢的方式就可以調(diào)出測(cè)試用例。 
           3 數(shù)控系統(tǒng)軟件測(cè)試 
           本數(shù)控系統(tǒng)采用ARM7處理器,操作系統(tǒng)采用μC/OS實(shí)時(shí)操作系統(tǒng),是一個(gè)典型的嵌入式系統(tǒng)。由于數(shù)控系統(tǒng)較為復(fù)雜,開(kāi)發(fā)過(guò)程中將任務(wù)進(jìn)行了詳細(xì)的劃分,軟件的開(kāi)發(fā)采用模塊化開(kāi)發(fā)。開(kāi)發(fā)過(guò)程中,幾個(gè)模塊由不同的程序員分別進(jìn)行編碼,分別由程序員進(jìn)行模塊測(cè)試,并按白盒測(cè)試的方法進(jìn)行覆蓋測(cè)試。最后集成測(cè)試前,根據(jù)關(guān)聯(lián)矩陣,程序員協(xié)作編寫(xiě)了模塊接口函數(shù)F(A1-A2)、F(A1-A4)、F(A1-A5)、F(A1-A6)、F(F2-A3)、F(A3-A4)、F(A4-A5)、F(F5-A6)、F(A6-A2),分析可知,一些關(guān)鍵模塊,如譯碼模塊和刀補(bǔ)模塊的測(cè)試代碼覆蓋率達(dá)到90%之上。
           4 結(jié)論  
           文章對(duì)嵌入式軟件的特點(diǎn)和傳統(tǒng)的測(cè)試方法作了分析之后,提出了四級(jí)測(cè)試流程和集成測(cè)試的模型。此測(cè)試方法用于工程機(jī)械控制器和數(shù)控系統(tǒng)開(kāi)發(fā)的測(cè)試。測(cè)試的效率和可靠性滿足要求。文中的單鏈路數(shù)據(jù)傳遞的錯(cuò)誤定位、模塊接口函數(shù)、關(guān)聯(lián)矩陣等方法也可以用于面向?qū)ο蟮暮兔嫦驅(qū)ο蟮能浖到y(tǒng)。 


     
      嵌入式設(shè)計(jì)已經(jīng)成為工業(yè)現(xiàn)代化、智能化的必經(jīng)之路,嵌入式產(chǎn)品已經(jīng)深入到各行各業(yè)。嵌入式系統(tǒng)的專(zhuān)用程度較高,系統(tǒng)的整體繼承性相對(duì)較小,為了保證系統(tǒng)的穩(wěn)定性,軟件的測(cè)試成為嵌入式開(kāi)發(fā)的一 相關(guān)
     
    網(wǎng)站首頁(yè)  |  關(guān)于我們  |  聯(lián)系我們  |  廣告服務(wù)  |  版權(quán)隱私  |  友情鏈接  |  站點(diǎn)導(dǎo)航
     
    欧美日韩国产综合网_欧美精品大片_亚洲一区二区三区高清不卡_一区二区三区免费看_亚洲综合好骚_亚洲欧美影院_国产视频不卡_亚洲高清视频一区_免费精品视频_欧美精品一级
    亚洲影视在线| 亚洲色诱最新| 很黄很黄激情成人| 欧美一区二区三区久久精品茉莉花| 国产精品亚洲欧美| 国产视频在线观看一区| 麻豆av福利av久久av| 欧美精品亚洲精品| 国产亚洲第一区| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 一区二区激情| 久久高清国产| 欧美精品aa| 欧美亚洲视频| 在线观看成人av| 每日更新成人在线视频| 亚洲青色在线| 久久综合中文| 中文亚洲字幕| 亚洲一二三区在线| 老牛影视一区二区三区| 一区二区三区四区五区视频 | 欧美久久成人| 在线一区日本视频| 久久精品主播| 国产伦精品一区二区三区视频孕妇| 国产精品毛片在线看| 国产在线精品二区| 欧美69wwwcom| 国产亚洲一级| 韩国一区二区三区在线观看| 在线综合亚洲| 亚洲巨乳在线| 在线播放不卡| 亚洲视频福利| 狠狠色噜噜狠狠狠狠色吗综合| 国产精品社区| 国精品一区二区| 国产一区自拍视频| 麻豆av一区二区三区| 99视频精品| 蜜桃视频一区| 国产精品美女诱惑| 亚洲看片网站| 在线观看的日韩av| 美女精品国产| 国产精品久久久一区二区| 亚洲精品看片| 亚洲美女色禁图| 1024日韩| 欧美午夜a级限制福利片| 国产精品国产一区二区| 狠狠色噜噜狠狠色综合久| 国内精品久久国产| 亚洲午夜精品一区二区| 黄页网站一区| 国产精品区一区| 久久国产一区二区| 欧美日韩精选| 亚洲第一在线| 亚洲视频成人| 奶水喷射视频一区| 久久黄色网页| 激情久久一区| 亚洲精品影院在线观看| 亚洲精品在线观看免费| 麻豆av一区二区三区| 欧美国产专区| 亚洲第一在线综合在线| 国产一区91| 欧美成人高清| 亚洲国产精品123| 亚洲在线黄色| 久久久精品性| 亚洲久色影视| 欧美激情1区2区| 亚洲精品色图| 欧美在线高清| 在线观看日韩av电影| 国产免费成人| 欧美日韩影院| 国产精品一区二区你懂得| 久久久久一区二区| 亚洲精品欧洲| 亚洲视频综合| 欧美在线高清| 久久国产精品一区二区三区四区| 国产精品人人爽人人做我的可爱| 久久久综合香蕉尹人综合网| 亚洲午夜激情在线| 一本综合精品| 欧美一级专区| 蜜桃久久av| 亚洲少妇诱惑| 91久久久久| 国内一区二区三区在线视频| 午夜一区二区三区不卡视频| 亚洲第一伊人| 亚洲一级网站| 欧美午夜精品久久久久免费视| 亚洲永久免费精品| 日韩午夜电影| 国产在线欧美日韩| 在线亚洲一区| 一区二区日本视频| 亚洲精品欧美精品| 亚洲激情社区| 亚洲精品看片| 一区二区精品在线| 999亚洲国产精| 亚洲成色精品| 亚洲激情女人| 夜久久久久久| 国产日韩欧美亚洲一区| 亚洲麻豆av| 一区二区三区|亚洲午夜| 一本一道久久综合狠狠老精东影业| 国产主播一区| 午夜天堂精品久久久久| 99国产精品久久久久老师 | 欧美福利网址| 久久字幕精品一区| 欧美一区1区三区3区公司| 国产日韩精品一区观看| 国产视频亚洲| 欧美中文字幕| 模特精品在线| 久久久亚洲一区| 国产一区二区三区四区老人| 欧美精品一区在线| 亚洲二区在线| 一区二区三区精品国产| 国产精品久久亚洲7777 | 欧美精品导航| 国产精品jizz在线观看美国| 午夜亚洲影视| 欧美视频亚洲视频| 99精品国产福利在线观看免费| 雨宫琴音一区二区在线| 国产亚洲一区在线| 欧美大片专区| 亚洲视频导航| 一区二区三区高清视频在线观看| 亚洲一区二区三区四区五区午夜| 国产精品日韩二区| 99视频精品免费观看| 欧美88av| 亚洲综合好骚| 影音先锋在线一区| 乱人伦精品视频在线观看| 韩国亚洲精品| 久久久水蜜桃| 国产精品视频免费一区| 欧美日一区二区三区在线观看国产免| 亚洲日本激情| 午夜日韩福利| 亚洲欧美高清| 在线日本高清免费不卡| 亚洲欧美一级二级三级| 国产精品99一区二区| 免费在线国产精品| 国产欧美日韩一区| 精品999日本| 亚洲欧美久久久| 一本久道久久综合婷婷鲸鱼| 久久久久欧美| 午夜亚洲视频| 国产日韩1区| 在线成人av| 欧美二区视频| 久久这里只有| 日韩午夜激情| 91久久亚洲| 久久一区欧美| 欧美一区二区三区免费看| 国产精品久久久对白| 欧美在线网址| 国产日韩欧美一区二区| 亚洲开发第一视频在线播放| 狠狠色综合一区二区| 久久久久久穴| 欧美1区2区视频| 欧美在线3区| 欧美精品97| 国产伊人精品| 亚洲激情一区| 伊人影院久久| 亚洲最黄网站| 国产女主播一区二区| 99精品99久久久久久宅男| 亚洲国产三级| 一本一道久久综合狠狠老精东影业| 亚洲一级电影| 国产午夜精品一区二区三区欧美 | 国精品一区二区三区| 欧美日韩国产高清视频| 久热国产精品| 午夜精品999| 老鸭窝毛片一区二区三区| 国产美女诱惑一区二区| 亚洲一区精品视频| 9国产精品视频| 国产精品久久久久久久免费软件| 国产精品一区二区a| 亚洲一区欧美激情| 久久人人97超碰国产公开结果| 性一交一乱一区二区洋洋av| 久久九九99| 欧美三区视频| 亚洲激情网址| 男女精品视频| 亚洲午夜精品一区二区| 99人久久精品视频最新地址| 免费不卡亚洲欧美| 国产精品sss| 国产精品一国产精品k频道56| 欧美亚洲三区| 亚洲国产精品综合| 久久亚洲一区| 国产日韩久久| 欧美精品一区二区三区在线看午夜 | 久久精品欧洲| 亚洲午夜一级| 久久天堂精品| 欧美日韩调教| 国产午夜精品在线| 欧美日韩一区在线观看视频| 99精品欧美一区二区三区| 看欧美日韩国产| 一区二区三区四区五区精品| 欧美激情亚洲| 亚洲欧美日韩精品在线| 欧美精品三级| 国产日韩亚洲| 亚洲高清资源综合久久精品| 欧美成人国产| 亚洲影视综合| 亚洲第一在线| 欧美人成在线| 在线看无码的免费网站| 欧美在线高清| 久久av最新网址| 亚洲日本黄色| 激情欧美一区| 欧美日韩亚洲一区二区三区在线| 99精品免费| 亚洲精品在线观看免费| 激情久久综合| 亚洲无线视频| 国产精品草草| 欧美精品一卡| 欧美在线亚洲| 欧美一区二区三区久久精品| 免费亚洲一区二区| 亚洲日本精品国产第一区| 黄色免费成人| 激情综合电影网| 亚洲一二区在线| 一区三区视频| 亚洲午夜精品久久久久久app| 欧美日韩亚洲一区二区三区四区| 六月婷婷一区| 欧美高清一区| 国产精品国码视频| 欧美日韩在线播放一区二区| 欧美日韩岛国| 在线视频观看日韩| 中文精品视频| 欧美激情第二页| 久久综合久久久| 欧美粗暴jizz性欧美20| 欧美精品七区| 在线观看福利一区| 精品不卡视频| 亚洲激情啪啪| 国产精品尤物| 久久久精品性| 欧美日韩一区在线观看视频| 激情av一区| 国产欧美一区二区视频| 免费日韩av片| 欧美日韩国产不卡在线看| 狠狠入ady亚洲精品经典电影| 极品少妇一区二区三区| 韩日成人在线| 中国成人在线视频| 欧美一区二区三区在线播放 | 国产精品日韩欧美一区二区三区| 国产欧美另类| 欧美激情第二页| 激情综合中文娱乐网| 一区二区三区免费看| 久久亚洲一区| 亚洲黑丝一区二区| 久久国产精品一区二区三区| 欧美日韩专区| 国产精品久久777777毛茸茸| 久久人人精品| 亚洲久久在线| 欧美.www| 国产日本精品| 欧美日韩高清免费| 国产亚洲精品v| 欧美日韩亚洲一区二区三区在线| 99精品国产在热久久下载| 国产日韩欧美在线播放不卡| 欧美一区二区三区在线播放| 亚洲美女91| 欧美日韩高清免费| 免费在线成人av| 亚洲伦伦在线| 欧美日韩影院| 久久精品官网| 国产偷自视频区视频一区二区| 午夜电影亚洲| 美日韩免费视频| 日韩天天综合| 在线国产日韩| 国产一区久久| 久久综合导航| 欧美一级视频| 国产欧美精品| 99国产精品视频免费观看一公开| 久久精品一区二区国产| 国产欧美日韩在线播放| 激情欧美国产欧美| 国产精品二区三区四区| 久久午夜激情| 最新成人av网站| 亚洲成色最大综合在线| 久久亚洲国产精品一区二区| 亚洲一卡久久| 亚洲免费中文| 久久成人资源| 99日韩精品| 宅男噜噜噜66一区二区| 一区久久精品| 很黄很黄激情成人| 狠狠色综合色区| 欧美日韩亚洲一区二区三区在线观看| 久久精品日韩| 久久午夜精品| 亚洲欧美亚洲| 国产在线一区二区三区四区| 你懂的一区二区| 久久久久九九九| 国产欧美日韩综合一区在线观看| 亚洲高清成人| 国产日韩亚洲欧美精品| 国产乱码精品一区二区三区不卡| 国产精品毛片一区二区三区| 亚洲一区二区三区在线观看视频| 国产日韩在线一区二区三区| 一区二区三区欧美成人| 亚洲一区二区三区午夜| 久久精品日产第一区二区 | 亚洲国产专区| 中文在线一区| 免费永久网站黄欧美| 久久午夜精品| 韩国在线一区| 影音先锋久久久| 国产日韩欧美一区在线| 六月婷婷一区| 国产精品v一区二区三区| 影音国产精品| 亚洲欧美日韩国产综合精品二区| 久久精品二区| 精品二区久久| 免费在线亚洲欧美| 快she精品国产999| 亚洲欧洲一二三| 欧美中日韩免费视频| 欧美日本亚洲| 夜夜嗨一区二区三区| 午夜精品美女久久久久av福利| 亚洲午夜黄色| 久久久99爱| 99精品国产高清一区二区| 久久久久在线| 国产日本精品| 亚洲视频高清| 久久久久久9| 99国产精品| 黄色另类av| 欧美福利网址| 免费在线国产精品| 欧美日本亚洲| 久久久久欧美| 亚洲一区日韩| 欧美日韩国产高清| 国产农村妇女精品一区二区| 亚洲一级网站| 欧美日韩影院| 久久久www| 午夜综合激情| 国产精品久久久亚洲一区| 精久久久久久| 欧美久久视频| 免费看亚洲片|