• <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
    国产 精品1| 91aial.com中文字幕在线观看| 中文在线观看免费www的网站| 亚洲欧美清纯卡通| 美女国产视频在线观看| 亚洲精品日韩av片在线观看| 国产成人精品久久久久久| 伊人久久精品亚洲午夜| 男人添女人高潮全过程视频| 内地一区二区视频在线| 麻豆精品久久久久久蜜桃| av免费观看日本| 中文欧美无线码| 中文字幕人妻丝袜制服| 国产男女超爽视频在线观看| 最近中文字幕2019免费版| 日韩成人伦理影院| 91精品国产九色| 国产免费一区二区三区四区乱码| 久久热精品热| 高清视频免费观看一区二区| 九九在线视频观看精品| 人人妻人人澡人人爽人人夜夜| 人妻一区二区av| 国产成人午夜福利电影在线观看| www.av在线官网国产| 99re6热这里在线精品视频| 精品少妇黑人巨大在线播放| 看免费成人av毛片| 久久亚洲国产成人精品v| 人人妻人人看人人澡| a级一级毛片免费在线观看| 自线自在国产av| 十八禁高潮呻吟视频 | 妹子高潮喷水视频| 18禁在线无遮挡免费观看视频| 最近手机中文字幕大全| 久久国产亚洲av麻豆专区| 大片电影免费在线观看免费| 国产精品国产三级国产av玫瑰| 久久热精品热| 黄色一级大片看看| 精品久久久噜噜| 中文乱码字字幕精品一区二区三区| 久久6这里有精品| 国产成人91sexporn| freevideosex欧美| 亚洲欧美精品自产自拍| 午夜av观看不卡| 男的添女的下面高潮视频| 看十八女毛片水多多多| 97超碰精品成人国产| 精品99又大又爽又粗少妇毛片| 一二三四中文在线观看免费高清| 内地一区二区视频在线| 久久午夜综合久久蜜桃| 成年人免费黄色播放视频 | 久久人人爽人人片av| 啦啦啦中文免费视频观看日本| 日韩三级伦理在线观看| 欧美日韩视频高清一区二区三区二| 亚洲精品久久午夜乱码| 精品久久国产蜜桃| 91久久精品国产一区二区三区| av免费观看日本| 亚洲欧美精品专区久久| 亚洲人成网站在线观看播放| 国产色爽女视频免费观看| 美女视频免费永久观看网站| 午夜老司机福利剧场| 亚洲婷婷狠狠爱综合网| 人人澡人人妻人| 一本色道久久久久久精品综合| 久久精品久久久久久噜噜老黄| 在线观看av片永久免费下载| 在线天堂最新版资源| 亚洲欧美日韩东京热| 久久久久久久久久久免费av| 久久精品久久久久久噜噜老黄| 丝瓜视频免费看黄片| 97超碰精品成人国产| 一级毛片黄色毛片免费观看视频| 亚洲欧美成人综合另类久久久| 国产一区二区三区av在线| 成人国产av品久久久| 又粗又硬又长又爽又黄的视频| 91精品国产国语对白视频| 我要看黄色一级片免费的| 啦啦啦啦在线视频资源| 国产精品.久久久| 天天躁夜夜躁狠狠久久av| 日本vs欧美在线观看视频 | av专区在线播放| 黄色配什么色好看| 亚洲一级一片aⅴ在线观看| 国产综合精华液| 精品一区二区三区视频在线| 久久精品国产亚洲av天美| 国产精品.久久久| 亚洲真实伦在线观看| 国产精品人妻久久久影院| 亚洲成人手机| 欧美精品高潮呻吟av久久| 久久鲁丝午夜福利片| 伊人亚洲综合成人网| 草草在线视频免费看| 超碰97精品在线观看| 久久精品国产亚洲av天美| 高清视频免费观看一区二区| 久久99蜜桃精品久久| 99九九线精品视频在线观看视频| 国产日韩欧美视频二区| 18+在线观看网站| 国产av精品麻豆| 国产亚洲5aaaaa淫片| 美女xxoo啪啪120秒动态图| 老司机亚洲免费影院| 中文在线观看免费www的网站| 国产又色又爽无遮挡免| 国内少妇人妻偷人精品xxx网站| 精品一区二区免费观看| 午夜福利视频精品| 99久久精品一区二区三区| 久久国产精品大桥未久av | 丰满饥渴人妻一区二区三| 美女中出高潮动态图| 色94色欧美一区二区| 国产亚洲5aaaaa淫片| 91在线精品国自产拍蜜月| 乱系列少妇在线播放| 亚洲国产欧美日韩在线播放 | 精品酒店卫生间| 成人午夜精彩视频在线观看| 久久久久精品性色| 在线观看免费高清a一片| 黄色毛片三级朝国网站 | 中文乱码字字幕精品一区二区三区| 亚洲综合精品二区| 国产精品欧美亚洲77777| 日本色播在线视频| 精华霜和精华液先用哪个| 国产亚洲5aaaaa淫片| 蜜臀久久99精品久久宅男| 黄色配什么色好看| 三级经典国产精品| 亚洲国产日韩一区二区| 岛国毛片在线播放| 少妇高潮的动态图| 精品少妇黑人巨大在线播放| 我要看黄色一级片免费的| av播播在线观看一区| 色网站视频免费| 欧美最新免费一区二区三区| 男人添女人高潮全过程视频| 搡女人真爽免费视频火全软件| 免费观看在线日韩| 久久女婷五月综合色啪小说| 成人综合一区亚洲| 国产免费又黄又爽又色| 日韩熟女老妇一区二区性免费视频| 欧美97在线视频| 欧美精品亚洲一区二区| 国产精品久久久久成人av| 97精品久久久久久久久久精品| 免费黄色在线免费观看| 免费看av在线观看网站| 国产亚洲av片在线观看秒播厂| 乱码一卡2卡4卡精品| 久久久久久人妻| 不卡视频在线观看欧美| 18禁动态无遮挡网站| 免费黄网站久久成人精品| 日韩一区二区三区影片| 欧美变态另类bdsm刘玥| 永久网站在线| 国产精品熟女久久久久浪| 在线观看av片永久免费下载| 国产中年淑女户外野战色| 欧美国产精品一级二级三级 | 熟女人妻精品中文字幕| 一本一本综合久久| 热re99久久国产66热| 亚洲精品久久久久久婷婷小说| 又大又黄又爽视频免费| 日本-黄色视频高清免费观看| 老女人水多毛片| 中文字幕亚洲精品专区| 在线亚洲精品国产二区图片欧美 | 日韩欧美一区视频在线观看 | 午夜激情福利司机影院| av卡一久久| 街头女战士在线观看网站| 纯流量卡能插随身wifi吗| 香蕉精品网在线| 欧美 日韩 精品 国产| 精品亚洲乱码少妇综合久久| av视频免费观看在线观看| 熟女av电影| 美女脱内裤让男人舔精品视频| 另类亚洲欧美激情| 黄色欧美视频在线观看| 伊人久久精品亚洲午夜| 最近中文字幕2019免费版| 最新的欧美精品一区二区| 男的添女的下面高潮视频| 亚洲电影在线观看av| 亚洲久久久国产精品| 伊人久久精品亚洲午夜| 日韩欧美 国产精品| 国产极品天堂在线| 亚洲欧美精品专区久久| 女人精品久久久久毛片| 伦理电影免费视频| 久久人人爽av亚洲精品天堂| 我要看日韩黄色一级片| 中文乱码字字幕精品一区二区三区| 啦啦啦在线观看免费高清www| av又黄又爽大尺度在线免费看| 色哟哟·www| 97在线视频观看| 丰满迷人的少妇在线观看| 亚洲av免费高清在线观看| 黑人巨大精品欧美一区二区蜜桃 | 纯流量卡能插随身wifi吗| 国产高清国产精品国产三级| 一级毛片电影观看| 99九九线精品视频在线观看视频| 王馨瑶露胸无遮挡在线观看| 亚洲欧美中文字幕日韩二区| 久久精品久久久久久久性| 国产精品一二三区在线看| 亚洲伊人久久精品综合| 观看av在线不卡| 中文字幕人妻熟人妻熟丝袜美| 自线自在国产av| 日韩视频在线欧美| 国产av一区二区精品久久| 久久久国产欧美日韩av| 国产乱人偷精品视频| 国产亚洲av片在线观看秒播厂| 97在线人人人人妻| 欧美一级a爱片免费观看看| 中国美白少妇内射xxxbb| 亚洲经典国产精华液单| 国产成人精品无人区| 日本午夜av视频| 十分钟在线观看高清视频www | 欧美日韩一区二区视频在线观看视频在线| 大话2 男鬼变身卡| 十八禁高潮呻吟视频 | 亚洲四区av| 亚洲不卡免费看| 三级国产精品片| 秋霞在线观看毛片| 国产日韩欧美视频二区| 中文字幕免费在线视频6| 在线观看一区二区三区激情| 女性被躁到高潮视频| 如何舔出高潮| 国产色爽女视频免费观看| 美女中出高潮动态图| 欧美日本中文国产一区发布| 久久人妻熟女aⅴ| 国产欧美日韩综合在线一区二区 | 少妇丰满av| 日韩成人av中文字幕在线观看| 久久久久久人妻| 人妻一区二区av| 九色成人免费人妻av| 在线免费观看不下载黄p国产| 99国产精品免费福利视频| 汤姆久久久久久久影院中文字幕| 亚洲高清免费不卡视频| 男女无遮挡免费网站观看| 成人毛片a级毛片在线播放| 九色成人免费人妻av| 又爽又黄a免费视频| 欧美xxⅹ黑人| 久久影院123| 欧美精品亚洲一区二区| 亚洲电影在线观看av| 国产高清国产精品国产三级| 99久久人妻综合| 在线观看免费日韩欧美大片 | 国产av国产精品国产| 99热这里只有精品一区| 成人毛片60女人毛片免费| 日日撸夜夜添| 中文字幕亚洲精品专区| 交换朋友夫妻互换小说| 9色porny在线观看| 久久婷婷青草| 看非洲黑人一级黄片| 一区二区三区乱码不卡18| 日本欧美视频一区| 国产一区二区三区av在线| 99久国产av精品国产电影| 久久久欧美国产精品| 亚洲一级一片aⅴ在线观看| 99热6这里只有精品| 国产在线视频一区二区| 日日撸夜夜添| 亚洲人成网站在线播| 亚洲欧美精品自产自拍| 日本爱情动作片www.在线观看| 少妇 在线观看| 国产成人精品无人区| 青青草视频在线视频观看| 欧美成人午夜免费资源| 国产成人精品久久久久久| 丰满少妇做爰视频| 日韩在线高清观看一区二区三区| 少妇丰满av| 久久精品久久久久久久性| 大陆偷拍与自拍| 国产欧美另类精品又又久久亚洲欧美| 日韩成人av中文字幕在线观看| 少妇人妻一区二区三区视频| 国产精品99久久久久久久久| 高清午夜精品一区二区三区| 日韩伦理黄色片| 激情五月婷婷亚洲| 简卡轻食公司| 香蕉精品网在线| 久久亚洲国产成人精品v| av福利片在线观看| 国产永久视频网站| 99热国产这里只有精品6| 在线观看国产h片| 中文乱码字字幕精品一区二区三区| 亚洲av不卡在线观看| 亚洲丝袜综合中文字幕| 久久久久久久久久久免费av| 汤姆久久久久久久影院中文字幕| 国产精品秋霞免费鲁丝片| 男女边吃奶边做爰视频| 性色avwww在线观看| 久热久热在线精品观看| 亚洲精华国产精华液的使用体验| 美女脱内裤让男人舔精品视频| 3wmmmm亚洲av在线观看| 国产成人免费观看mmmm| 人人澡人人妻人| 日韩人妻高清精品专区| 这个男人来自地球电影免费观看 | 日本色播在线视频| 日韩av免费高清视频| 一本大道久久a久久精品| 一区二区三区四区激情视频| 亚洲欧美日韩卡通动漫| 国产精品国产三级国产专区5o| 国产一区有黄有色的免费视频| 伦理电影大哥的女人| 22中文网久久字幕| 亚洲av.av天堂| 青春草亚洲视频在线观看| videos熟女内射| 婷婷色麻豆天堂久久| av卡一久久| 91精品一卡2卡3卡4卡| 中国三级夫妇交换| 亚洲av综合色区一区| 国产精品一区二区三区四区免费观看| 国产精品偷伦视频观看了| 免费黄色在线免费观看| av天堂中文字幕网| 少妇的逼好多水| 欧美97在线视频| 日韩不卡一区二区三区视频在线| 极品少妇高潮喷水抽搐| 99久久精品热视频| 丝袜喷水一区| xxx大片免费视频| 少妇精品久久久久久久| 亚洲内射少妇av| 午夜免费观看性视频| 又粗又硬又长又爽又黄的视频| 精品久久久噜噜| 国产亚洲91精品色在线| 国产在线男女| 人人澡人人妻人| 国产探花极品一区二区| 男男h啪啪无遮挡| 夫妻性生交免费视频一级片| 一区二区三区乱码不卡18| 一级毛片黄色毛片免费观看视频| 女性被躁到高潮视频| 日韩欧美 国产精品| 亚洲欧美一区二区三区国产| 在线观看免费日韩欧美大片 | 又黄又爽又刺激的免费视频.| 亚洲成人av在线免费| 狂野欧美激情性xxxx在线观看| 在线 av 中文字幕| 夫妻性生交免费视频一级片| 久久久久久久精品精品| 久久毛片免费看一区二区三区| 国产男人的电影天堂91| 丝瓜视频免费看黄片| 久久99一区二区三区| av一本久久久久| 简卡轻食公司| 日韩成人伦理影院| 婷婷色麻豆天堂久久| 亚洲va在线va天堂va国产| 精品熟女少妇av免费看| 91精品伊人久久大香线蕉| 国产高清三级在线| 国产女主播在线喷水免费视频网站| 亚洲自偷自拍三级| 欧美精品亚洲一区二区| 国产成人freesex在线| 久久久久视频综合| 91精品国产九色| 制服丝袜香蕉在线| 女性被躁到高潮视频| 亚洲成色77777| 精品一区在线观看国产| 高清视频免费观看一区二区| 一级毛片电影观看| 国产精品麻豆人妻色哟哟久久| av又黄又爽大尺度在线免费看| 99热这里只有精品一区| 日产精品乱码卡一卡2卡三| 91久久精品国产一区二区成人| 18+在线观看网站| 五月玫瑰六月丁香| 99久久人妻综合| 亚洲av男天堂| 蜜桃久久精品国产亚洲av| 国产精品偷伦视频观看了| 亚洲精品中文字幕在线视频 | 自拍欧美九色日韩亚洲蝌蚪91 | 天天操日日干夜夜撸| 能在线免费看毛片的网站| 伊人久久精品亚洲午夜| 日日撸夜夜添| 免费人成在线观看视频色| 搡女人真爽免费视频火全软件| 丰满饥渴人妻一区二区三| 亚洲天堂av无毛| 亚洲精品第二区| 久久99一区二区三区| 久久韩国三级中文字幕| av.在线天堂| 卡戴珊不雅视频在线播放| 久久久欧美国产精品| 精品少妇久久久久久888优播| 国产在线男女| 久久久国产一区二区| 日韩 亚洲 欧美在线| 精品熟女少妇av免费看| 99九九在线精品视频 | 中文字幕人妻丝袜制服| 精品人妻熟女av久视频| 高清午夜精品一区二区三区| 啦啦啦中文免费视频观看日本| 国产高清不卡午夜福利| 日日爽夜夜爽网站| 国产欧美日韩精品一区二区| 亚洲情色 制服丝袜| 国产av一区二区精品久久| 十分钟在线观看高清视频www | 国产色爽女视频免费观看| av免费观看日本| 三级国产精品片| av天堂中文字幕网| 亚洲高清免费不卡视频| 久久av网站| 中文字幕av电影在线播放| 欧美老熟妇乱子伦牲交| 丰满迷人的少妇在线观看| 午夜免费观看性视频| 亚洲内射少妇av| 99热这里只有是精品50| 丰满人妻一区二区三区视频av| 久久国内精品自在自线图片| 一级毛片aaaaaa免费看小| 亚洲熟女精品中文字幕| 91精品伊人久久大香线蕉| 欧美97在线视频| 免费高清在线观看视频在线观看| 在线观看免费高清a一片| av在线老鸭窝| 这个男人来自地球电影免费观看 | 亚洲,一卡二卡三卡| 精品久久久噜噜| 亚洲天堂av无毛| 男人和女人高潮做爰伦理| 人人妻人人爽人人添夜夜欢视频 | 一区在线观看完整版| 日韩免费高清中文字幕av| 日韩欧美一区视频在线观看 | 国产免费视频播放在线视频| 欧美精品高潮呻吟av久久| 国产精品偷伦视频观看了| 99久久综合免费| 蜜桃在线观看..| 搡女人真爽免费视频火全软件| 韩国av在线不卡| 老司机影院毛片| 97在线视频观看| 极品少妇高潮喷水抽搐| freevideosex欧美| videossex国产| 欧美变态另类bdsm刘玥| 国产精品秋霞免费鲁丝片| 欧美精品亚洲一区二区| 国产又色又爽无遮挡免| 一级毛片aaaaaa免费看小| 91午夜精品亚洲一区二区三区| 亚洲美女黄色视频免费看| 日日摸夜夜添夜夜爱| 少妇精品久久久久久久| 久久精品久久久久久噜噜老黄| 国产老妇伦熟女老妇高清| 精品亚洲成a人片在线观看| 免费av不卡在线播放| 黑人猛操日本美女一级片| 中文字幕亚洲精品专区| 成年人免费黄色播放视频 | 亚洲三级黄色毛片| 国产成人精品福利久久| 在线看a的网站| 大片电影免费在线观看免费| 大又大粗又爽又黄少妇毛片口| 欧美最新免费一区二区三区| 黑人高潮一二区| 久久久久精品性色| 最近2019中文字幕mv第一页| 99久久精品一区二区三区| 日本与韩国留学比较| 久久6这里有精品| 热re99久久精品国产66热6| 又黄又爽又刺激的免费视频.| 色网站视频免费| 狂野欧美激情性xxxx在线观看| 久久精品国产鲁丝片午夜精品| 日日啪夜夜撸| 久久青草综合色| 精品一品国产午夜福利视频| 国产一区二区三区av在线| 日韩亚洲欧美综合| 亚洲无线观看免费| av免费在线看不卡| 国产日韩欧美视频二区| 免费av不卡在线播放| av免费在线看不卡| av不卡在线播放| 国产在线视频一区二区| 激情五月婷婷亚洲| 国产日韩欧美亚洲二区| 日本av免费视频播放| 亚洲国产精品成人久久小说| 色94色欧美一区二区| 日韩强制内射视频| 国产日韩欧美在线精品| 一本—道久久a久久精品蜜桃钙片| 亚洲精品中文字幕在线视频 | 日本av免费视频播放| 少妇精品久久久久久久| 2018国产大陆天天弄谢| 国产午夜精品一二区理论片| 夫妻午夜视频| 大陆偷拍与自拍| av不卡在线播放| 你懂的网址亚洲精品在线观看| 亚洲国产色片| 黄色日韩在线| 国产综合精华液| 色网站视频免费| 免费大片18禁| 日韩欧美 国产精品| 国产黄色视频一区二区在线观看| 制服丝袜香蕉在线| 黄色视频在线播放观看不卡| 看非洲黑人一级黄片| 成人午夜精彩视频在线观看| 精品久久久精品久久久| 国产 一区精品| 秋霞伦理黄片| 成人综合一区亚洲| av免费观看日本| 80岁老熟妇乱子伦牲交| 成人漫画全彩无遮挡| 免费观看在线日韩| 国产91av在线免费观看| 国产高清国产精品国产三级| 日本-黄色视频高清免费观看| 如何舔出高潮| a级毛片免费高清观看在线播放| 国产熟女欧美一区二区| 男人狂女人下面高潮的视频| 亚洲欧洲日产国产| 九九在线视频观看精品| 极品教师在线视频| 九色成人免费人妻av| 色网站视频免费| 丝袜在线中文字幕| 多毛熟女@视频| 日本免费在线观看一区| 国产欧美日韩一区二区三区在线 | 午夜老司机福利剧场| 一区在线观看完整版| 午夜视频国产福利| 高清欧美精品videossex| 国产熟女午夜一区二区三区 | 亚洲av中文av极速乱| 日本91视频免费播放| 久久6这里有精品| 欧美亚洲 丝袜 人妻 在线| 精品一区二区三卡| av卡一久久| 少妇人妻一区二区三区视频| 国产av一区二区精品久久|