精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解Visual Studio 2010敏捷測試驅動開發

開發 后端
在這里我們將討論Visual Studio 2010敏捷測試驅動開發,希望對大家用好VS2010有所幫助。

本文主要為大家探討的是Visual Studio 2010敏捷測試驅動開發,開發環境為Visual Studio 2010 Ultimate Beta2版本。希望本文能對大家有所幫助。

在微軟Visual Studio 2010 Ultimate Beta2版本中,MSF for Agile Software Development 5.0過程框架,是以Scrum模型為基礎導向擴展,并且結合了VSTS2010工具的眾多測試功能特性,為更多的從事微軟.NET技術相關的開發人員以實現高質量的軟件產品。

#T#

在本文中,筆者將介紹Visual Studio 2010 Ultimate Beta2版本中的MSF for Agile的Scrum和XP敏捷思想與VSTS2010強大的測試功能,通過對這些內容的闡述,讓讀者了解在VSTS2010中的敏捷測試驅動開發方法,以便于.NET開發人員能把敏捷驅動開發為導向的技術,應用在自己的項目和團隊中,從而構筑出敏捷的開發團隊。

1.引言

在前幾篇的文章中提到過的Scrum,相信讀者們都應該已經不陌生了,它的核心在于迭代,并且以每個sprint時間段的周期進行產品功能迭代。團隊首先瀏覽開發需求,考慮可用技術,并對自身技術及能力做出評估,所有實踐就是圍繞著一個迭代和增量的過程來展開,而在每個迭代內部,可以使用測試驅動和持續集成的XP(eXtreme Programming,極限編程)工程實踐。

XP,是最輕量級的開發流程,其最主要的精神是“在客戶有系統需求時,給予及時滿意的可執行程序”,所以最適合需求快速變動的方案。Scrum與XP所不同的是,Scrum只是一個敏捷過程框架,它并沒有提供核心的價值觀與指導原則,也缺乏具體的實踐方法,例如,測試驅動開發、結隊編程等。Scrum僅僅規定了實施的基本流程與檢查表,它是一個開放的管理框架,重心在于項目管理,而不是指導團隊成員如何進行開發。這既是Scrum的優點,因為它很靈活,能夠適應大多數場景,也可以兼容并包地引入其他方法學所提倡的實踐;同時也是Scrum存在的固有缺陷,使得它難以被實踐。如果沒有一位優秀的Scrum Master,而團隊成員又缺乏自我組織和管理的能力,就會讓開發過程變得一團糟,團隊成員將會無所適從。

在團隊中開發人員隨時可以與客戶進行有效溝通,撰寫user stories以確認需求。簡易快速的系統設計,撰寫獨立的驗證程序以解決特殊困難的問題,并找出演算法即可丟棄驗證程式。規劃多次小型階段的方案計劃,并且以最快得速度完成每一階段的程序交付客戶,客戶負責Acceptance tests;Coding前必須完成Unit Test與Acceptance tests程序,所有模組整合前都須經過Unit Tests;開發人員必須快速回應Bug和需求變更;要求二人一組使用一臺電腦設計程序,當一人coding時,另一人負責思考與設計(結對編程);程序必須符合程序規范,并常做程序的重構(Refactoring)。

在Agile開發實踐方面,Scrum可以借鑒XP提倡的結隊編程以及測試驅動開發實現編碼,通過重構對編碼進行調整以適應需求的變化,Scrum為體,XP為用。XP開發流程的基本步驟,如圖1所示。

XP開發流程的基本步驟
圖1 XP開發流程的基本步驟

測試驅動開發意味著你要先寫一個自動測試,然后編寫恰好夠用的代碼,讓它通過這個測試,接著對代碼進行重構,主要是提高它的可讀性和消除重復,這將會對Agile Team整體素質要求較高。

時至今日,Agile Process的精神已經成為共識,但是沒有一種固定的流程可以重復使用在不同的方案上,而且不管是RUP、XP、SCRUM、或其他的開發流程都允許相當大的彈性,我們必須按方案性質的不同,調整或混合出適合的開發流程,并允許團隊在進行中做必要的彈性修改,才能夠達成目標。


2.敏捷之驅動開發

在XP開發實踐中的TDD(Test Driven Development),它有一個別稱叫 Test-First Programming,要求開發的第一步是根據需求,必須先寫單元測試程序,然后再寫實現程序讓符合需求的測試通過。我們知道XP中的需求是以“用戶故事”(User Story)的形式描述的,而用戶故事實質上就是一種軟件“特性”(Feature)。TDD 講的是如何通過編寫“測試”,尤其是單元測試,來驅動軟件的設計和編程。

系統測試從哪里來?來自系統需求。系統需求從哪里來?來自用戶目標,TDD則也不例外。在需求不穩定的情況下,這樣的TDD會有什么問題?會不會帶來許多冗余的工作?答案是肯定的,這樣必然會帶來單元測試的不穩定,這就需要敏捷開發人員有相當強的抽象能力,抽象、界定出主要相對穩定需求就可以實施TDD。

敏捷團隊可以采用在軟件工程學里有比較成熟的OOAD(Object Orient Analysis & Design,面向對象的分析和設計)軟件開發方法(參見筆者著作《我也能做CTO之程序員職業規劃》的高級程序員技術能力),在用戶需求層面找到,并抽象出相對不變的需求。OOAD科學分析法體現的是‘現實事實的抽象理解能力’,以業務為中心來分析解決問題,不涉及求解方案。分析階段所做的主要工作是理解問題和需求構模,將現實世界中的問題映射到問題域,從而穩定主要需求。OOAD包括‘設計模式能力’,反映計算機世界來體現現實世界。

分析階段主要是明確用戶的功能需求,滿足用戶所需的系統部件及其結構。設計階段則主要是確定實現用戶需求的方法,即怎樣做才能滿足用戶需求,并構造出系統的實現藍圖。

OOAD方法要求在設計中要映射現實世界中(指問題域,如圖2所示)的對象和實體,如程序員、汽車、項目實施人員等。這就需要在設計中盡可能地接近現實世界,以最自然的方式表述實體。所以,面向對象技術的優點就是能夠構建與現實世界相對應的問題模型(橋梁),并保持它們的結構關系和行為模式。

例如,我們通常做的系統分析是在假定需求不變的情況下進行的,這樣可以把企業的資源配置到最優的程度,但是企業的需求是變化、不穩定的,那么以變化的需求為基礎建立起來的軟件系統當然也就不穩定了。需求是項目的根本,既然需求都是不穩定的,那么何以建立起穩定的企業信息系統呢?

軟件需求抽象示意圖
圖2 軟件需求抽象示意圖

采用OOAD開發的方法時的需求不穩定,可分析出這不穩定的東西就是對象。世界都是由對象組成的,而對象都是持久的,例如動物、植物已經有相當長的時間。雖然對象也在變化,動物、植物也在不斷進化。但對象在一個相當長的時期內都存在,動植物的存在時間肯定比任何一家企業長久。面向對象開發方法的精髓就是從企業的不穩定需求中分析出企業的穩定對象,以企業對象為基礎來組織需求、構架系統。這樣得出的系統就會比傳統的系統要穩定得多,因為企業的模式一旦變化,只需將穩定的企業對象重新組織就行了。

在敏捷XP中,采用的是TDD驅動軟件的設計和編程實踐,即,測試驅動開

發。筆者負責過很多項目的敏捷實踐中,更喜歡UDD(Use Case-Driven Development)比較適合目前的國情。它可根據用戶目標,編寫軟件需求,根據軟件需求,編寫系統(驗收)測試,即,用戶目標驅動。利用 UML 對軟件的設計進行建模,這部分建模當然是敏捷的(agile)。簡單的只需幾秒鐘可以迅速在人的大腦中完成,復雜的則可以畫在紙上、白板上,記錄在建模工具生成的電子文檔中,當需求穩定后可以迅速轉化成軟件應用代碼,在結合TDD會有很不錯的效果,這種理論體系有些像太極原理,需求的變化看似武術中的招式,采用UDD見招破招,無招勝有招,這種客戶的需求應變使得UDD更為敏捷。


3.實戰VSTS2010驅動開發

在Visual Studio 2010中,敏捷測試驅動開發功能非常強大,微軟把Scrum和XP敏捷思想融入到Agile過程框架之中。TFS2010中增強了團隊源碼版本管理、迭代開發和驅動測試開發模型等,從而給微軟.Net開發人員非常大的幫助。VSTS2010測試馬甲和單元測試過程,如圖3所示。

VSTS2010單元測試過程
圖3 VSTS2010單元測試過程

IUT——在生產環境中最終交付而開發的軟件。

Test Environment——測試環境。

測試驅動開發(TDD)基本過程:

(1)明確當前要完成的功能??梢杂涗洺梢粋€初始化測試清單(TODO)列表。

(2)快速完成針對一個功能的測試用例編寫。

(3)測試代碼編譯通過,但測試用例通不過。

(4)編寫對應的功能代碼。

(5)測試通過。

(6)對代碼進行重構,并保證測試通過。

(7)循環完成所有功能的開發。

·圖書收藏實例

確定好backlog,進行sprint backlog,把story拆分成更小的故事,并在把故事拆分成任務,索引卡片參考圖4所示。

圖書收藏Story索引卡
圖4 圖書收藏Story索引卡

將案例分成任務,我們需要在很大程度上實現讀者個人借閱圖書的收藏集合。其中之一backlog索引卡,如圖4所示。當讀者到圖書館進行圖書借閱中,會查詢圖書庫所有相關類圖書封面并選取其中自己最需要的幾本書。這個過程叫做“書簽”,圖書系統將通過圖書管理來支持這個活動。為圖書借閱集合初始化測試清單,參考1所示。

為圖書借閱夾初始化測試清單
表1 為圖書借閱夾初始化測試清單


列出表中完成有關的大部分任務測試清單,測試重點放在確保我們添加和移除圖書收藏夾的時候計數是正確的,以及集合的內容和是否可以恢復集合,驅動測試時間持續1到2小時的驅動編程實踐中完成這個測試清單,并確保這個測試清單不需要再次分解這個任務,以實現這個目標。

·實現第一個測試

打開Microsoft Visual Studio 2010,創建一個C#測試項目,項目名稱為LocalBookCollectionsTests,如圖5所示。

創建一個測試項目
圖5 創建一個測試項目

清除原理項目方案自動生成的unit的C#測試文件,建立一個新的名稱為CollectionsTests單元測試類,如圖6所示。

創建一個單元測試unit類
圖6 創建一個單元測試unit類

先用一些函數代碼替換第一個測試中的語句,這樣做驅動了產品代碼Collections類的創建,并運行其Count屬性。在CollectionsTests.cs類添加代碼:

  1. ///   
  2. /// 創建一個測試清單  
  3. ///  
  4. [TestMethod]  
  5. public void EmptyCollectionsCountShouldBeZero()  
  6. {  
  7. Collctions collctions = new Collctions();  
  8. Assert.AreEqual(0, collctions.Count);  

重新編譯生成這個解決方案,你將看到一個錯誤,因為沒有為Collections類定義Count。創建Collections類,填入一下代碼:

  1. ///   
  2. /// 定義Count  
  3. ///  
  4. private int count;  
  5. public int Count  
  6. {  
  7. get 
  8. {  
  9. return count;  
  10. }  

運行這個測試,輸出EmptyCollectionsCountShouldBeZero()單元測試成功界面,如圖7所示。

EmptyCollectionsCountShouldBeZero單元測試成功
圖7 EmptyCollectionsCountShouldBeZero單元測試成功


·擱置你的測試清單代碼

為你的此次操作添加為一個版本控制擱置,這樣就可以在將來常常返回到這個點(版本控制),在VS2010菜單打開View|Other Windows|Pending Changes,如圖8所示。

Vsts2010的View|Other Windows菜單
圖8 Vsts2010的View|Other Windows菜單

通常由于你并不想在所有相關單元測試通過之前,與團隊的其他成員共享文件,因此保持VSTS存儲庫中擱置自己的文件版本,而不是將你的變更點簽入到團隊代碼庫的分支中。完成所有單元測試后,可以直接點擊Check In 按鈕將此代碼加入到存儲庫中。Pending Changes擱置窗口,如圖9所示。

Pending Changes擱置窗口
圖9 Pending Changes擱置窗口

Unshelve按鈕可以進行版本回卷。點擊Shelve按鈕進行版本擱置,建立一個Test the Should Be Zero的版本擱置,如圖10所示。

創建版本擱置
圖10 創建版本擱置


·修復一個失敗的測試和重構

現在我們處理清單上另外幾個簡單單元測試。它們在Collections對象中添加和刪除各種Collection項,并驗證Count熟悉返回正確的值。

首先在CollectionsTests.cs類中添加如下代碼:

  1. ///   
  2. /// 修復一個失敗的測試  
  3. ///  
  4. [TestMethod]  
  5. public void EmptyCollctionsCountShouldIsOne()  
  6. {  
  7. Collections collections = new Collections();  
  8. collections.Add(new Collection("Label"new Uri("db://book0001")));  
  9. Assert.AreEqual(1, collections.Count);  

生成這個項目(生成|生成項目),生成報錯是因為Collection類缺少參數,如圖11所示。

缺少參數報錯界面
圖11 缺少參數報錯界面

添加一個unit新類Collection.cs,加入一下代碼:

  1. private string label;  
  2. private Uri uri;  
  3. public Collection(string label, Uri uri)  
  4. {  
  5. this.label = label;  
  6. this.uri = uri;  
  7. }  
  8. public string Label  
  9. {  
  10. get 
  11. {  
  12. return label;  
  13. }  
  14. }  
  15. public Uri Uri  
  16. {  
  17. get 
  18. {  
  19. return uri;  
  20. }  

替換Collections.Add()方法,修改Count屬性返回count變量值。

  1. ///   
  2. /// 增加一個Count實例變量  
  3. ///   
  4. public void Add(Collection collction)  
  5. {  
  6. count++;  

再次生成這個項目,輸出結果顯示成功,如圖12所示。

輸出單元測試成功結果
圖12 輸出單元測試成功結果

再次重復上面操作,創建一個版本擱置。


4.確認測試(BVT)

生成確認測試(BVT)是通過產生測試列表來檢查軟件,它通常作為一個生成任務在團隊生成結束的時候執行。當編寫好一個unit測試時,你可以加入到BVT中,確保任何時候在生存庫環境下運行集成生成,相同的測試程序都可以依次執行。

我們可以把上面的EmptyCollctionsCountShouldBeZero()和EmptyCollctionsCountShouldIsOne()測試方法創建生成測試。打開Microsoft Visual Studio 2010菜單,點擊Test|Windows,如圖13所示。

Test|Windows菜單
圖13 Test|Windows菜單

點擊菜單項Test|Windows|Test List Editor,打開Test List Editor界面,如圖14所示。

Test List Editor界面
圖14 Test List Editor界面

參考圖14,點擊界面“here”或者菜單Test|Create New Test List,創建一個新的測試列表,測試列表名稱為BookCollectionBVT,如圖15所示。

創建一個新的BVT
圖15 創建一個新的BVT


同理,打開菜單項Test|Windows|Test View,打開Test View瀏覽框從而顯示驅動單元測試程序,從Test View把EmptyCollctionsCountShouldBeZero和EmptyCollctionsCountShouldIsOne拖拽拖到Test List Editor面板中,為了確保這個測試是作為集成測試的一部分運行,點擊BookCollectionBVT中所要測試程序的復選框。

點擊Run Checked Tests按鈕,運行這個測試程序,如圖16所示。

運行這個測試程序
圖16 運行這個測試程序

運行測試結果界面,如圖17所示。

運行測試結果界面
圖17 運行測試結果界面

這樣,安裝Microsoft Visual Studio 2010團隊成員,在每個人的本機上開發環境上運行自己的單元測試之后,就可以添加并測試完成余下的那些索引卡下分解出來的測試列表單元測試程序清單,加入到BookCollectionBVT集成測試集合之中。

五、總結

Microsoft Visual Studio 2010的集成測試的功能特點結合MSF for Agile Software Development V5.0中的Scrum和XP敏捷過程框架,使從事在微軟.NET技術相關工作方向的人們擁有了一把利劍,并且可以充分的協助編程人員開發出高質量的軟件產品。

Scrum專注于聚焦在找到一個最小的迭代式項目管理框架,注重敏捷的計劃、跟蹤和管理,而沒有把它強行綁定在某一種具體的工程技術和做法之上有關,這大概這也是它非常聰明的地方。既然沒有明確限定和約束,那么就代表著開放,可以適用于不同類型、不同環境下的項目。

從Scrum和XP—>OOAD—>UDD和TDD,不禁讓筆者想起太極陰陽理論,可以說太極是我們中國人千年的傳統智慧,看待宇宙和世界的一種基本觀點和思維方式。世界和宇宙是由陰和陽組成,兩者既互為對立、矛盾,又相互依存、共生,和諧、統一地構成了整個宇宙。敏捷之道的精髓就在于客戶、團隊和人與人之間的溝通與互動、協作,所以,作為中國人尤其是中國的軟件人,更應該開闊自己的思維,學會運用太極思想。

孫子兵法有云:兵無常勢,水無常形,能因敵變化而取勝者謂之神。很多人都向往用兵如神的境界,想必也知道讀萬卷書不如行萬里路,紙上談兵的故事更是耳熟能詳,除了以上所講述的內容外,也需要充分的運用敏捷和進行大量的實踐。

敏捷文化也決定管理,管理決定技術,因此實施敏捷應該只有具有先進文化的企業和團隊,才能實現真正的敏捷變革,并從中獲益……。

責任編輯:彭凡 來源: IT168
相關推薦

2010-07-27 09:40:01

敏捷Visual Stud

2010-07-29 09:41:23

Visual Stud

2009-11-19 10:55:33

Visual Stud

2010-03-11 14:37:47

Visual StudScrum

2010-02-22 16:43:33

Visual Stud

2009-11-19 09:59:47

Visual Stud

2010-04-01 14:51:52

Visual Stud

2010-01-28 09:07:50

Visual Stud

2010-03-11 09:10:02

VS2010敏捷開發云計算

2010-11-16 09:23:13

敏捷開發Visual Stud

2010-03-22 09:08:24

Visual Stud

2010-09-10 09:35:59

Visual Stud

2011-02-13 17:10:28

Visual Stud

2010-12-13 10:34:09

Visual Stud

2010-02-05 09:06:17

Visual Stud

2009-12-02 09:43:38

Visual Stud

2009-11-10 09:13:47

Visual Stud

2009-11-11 13:24:51

Visual Stud

2009-11-24 09:00:02

Visual Stud

2010-03-19 16:43:37

Visual Stud
點贊
收藏

51CTO技術棧公眾號

特大黑人娇小亚洲女mp4| 久久久天堂国产精品女人| 色综合手机在线| 国产黄色在线免费观看| 成人性生交大片免费看中文| 欧美又大又粗又长| 男人av资源站| 加勒比色综合久久久久久久久| 欧美日韩免费网站| 中国成人亚色综合网站| 五月天丁香视频| 久久99国产精品久久99果冻传媒| 欧美激情二区三区| 99久久久无码国产精品衣服| 日韩精品免费视频一区二区三区 | 欧美日韩精品综合| 91国内精品久久久| 午夜亚洲激情| 欧美精品在线播放| av电影网站在线观看| 亚洲欧美日本国产| 欧美日韩亚洲不卡| 99久久久无码国产精品6| 超鹏97在线| 国产精品久久久久久久久久久免费看 | 一区二区三区黄色| 四虎精品一区二区| 国产激情一区| 欧美性大战久久| 成人观看免费完整观看| 另类视频在线| 亚洲免费av观看| 亚洲一区二区三区午夜| 日本亚洲欧美| 91视频91自| 国产日韩三区| 日本精品一区二区在线观看| 国产麻豆视频一区| 国产有码在线一区二区视频| 毛片在线免费播放| 亚洲专区欧美专区| 2019av中文字幕| 懂色av.com| 日韩午夜电影| 国内精品久久久久影院优| 黄色一级片在线| 欧美国产精品| 久久综合伊人77777蜜臀| 熟女少妇a性色生活片毛片| 日韩www.| www国产亚洲精品久久网站| 欧美黄色高清视频| 精品国产91乱码一区二区三区四区| 亚洲黄一区二区| 第四色在线视频| 久本草在线中文字幕亚洲| 亚洲成人激情在线| jjzzjjzz欧美69巨大| heyzo欧美激情| 欧美videos大乳护士334| 精品伦一区二区三区| 91精品日本| 亚洲精品福利在线观看| 亚洲调教欧美在线| 亚洲综合图色| 夜夜嗨av一区二区三区四区| 极品人妻videosss人妻| 久久中文字幕av一区二区不卡| 中文字幕精品av| 免费在线观看黄色小视频| 亚洲国产成人精品女人| 欧美黄色www| 亚洲高清毛片一区二区| 日本不卡一二三区黄网| 国产日韩亚洲欧美| 午夜老司机福利| gogo大胆日本视频一区| 日本中文不卡| 国产精品va在线观看视色| 一区二区三区视频在线看| 精品少妇人妻av免费久久洗澡| 超碰高清在线| 精品视频在线免费观看| 成人免费播放视频| 亚洲国产最新| 精品国产美女在线| 日本少妇毛茸茸高潮| 久久久999| 91丨九色丨国产在线| 亚洲精品一级片| 国产视频一区在线观看| 亚洲激情免费视频| 中文在线免费二区三区| 911精品产国品一二三产区| 国产精品一区二区无码对白| 国产一区二区区别| 欧美人成在线视频| 欧美一级淫片免费视频黄| 国产一区视频导航| 久久影院理伦片| av电影免费在线观看| 日韩欧美国产高清91| 欧美人与性动交α欧美精品| 亚洲警察之高压线| 欧美成人午夜影院| 做爰无遮挡三级| 成人免费视频播放| 亚洲一区精彩视频| 悠悠资源网亚洲青| 日韩精品一区二区三区视频播放 | 8888四色奇米在线观看| 午夜欧美大尺度福利影院在线看| 在线观看免费黄网站| 精品人人人人| 久久国产精品99国产精| 亚洲精品国产无码| 99久久综合精品| 神马午夜伦理影院| 国产精品一区二区免费福利视频| 亚洲国产精品人久久电影| 四虎884aa成人精品| 久久精品天堂| 久久国产精品-国产精品| 成人av福利| 欧美日韩一区二区不卡| 波多野结衣片子| 99精品国产一区二区青青牛奶| 91老司机精品视频| 在线日本中文字幕| 欧美羞羞免费网站| 成人片黄网站色大片免费毛片| 欧美午夜影院| 亚洲综合第一页| 男人天堂手机在线| 欧美日韩国产小视频| 级毛片内射视频| 亚洲综合欧美| 久久99精品久久久久久水蜜桃| 欧美v亚洲v| 欧美变态凌虐bdsm| 加勒比av在线播放| 国产精品资源网| 少妇久久久久久被弄到高潮| 久久伦理中文字幕| 欧美成人精品三级在线观看| 国产人妖一区二区三区| 成人免费在线观看入口| 亚洲美女性囗交| 欧美顶级大胆免费视频| 国产中文字幕亚洲| 国产成人l区| 日韩欧美国产一区在线观看| 欧美高清视频一区二区三区| 国产成人午夜精品影院观看视频| 国产一级大片免费看| 亚洲码欧美码一区二区三区| 久久久久久久久久久av| 黄色a在线观看| 五月婷婷激情综合| 少妇毛片一区二区三区| 久久久蜜桃一区二区人| 神马影院一区二区| 亚洲图片小说区| 久久亚洲私人国产精品va| 99视频免费看| 精品久久香蕉国产线看观看亚洲| 特级西西人体wwwww| 日韩成人伦理电影在线观看| 一区二区在线观| 国产中文欧美日韩在线| 国语自产偷拍精品视频偷| 香蕉视频黄在线观看| 欧美在线观看一区| 国产高潮流白浆| 91亚洲男人天堂| 中文字幕有码av| 午夜久久99| 免费中文日韩| 国产激情精品一区二区三区| 久久久人成影片一区二区三区观看| 日韩电影网址| 欧美精品第1页| 久久精品国产av一区二区三区| 91原创在线视频| 久久人人爽av| 日韩网站在线| 一区一区视频| 老牛影视av一区二区在线观看| 国产97在线|亚洲| 国精产品一区| 亚洲精品在线视频| 国产视频手机在线| 色悠久久久久综合欧美99| 四虎永久免费地址| 91在线免费视频观看| 亚洲视频一二三四| 亚洲欧美春色| 免费网站永久免费观看| 日韩精品2区| 国内一区二区在线视频观看| 日韩国产91| 奇米影视亚洲狠狠色| 色综合999| 在线日韩欧美视频| 午夜视频1000| 日韩午夜三级在线| 瑟瑟视频在线免费观看| 亚洲国产日韩综合久久精品| 任我爽在线视频| 91影院在线观看| 久久久久久久久久影视| 久久99精品久久久久久| 日本三级免费观看| 在线观看视频日韩| 看一级黄色录像| 欧美午夜精品一区二区三区电影| 国产激情一区二区三区在线观看| 国产第一亚洲| 国产精品吊钟奶在线| 超碰成人av| 久久乐国产精品| 2021国产在线| 久久久91精品| 精品51国产黑色丝袜高跟鞋| 一区二区欧美亚洲| 国产在线观看黄| 国产视频亚洲视频| 少妇高潮一区二区三区99小说| 日韩一区二区免费视频| 在线观看视频中文字幕| 欧洲一区二区三区免费视频| xxxx.国产| 欧美日韩国产一区二区| 日韩免费av片| 婷婷久久综合九色综合绿巨人| 九九热国产在线| 亚洲欧美日本韩国| 艳妇荡乳欲伦69影片| 国产精品乱人伦| 超碰97av在线| 中文字幕在线一区免费| 少妇视频一区二区| 自拍偷拍欧美激情| 国产精品三区在线观看| 亚洲三级久久久| 日韩成人毛片视频| 亚洲夂夂婷婷色拍ww47 | 狠狠操狠狠色综合网| 日本午夜精品理论片a级app发布| 亚洲国产日韩一区二区| 国产一级av毛片| 亚洲成人动漫在线观看| 日韩福利片在线观看| 欧美日韩亚洲网| 中文人妻av久久人妻18| 在线观看不卡视频| 国产精品欧美亚洲| 日韩免费性生活视频播放| 懂色av成人一区二区三区| 亚洲第一网站免费视频| 天堂√在线中文官网在线| 日韩精品在线第一页| 五月激情婷婷综合| 国产亚洲精品久久久| 午夜伦全在线观看| 欧美麻豆久久久久久中文 | 国产精品久久久久久婷婷天堂| 国产资源一区| 91福利视频导航| 精品综合久久88少妇激情| 蜜桃狠狠色伊人亚洲综合网站| 成人a'v在线播放| 黄色一级片av| 国产精品美女久久久| 中文字幕有码av| 成人妖精视频yjsp地址| 性少妇bbw张开| 中文字幕人成不卡一区| 久久久久久久国产精品毛片| 日韩欧美在线第一页| 一级片在线观看视频| 日韩精品在线网站| 国产在线观看网站| 欧美日本国产在线| 成人免费网站www网站高清| 亚洲永久免费观看| 亚洲免费专区| 日韩 欧美 自拍| 亚洲人妖在线| 五月花丁香婷婷| 91蜜桃传媒精品久久久一区二区| www.xx日本| 岛国视频午夜一区免费在线观看| 夜夜爽8888| 亚洲激情 国产| av在线免费网站| 日本亚洲精品在线观看| 日韩精品三级| 亚洲午夜精品久久久中文影院av| 黑人一区二区三区四区五区| 五月婷婷激情久久| 不卡一二三区首页| 日韩在线不卡av| 日韩欧美在线看| 丰满岳乱妇国产精品一区| 中文字幕免费国产精品| 天堂√8在线中文| 97人人澡人人爽| 91精品啪在线观看国产18| 日韩少妇内射免费播放18禁裸乳| 国产一区二区三区在线观看精品| 女人被狂躁c到高潮| 亚洲精品水蜜桃| 中文字幕在线观看欧美| 亚洲精品资源在线| 男女在线观看视频| 成人久久精品视频| 精品少妇av| 黄色动漫在线免费看| 成人午夜激情影院| 国产激情无码一区二区三区| 日本道免费精品一区二区三区| 蜜桃视频污在线观看| 欧美成人国产va精品日本一级| 国产精品久久亚洲不卡| 欧美日韩国产一二| 国产欧美另类| 亚洲久久久久久| 亚洲高清在线精品| 亚洲风情第一页| 久久久精品在线| 自拍偷拍亚洲| 日本一区二区免费高清视频| 美国三级日本三级久久99| 97人妻精品一区二区免费| 欧美日韩国产在线看| 天天综合网在线| 国产91成人在在线播放| 全国精品免费看| 草草久久久无码国产专区| 成人激情av网| 在线观看 中文字幕| 日韩理论片久久| 午夜激情成人网| 日韩电影在线播放| 奇米亚洲午夜久久精品| 波多野结衣一二三四区| 欧美日韩国产综合视频在线观看 | 欧美三级午夜理伦三级小说| 精品久久久久久久久久中文字幕| 成人网页在线观看| 国产污视频在线看| 精品一区二区三区四区在线| 在线免费av资源| 欧美一区二区三区四区五区六区| 美女91精品| 天堂网av2018| 日韩一级免费观看| 黄色影院在线看| 国语精品免费视频| 久久一区中文字幕| 日本精品久久久久中文| 制服丝袜日韩国产| 欧美1—12sexvideos| 麻豆传媒一区| 日本欧美久久久久免费播放网| 色偷偷www8888| 欧美精品一区二区三区在线| 午夜裸体女人视频网站在线观看| 欧美亚洲免费在线| 久久99最新地址| 国产亚洲精品久久久久久打不开| 亚洲黄色www| 欧美jizz18| 精品少妇人欧美激情在线观看| 91啦中文在线观看| 亚洲天堂国产精品| 欧美高跟鞋交xxxxxhd| 一呦二呦三呦国产精品| 91女神在线观看| 午夜影院久久久| 91福利在线视频| 国产精品免费视频一区二区| 久久久久久夜| 久久久久久久久久91| 一区二区亚洲欧洲国产日韩| 麻豆一区在线| 免费激情视频在线观看| 亚洲色图制服丝袜| 欧美777四色影视在线| 国产在线日韩在线| 亚久久调教视频| 卡通动漫亚洲综合| 亚洲欧美精品suv| 亚洲一区二区三区中文字幕在线观看 | 欧美aaaaa性bbbbb小妇| 国产精品夜夜夜爽张柏芝| 99re66热这里只有精品3直播| 一区二区日韩在线观看| 欧洲一区二区视频|