• <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
    三级经典国产精品| 日韩高清综合在线| 欧美另类亚洲清纯唯美| 国产在视频线在精品| 欧美+日韩+精品| 男的添女的下面高潮视频| 国产成人91sexporn| 一级二级三级毛片免费看| 国产片特级美女逼逼视频| 女的被弄到高潮叫床怎么办| 老女人水多毛片| 亚洲国产精品国产精品| 日韩 亚洲 欧美在线| 国产欧美另类精品又又久久亚洲欧美| 婷婷六月久久综合丁香| 成人国产麻豆网| 亚洲自拍偷在线| 婷婷六月久久综合丁香| 99久久精品热视频| 中文乱码字字幕精品一区二区三区 | 国产黄色视频一区二区在线观看 | 九草在线视频观看| 成人午夜精彩视频在线观看| 精品一区二区三区视频在线| 2021少妇久久久久久久久久久| 免费看日本二区| 97超碰精品成人国产| 欧美精品一区二区大全| 国产精品三级大全| 51国产日韩欧美| 黄色欧美视频在线观看| 1000部很黄的大片| a级毛片免费高清观看在线播放| 1024手机看黄色片| 国产探花在线观看一区二区| 国产一级毛片七仙女欲春2| 国产成人免费观看mmmm| 插阴视频在线观看视频| 国产色爽女视频免费观看| 99视频精品全部免费 在线| 精品国产三级普通话版| 国产成人a∨麻豆精品| 久热久热在线精品观看| 亚洲av二区三区四区| 久久精品国产自在天天线| 日本av手机在线免费观看| 国产精品国产三级国产专区5o | 久久精品综合一区二区三区| 国产一区二区在线观看日韩| 午夜福利高清视频| 久久精品人妻少妇| 久久精品91蜜桃| 欧美日本亚洲视频在线播放| 欧美一区二区精品小视频在线| 国产极品天堂在线| 我要搜黄色片| 免费看av在线观看网站| av在线亚洲专区| 亚洲精品亚洲一区二区| 国产精品精品国产色婷婷| 亚洲欧美一区二区三区国产| 亚洲性久久影院| 国产午夜精品久久久久久一区二区三区| or卡值多少钱| 婷婷色av中文字幕| 精品酒店卫生间| 国产一区二区在线观看日韩| 成人无遮挡网站| 国产在线一区二区三区精 | 亚洲av电影在线观看一区二区三区 | 天堂√8在线中文| 精品欧美国产一区二区三| 国产一区有黄有色的免费视频 | 欧美zozozo另类| 人妻系列 视频| 日韩欧美在线乱码| 成人毛片60女人毛片免费| 精品久久久久久电影网 | 永久免费av网站大全| av又黄又爽大尺度在线免费看 | 人人妻人人澡人人爽人人夜夜 | 噜噜噜噜噜久久久久久91| 非洲黑人性xxxx精品又粗又长| 波多野结衣巨乳人妻| 国产乱人视频| 在线观看美女被高潮喷水网站| 国产亚洲一区二区精品| 亚洲欧美日韩东京热| 亚洲精品成人久久久久久| 日日干狠狠操夜夜爽| 亚洲国产成人一精品久久久| 国产老妇女一区| 亚洲一级一片aⅴ在线观看| 国产精华一区二区三区| 人人妻人人看人人澡| 国产三级在线视频| 色播亚洲综合网| 国产久久久一区二区三区| av天堂中文字幕网| 国产av不卡久久| 国产人妻一区二区三区在| 国产精品人妻久久久久久| 村上凉子中文字幕在线| 嫩草影院入口| 又黄又爽又刺激的免费视频.| 亚洲中文字幕一区二区三区有码在线看| 亚洲国产欧美在线一区| 桃色一区二区三区在线观看| 女人久久www免费人成看片 | 日韩国内少妇激情av| 五月伊人婷婷丁香| 亚洲va在线va天堂va国产| av在线老鸭窝| 国内少妇人妻偷人精品xxx网站| 久久久精品94久久精品| 超碰97精品在线观看| 亚洲国产精品合色在线| 亚洲av福利一区| 国产精品一区www在线观看| kizo精华| 久久婷婷人人爽人人干人人爱| 春色校园在线视频观看| 国产在线男女| 久久精品国产自在天天线| 一区二区三区免费毛片| 可以在线观看毛片的网站| 神马国产精品三级电影在线观看| 两个人视频免费观看高清| 高清在线视频一区二区三区 | 亚洲aⅴ乱码一区二区在线播放| 亚洲人成网站在线播| 美女脱内裤让男人舔精品视频| 国产欧美另类精品又又久久亚洲欧美| 国产亚洲一区二区精品| 全区人妻精品视频| 欧美性猛交╳xxx乱大交人| 亚洲国产成人一精品久久久| 国产女主播在线喷水免费视频网站 | 一个人免费在线观看电影| 午夜精品国产一区二区电影 | 国产日韩欧美在线精品| 日韩av在线免费看完整版不卡| or卡值多少钱| 午夜久久久久精精品| 亚洲av日韩在线播放| 国产一区二区亚洲精品在线观看| 免费看av在线观看网站| 精品熟女少妇av免费看| 丰满乱子伦码专区| 欧美成人午夜免费资源| 精品熟女少妇av免费看| 狂野欧美激情性xxxx在线观看| 又爽又黄无遮挡网站| 黄色日韩在线| 一级毛片电影观看 | 国产三级中文精品| 天天躁日日操中文字幕| 国产色婷婷99| 黄片无遮挡物在线观看| 欧美xxxx黑人xx丫x性爽| 日韩视频在线欧美| 男人舔女人下体高潮全视频| 麻豆成人午夜福利视频| 人妻制服诱惑在线中文字幕| 精品久久国产蜜桃| 亚洲久久久久久中文字幕| 国产免费福利视频在线观看| 两个人视频免费观看高清| 观看免费一级毛片| 久久国产乱子免费精品| 久久久国产成人免费| 日韩成人伦理影院| 97超视频在线观看视频| 久久精品久久久久久久性| 波野结衣二区三区在线| 国产精品爽爽va在线观看网站| 国产v大片淫在线免费观看| 三级男女做爰猛烈吃奶摸视频| 国产一区二区在线av高清观看| 久久精品久久久久久久性| 欧美日韩综合久久久久久| 久久久久久久午夜电影| 国产久久久一区二区三区| 91久久精品电影网| 91精品伊人久久大香线蕉| 久久久精品大字幕| 亚洲精品成人久久久久久| 99久国产av精品国产电影| 国产成人午夜福利电影在线观看| 美女黄网站色视频| 久久草成人影院| 99视频精品全部免费 在线| 淫秽高清视频在线观看| 国产av一区在线观看免费| 欧美一区二区精品小视频在线| 嫩草影院新地址| 中文在线观看免费www的网站| 亚洲精品日韩在线中文字幕| 99久久精品国产国产毛片| 97超碰精品成人国产| 亚洲国产精品专区欧美| 国产69精品久久久久777片| 欧美最新免费一区二区三区| 亚洲最大成人av| 99久久成人亚洲精品观看| 国内少妇人妻偷人精品xxx网站| 久久6这里有精品| 99热这里只有是精品50| 国产一区二区在线观看日韩| 日韩一区二区三区影片| 国产高清不卡午夜福利| 天美传媒精品一区二区| 看黄色毛片网站| 亚洲伊人久久精品综合 | 午夜久久久久精精品| 国产午夜福利久久久久久| 一个人免费在线观看电影| 国产日韩欧美在线精品| 哪个播放器可以免费观看大片| 亚洲av免费高清在线观看| 不卡视频在线观看欧美| 高清av免费在线| 国产精品久久久久久久久免| 两个人的视频大全免费| 免费搜索国产男女视频| 看黄色毛片网站| 久久久久久久久大av| 99热6这里只有精品| 插逼视频在线观看| 18禁在线播放成人免费| 欧美潮喷喷水| 国产私拍福利视频在线观看| 久久久久久久国产电影| 蜜臀久久99精品久久宅男| 午夜免费激情av| 国产伦理片在线播放av一区| 国产精品日韩av在线免费观看| 直男gayav资源| av在线观看视频网站免费| 午夜老司机福利剧场| 亚洲欧美成人精品一区二区| 国产成人精品婷婷| 亚洲精品一区蜜桃| www日本黄色视频网| 国产美女午夜福利| av在线蜜桃| 男女视频在线观看网站免费| 国产伦在线观看视频一区| 中文精品一卡2卡3卡4更新| 女的被弄到高潮叫床怎么办| 黄片无遮挡物在线观看| 一级黄片播放器| 在线a可以看的网站| av在线天堂中文字幕| 又黄又爽又刺激的免费视频.| 精品久久久久久久久亚洲| 国产真实乱freesex| 黄色日韩在线| 一二三四中文在线观看免费高清| 欧美日韩国产亚洲二区| 久久精品综合一区二区三区| 亚洲三级黄色毛片| 久久久久久久久大av| 亚洲精品456在线播放app| 91久久精品电影网| 日韩亚洲欧美综合| 人体艺术视频欧美日本| av卡一久久| 久久亚洲国产成人精品v| 国产男人的电影天堂91| 日韩欧美国产在线观看| 99久久精品热视频| 欧美高清性xxxxhd video| 国产三级中文精品| 国产成人aa在线观看| 波野结衣二区三区在线| av在线播放精品| 国产精品人妻久久久久久| 99久久中文字幕三级久久日本| 中文乱码字字幕精品一区二区三区 | 一卡2卡三卡四卡精品乱码亚洲| av专区在线播放| 寂寞人妻少妇视频99o| 国产国拍精品亚洲av在线观看| 毛片女人毛片| 99热精品在线国产| 国产三级中文精品| 国产黄色小视频在线观看| 久久久久久久国产电影| 中文亚洲av片在线观看爽| 久久人人爽人人爽人人片va| 国产视频内射| 国产精品1区2区在线观看.| 长腿黑丝高跟| 三级毛片av免费| 久久精品国产亚洲av涩爱| 免费播放大片免费观看视频在线观看 | 久久午夜福利片| 亚洲三级黄色毛片| 美女大奶头视频| 一区二区三区免费毛片| 日日摸夜夜添夜夜添av毛片| 激情 狠狠 欧美| 十八禁国产超污无遮挡网站| 亚洲av男天堂| 久久久久久久久久久丰满| 少妇被粗大猛烈的视频| 久热久热在线精品观看| av播播在线观看一区| 国产真实乱freesex| 亚洲第一区二区三区不卡| 国模一区二区三区四区视频| 网址你懂的国产日韩在线| 国产黄片视频在线免费观看| 日韩国内少妇激情av| 欧美性感艳星| 高清视频免费观看一区二区 | 亚洲最大成人手机在线| 国产极品精品免费视频能看的| 亚洲精品影视一区二区三区av| 国产伦一二天堂av在线观看| av在线天堂中文字幕| 看黄色毛片网站| 日本猛色少妇xxxxx猛交久久| 国产 一区 欧美 日韩| 99久久精品热视频| 中文字幕人妻熟人妻熟丝袜美| 欧美bdsm另类| 欧美极品一区二区三区四区| 亚洲av成人精品一二三区| 晚上一个人看的免费电影| 亚洲欧美日韩无卡精品| 国产精品蜜桃在线观看| 日本色播在线视频| 一卡2卡三卡四卡精品乱码亚洲| 97人妻精品一区二区三区麻豆| 久久久久性生活片| 久久久亚洲精品成人影院| 国产人妻一区二区三区在| 国产免费一级a男人的天堂| 久久久久九九精品影院| 永久网站在线| 国产真实乱freesex| 国产精品一区二区性色av| 国内精品宾馆在线| 国产女主播在线喷水免费视频网站 | 久久人人爽人人片av| 久久精品人妻少妇| 欧美xxxx性猛交bbbb| 久久热精品热| 精品无人区乱码1区二区| 日韩av不卡免费在线播放| 好男人在线观看高清免费视频| 国产精品久久久久久久电影| 在现免费观看毛片| 边亲边吃奶的免费视频| 51国产日韩欧美| 亚洲激情五月婷婷啪啪| 精品无人区乱码1区二区| 日韩精品青青久久久久久| 久久精品夜色国产| 日本与韩国留学比较| 国产69精品久久久久777片| 亚洲欧美精品专区久久| 晚上一个人看的免费电影| 日韩中字成人| 亚洲国产精品国产精品| 亚洲av免费在线观看| 99热这里只有是精品50| 麻豆国产97在线/欧美| 99久久精品一区二区三区| 久久久久久国产a免费观看| 国产探花在线观看一区二区| 欧美性猛交黑人性爽| 免费av观看视频| 中国国产av一级| 日日摸夜夜添夜夜添av毛片| 狠狠狠狠99中文字幕| 黄色一级大片看看| 日韩欧美精品免费久久| 亚洲av日韩在线播放| 麻豆成人午夜福利视频| 午夜福利在线在线| 日本黄色片子视频| 男人舔女人下体高潮全视频| 亚洲天堂国产精品一区在线| 又粗又硬又长又爽又黄的视频| 亚洲乱码一区二区免费版| 亚洲国产精品成人久久小说| 又粗又爽又猛毛片免费看| 99热全是精品| 亚洲精品成人久久久久久| 日本黄色片子视频| 男女下面进入的视频免费午夜| 亚洲美女搞黄在线观看| 久久久久久久久久黄片| 99热精品在线国产| 青春草亚洲视频在线观看| 中文资源天堂在线| 女人十人毛片免费观看3o分钟| 成人高潮视频无遮挡免费网站| 两个人视频免费观看高清| 久久久久久久久久久免费av| 国产精华一区二区三区| 久久久亚洲精品成人影院| 久久久久性生活片| 免费观看a级毛片全部| 久久草成人影院| 最新中文字幕久久久久| 级片在线观看| 中文精品一卡2卡3卡4更新| 99久久精品一区二区三区| 中文字幕熟女人妻在线| 人妻制服诱惑在线中文字幕| 日韩高清综合在线| ponron亚洲| 少妇人妻精品综合一区二区| 日本色播在线视频| 级片在线观看| 有码 亚洲区| 亚洲人成网站在线观看播放| 青青草视频在线视频观看| 欧美激情久久久久久爽电影| 亚洲欧美清纯卡通| 中文天堂在线官网| 久久99热6这里只有精品| 国产午夜精品久久久久久一区二区三区| 如何舔出高潮| 色吧在线观看| 国产日韩欧美在线精品| 久久精品综合一区二区三区| 国产伦在线观看视频一区| 日本av手机在线免费观看| 久久久久国产网址| 丰满少妇做爰视频| 国产一级毛片七仙女欲春2| 亚洲国产色片| 亚洲乱码一区二区免费版| 老司机福利观看| 国产不卡一卡二| 久久久久久久国产电影| 免费电影在线观看免费观看| 男女那种视频在线观看| 中文精品一卡2卡3卡4更新| 午夜视频国产福利| 少妇裸体淫交视频免费看高清| 国产免费男女视频| 极品教师在线视频| 少妇被粗大猛烈的视频| 中文字幕人妻熟人妻熟丝袜美| 国产成人免费观看mmmm| 中文字幕久久专区| 久久久精品欧美日韩精品| 特级一级黄色大片| 嫩草影院入口| 身体一侧抽搐| 人妻少妇偷人精品九色| 中文欧美无线码| 中文字幕亚洲精品专区| 免费电影在线观看免费观看| 99热精品在线国产| 国产精品女同一区二区软件| 久久久久国产网址| 久久久久九九精品影院| 在线观看av片永久免费下载| 建设人人有责人人尽责人人享有的 | 波多野结衣高清无吗| 成人鲁丝片一二三区免费| 九九久久精品国产亚洲av麻豆| 午夜精品一区二区三区免费看| 我要看日韩黄色一级片| 女人久久www免费人成看片 | 免费观看a级毛片全部| 又爽又黄a免费视频| 精品久久国产蜜桃| 亚洲国产精品合色在线| 国产精品嫩草影院av在线观看| 91午夜精品亚洲一区二区三区| 女人被狂操c到高潮| 久久久久久久久大av| 国产精品野战在线观看| 亚洲欧美日韩卡通动漫| 日本黄色视频三级网站网址| 久久久久性生活片| 菩萨蛮人人尽说江南好唐韦庄 | 日日撸夜夜添| 看片在线看免费视频| av视频在线观看入口| 日本-黄色视频高清免费观看| 久久人人爽人人片av| 精品国产三级普通话版| 秋霞伦理黄片| 亚洲aⅴ乱码一区二区在线播放| 亚洲欧美精品自产自拍| 久久99热6这里只有精品| 菩萨蛮人人尽说江南好唐韦庄 | 97超视频在线观看视频| 色5月婷婷丁香| 美女内射精品一级片tv| 91午夜精品亚洲一区二区三区| 亚洲av电影不卡..在线观看| 高清av免费在线| 日韩国内少妇激情av| 禁无遮挡网站| 国产午夜精品久久久久久一区二区三区| 又爽又黄a免费视频| 男女国产视频网站| 欧美最新免费一区二区三区| 午夜激情欧美在线| 亚洲伊人久久精品综合 | 亚洲av福利一区| 亚洲,欧美,日韩| 亚洲国产最新在线播放| 国产精品国产三级专区第一集| 亚洲图色成人| 国产亚洲最大av| .国产精品久久| 狂野欧美白嫩少妇大欣赏| 国内揄拍国产精品人妻在线| 免费一级毛片在线播放高清视频| 亚洲欧美日韩卡通动漫| 国产精品综合久久久久久久免费| 国产91av在线免费观看| 成年女人永久免费观看视频| 一个人看的www免费观看视频| 国产美女午夜福利| 国产精品av视频在线免费观看| 欧美潮喷喷水| 毛片一级片免费看久久久久| 亚洲激情五月婷婷啪啪| 99久久成人亚洲精品观看| 噜噜噜噜噜久久久久久91| 小说图片视频综合网站| 韩国高清视频一区二区三区| 亚洲av.av天堂| 日日摸夜夜添夜夜添av毛片| 美女cb高潮喷水在线观看| 国产av在哪里看| 国产又黄又爽又无遮挡在线| 免费观看人在逋| 国产免费福利视频在线观看| 18禁动态无遮挡网站| 亚洲内射少妇av| 女人久久www免费人成看片 | 久久这里只有精品中国| 日韩欧美在线乱码| 午夜免费激情av| 精品人妻视频免费看| 亚洲人成网站高清观看| 日本免费a在线| 天堂中文最新版在线下载 | 丝袜美腿在线中文| 男女啪啪激烈高潮av片| 亚洲不卡免费看| 色综合站精品国产| 美女脱内裤让男人舔精品视频| 99热这里只有是精品在线观看| 在线免费观看的www视频| 国产探花极品一区二区| 久久久久网色| 久久精品国产自在天天线| 精品久久久久久久人妻蜜臀av| 一区二区三区免费毛片| 久久99蜜桃精品久久| 夜夜爽夜夜爽视频| 久久韩国三级中文字幕| 日产精品乱码卡一卡2卡三| av在线老鸭窝| 亚洲av熟女| 男的添女的下面高潮视频| 99久久人妻综合| 18禁在线播放成人免费| 我的老师免费观看完整版| 内地一区二区视频在线| 舔av片在线| 寂寞人妻少妇视频99o| 中文字幕免费在线视频6| 久久久久久国产a免费观看| 精品不卡国产一区二区三区| 久久久国产成人精品二区| 亚洲熟妇中文字幕五十中出| www.av在线官网国产| 国产精品一区www在线观看| 91aial.com中文字幕在线观看| 国产久久久一区二区三区| 国产精品三级大全| 美女脱内裤让男人舔精品视频| 桃色一区二区三区在线观看| 婷婷六月久久综合丁香| 国产淫语在线视频| av在线播放精品| 亚洲精品日韩在线中文字幕| 久久久久久久亚洲中文字幕| 精品免费久久久久久久清纯| 国产高潮美女av| 99久久人妻综合| 视频中文字幕在线观看| 日韩人妻高清精品专区| 观看免费一级毛片| 日日摸夜夜添夜夜爱| 蜜臀久久99精品久久宅男| 夜夜爽夜夜爽视频| 国产精品久久视频播放| 国产 一区精品| 欧美变态另类bdsm刘玥| 国产亚洲精品久久久com| 久久精品夜夜夜夜夜久久蜜豆| 国产精品人妻久久久久久| 一本一本综合久久| 九九久久精品国产亚洲av麻豆| 久久久久久久久久成人| 最近2019中文字幕mv第一页| 日韩欧美三级三区| 网址你懂的国产日韩在线| 国产精品永久免费网站|