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

    基于時間和影響力因子的Github Pull Request評審人推薦①

    2016-02-20 06:52:06松,達,軍,
    計算機系統(tǒng)應用 2016年12期
    關鍵詞:信息檢索開發(fā)者代碼

    盧 松, 楊 達, 胡 軍, 張 瀟

    1(中國科學院軟件研究所 基礎軟件國家工程研究中心, 北京 100190)2(中國科學院大學, 北京 100190)

    基于時間和影響力因子的Github Pull Request評審人推薦①

    盧 松1,2, 楊 達1, 胡 軍1, 張 瀟1,2

    1(中國科學院軟件研究所 基礎軟件國家工程研究中心, 北京 100190)2(中國科學院大學, 北京 100190)

    開源社區(qū)github提供了pull request的機制讓開發(fā)者可以把自己的代碼集成到github的開源項目中從而為項目做出貢獻. Pull request 的代碼評審是github這類分布式軟件開發(fā)社區(qū)維護開源項目代碼質量的非常重要的方式. 為一個新到來的pull request 指派合適的代碼評審人可以有效減少pull request從提交到開始審核的延遲.目前github是由項目核心成員人工來完成評審人的指派, 為了減少這種人力損耗, 我們提出代碼評審人的推薦系統(tǒng), 該系統(tǒng)基于信息檢索的方法, 并考慮了評審人的影響力因子以及評審的時間衰減的因素, 對新到來的pull request, 自動推薦最相關的評審人. 我們的方法對top 1 的準確度達到了68%, 對top 10的召回率達到了78%.

    pull request; 代碼評審; 信息檢索; 時間因子; 影響力因子

    1 概述

    Github是當前非常知名的一種分布式的版本控制系統(tǒng), 擁有140多萬開發(fā)者用戶的開源社區(qū). 開發(fā)者可以使用watch、fork、star、pull request等方式實現(xiàn)對感興趣的項目進行社交化編程(social coding)[1].

    隨著github的項目的發(fā)展, pull request成為了社交化編程以及代碼持續(xù)集成的行之有效的方式, 據(jù)統(tǒng)計,目前github中采用這種社交化編程的協(xié)作式項目數(shù)量占到了一半以上[2], 而且采用pull request進行代碼集成的項目的數(shù)量將來只會越來越多. Github的contributor為社區(qū)做出貢獻的流程可以分為如下5步:

    1) 首先contributor找到一個感興趣的項目, 并follow一些該項目中的知名的開發(fā)者, watch該項目.

    2) Fork該項目的一部分到本地, 相當于克隆到本地; contributor在克隆的版本上實現(xiàn)一個新的特性或者修復了一些bug; 然后contributor使用pull request的方式, 把完善好的代碼發(fā)送給原始的項目;

    3) 項目內的所有的開發(fā)者都能夠在項目的pull request庫中評審已提交的pull request. 他們可以討論項目是否需要這個新特性, 提交的代碼是否符合規(guī)范,以及能否提升該pull request代碼的質量;

    4) contributor根據(jù)評審人的建議, 會完善并更新他的pull request, 接著評審人再次評審修改后的pull request;

    5) 項目的核心負責人基于所有評審人的意見決定是把該pull request合并到項目代碼中還是拒絕它.

    Github開發(fā)者以及項目的數(shù)量的迅速增長, 每天產(chǎn)生的pull request的數(shù)量是驚人的, 比較知名的項目每個月會產(chǎn)生幾百甚至上千個pull request. 這將導致github的更新迭代效率非常大的程度上依賴于pull request提交的代碼能否被及時評審. 從pull request提交到該pull request真正開始被評審人評審的時延我們稱之為評審時延. 實際情況中, 由于pull request的相關評審人很可能沒注意到該pull request而導致評審時延過大. 據(jù)已有的調查研究表明, 15%的contributor抱怨他們的pull request得不到評審人及時的反饋[3], 也有人專門做了關于評審時延的評估分析, 他們采用了線性回歸的模型來模擬pull request的評審時延, 得出平均的時延大小有364小時, 當然有的pull request一直得不到評審會拉高整體的平均時延時間, 于是統(tǒng)計了時延大小的中位數(shù)為15小時[4]. 我們的評審人推薦機制可以在新的pull request產(chǎn)生時, 自動匹配與該pull request最相關的評審人, 并給他們發(fā)送消息, 使得評審時延大大降低, 有效地提高了github項目的迭代效率.

    現(xiàn)有的pull request代碼評審人的指派有2種方式,第一種是人工指派, 需要一位項目集成管理人指派給項目開發(fā)組的核心成員進行代碼評審, 但使用這種指派方式的pull request所占的比重只有0.89%[5]. 另外一種更加通用的指派方式是使用@標記. 比如評論中包含@張三, 則張三會收到關于這條評論的信息. 通過@某個人的方式, 不僅可以@項目的核心成員, 也可以@項目中的任何一個contributor, 讓他們得到通知并參與討論該pull request. 對pull request的討論可以是該pull request的代碼整體所實現(xiàn)功能的意義或做的貢獻, 也可以是具體的某幾行代碼的正確與否、代碼是否規(guī)范等等的評論.

    圖1 pull request中評審人進行評審討論

    圖1 展示了在一個的pull request下評審人進行評審討論的過程, 該圖來自于Github中scikit-learn項目的一個pull request, 它的標題名為Clustering algorithm– BIRCH, 它的提交者是MechCoder, 在提交pull request并進行代碼修改之后, 他@jnothman并邀請jnothman評審他的思路以及代碼是否正確, 接著jnothman就給出了評論并發(fā)表了他的意見. agramfort是另外一位評審人, 并提出了他對當前pull request的代碼修改意見, 最后, MechCoder @jnothman @agramfort并表達感謝他們的意見讓他的思路以及代碼可以不斷完善, 實現(xiàn)了他所想要的功能, 最后他的這部分代碼被merge到scikit-learn項目的主分支中.進入該pull request中, 我門可以發(fā)現(xiàn)不僅是項目的核心成員進行了評審, 項目中的普通成員如mblondel、coveralls等等也加入了討論, 只是由于圖片篇幅的原因, 沒在圖1中展示出這些的評論. 所有這些評審人說的話會影響最終的pull request的最終決策. 作為項目的pull request的持續(xù)集成負責人, 他需要對項目中的contributor有一個比較好的了解, 才能做一些比較適當?shù)腀標記, 讓負責該pull request這塊的人能更好的對pull request進行評審, 提高效率. 而如果我們能自動生成和該pull request相關的項目組成員名單, 則可以有效減少項目持續(xù)集成負責人的工作量; 同時沒有被@的項目成員可能和該pull request相關性也很高,但沒有收到消息會導致他對該pull request的評審延遲,我們的評審人推薦可以使用@推薦項目成員的方式通知和該pull request感興趣的項目成員, 從而減少評審時延, 有效地提高github的社交化編程效率.

    總體來說, 本文的貢獻如下:

    1) 使用了信息檢索(information retrieval)的方法在評審人相關性評估中, 我們加入了影響力因子這個重要的考量因素. 本文首次提出在github項目中基于follower的數(shù)量來對影響力因子的量化計算方法, 我們認為follower數(shù)量越多的人, 他的評審的權重應該比follower數(shù)量少的成員權重高.

    2) 我們還引入了時間維度衰減的策略, 基于信息檢索方法獲得與新到來pull request最相關的歷史pull request, 這些歷史pull request的評審人構成了候選評審人集合. 在計算候選評審人與新到來的pull request相關性得分時, 引入對歷史pull request評審的時間衰減因子. 在歷史pull request獲得相關性相同的情況下,距離新到來pull request時間越長, 該歷史pull request下的評審人所獲得的相關性得分越低.

    2 相關工作

    我們的工作借鑒了開源社區(qū)中代碼bug的分類報告和代碼評審的組織方式. 開源社區(qū)的大型項目比如Bugzilla是一個開源的缺陷跟蹤系統(tǒng), 它可以管理軟件開發(fā)中缺陷的提交(new), 修復(resolve), 關閉(close)等整個生命周期. 每天都會有幾十個新bug report提交給bug追蹤系統(tǒng), 而分配bug report給適合的bug修復者是一件很耗精力的事情. 同樣的, 代碼評審系統(tǒng)每天也會有很多提交請求, 需要進行組織并指派相關人員進行評審.

    前人做了很多研究來進行bug report分類或代碼評審, 有機器學習的方法(如: SVM), 也有信息檢索(Information Retrieval)的方法. Cubranic等[6]提出文本分類的方法, 目的是將bug對應的文本分到已經(jīng)定義好的bug report分類標簽的集合中去, 利用bug report的標題、描述和關鍵詞信息來進行bug指派. Canfora和Cerulo[7]使用歷史的bug report的文本描述作為document來標識開發(fā)者, 而新的新的bug report的描述作為query, 如此可以構建一個信息檢索系統(tǒng). Kagdi和Linares-Vasquez[8]提取出源代碼的評論和描述信息,并通過隱性語義索引(LSI)的方法把這些數(shù)據(jù)索引起來.對于一個新的bug report, 這些索引可以用于鑒別誰在之前的一段時間有修復相似的bug. Tamrawi等[9]對人進行建模, 認為擁有相同興趣的人對各自的bug report互相評論的次數(shù)會越多. Y Yu等[10]將這種對人的建模方法進一步深入探討并引入到pull request的代碼評審人推薦的情境中, 他們構建了評審人的社交網(wǎng)絡, 網(wǎng)絡的點就是開發(fā)者, 網(wǎng)絡的邊的權重就是評論人的相關性, 并且認為提交pull request的人和評審pull request的人對該pull request所屬領域具有共同的興趣.

    本文所做的工作是基于信息檢索的方法對pull request進行建模, pull request的標題和描述信息總結了它的代碼所做的貢獻以及修改的主題. 所以我們把訓練集中的pull request作為歷史的document, 而新的pull request的標題和描述信息作為query, 構建信息檢索系統(tǒng). 并且在評審人推薦的過程中加入了評審人影響力因子的考量和時間維度衰減的考量.

    3 基于信息檢索的pull request 評審人推薦

    我們旨在推薦和新到來的pull request最相關的評審人, 用于減少評審時延并有效提高github的社交化編程的開發(fā)效率. 已有的bug分類研究[11-13]所采用的信息檢索的方法適用于我們的pull request推薦的場景. Pull request的標題和描述信息作為標記pull request的document; 新到來的pull request的標題和描述信息作為query. 以此對pull request建模, 找出和目標pull request最相關的top k 個pull request, 這top k個pull request下的評審人構成推薦的候選評審人集合, 并基于評論次數(shù)對每位候選人進行相關性打分, 返回得分最高的top 10個候選人作為最終的評審推薦人.

    3.1 pull request的向量空間模型

    在一個項目的場景下, 每個pull request采用它的標題和描述信息來標識為該pull request的document.該pull request下發(fā)表評論的開發(fā)者就是該pull request的評審人. 首先將pull request的停用詞和特殊符號去掉, 對剩下的詞做詞干還原. 我們采用向量空間模型將pull request通過標題和描述信息映射成高維空間下的一個向量, 向量空間模型下的每一個維度代表一個詞, 而該pull request中的單詞出現(xiàn)的次數(shù)越多, 該維度獲得的權重越大. 我們利用tf-idf來計算每個詞的權重, 公式如下所示:

    其中:

    t: 1個單詞 (term)

    pr: 1個pull request

    PR: 給定項目中的所有pull request的倉庫

    nt: 在pull request pr中單詞t所出現(xiàn)的次數(shù)

    Npr: pr中的所有詞的個數(shù)

    NpR: 給定項目中所有pull request的個數(shù)上述計算tfidf的公式表達的含義是:

    3.2 pull request相似度

    我們利用向量空間模型對pull request建模, 用tfidf對每一個pull request進行向量空間的表示, 通過計算余弦相似度可以獲得任何兩個pull request的相似度得分, 由此, 當新到來一個pull request的時候, 可以找到歷史上和該pull request語義上最相似的top k個歷史pull request. 余弦相似度的計算方法如下公式:

    其中:

    對新到來的pull request, 獲得與其相似度最高的top k個pull request之后, 我們將這k個pull request的評審人作為新到來的pull request的評審人候選集合. 并且乘以評論的次數(shù)求得每位候選評審人與新到來的pull request的相關性得分, 最終返回得分最高的top 10個評審人作為評審人推薦的結果.

    4 基于時間和影響力因子的評審人推薦

    第三部分描述的是用于pull request評審人推薦的傳統(tǒng)信息檢索方法. 這部分則描述了本文提出的基于時間和影響力因子的pull request評審人推薦對傳統(tǒng)信息檢索方法的改進.

    4.1 基于時間和影響力因子的候選評審人的得分

    本文基于評論的次數(shù)、評審時間維度、評審人的影響力因子這三個方面求得每位候選評審人與新到來的pull request的相關性得分.

    4.1.1 評論次數(shù)

    評論次數(shù)即候選評審人在相關的歷史pull request中評論了多少次. 評論次數(shù)越多, 候選評審人相關性的得分應該越高. 對評論次數(shù)我們進行l(wèi)og平滑, 公式如下:

    其中:

    nj,i: 評審人j在pri下的評論次數(shù)

    Nj,i: 評審人j在pri下基于評論次數(shù)獲得的權重

    4.1.2 評審時間維度

    評審時間因素是我們重點考慮的維度之一, 比如與新到來的pull request 最相關的top k個歷史pull request中, 1年前的歷史pull request和1周內的歷史pull request所占的權重應該是不一樣的, 我們認為評審人在一段時間內的興趣是集中的, 所以最近的pull request顯然應該賦予更高的權重[11], 我們采用了時間歸一化的公式來進行時間維度的權重分配.

    其中:

    : 第i個相關的歷史pull request

    timestamp(pri):pri的提交時間

    baseline: 訓練集中提交最早的pull request的提交前一天

    deadline:訓練集中提交最晚的pull request的提交當天

    但是上述時間歸一化會導致最早的歷史pull request的評審人在該pull request即使相關度非常高的情況下, 也會因為上述時間歸一化而大大衰減這部分的得分. 所以我們采用線性模型進行時間維度的參數(shù)訓練, 以獲得最終的時間權重計算公式:

    其中tpri是上述時間歸一化的結果. 經(jīng)過模型的訓練, 我們得出α=0.6, β=0.4 的時候, 返回推薦結果的準確率比直接對時間進行歸一化要好得多.

    4.1.3 評審人的影響力因子

    評審人在github項目中的影響力因子同樣也是非常重要的維度, github中有些很優(yōu)秀的人, 他們在某些項目領域經(jīng)驗豐富, 為開源社區(qū)的項目貢獻了很多高質量、優(yōu)秀的代碼, 也是項目的核心成員, 他們在pull request的評審中給出的意見也非常有效而準確, 這些杰出的人會吸引很多人follow他們. 這樣基于follow和被follow的關系, 我們可以構建github中開發(fā)者的關系網(wǎng), 它是一張以開發(fā)者為節(jié)點的圖, 從而利用著名的pagerank算法我們就可以獲得github中任何一位開發(fā)者的影響力因子的得分. 但是本文的評審人推薦應用情境是在一個具體項目中的評審人(開發(fā)者)的影響力. 因此計算整個github中所開發(fā)者在整個github下的影響力是非常費時而沒有意義的. 而如果具體到1個項目內使用pagerank計算影響力, 由于開發(fā)者的所有follower可能在不同的項目中都有分布, 所以會造成項目內的follow關系圖很難確定. 于是本文提出基于follower數(shù)量來對影響力因子的量化計算方法,這種方法實際上是對pagerank方法的簡化, 我們認為follower數(shù)量越多的人, 他的評審的權重應該比follower數(shù)量少的成員權重要高. 具體的計算公式如下:

    其中:

    Fi: 評審人i的影響力;

    P: 項目P, 評審人推薦的作用范圍就是某個特定的項目P;

    N(followers of i)∈P: 評審人i在項目P中的follower的個數(shù);

    NMAX_followers: 項目P中, follower數(shù)的最大值.

    該公式的右側相當于對follwer的數(shù)目進行了歸一化, 如果一個開發(fā)者在項目P中follower數(shù)為0, 則他在項目P中的影響力是最低的1; 開發(fā)者在P中的follower數(shù)越多, 則他在P中的影響力越大, 影響力最大可以為2.

    4.2 候選人的得分計算

    結合評論的次數(shù)、評審時間維度、評審人的影響力因子這三個方面, 最終的候選評審人與新到來的pull request的相關性得分計算公式如下:其中:

    Scorej: 候選評審人j的最終得分

    k: 與新到來的pull request最相關的k個歷史pull request

    prnew: 新到來的pull request

    pri: 第i個相關的歷史pull request

    Nj,i: 評審人j在pri下評論的次數(shù)的權重

    Tpri: 第i個相關的pull request評論的時間維度所獲得的權重

    Fj: 候選評審人j的影響力因子

    5 實驗

    5.1 數(shù)據(jù)集的選取

    我們選取了github中比較熱門的10個項目用于實驗, 他們是scikit-learn、scala、rails、swift、ipython、jquery、akka、node、xbmc和homebrew. 這些項目都擁有大于1500個pull request, 數(shù)據(jù)集足夠充分用于進行實驗. 同時我們做了如下過濾:

    1) 首先對每個項目抓取最近的 1500條pull request的數(shù)據(jù), 對項目中的pull request標題和描述信息,去除停用詞并進行詞干還原之后, 將那些標題和描述部分的單詞總和小于10個詞的pull request去掉, 因為小于10個詞會導致描述該pull request的信息量過少.

    2) 停用詞并進行詞干還原之后, 將那些標題和描述部分的單詞總和小于10個詞的pull request去掉, 因為小于10個詞會導致描述該pull request的信息量過少.

    3) 然后, 我們去掉評審人少于2個的pull request,因為至少2個評審人進行評審才能使評審可信[14,15].

    4) 對這1500個pull request過濾之后, 用最新的1000個pull request作為最終的數(shù)據(jù)集. 并劃分訓練集和測試集, 前900個作為訓練集, 后100個作為測試集.

    候選評審人過濾: 訓練集中的候選評審人如果只對1個pull request進行過評審, 則將這個候選評審人排除掉. 我們認為候選評審人更有可能是進行過多次評審的開發(fā)者, 而不是偶然對1個pull request進行過評審的開發(fā)者. 因為github的開發(fā)者以及評審人都希望為自己所在的項目做出貢獻, 所以他們會自發(fā)的利用自己在項目領域內的經(jīng)驗, 不斷的多次對項目做出貢獻, 所以我們不難發(fā)現(xiàn)大型項目中, 大多數(shù)評審人都會對多個pull request進行多次的評審, 而核心成員擔任評審人角色時, 他自主發(fā)起評審數(shù)目甚至會達到數(shù)十甚至上百個. 評審人經(jīng)過上述的過濾之后, 通過要余弦相似度的計算, 可以得到與新到來的pull request最相關的歷史pull request, 在這些歷史pull request下進行評審的開發(fā)者于是構成了候選評審人的集合.

    5.2 評估方式

    本文采用準確率(precision)和召回率(recall)對評審人推薦結果進行評估, 對返回的10個推薦結果, 分別計算top 1到top 10的準確率和召回率. 計算方法如下公式:

    5.3 實驗效果對比

    這部分我們對比了三組實驗的結果, 分別是baseline、傳統(tǒng)的信息檢索方法(IR-base)的效果和本文提出的優(yōu)化后的考慮了影響力和時間因子的信息檢索方法(IR-optimal)的效果.

    5.3.1 實驗的baseline

    Github中的大部分pull request是由各項目組的核心成員評審的. 因為他們對項目更加了解, 而且具備豐富的編程經(jīng)驗以及項目相關經(jīng)驗. 所以他們經(jīng)常能給出重要、準確而且有效的評審意見, 并幫助pull request提交者改善他的代碼. 為了評估本文提出的實驗方法的效果, 我們采用了對比的baseline, 在訓練集中評審了pull request數(shù)最多的top k個開發(fā)者成為活躍評審人集合, 每個新到來的pull request都被分配給活躍評審人集合. 這些最活躍的開發(fā)者所獲得的推薦效果就構成了我們的baseline.

    5.3.2 推薦效果評估

    三組實驗的準確率、召回率曲線如圖2所示, 我們描繪了10個項目中top 1 到top 10的平均準確率以及平均召回率曲線.

    由圖2可以看出隨著推薦的人數(shù)增多, 準確率呈下降趨勢, 召回率呈現(xiàn)上升趨勢. 圖中顯示傳統(tǒng)信息檢索方法以及本文考慮了影響力和時間因子的信息檢索方法的推薦效果明顯好于baseline.

    相對于傳統(tǒng)信息檢索方法而言, 本文提出的基于影響力因子和時間維度衰減的信息檢索方法在top 1到top 4上效果提升比較明顯. 我們列出了top 1到top 5的效果對比表格. 如表1所示. 我們的方法在top 1上準確率達到68%, 比傳統(tǒng)信息檢索方法提升了8%,召回率達到18%.

    此外, 我們通過計算本文提出的優(yōu)化后的信息檢索方法的F值, 發(fā)現(xiàn)在top 4的時候F值最大, 達到了0.514. 而且曲線表明推薦top 5到top 10的準確率下降非常明顯, 這和我們的預期也相符, 實際上大多數(shù)pull request的評審人一般是少于5個的, 假設一個pull request只有3位評審人, 而我們推薦系統(tǒng)推薦top 10位評審的時的準確率可想而知是會大大降低的. 前5個準確率能得到保證是因為基于信息檢索的推薦方法效果比較好, 但正因為實際評審人少于5個, 所以top 5到 top 10的候選評審人相關性得分會比較低, 造成這部分的推薦不能做到top1 到 top 4那么準確, 從而造成p@k的準確率下降明顯. 所有方法在top 1到 top 4上召回率上升速度比較快. 當我們推薦top 10個評審人時, 三種方法的召回率都達到了78%, 說明三種方法當推薦到10位候選評審人時, 都能保證比較好的召回.

    此外, 通過深入研究我們發(fā)現(xiàn), pull request推薦結果會傾向于推薦那些歷史上進行過多次評審的活躍的評審人, 這些人在開源項目中具有很多follower, 這與實際的github社區(qū)的評審情況相符合, 也從側面印證了baseline的有效性. 但本文提出的方法還考慮了pull request的之間的相關性, 評審人的影響力因子, 以及評審的時間維度衰減, 使得最終的推薦準確率相對于傳統(tǒng)信息檢索方法以及baseline都有比較好的提升.

    圖2 評審人推薦的準確率、召回率曲線

    表1 三組實驗top 1 到top5的效果對比

    6 結論和未來工作

    在本文中, 首先我們將應用于bug分類的信息檢索方法, 拓展應用于pull request的評審人推薦中. 對新到來的pull request, 基于標題和描述信息, 獲得和該pull request最相關top k個的歷史pull request. 這top k個歷史pull request下的評審人構成了我們的候選評審人集合. 然后, 我們基于評審人的評論次數(shù)、github評審人的影響力因子以及基于pull request評審時間維度的衰減計算每位候選評審人相對于新到來的pull request的相關性得分, 最終返回得分top 10的評審人作為評審人推薦結果.

    本文主要討論了github評審人的影響力因子量化度量方法, 以及基于pull request評審時間維度的衰減.并將這兩者結合到信息檢索方法中, 得出優(yōu)化后的信息檢索方法用于評審人推薦. 并對baseline、傳統(tǒng)信息檢索方法、優(yōu)化后的信息檢索方法進行效果評估, 實驗表明, 優(yōu)化后的信息檢索方法推薦的準確率提升比較明顯, 尤其是top 1 到top 4的推薦效果明顯優(yōu)于其他兩種方法. 未來, 我們會對評審人的影響力因子量化進行更深入的探索, 分析開發(fā)者之間的有效評論,基于語義評估評審人的評論對該pull request所做的貢獻. 并構建開發(fā)者之間的評論關系網(wǎng), 由此獲得影響力因子評估的更精確的量化方法, 使得本文提出的信息檢索方法的準確率和召回率效果進一步提升.

    1 Begel A, Bosch J, Storey MA. Social networking meets software development: Perspectives from GitHub, MSDN, stack exchange, and TopCoder. Software IEEE, 2013, 30(1): 52–66.

    2 Gousios G, Zaidman A, Storey MA, et al. Workpractices and challenges in pull-based development: The integrator’s perspective. 2015 IEEE/ACM 37th IEEE International Conference on Software Engineering (ICSE). IEEE Computer Society. 2015. 358–368.

    3 Gousios G, Bacchelli A. Work practices and challenges in pull-based development: The contributor’s perspective. IEEE Software, 2015, 32(1).

    4 Yu Y, Wang H, Filkov V, et al. Wait for it: Determinants of pull request evaluation latency on GitHub. 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories (MSR). IEEE. 2015. 367–371.

    5 Vasilescu B, Yu Y, Wang H, et al. Quality and productivity outcomes relating to continuous integration in GitHub. Proc. of the 2015 10th Joint Meeting on Foundations of Software Engineering. ACM. 2015. 805–816.

    6 Cubranic D, Murphy GC. Automatic bug triage using text categorization. Seke: Sixteenth International Conference on Software Engineering & Knowledge Engineering. 2004. 92–97.

    7 Canfora G, Cerulo L. Supporting change request assignment in open source development. Proc. of the 2006 ACM Symposium on Applied Computing. ACM. 2006. 1767–1772.

    8 Linares-Vásquez M, Hossen K, Dang H, et al. Triaging incoming change requests: Bug or commit history, or code authorship? 2012 28th IEEE International Conference on Software Maintenance (ICSM). IEEE. 2012. 451–460.

    9 Tamrawi A, Nguyen TT, Al-Kofahi JM, et al. Fuzzy set and cache-based approach for bug triaging. Proc. of the 19th ACM SIGSOFT Symposium and the 13th European Conference on Foundations of Software Engineering. ACM. 2011. 365–375.

    10 Yu Y, Wang H, Yin G, et al. Who should review this pull-request: Reviewer recommendation to expedite crowd collaboration. 2014 21st Asia-Pacific Software Engineering Conference (APSEC). IEEE. 2014, 1. 335–342.

    11 Anvik J, Hiew L, Murphy GC. Who should fix this bug? Proc. of the 28th International Conference on Software Engineering. ACM. 2006. 361–370.

    12 Bhattacharya P, Neamtiu I, Shelton CR. Automated, highly-accurate, bug assignment using machine learning and tossing graphs. Journal of Systems and Software, 2012, 85(10): 2275–2292.

    13 Jeong G, Kim S, Zimmermann T. Improving bug triage with bug tossing graphs. Proc. of the the 7th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering. ACM. 2009. 111–120.

    14 Sauer C, Jeffery DR, Land L, et al. The effectiveness of software development technical reviews: A behaviorally motivated program of research. IEEE Trans. on Software Engineering, 2000, 26(1): 1–14.

    15 Rigby PC, Bird C. Convergent contemporary software peer review practices. Proc. of the 2013 9th Joint Meeting on Foundations of Software Engineering. ACM. 2013. 202-212.

    Code Reviewer Recommendation Based on Time and Impact Factor for Pull Request in Github

    LU Song1,2, YANG Da1, HU Jun1, ZHANG Xiao1,212
    (Institute of Software, Chinese Academy of Sciences, Beijing 100190, China) (University of Chinese Academy of Sciences, Beijing 100190, China)

    The pull request mechanism is widely used for integrating developers’ code in github, so that developers can make contribution for open source projects. The code review of pull request is an essential method to maintain the high quality of code in github. Assigning appropriate reviewers for a newly coming pull request can effectively reduce the delay between the submission of a pull request and the actual review of it. At present, the pull request is assigned manually by core developers in the project. To reduce this cost, we propose a reviewer recommender system based on information retrieval. This method can automatically recommend highly relevant reviewers for a newly coming pull request. Our method has also taken the impact factor and time decaying factor into consideration, and has received good performance that the top 1 precision can reach 68% and top 10 recall rate can reach 78%.

    pull request; code review; information retrieval; time factor; impact factor

    國家自然科學基金(91218302,91318301)

    2016-03-24;收到修改稿時間:2016-04-14

    10.15888/j.cnki.csa.5455

    猜你喜歡
    信息檢索開發(fā)者代碼
    創(chuàng)世代碼
    動漫星空(2018年11期)2018-10-26 02:24:02
    創(chuàng)世代碼
    動漫星空(2018年2期)2018-10-26 02:11:00
    創(chuàng)世代碼
    動漫星空(2018年9期)2018-10-26 01:16:48
    創(chuàng)世代碼
    動漫星空(2018年5期)2018-10-26 01:15:02
    醫(yī)學期刊編輯中文獻信息檢索的應用
    新聞傳播(2016年18期)2016-07-19 10:12:06
    16%游戲開發(fā)者看好VR
    CHIP新電腦(2016年3期)2016-03-10 13:06:42
    基于神經(jīng)網(wǎng)絡的個性化信息檢索模型研究
    iOS開發(fā)者調查
    電腦迷(2015年8期)2015-05-30 12:27:10
    iOS開發(fā)者調查
    電腦迷(2015年4期)2015-05-30 05:24:09
    教學型大學《信息檢索》公選課的設計與實施
    河南科技(2014年11期)2014-02-27 14:10:19
    18禁裸乳无遮挡免费网站照片| 三级国产精品片| 一个人免费在线观看电影| 亚洲国产最新在线播放| 美女脱内裤让男人舔精品视频| 91久久精品国产一区二区成人| 国产毛片a区久久久久| 在线免费十八禁| 狂野欧美激情性xxxx在线观看| 热99在线观看视频| 99热精品在线国产| 婷婷色av中文字幕| 卡戴珊不雅视频在线播放| 男女国产视频网站| 日韩中字成人| 久久婷婷人人爽人人干人人爱| 亚洲第一区二区三区不卡| 在线播放国产精品三级| 亚洲国产最新在线播放| 国产黄片视频在线免费观看| 日日撸夜夜添| 国产久久久一区二区三区| 亚洲国产成人一精品久久久| 99热6这里只有精品| 国内精品宾馆在线| av女优亚洲男人天堂| 成人午夜高清在线视频| 色综合站精品国产| 久久精品综合一区二区三区| 国产伦精品一区二区三区视频9| 中文字幕av成人在线电影| 2022亚洲国产成人精品| 国产白丝娇喘喷水9色精品| 美女被艹到高潮喷水动态| 97超碰精品成人国产| 别揉我奶头 嗯啊视频| 午夜精品国产一区二区电影 | 亚洲精品日韩在线中文字幕| 国产精品久久久久久久电影| 中文在线观看免费www的网站| 最近的中文字幕免费完整| 日韩欧美精品免费久久| av免费观看日本| 麻豆久久精品国产亚洲av| 夫妻性生交免费视频一级片| 国产又色又爽无遮挡免| 18禁在线无遮挡免费观看视频| 免费大片18禁| 我要看日韩黄色一级片| 变态另类丝袜制服| 亚洲av成人av| 爱豆传媒免费全集在线观看| 亚洲成人精品中文字幕电影| 只有这里有精品99| 午夜福利高清视频| 最近的中文字幕免费完整| 免费黄色在线免费观看| 国产亚洲午夜精品一区二区久久 | 精品一区二区三区视频在线| 麻豆久久精品国产亚洲av| 免费看日本二区| 狠狠狠狠99中文字幕| 国产精品一及| 亚洲av中文av极速乱| 一级毛片aaaaaa免费看小| 男插女下体视频免费在线播放| 小说图片视频综合网站| av线在线观看网站| 国产亚洲最大av| 一级毛片电影观看 | 黄片无遮挡物在线观看| 国产在线男女| 简卡轻食公司| 久久韩国三级中文字幕| 婷婷色综合大香蕉| 插逼视频在线观看| 国产亚洲av片在线观看秒播厂 | 国产精品蜜桃在线观看| 最近视频中文字幕2019在线8| 夫妻性生交免费视频一级片| 亚洲国产日韩欧美精品在线观看| 蜜桃亚洲精品一区二区三区| 亚洲四区av| 少妇裸体淫交视频免费看高清| 日本wwww免费看| av专区在线播放| 精品久久久久久成人av| 禁无遮挡网站| 九九热线精品视视频播放| 亚洲欧洲国产日韩| ponron亚洲| 成人午夜精彩视频在线观看| 99久久人妻综合| 国产片特级美女逼逼视频| 69人妻影院| 九色成人免费人妻av| 久久99蜜桃精品久久| 秋霞伦理黄片| 国产精品久久电影中文字幕| 精品久久久久久成人av| 亚洲五月天丁香| 免费观看人在逋| 国产精品综合久久久久久久免费| 日韩欧美国产在线观看| 成人特级av手机在线观看| 国产免费一级a男人的天堂| 日本免费一区二区三区高清不卡| 人人妻人人澡人人爽人人夜夜 | 夜夜爽夜夜爽视频| 欧美一级a爱片免费观看看| 日韩视频在线欧美| 国产精品电影一区二区三区| 亚洲av中文字字幕乱码综合| 国产亚洲精品av在线| 久久久久免费精品人妻一区二区| kizo精华| 免费一级毛片在线播放高清视频| 99久久成人亚洲精品观看| 国产一区亚洲一区在线观看| 美女黄网站色视频| 久久久久久久久久黄片| 爱豆传媒免费全集在线观看| 九九久久精品国产亚洲av麻豆| 婷婷六月久久综合丁香| 美女国产视频在线观看| 高清日韩中文字幕在线| www日本黄色视频网| 国产精品无大码| 欧美日韩精品成人综合77777| 日本免费一区二区三区高清不卡| 午夜视频国产福利| 国产色爽女视频免费观看| 精品久久久久久成人av| 少妇人妻精品综合一区二区| 毛片女人毛片| 国产男人的电影天堂91| 国产伦精品一区二区三区视频9| 哪个播放器可以免费观看大片| 国产探花极品一区二区| 亚洲欧美成人精品一区二区| 日本三级黄在线观看| 蜜桃亚洲精品一区二区三区| a级毛色黄片| 午夜激情福利司机影院| 一级黄片播放器| 国产中年淑女户外野战色| 久久久久性生活片| 日韩欧美国产在线观看| 亚洲欧美日韩东京热| 伦精品一区二区三区| 午夜日本视频在线| 少妇丰满av| 最近视频中文字幕2019在线8| 精品免费久久久久久久清纯| 九九热线精品视视频播放| 69av精品久久久久久| 91久久精品国产一区二区成人| 久久久久网色| 三级国产精品片| 99热这里只有是精品50| 内射极品少妇av片p| 一级黄色大片毛片| 汤姆久久久久久久影院中文字幕 | 波多野结衣巨乳人妻| 日韩国内少妇激情av| av天堂中文字幕网| 成年女人看的毛片在线观看| 久久热精品热| 亚洲自拍偷在线| 国产精品久久久久久精品电影| АⅤ资源中文在线天堂| 中文字幕熟女人妻在线| 偷拍熟女少妇极品色| 性插视频无遮挡在线免费观看| 97热精品久久久久久| 九九爱精品视频在线观看| 久久久久久久久久成人| 亚洲真实伦在线观看| 亚洲精品国产成人久久av| 国产黄色视频一区二区在线观看 | 亚洲一级一片aⅴ在线观看| 性插视频无遮挡在线免费观看| 国产精品久久电影中文字幕| 国产精品国产高清国产av| 久久国产乱子免费精品| 99九九线精品视频在线观看视频| 久久久国产成人免费| 国产 一区 欧美 日韩| 伦精品一区二区三区| 午夜福利在线观看免费完整高清在| 国产极品天堂在线| 午夜a级毛片| 不卡视频在线观看欧美| 久久亚洲国产成人精品v| 91久久精品电影网| 少妇丰满av| 欧美日本亚洲视频在线播放| 午夜a级毛片| 免费观看精品视频网站| 日日啪夜夜撸| 成人亚洲欧美一区二区av| 国产成人91sexporn| 久久久色成人| 汤姆久久久久久久影院中文字幕 | 日韩高清综合在线| 天美传媒精品一区二区| 国产免费视频播放在线视频 | 搡老妇女老女人老熟妇| 最近手机中文字幕大全| 99热这里只有是精品在线观看| 国产大屁股一区二区在线视频| 日韩成人伦理影院| 2022亚洲国产成人精品| 黑人高潮一二区| 日本爱情动作片www.在线观看| 国产老妇伦熟女老妇高清| 亚洲精品456在线播放app| av专区在线播放| 高清午夜精品一区二区三区| 美女大奶头视频| 亚洲欧洲日产国产| 少妇猛男粗大的猛烈进出视频 | 久久久久久久久久黄片| 欧美一区二区国产精品久久精品| 九九热线精品视视频播放| 午夜日本视频在线| 纵有疾风起免费观看全集完整版 | 亚洲av免费在线观看| 麻豆av噜噜一区二区三区| 国产精品永久免费网站| 国产精品美女特级片免费视频播放器| 日产精品乱码卡一卡2卡三| 国产真实乱freesex| 国产91av在线免费观看| 国产成人午夜福利电影在线观看| 国产一区有黄有色的免费视频 | 日韩欧美 国产精品| 亚洲性久久影院| 久久人妻av系列| 99久国产av精品| 国产伦精品一区二区三区四那| 精品人妻熟女av久视频| 日韩欧美国产在线观看| 久热久热在线精品观看| 丝袜喷水一区| 成人午夜高清在线视频| 建设人人有责人人尽责人人享有的 | 国模一区二区三区四区视频| 亚洲一级一片aⅴ在线观看| 免费av毛片视频| 色综合站精品国产| 一本久久精品| 99九九线精品视频在线观看视频| 亚洲真实伦在线观看| 亚洲国产欧美在线一区| АⅤ资源中文在线天堂| 视频中文字幕在线观看| 亚洲欧美清纯卡通| 1024手机看黄色片| 一级av片app| 精品人妻一区二区三区麻豆| 久久久久久久亚洲中文字幕| 国产成人精品久久久久久| 久久人人爽人人爽人人片va| 亚洲av不卡在线观看| 亚洲久久久久久中文字幕| 村上凉子中文字幕在线| 波多野结衣巨乳人妻| 美女xxoo啪啪120秒动态图| 国产精品电影一区二区三区| av在线天堂中文字幕| 我的老师免费观看完整版| 久久99热这里只频精品6学生 | 国产成人freesex在线| 啦啦啦观看免费观看视频高清| 色尼玛亚洲综合影院| 熟妇人妻久久中文字幕3abv| 搡老妇女老女人老熟妇| 观看免费一级毛片| 国产成人午夜福利电影在线观看| 亚洲自拍偷在线| 欧美人与善性xxx| 欧美另类亚洲清纯唯美| 秋霞在线观看毛片| 久久久精品94久久精品| 丰满少妇做爰视频| 最近2019中文字幕mv第一页| 村上凉子中文字幕在线| 美女大奶头视频| 在线天堂最新版资源| 国产在线一区二区三区精 | 国产淫片久久久久久久久| 又黄又爽又刺激的免费视频.| 国产精品一区二区三区四区免费观看| 晚上一个人看的免费电影| 国产一区二区在线av高清观看| 99久久九九国产精品国产免费| 日本色播在线视频| 亚洲,欧美,日韩| 免费看日本二区| 神马国产精品三级电影在线观看| 国产精品乱码一区二三区的特点| 真实男女啪啪啪动态图| 特级一级黄色大片| 日韩国内少妇激情av| 久久欧美精品欧美久久欧美| 国产精品.久久久| 啦啦啦啦在线视频资源| 婷婷色av中文字幕| 一级毛片我不卡| 亚洲婷婷狠狠爱综合网| 欧美一区二区精品小视频在线| 三级男女做爰猛烈吃奶摸视频| 九草在线视频观看| 欧美激情久久久久久爽电影| 亚洲无线观看免费| 亚洲,欧美,日韩| 国产精品1区2区在线观看.| 亚洲,欧美,日韩| 最近2019中文字幕mv第一页| 91久久精品国产一区二区三区| 五月伊人婷婷丁香| 亚洲av中文av极速乱| 日日啪夜夜撸| 一级黄色大片毛片| 人体艺术视频欧美日本| 麻豆久久精品国产亚洲av| 国产精品一区二区三区四区久久| 日产精品乱码卡一卡2卡三| 久久久久久久午夜电影| 国产精品国产三级专区第一集| 午夜福利在线在线| 成人毛片60女人毛片免费| 免费无遮挡裸体视频| 一个人免费在线观看电影| 嫩草影院精品99| 人人妻人人看人人澡| 免费观看性生交大片5| av国产免费在线观看| 欧美潮喷喷水| 亚洲一区高清亚洲精品| 亚洲精品456在线播放app| 午夜福利视频1000在线观看| 波野结衣二区三区在线| 国产亚洲精品av在线| 日韩一区二区视频免费看| 波多野结衣巨乳人妻| 美女高潮的动态| 菩萨蛮人人尽说江南好唐韦庄 | 久久精品国产亚洲av涩爱| 简卡轻食公司| 久久午夜福利片| 亚洲av成人精品一二三区| 一边亲一边摸免费视频| 99九九线精品视频在线观看视频| 99久国产av精品国产电影| 欧美xxxx性猛交bbbb| 淫秽高清视频在线观看| 高清日韩中文字幕在线| 精品免费久久久久久久清纯| 欧美极品一区二区三区四区| 永久免费av网站大全| 乱人视频在线观看| 18禁动态无遮挡网站| 在线观看av片永久免费下载| 亚洲高清免费不卡视频| 国产成人一区二区在线| 国产精品人妻久久久影院| 亚洲欧美精品综合久久99| 久久久久久久久久久免费av| 国产精品av视频在线免费观看| 久久久久国产网址| 赤兔流量卡办理| 日韩,欧美,国产一区二区三区 | 国产极品精品免费视频能看的| 内射极品少妇av片p| 国内精品一区二区在线观看| 精品99又大又爽又粗少妇毛片| 国产视频内射| 欧美成人午夜免费资源| 一边亲一边摸免费视频| 六月丁香七月| 中文乱码字字幕精品一区二区三区 | 少妇的逼好多水| 激情 狠狠 欧美| 久久婷婷人人爽人人干人人爱| 国产高清不卡午夜福利| 久久精品91蜜桃| 日本五十路高清| 国产精品久久视频播放| 高清午夜精品一区二区三区| 久久久午夜欧美精品| 日韩av不卡免费在线播放| 国产高清三级在线| 99久久成人亚洲精品观看| 国产女主播在线喷水免费视频网站 | 天堂中文最新版在线下载 | 国产综合懂色| 午夜福利高清视频| 丝袜美腿在线中文| 天堂av国产一区二区熟女人妻| 欧美日韩精品成人综合77777| 精品久久久久久久久av| 一区二区三区乱码不卡18| 国内精品一区二区在线观看| 亚洲伊人久久精品综合 | 久久精品国产自在天天线| 成人三级黄色视频| 欧美精品国产亚洲| 欧美人与善性xxx| 大香蕉久久网| 婷婷色麻豆天堂久久 | 久久草成人影院| 日韩人妻高清精品专区| 舔av片在线| 免费在线观看成人毛片| 亚洲中文字幕一区二区三区有码在线看| 国产精品一区二区三区四区久久| 淫秽高清视频在线观看| 久久热精品热| 国产精品美女特级片免费视频播放器| 久久久色成人| 国产真实乱freesex| 日本一本二区三区精品| 亚洲国产精品国产精品| 国产成人freesex在线| 国产色爽女视频免费观看| 看十八女毛片水多多多| 亚洲av日韩在线播放| 久久精品国产亚洲av涩爱| www.色视频.com| 婷婷六月久久综合丁香| 美女大奶头视频| 三级国产精品欧美在线观看| 菩萨蛮人人尽说江南好唐韦庄 | 日韩av在线大香蕉| 日韩精品青青久久久久久| 人人妻人人澡欧美一区二区| 国产成人aa在线观看| 亚洲最大成人手机在线| 久久人人爽人人爽人人片va| 国产高清不卡午夜福利| 亚洲欧美精品专区久久| 男女边吃奶边做爰视频| 波多野结衣高清无吗| 亚洲av.av天堂| 边亲边吃奶的免费视频| 久久人人爽人人片av| 国产又黄又爽又无遮挡在线| 一级黄色大片毛片| 国产色婷婷99| 成人毛片60女人毛片免费| 国产精品福利在线免费观看| 免费观看人在逋| 国产欧美日韩精品一区二区| 日韩欧美 国产精品| av免费观看日本| 久久99热这里只频精品6学生 | 亚洲丝袜综合中文字幕| 2022亚洲国产成人精品| 变态另类丝袜制服| 亚洲综合精品二区| 国产精品一及| 三级国产精品片| 欧美bdsm另类| 欧美不卡视频在线免费观看| 亚洲无线观看免费| 成人亚洲欧美一区二区av| 久久亚洲精品不卡| 欧美另类亚洲清纯唯美| 日韩亚洲欧美综合| 国产精品嫩草影院av在线观看| 国产人妻一区二区三区在| 在线观看美女被高潮喷水网站| 亚洲人成网站在线播| 久久久a久久爽久久v久久| 成人午夜精彩视频在线观看| 人妻制服诱惑在线中文字幕| 九九爱精品视频在线观看| 亚洲乱码一区二区免费版| 国产三级中文精品| 两个人视频免费观看高清| 精品久久久噜噜| 国产精品嫩草影院av在线观看| 91久久精品国产一区二区三区| 午夜福利成人在线免费观看| 乱系列少妇在线播放| 国产老妇伦熟女老妇高清| 特级一级黄色大片| 色综合亚洲欧美另类图片| h日本视频在线播放| 日本av手机在线免费观看| 91久久精品国产一区二区三区| 亚洲真实伦在线观看| av女优亚洲男人天堂| 夜夜看夜夜爽夜夜摸| 亚洲中文字幕日韩| 色网站视频免费| 性插视频无遮挡在线免费观看| 国产成人午夜福利电影在线观看| 亚洲第一区二区三区不卡| or卡值多少钱| 日本一二三区视频观看| 色吧在线观看| 超碰97精品在线观看| 亚洲中文字幕一区二区三区有码在线看| 中文亚洲av片在线观看爽| 国产亚洲最大av| av又黄又爽大尺度在线免费看 | 亚洲欧洲国产日韩| 久久久精品欧美日韩精品| 国产又黄又爽又无遮挡在线| 成年免费大片在线观看| 亚洲最大成人中文| 亚洲av男天堂| 超碰97精品在线观看| 中文欧美无线码| 三级毛片av免费| 日日啪夜夜撸| 亚洲一区高清亚洲精品| 蜜臀久久99精品久久宅男| 免费黄色在线免费观看| 国产真实伦视频高清在线观看| 一边摸一边抽搐一进一小说| 一个人看的www免费观看视频| 我要看日韩黄色一级片| 日本一本二区三区精品| 国产免费又黄又爽又色| 男的添女的下面高潮视频| or卡值多少钱| 我要看日韩黄色一级片| 韩国av在线不卡| 国产成人aa在线观看| 精品久久久噜噜| 国产精品福利在线免费观看| 久久久久久大精品| 麻豆精品久久久久久蜜桃| av在线老鸭窝| 久久人人爽人人片av| 小蜜桃在线观看免费完整版高清| 亚洲经典国产精华液单| 亚洲国产精品sss在线观看| 日本免费一区二区三区高清不卡| h日本视频在线播放| 免费大片18禁| 美女高潮的动态| 啦啦啦韩国在线观看视频| 两个人视频免费观看高清| 亚洲电影在线观看av| 久久久色成人| 寂寞人妻少妇视频99o| av福利片在线观看| 国产精品三级大全| АⅤ资源中文在线天堂| 97热精品久久久久久| 国产 一区精品| 精品无人区乱码1区二区| 18+在线观看网站| 看十八女毛片水多多多| 成年版毛片免费区| 久久久久久久久久黄片| 精品99又大又爽又粗少妇毛片| 美女脱内裤让男人舔精品视频| 天天躁日日操中文字幕| 国产精品伦人一区二区| 99热6这里只有精品| a级一级毛片免费在线观看| 国产精品一及| 青春草国产在线视频| 内地一区二区视频在线| 国产精品乱码一区二三区的特点| 可以在线观看毛片的网站| 99久久中文字幕三级久久日本| 中文精品一卡2卡3卡4更新| 国产亚洲91精品色在线| 精品一区二区三区视频在线| 国产毛片a区久久久久| 乱码一卡2卡4卡精品| 国产激情偷乱视频一区二区| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 久久久久性生活片| 日韩欧美 国产精品| 亚洲熟妇中文字幕五十中出| 99久久中文字幕三级久久日本| 日本一本二区三区精品| 变态另类丝袜制服| 非洲黑人性xxxx精品又粗又长| 麻豆久久精品国产亚洲av| 婷婷色综合大香蕉| 最近2019中文字幕mv第一页| 久久久欧美国产精品| 欧美性猛交黑人性爽| 国产单亲对白刺激| 日韩亚洲欧美综合| 一卡2卡三卡四卡精品乱码亚洲| 亚洲人与动物交配视频| 边亲边吃奶的免费视频| 久久午夜福利片| 99热这里只有精品一区| 国产成人一区二区在线| 亚洲欧美精品专区久久| 免费在线观看成人毛片| 色综合色国产| 菩萨蛮人人尽说江南好唐韦庄 | 亚洲国产精品专区欧美| 深爱激情五月婷婷| 麻豆精品久久久久久蜜桃| 国产伦在线观看视频一区| 99在线人妻在线中文字幕| 国产精品野战在线观看| av在线天堂中文字幕| 大香蕉久久网| 国产精品熟女久久久久浪| 国语自产精品视频在线第100页| 国产极品天堂在线|