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

    軟件開發(fā)活動(dòng)數(shù)據(jù)的數(shù)據(jù)質(zhì)量問題?

    2019-06-11 07:40:10涂菲菲周明輝
    軟件學(xué)報(bào) 2019年5期
    關(guān)鍵詞:開發(fā)者代碼報(bào)告

    涂菲菲,周明輝

    1(高可信軟件技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室(北京大學(xué)),北京 100871)

    2(北京大學(xué) 信息科學(xué)技術(shù)學(xué)院,北京 100871)

    軟件開發(fā)支持工具(例如問題追蹤系統(tǒng)、版本控制系統(tǒng))已被廣泛應(yīng)用于開源和商業(yè)軟件的開發(fā)中,這些軟件開發(fā)支持工具在使用過程中產(chǎn)生了大量的數(shù)據(jù),這些數(shù)據(jù)統(tǒng)稱為軟件開發(fā)活動(dòng)數(shù)據(jù).軟件開發(fā)活動(dòng)數(shù)據(jù)覆蓋范圍非常廣,例如代碼提交[1]、功能需求的討論[2]、開發(fā)者在集成開發(fā)環(huán)境中的操作步驟[3]等.軟件開發(fā)活動(dòng)數(shù)據(jù)被廣泛應(yīng)用于軟件開發(fā)過程中的各種決策,例如比較不同軟件方法之間的效果[1]、估算開發(fā)者的生產(chǎn)效率[4]、預(yù)測軟件質(zhì)量[5].

    軟件開發(fā)活動(dòng)數(shù)據(jù)的廣泛使用,使其數(shù)據(jù)質(zhì)量受到了越來越多的關(guān)注.如果軟件開發(fā)活動(dòng)數(shù)據(jù)存在質(zhì)量問題,這可能使得基于問題數(shù)據(jù)的方法、軟件產(chǎn)生的結(jié)果存在偏差,甚至無效.例如,Kim等人[6]在利用問題追蹤數(shù)據(jù)智能化預(yù)測任務(wù)完成時(shí)間的工作中,將問題報(bào)告被標(biāo)記為“已解決”的時(shí)間點(diǎn)視為該任務(wù)完成的時(shí)刻.然而Zheng等人[7]發(fā)現(xiàn):任務(wù)完成的時(shí)間存在問題——開發(fā)者在完成任務(wù)后可能并不會(huì)及時(shí)將問題報(bào)告標(biāo)記為“已解決”,而是在之后清理問題追蹤系統(tǒng)時(shí),通過腳本進(jìn)行批量處理,即“任務(wù)完成時(shí)間”并不能真正代表任務(wù)被解決的時(shí)刻.因此,Kim等人的結(jié)果存在偏差.

    雖然已有一些研究工作注意到了數(shù)據(jù)質(zhì)量問題[7-9],但文獻(xiàn)中往往只隱式地提及這些數(shù)據(jù)質(zhì)量問題,缺乏對這些數(shù)據(jù)質(zhì)量問題進(jìn)行綜合分析的工作.并且數(shù)據(jù)質(zhì)量問題并沒有引起足夠的重視,多數(shù)工作并不會(huì)提及其數(shù)據(jù)處理的細(xì)節(jié),例如數(shù)據(jù)獲取來源、數(shù)據(jù)質(zhì)量情況、數(shù)據(jù)預(yù)處理步驟等.為了揭示潛在的數(shù)據(jù)質(zhì)量問題,以更好地幫助軟件開發(fā)活動(dòng)數(shù)據(jù)的應(yīng)用,本文主要研究回答以下兩個(gè)問題.

    1)軟件開發(fā)活動(dòng)數(shù)據(jù)可能存在哪些質(zhì)量問題?

    2)如何發(fā)現(xiàn)和解決軟件開發(fā)活動(dòng)數(shù)據(jù)的質(zhì)量問題?

    本文通過文獻(xiàn)調(diào)研和訪談,并基于自有經(jīng)驗(yàn)對數(shù)據(jù)進(jìn)行分析,總結(jié)出 9種潛在的數(shù)據(jù)質(zhì)量問題,覆蓋了數(shù)據(jù)產(chǎn)生、數(shù)據(jù)收集、數(shù)據(jù)使用等3個(gè)階段,并提出方法以幫助對數(shù)據(jù)問題的發(fā)現(xiàn)和修正.

    本文第1節(jié)主要介紹相關(guān)背景.第2節(jié)介紹本文的研究方法.第3節(jié)從數(shù)據(jù)質(zhì)量問題覆蓋的3個(gè)階段出發(fā),對軟件開發(fā)活動(dòng)數(shù)據(jù)的質(zhì)量問題進(jìn)行詳細(xì)介紹.第 4節(jié)總結(jié)發(fā)現(xiàn)和解決軟件開發(fā)活動(dòng)數(shù)據(jù)質(zhì)量問題的方法.最后對本文工作進(jìn)行總結(jié)并展望未來工作.

    1 背景介紹

    常見的軟件開發(fā)活動(dòng)數(shù)據(jù)包括問題追蹤數(shù)據(jù)和版本控制數(shù)據(jù).

    · 問題追蹤數(shù)據(jù)是指在項(xiàng)目開發(fā)過程中出現(xiàn)的各種缺陷以及新增加的功能需求等的解決過程留下的數(shù)據(jù),每個(gè)缺陷或者功能需求被稱為一個(gè)問題(issue).每個(gè)問題都包含一些特定信息,如誰發(fā)現(xiàn)的這個(gè)問題、這個(gè)問題被分配給誰來解決、這個(gè)問題的當(dāng)前狀態(tài)、這個(gè)問題的優(yōu)先級(jí)等等.問題報(bào)告的數(shù)量能在一定程度上反映代碼的質(zhì)量,問題報(bào)告的解決速度能夠反映開源項(xiàng)目的活躍程度等,因此,問題追蹤數(shù)據(jù)對于分析軟件項(xiàng)目的最佳實(shí)踐具有重要意義.

    · 版本控制數(shù)據(jù)是指代碼庫每一次變更的歷史數(shù)據(jù),每次代碼更新都被稱為一個(gè)代碼提交(commit).每次代碼提交記錄了修改的原因、誰做了修改、修改了什么.版本控制數(shù)據(jù)不僅記錄了當(dāng)前的代碼庫,還記錄了整個(gè)代碼庫演化的過程,這些數(shù)據(jù)對于分析項(xiàng)目的歷史、當(dāng)前狀態(tài)以及未來都非常有價(jià)值.

    1.1 問題追蹤數(shù)據(jù)

    問題追蹤系統(tǒng)主要用于幫助開發(fā)人員追蹤軟件缺陷和需求,目前最常見的問題追蹤系統(tǒng)有 Bugzilla和JIRA等.

    對于每個(gè)問題報(bào)告,問題追蹤系統(tǒng)記錄了報(bào)告的基本信息和報(bào)告的歷史活動(dòng)兩部分.

    · 第1部分是報(bào)告的基本信息,主要包括序列號(hào)、報(bào)告標(biāo)題、報(bào)告人(reporter)、問題描述(description)、報(bào)告當(dāng)前的狀態(tài)(status)、處理意見(resolution)、問題產(chǎn)生的環(huán)境等信息,如圖1所示.

    · 問題追蹤數(shù)據(jù)具有一個(gè)特點(diǎn):問題報(bào)告的信息有可能隨著時(shí)間而發(fā)生改變.例如,一個(gè)問題被報(bào)告到問題追蹤系統(tǒng)之后,會(huì)被其他人評論,會(huì)被調(diào)整優(yōu)先級(jí),在問題解決之后其狀態(tài)會(huì)被標(biāo)記為“已解決”狀態(tài),甚至在關(guān)閉之后被重新打開.這些操作都會(huì)使該問題報(bào)告的信息發(fā)生變動(dòng).因此,問題報(bào)告的第二部分是報(bào)告的歷史活動(dòng),如圖2所示.表中的每一行記錄了對報(bào)告的一次修改,記錄的內(nèi)容包括修改人(who)、修改時(shí)間(when)、修改域(what)、修改前的值(removed)和修改后的值(added).

    Fig.1 Basic information of issue report of #212077 in Gnome圖1 Gnome項(xiàng)目的212077號(hào)問題報(bào)告的基本信息

    Fig.2 Activity history of issue report of #667796 in Gnome圖2 Gnome項(xiàng)目的667796號(hào)問題報(bào)告的歷史活動(dòng)

    1.2 版本控制數(shù)據(jù)

    版本控制系統(tǒng)的核心要求是能夠方便團(tuán)隊(duì)協(xié)同開發(fā)以及記錄歷史版本,目前最常見的版本控制系統(tǒng)有Git、Mercurial、SVN 和 CVS等.

    版本控制系統(tǒng)在代碼提交日志里記錄了開發(fā)者的每次代碼提交信息.如圖3所示,開發(fā)者的一次代碼提交,一般包括如下信息:提交者、作者、代碼提交的時(shí)間、代碼修改的時(shí)間、對該次提交的注解、修改的文件以及對每個(gè)文件修改的內(nèi)容.

    Fig.3 A code commit log in Linux kernel圖3 Linux kernel項(xiàng)目的一條代碼提交日志

    2 研究方法

    問題追蹤數(shù)據(jù)和版本控制數(shù)據(jù)記錄了軟件從需求到代碼實(shí)現(xiàn)的過程,是軟件開發(fā)中非常重要的數(shù)據(jù).本文研究主要針對這兩類數(shù)據(jù).

    為了對數(shù)據(jù)質(zhì)量問題進(jìn)行全面的總結(jié),我們首先在DBLP數(shù)據(jù)庫中進(jìn)行檢索,時(shí)間范圍是2000年~2017年,檢索時(shí)采用的英文關(guān)鍵詞包括“bug report”“issue report”“code repository”“software repository”,共檢索到 501 篇文章;然后,對檢索出的論文,通過人工審查方式移除掉與研究問題無關(guān)的論文,并通過查閱相關(guān)論文的參考文獻(xiàn)和相關(guān)研究人員發(fā)表的論文列表來進(jìn)一步識(shí)別出遺漏的論文.

    進(jìn)一步地,我們基于自身的研究和實(shí)踐經(jīng)驗(yàn),對Gnome、Mozilla和Linux kernel數(shù)據(jù)進(jìn)行分析,觀察可能的錯(cuò)誤所在,并跟研究社區(qū)進(jìn)行互動(dòng)以理解數(shù)據(jù)問題存在的廣度與深度.

    在調(diào)研的過程中,我們發(fā)現(xiàn)許多工作并不會(huì)清楚地說明論文中使用的數(shù)據(jù)集的來源,對數(shù)據(jù)進(jìn)行的預(yù)處理也很少提及,例如,Tamrawi等人[10]在任務(wù)分配的工作中并沒有提及如何建立郵箱地址和獨(dú)立開發(fā)者之間的關(guān)聯(lián)關(guān)系.另外,在調(diào)研的過程中,我們?nèi)コ恕皢栴}報(bào)告錯(cuò)誤分類”這一類已經(jīng)非常有影響力的工作.我們更多關(guān)注的是在軟件開發(fā)活動(dòng)數(shù)據(jù)的分析中,容易忽略的數(shù)據(jù)質(zhì)量問題.

    3 數(shù)據(jù)質(zhì)量問題

    本節(jié)回答第1個(gè)研究問題:軟件開發(fā)活動(dòng)數(shù)據(jù)可能存在哪些質(zhì)量問題?

    數(shù)據(jù)質(zhì)量問題可能產(chǎn)生于與數(shù)據(jù)有關(guān)的任何階段,其產(chǎn)生的原因也多種多樣.在使用軟件開發(fā)支持工具的過程中,工具記錄了與開發(fā)活動(dòng)相關(guān)的數(shù)據(jù),這個(gè)過程為數(shù)據(jù)的產(chǎn)生過程.數(shù)據(jù)使用者通過各種方式,將軟件開發(fā)支持工具記錄的數(shù)據(jù)收集到本地,這個(gè)過程為數(shù)據(jù)的收集過程.數(shù)據(jù)使用者基于自身對數(shù)據(jù)的理解,利用數(shù)據(jù)解決各種研究問題,這個(gè)過程為數(shù)據(jù)的使用過程.

    如圖4所示,我們根據(jù)問題可能產(chǎn)生的時(shí)間點(diǎn),即數(shù)據(jù)產(chǎn)生階段、數(shù)據(jù)收集階段和數(shù)據(jù)使用階段,將數(shù)據(jù)質(zhì)量問題分為3類.數(shù)據(jù)產(chǎn)生階段的數(shù)據(jù)質(zhì)量問題包括前文提到過的“任務(wù)完成時(shí)間”的陷阱、問題追蹤數(shù)據(jù)的創(chuàng)建時(shí)間錯(cuò)誤和版本控制數(shù)據(jù)中的時(shí)間問題.數(shù)據(jù)收集階段的數(shù)據(jù)質(zhì)量問題包括爬取數(shù)據(jù)不完整問題和隱私保護(hù)和安全保護(hù)等導(dǎo)致的數(shù)據(jù)不完整問題.數(shù)據(jù)使用階段的數(shù)據(jù)質(zhì)量問題包括未來數(shù)據(jù)泄露問題、郵箱地址的問題、版本控制數(shù)據(jù)中關(guān)于作者與提交者的問題.

    Fig.4 Three phases of data quality problems of software developemt activity data圖4 軟件開發(fā)活動(dòng)數(shù)據(jù)的數(shù)據(jù)質(zhì)量問題產(chǎn)生的3個(gè)階段

    不同階段的數(shù)據(jù)問題具有不同的特性.數(shù)據(jù)產(chǎn)生階段的問題通常是因?yàn)檐浖_發(fā)流程(支持工具或基礎(chǔ)設(shè)施)等所造成的數(shù)據(jù)使用者無法控制的問題.數(shù)據(jù)收集階段的問題多數(shù)可以通過優(yōu)化數(shù)據(jù)收集方法而得到解決或者部分解決,屬于部分可控.數(shù)據(jù)使用階段的問題在本文中多指“數(shù)據(jù)誤用問題”,即數(shù)據(jù)使用者忽略了數(shù)據(jù)本身的某些特征,誤用數(shù)據(jù)導(dǎo)致問題.這類問題往往較為隱蔽不易發(fā)現(xiàn),需要數(shù)據(jù)使用者對數(shù)據(jù)有深刻的理解.

    這 9個(gè)數(shù)據(jù)質(zhì)量問題有些源自數(shù)據(jù)經(jīng)驗(yàn),有些是從文獻(xiàn)中歸納總結(jié)的.為了使本文更具實(shí)踐價(jià)值,對于每一個(gè)數(shù)據(jù)問題,我們列出其影響的項(xiàng)目.如果數(shù)據(jù)問題源于數(shù)據(jù)經(jīng)驗(yàn),那么其影響的項(xiàng)目就是指Gnome、Mozilla、Linux kernal;如果數(shù)據(jù)問題源于文獻(xiàn)調(diào)研,那么除了Gnome、Mozilla、Linux kernal,其影響的項(xiàng)目還包括相應(yīng)文獻(xiàn)中涉及的項(xiàng)目.表1列出了這9個(gè)數(shù)據(jù)質(zhì)量問題的來源和影響的項(xiàng)目.

    Table 1 Nine data quality problems of software developemt activity data表1 軟件開發(fā)活動(dòng)數(shù)據(jù)的9個(gè)數(shù)據(jù)質(zhì)量問題

    3.1 數(shù)據(jù)產(chǎn)生階段的數(shù)據(jù)質(zhì)量問題

    數(shù)據(jù)產(chǎn)生階段的數(shù)據(jù)質(zhì)量問題主要是指,記錄在軟件開發(fā)支持工具中的數(shù)據(jù)并不能真實(shí)地反映真實(shí)的開發(fā)活動(dòng).這些有問題的數(shù)據(jù)產(chǎn)生的原因多種多樣,可能是軟件在記錄過程中出現(xiàn)了問題,也可能是由于特殊的軟件開發(fā)實(shí)踐.

    對于許多工作來說,時(shí)間是一個(gè)非常重要的研究因素[6,16,17].直觀上,相較于其他文本數(shù)據(jù)而言,數(shù)據(jù)中記錄的時(shí)間的準(zhǔn)確性相對較高.因?yàn)闀r(shí)間的記錄形式簡單,通常為數(shù)字;含義明確,表示了某項(xiàng)活動(dòng)發(fā)生時(shí)的系統(tǒng)時(shí)間.而且時(shí)間通常是由軟件自動(dòng)記錄,不涉及人工輸入.但是我們所發(fā)現(xiàn)的數(shù)據(jù)產(chǎn)生階段的數(shù)據(jù)質(zhì)量問題全部與時(shí)間相關(guān).

    3.1.1 問題報(bào)告的創(chuàng)建時(shí)間錯(cuò)誤

    當(dāng)問題報(bào)告被創(chuàng)建時(shí),問題追蹤系統(tǒng)自動(dòng)記錄了該問題報(bào)告的創(chuàng)建時(shí)間.如圖2所示,在Gnome項(xiàng)目中,有一些問題報(bào)告的創(chuàng)建時(shí)間為1970年.這顯然是錯(cuò)誤的時(shí)間數(shù)據(jù),因?yàn)镚nome基金會(huì)最初建立于2000年(https://en.wikipedia.org/wiki/The_GNOME_Project),不可能在 1970年報(bào)告問題.這類問題的出現(xiàn)可能是源于軟件記錄的錯(cuò)誤.軟件系統(tǒng)中記錄的時(shí)間通常與UNIX時(shí)間戳對應(yīng),而UNIX時(shí)間戳是從1970年1月1日開始計(jì)算.因此當(dāng)軟件系統(tǒng)發(fā)生錯(cuò)誤時(shí),記錄的錯(cuò)誤時(shí)間通常在1970年附近.

    3.1.2 版本控制數(shù)據(jù)中的時(shí)間問題

    前文已經(jīng)介紹,版本控制系統(tǒng)中存在代碼作者和代碼提交者兩種不同的角色:代碼作者指實(shí)際寫代碼的人,代碼提交者指將寫好的代碼提交到版本控制系統(tǒng)中的人.根據(jù)活動(dòng)發(fā)生的時(shí)間看,代碼提交的時(shí)間不會(huì)早于寫代碼的時(shí)間.如果代碼提交者同時(shí)也是代碼作者,那么代碼提交的時(shí)間可能與寫代碼的時(shí)間相同,或者代碼提交的時(shí)間晚于寫代碼的時(shí)間.如果代碼提交者和代碼作者不同,那么代碼提交的時(shí)間晚于寫代碼的時(shí)間.在 Linux kernel中,存在一些代碼提交數(shù)據(jù),它們的代碼提交者和作者不同,但是代碼提交時(shí)間和寫代碼時(shí)間相同.根據(jù)前面的分析,這明顯是存在問題的數(shù)據(jù).那么在根據(jù)時(shí)間戳追溯代碼變更的過程時(shí),這個(gè)問題就會(huì)造成困擾.

    3.1.3 “任務(wù)完成時(shí)間”的陷阱

    “任務(wù)完成時(shí)間”的陷阱就是前文中舉例的問題.有許多工作利用問題報(bào)告的“任務(wù)完成時(shí)間”來預(yù)測一個(gè)新的問題需要的修復(fù)時(shí)間.計(jì)算方法是:一個(gè)問題報(bào)告的“任務(wù)完成時(shí)間”(即問題報(bào)告被標(biāo)記為“已解決”的時(shí)間)與該問題報(bào)告的創(chuàng)建時(shí)間之間的時(shí)間差,即為修復(fù)該問題所需的時(shí)間.Kim等人的工作就是通過這種計(jì)算方法來預(yù)測任務(wù)完成的時(shí)間.但是,Zheng等人發(fā)現(xiàn),如果將把問題報(bào)告標(biāo)記為“已解決”的人視為解決該問題的人,那么按照每人每天來統(tǒng)計(jì)工作量,則會(huì)發(fā)現(xiàn)有的人一天內(nèi)解決了超過200個(gè)問題.據(jù)估計(jì),每人每天解決9個(gè)問題即為上限.一人一天內(nèi)解決200個(gè)問題,這極大地超過了人的能力限制.因此,這明顯是有問題的數(shù)據(jù).Zheng等人發(fā)現(xiàn),開發(fā)者在完成任務(wù)后可能并不會(huì)及時(shí)將問題報(bào)告標(biāo)記為“已解決”,而是在之后清理問題追蹤系統(tǒng)時(shí),通過腳本進(jìn)行批量處理.因此,“任務(wù)完成時(shí)間”并不能真正代表任務(wù)被解決的時(shí)刻.而基于問題時(shí)間數(shù)據(jù)的研究結(jié)果產(chǎn)生了偏差.

    3.2 數(shù)據(jù)收集階段的數(shù)據(jù)質(zhì)量問題

    數(shù)據(jù)收集階段的數(shù)據(jù)質(zhì)量問題主要是指,數(shù)據(jù)使用者收集到的數(shù)據(jù)與軟件開發(fā)支持工具產(chǎn)生的數(shù)據(jù)不完全一樣,在這一節(jié)中列舉的數(shù)據(jù)質(zhì)量問題主要是指數(shù)據(jù)不完整.無論是通過爬蟲從網(wǎng)站上爬取數(shù)據(jù),還是通過API或者某些工具同步數(shù)據(jù),或者是直接從官方鏈接下載整理好的數(shù)據(jù)集,收集到的數(shù)據(jù)都可能會(huì)出現(xiàn)不完整的問題.

    3.2.1 爬取數(shù)據(jù)不完整問題

    在官方?jīng)]有提供數(shù)據(jù)集或者沒有可用 API下載數(shù)據(jù)的情況下,數(shù)據(jù)使用者們往往需要自己編寫爬蟲來爬取數(shù)據(jù).這就很容易遇到爬取數(shù)據(jù)不完整的情況[11].主要是兩點(diǎn)原因:網(wǎng)絡(luò)問題以及反爬蟲機(jī)制.網(wǎng)絡(luò)問題主要是指網(wǎng)頁加載慢、網(wǎng)絡(luò)延遲或者丟包等問題;反爬蟲機(jī)制是指被爬取的網(wǎng)站采取的防御措施.因?yàn)檫@兩點(diǎn)原因,當(dāng)使用爬蟲爬取數(shù)據(jù)時(shí),數(shù)據(jù)往往不完整.

    3.2.2 隱私保護(hù)導(dǎo)致的數(shù)據(jù)不完整問題

    開源社區(qū)為了保護(hù)貢獻(xiàn)者的隱私,會(huì)采取一些列措施使得外部人員無法批量獲取貢獻(xiàn)者名單和郵箱地址.如圖2所示,在Gnome社區(qū)中,如果不登錄賬號(hào),則無法看到貢獻(xiàn)者完整的郵箱地址[4].由于無法獲得完整的郵箱地址,只有開發(fā)者的昵稱,于是就喪失了郵件地址的域名這部分信息,而這部分信息往往包含了的背景信息,例如公司、學(xué)校等,因此可能會(huì)對開發(fā)者的背景分析造成困擾.

    3.2.3 安全保護(hù)導(dǎo)致的數(shù)據(jù)不完整問題

    Zhu等人的工作[11]提供了多個(gè)版本的Mozilla問題追蹤數(shù)據(jù),其中,2011和2012兩個(gè)版本為通過爬蟲爬取的數(shù)據(jù),2013的版本為Mozilla官方提供的數(shù)據(jù).通過3個(gè)版本的數(shù)據(jù)比較,他們發(fā)現(xiàn)有些問題報(bào)告Mozilla社區(qū)并不會(huì)開放出來,因?yàn)檫@些問題可能涉及到 Mozilla的核心安全.當(dāng)確認(rèn)這些報(bào)告并不會(huì)產(chǎn)生安全隱患后,這些報(bào)告會(huì)重新開放出來.這種數(shù)據(jù)問題對于研究“安全”相關(guān)問題的人來說非常重要,因?yàn)檫@些曾經(jīng)被隱藏起來的問題是真正涉及到安全的問題,是非常具有研究價(jià)值的對象.

    3.3 數(shù)據(jù)使用階段的數(shù)據(jù)質(zhì)量問題

    數(shù)據(jù)使用階段的數(shù)據(jù)質(zhì)量問題是指,數(shù)據(jù)使用者由于對數(shù)據(jù)產(chǎn)生的上下文不了解,而基于數(shù)據(jù)建立了錯(cuò)誤的假設(shè).

    3.3.1 未來數(shù)據(jù)泄露問題

    問題報(bào)告的屬性一直在隨著問題修復(fù)的進(jìn)程而被不斷修改.但是許多問題追蹤數(shù)據(jù)的使用者并沒有清楚地認(rèn)識(shí)到這一點(diǎn),并且沒有仔細(xì)區(qū)別實(shí)驗(yàn)中所使用的數(shù)據(jù)是否與研究問題的應(yīng)用場景所匹配.因此,可能產(chǎn)生在研究實(shí)驗(yàn)中,錯(cuò)誤的使用了來自“未來”的信息[12].例如在Sun等人[18]的研究中,他們使用問題報(bào)告的標(biāo)題進(jìn)行重復(fù)報(bào)告檢測.然而,問題報(bào)告的標(biāo)題會(huì)不斷修改.他們在實(shí)驗(yàn)中使用的問題報(bào)告的標(biāo)題已經(jīng)是經(jīng)過反復(fù)修改的.但是重復(fù)報(bào)告檢測的應(yīng)用場景,主要是發(fā)生在問題報(bào)告創(chuàng)建之初.因此,應(yīng)用問題報(bào)告創(chuàng)建時(shí)的原始標(biāo)題來檢測該報(bào)告是否重復(fù)更為合適.這種數(shù)據(jù)使用問題主要是因?yàn)闆]有理解“問題報(bào)告的屬性一直在隨著問題修復(fù)的進(jìn)程而被不斷修改”這一事實(shí),忽略了數(shù)據(jù)產(chǎn)生的上下文,對數(shù)據(jù)建立了錯(cuò)誤的假設(shè).這種錯(cuò)誤使用未來數(shù)據(jù)的問題也普遍存在于數(shù)據(jù)挖掘領(lǐng)域,也稱為數(shù)據(jù)泄露問題,是數(shù)據(jù)挖掘的十大錯(cuò)誤之一.

    3.3.2 郵箱地址的問題

    在軟件數(shù)據(jù)倉庫挖掘中,一個(gè)郵箱地址通常代表了一個(gè)開發(fā)者.但是一個(gè)郵箱地址并不是單純地對應(yīng)一個(gè)開發(fā)者,而是存在“多對一”和“一對多”的關(guān)系.一個(gè)郵箱地址對應(yīng)多個(gè)開發(fā)者,這種情況是指“一個(gè)郵箱地址”是公共郵箱(郵件列表地址)或者代表了特殊標(biāo)識(shí),例如 platform-help-inbox@eclipse.com 和 nobody@mozilla.org.前者可以被看作是問題報(bào)告分發(fā)過程中的 HUB,而后者則是代表了目前這個(gè)問題報(bào)告沒有指派,任何人都可以嘗試解決這個(gè)問題.在研究問題報(bào)告分配任務(wù)時(shí),如果目的是將問題報(bào)告分配給具體的真實(shí)開發(fā)者,那么“多對一”將引入噪音.多個(gè)郵箱地址對應(yīng)一個(gè)開發(fā)者,這是因?yàn)殚_發(fā)者擁有多個(gè)賬戶.這些賬戶的使用場景可能不同,例如,私人郵箱和公司郵箱;或者開發(fā)者所屬單位發(fā)生了變化,即開發(fā)者跳槽了,因此擁有多個(gè)賬戶.在研究開發(fā)者工作效率或者開發(fā)者網(wǎng)絡(luò)時(shí),“一對多”將使結(jié)果產(chǎn)生偏差.

    3.3.3 版本控制數(shù)據(jù)中關(guān)于作者與提交者的問題

    在版本控制系統(tǒng)的提交日志中,代碼提交者(committer)和代碼作者(author)代表了兩種不同的身份.Git將代碼提交者和代碼作者分別用committer和author記錄.但是SVN和CVS并沒有區(qū)分這兩種不同的身份.在SVN和CVS中,只存在author這個(gè)域,但是author實(shí)際記錄的卻是代碼提交者.因此,如果按照Git的習(xí)慣去理解SVN和CVS的數(shù)據(jù),以為author記錄的是代碼作者,那么就對數(shù)據(jù)有了誤解,產(chǎn)生了錯(cuò)誤的假設(shè).

    4 數(shù)據(jù)質(zhì)量問題的發(fā)現(xiàn)和修正

    本節(jié)回答第2個(gè)研究問題:如何發(fā)現(xiàn)和解決軟件開發(fā)活動(dòng)數(shù)據(jù)的質(zhì)量問題?

    4.1 問題的發(fā)現(xiàn)

    在前面的分析中可以看出,有的數(shù)據(jù)質(zhì)量問題很容易理解,比較容易發(fā)現(xiàn),例如問題報(bào)告的創(chuàng)建時(shí)間錯(cuò)誤,通過常識(shí)和統(tǒng)計(jì)分析及數(shù)據(jù)可視化可以發(fā)現(xiàn);但有的數(shù)據(jù)質(zhì)量問題比較隱蔽,例如未來數(shù)據(jù)泄露問題,需要對數(shù)據(jù)上下文有清楚的理解.

    4.1.1 理解數(shù)據(jù)上下文

    對于數(shù)據(jù)產(chǎn)生的上下文的理解,是應(yīng)用數(shù)據(jù)的基礎(chǔ).在第 3.3節(jié)中,我們反復(fù)強(qiáng)調(diào)了理解數(shù)據(jù)上下文的重要性.對數(shù)據(jù)理解不重復(fù)或者存在誤解,都會(huì)對研究結(jié)果產(chǎn)生影響.Mockus[19]認(rèn)為,理解數(shù)據(jù)產(chǎn)生的上下文應(yīng)至少包含以下幾點(diǎn):1) 數(shù)據(jù)產(chǎn)生的方式,例如數(shù)據(jù)是由系統(tǒng)自動(dòng)產(chǎn)生還是人工輸入、是否存在缺省值;2) 數(shù)據(jù)是否存在修改/刪除/過濾/缺損的情況,以及這些被修改/刪除/過濾/缺損的數(shù)據(jù)對結(jié)果是否有影響.

    以“任務(wù)完成時(shí)間”的陷阱為例.在一般情況下,問題報(bào)告是在開發(fā)者解決了對應(yīng)的問題后,手動(dòng)將問題報(bào)告關(guān)閉并標(biāo)記為“已解決”.但是 Zheng等人發(fā)現(xiàn)一天之內(nèi)解決上百個(gè)問題報(bào)告,這已經(jīng)不是正常情況下的處理流程.據(jù)他們發(fā)現(xiàn),這種現(xiàn)象一般是由腳本批處理造成的.有 3個(gè)原因?qū)е铝诉@種特殊的問題報(bào)告處理流程:第一,問題報(bào)告由其他系統(tǒng)進(jìn)行管理,兩邊系統(tǒng)進(jìn)行數(shù)據(jù)同步,批量關(guān)閉了報(bào)告;第二,某個(gè)時(shí)間點(diǎn)集中清理問題追蹤系統(tǒng)中遺留的長期未解決的問題,將這些報(bào)告批量關(guān)閉;第三,當(dāng)版本控制系統(tǒng)中的問題修復(fù)了,其關(guān)聯(lián)的問題報(bào)告可能會(huì)被批量關(guān)閉.這3種情況下,數(shù)據(jù)都是系統(tǒng)自動(dòng)處理,而非人工手動(dòng)輸入.這就是因?yàn)閷?shù)據(jù)產(chǎn)生的方式理解不充分而產(chǎn)生的數(shù)據(jù)質(zhì)量問題.

    4.1.2 統(tǒng)計(jì)分析及數(shù)據(jù)可視化

    發(fā)現(xiàn)問題的一個(gè)有效手段是統(tǒng)計(jì)分析.最簡單地,統(tǒng)計(jì)數(shù)據(jù)的平均值、中位數(shù)、最大值、最小值、四分位數(shù),就可以對數(shù)據(jù)的分布有一個(gè)大概的認(rèn)識(shí).在這個(gè)過程中,如果有分布非常不均衡的現(xiàn)象,一些突出的問題已經(jīng)可以被識(shí)別出來,例如郵箱地址問題中的一對多問題.此外,還可以通過擬合一些概率分布模型來發(fā)現(xiàn)數(shù)據(jù)中的異常值.以“任務(wù)完成時(shí)間”的陷阱為例,Zheng等人通過泊松分布定位出了異常的“任務(wù)完成時(shí)間”.

    數(shù)據(jù)可視化是數(shù)據(jù)分析中一個(gè)有效的技術(shù)手段[20].當(dāng)數(shù)據(jù)以直觀的圖形形式展示在分析者面前時(shí),分析者往往能夠一眼洞悉數(shù)據(jù)背后隱藏的信息并轉(zhuǎn)化知識(shí)以及智慧[21].通過數(shù)據(jù)可視化,可以對數(shù)據(jù)的整體走向有一個(gè)清楚的認(rèn)識(shí),對于其中的異常點(diǎn)也能夠輕而易舉的捕捉到.例如,在揭示“任務(wù)完成時(shí)間”陷阱的過程中,Zheng等人通過數(shù)據(jù)可視化展示出了該數(shù)據(jù)質(zhì)量問題日益嚴(yán)重的發(fā)展趨勢.另外,在可視化問題追蹤數(shù)據(jù)的過程中找到了1970年這個(gè)異常點(diǎn),因此發(fā)現(xiàn)了問題報(bào)告的創(chuàng)建時(shí)間錯(cuò)誤.

    4.2 問題的修正

    在發(fā)現(xiàn)了軟件開發(fā)活動(dòng)數(shù)據(jù)的質(zhì)量問題后,可以嘗試通過兩種方法對問題數(shù)據(jù)進(jìn)行修正來降低數(shù)據(jù)質(zhì)量問題帶來的負(fù)面影響,即利用冗余數(shù)據(jù)進(jìn)行修正和挖掘用戶行為模式進(jìn)行修正.所幸,豐富的軟件開發(fā)活動(dòng)數(shù)據(jù)資源使得這兩種數(shù)據(jù)修正方式成為可能.這兩種數(shù)據(jù)修正方法分別適用于不同的研究問題和背景:利用冗余數(shù)據(jù)進(jìn)行修正的方法能夠很好地適用于時(shí)間存在問題的數(shù)據(jù),例如“任務(wù)完成時(shí)間”陷阱;挖掘用戶行為模式進(jìn)行修正適用于需要進(jìn)行用戶身份識(shí)別的問題,例如郵箱地址的問題.數(shù)據(jù)問題的修正方法與研究問題和背景密切相關(guān),仔細(xì)分辨研究問題的動(dòng)機(jī)、背景,了解數(shù)據(jù)產(chǎn)生的上下文,不僅可以發(fā)現(xiàn)問題,也是修正數(shù)據(jù)必不可少的步驟.

    4.2.1 利用冗余數(shù)據(jù)進(jìn)行修正

    冗余數(shù)據(jù)是指,軟件開發(fā)活動(dòng)數(shù)據(jù)中與原數(shù)據(jù)用途、含義相近的數(shù)據(jù).在軟件開發(fā)活動(dòng)數(shù)據(jù)中,一項(xiàng)開發(fā)活動(dòng)可能在多個(gè)不同的系統(tǒng)或者相近的活動(dòng)中留下痕跡.這些就是互為冗余的數(shù)據(jù).特別強(qiáng)調(diào),這里的冗余并非貶義詞,而是指數(shù)據(jù)的意義相近(并非完全相同需要去除的冗余數(shù)據(jù)).

    以“任務(wù)完成時(shí)間”的陷阱為例.冗余數(shù)據(jù)可能存在于同一個(gè)系統(tǒng)中,也可能存在于不同的系統(tǒng)中.“任務(wù)完成時(shí)間”的陷阱中,有問題的數(shù)據(jù)是問題報(bào)告被標(biāo)記為“已解決”的時(shí)間.這個(gè)數(shù)據(jù)原本是想表示該問題被解決的時(shí)間.但是當(dāng)它出現(xiàn)了問題,它就并不能起到應(yīng)有的作用了.因此,從這個(gè)數(shù)據(jù)原本表示的含義出發(fā),結(jié)合“已解決”時(shí)間產(chǎn)生的上下文,即與該數(shù)據(jù)相關(guān)的軟件開發(fā)活動(dòng),分別在同一個(gè)系統(tǒng)和不同的系統(tǒng)中尋找意思相近的數(shù)據(jù).在同一個(gè)系統(tǒng)中,即問題追蹤系統(tǒng)中,每一個(gè)問題報(bào)告的最后一條評論時(shí)間基本可以等視為問題被解決的時(shí)間.因?yàn)楫?dāng)一個(gè)問題被解決后,就很少會(huì)有人再去關(guān)注它、討論它.那么就可以將原先錯(cuò)誤的“任務(wù)完成時(shí)間”修改為更為準(zhǔn)確的問題報(bào)告最后一條評論時(shí)間.在不同的系統(tǒng)當(dāng)中,例如版本控制系統(tǒng),與該問題報(bào)告對應(yīng)的代碼的提交時(shí)間可以等視為問題為解決的時(shí)間.因?yàn)橥ǔG闆r下的處理流程就是:在代碼庫中提交了代碼修改,然后將問題報(bào)告標(biāo)記為“已解決”.這些都是從數(shù)據(jù)的含義出發(fā),理解了開發(fā)實(shí)踐過程,找到的解決方法.

    這種方法也可以應(yīng)用到問題報(bào)告的創(chuàng)建時(shí)間的修正上,例如,可以用問題報(bào)告的第1條評論的時(shí)間或者第1次信息被修改的時(shí)候來預(yù)估問題報(bào)告的創(chuàng)建時(shí)間.利用冗余數(shù)據(jù)進(jìn)行修正的方法在修正軟件開發(fā)活動(dòng)的時(shí)間上具有一定的通用性,因?yàn)檐浖_發(fā)活動(dòng)是一系列連貫的活動(dòng),根據(jù)該項(xiàng)活動(dòng)前后的活動(dòng)數(shù)據(jù),就可以對原來錯(cuò)誤的數(shù)據(jù)進(jìn)行修正.

    4.2.2 挖掘用戶行為模式進(jìn)行修正

    軟件開發(fā)活動(dòng)數(shù)據(jù)記錄了軟件開發(fā)過程中開發(fā)者的一系列活動(dòng).軟件開發(fā)是一項(xiàng)連續(xù)的活動(dòng),每一個(gè)行為或活動(dòng)不可能單獨(dú)存在,也不會(huì)突然發(fā)生巨大的改變.我們假定一個(gè)用戶的行為模式是特定的,那么我們可以從歷史數(shù)據(jù)中挖掘出用戶的行為模式,進(jìn)而對問題數(shù)據(jù)進(jìn)行修正.

    這里以郵箱地址的問題為例.在解決“多對一”的問題時(shí),除了根據(jù)用戶名的命名規(guī)則和相似度進(jìn)行識(shí)別,還可以通過挖掘用戶行為模式進(jìn)行修正.例如在版本控制數(shù)據(jù)中,這些郵件地址的作者或者代碼提交者如果有著相近或者相同的行為習(xí)慣,那么這些郵件地址就很有可能指向同一個(gè)人.在這個(gè)問題中,行為習(xí)慣包括編寫或者提交過的文件、提交日志的書寫風(fēng)格和工作時(shí)區(qū).如果多個(gè)不同的賬戶修改同樣的代碼文件,那他們可能指向同一個(gè)人.不同的開發(fā)者有著不同的代碼風(fēng)格,也有著不同的代碼日志風(fēng)格,如果多個(gè)賬戶的代碼提交日志的書寫風(fēng)格類似,那么他們可能指向同一個(gè)人.假定開發(fā)者的物理位置不會(huì)頻繁發(fā)生改變,那么如果多個(gè),例如有相同書寫風(fēng)格的賬戶的物理位置相近,他們就更可能指向同一個(gè)人,而在版本控制數(shù)據(jù)中,該信息可以從時(shí)區(qū)信息中提取出來.

    同樣地,在識(shí)別“一對多”問題時(shí),也同樣可以通過挖掘用戶行為模式定位出那些公共賬號(hào),例如工作時(shí)區(qū).在開源開發(fā)中,開發(fā)者遍布世界各地.當(dāng)一個(gè)郵件地址對應(yīng)的時(shí)區(qū)信息經(jīng)常發(fā)生變化,具有較大不確定性,那么該賬號(hào)就很有可能是一個(gè)公共賬號(hào).

    5 總結(jié)與展望

    高質(zhì)量的數(shù)據(jù)是對軟件開發(fā)實(shí)踐進(jìn)行分析、預(yù)測、推薦的基礎(chǔ).隨著越來越多的工作圍繞軟件活動(dòng)開發(fā)數(shù)據(jù)展開,也逐漸有一些工作認(rèn)識(shí)到數(shù)據(jù)質(zhì)量的重要性并發(fā)現(xiàn)了數(shù)據(jù)中潛在的數(shù)據(jù)質(zhì)量問題.然而,人們對于軟件數(shù)據(jù)質(zhì)量問題的關(guān)注度還遠(yuǎn)不能匹配數(shù)據(jù)本身的重要性.因此,本文通過廣泛的文獻(xiàn)調(diào)研并深入分析數(shù)據(jù),總結(jié)出了9類數(shù)據(jù)質(zhì)量問題,并從發(fā)現(xiàn)問題和解決問題方面分別提出了建議.

    我們相信,隨著智能化軟件開發(fā)的蓬勃發(fā)展,數(shù)據(jù)質(zhì)量問題會(huì)得到越來越多的關(guān)注(鑒于智能軟件開發(fā)對于數(shù)據(jù)的依賴).同時(shí)希望有越來越多的努力構(gòu)建出可靠的數(shù)據(jù)集,或者構(gòu)建相應(yīng)的方法來產(chǎn)生可靠的數(shù)據(jù)集.未來工作我們將重點(diǎn)關(guān)注用自動(dòng)化的方法來檢測和修正問題數(shù)據(jù).

    猜你喜歡
    開發(fā)者代碼報(bào)告
    創(chuàng)世代碼
    創(chuàng)世代碼
    創(chuàng)世代碼
    創(chuàng)世代碼
    一圖看懂十九大報(bào)告
    報(bào)告
    16%游戲開發(fā)者看好VR
    CHIP新電腦(2016年3期)2016-03-10 13:06:42
    報(bào)告
    iOS開發(fā)者調(diào)查
    電腦迷(2015年8期)2015-05-30 12:27:10
    iOS開發(fā)者調(diào)查
    電腦迷(2015年4期)2015-05-30 05:24:09
    国产无遮挡羞羞视频在线观看| 黄色视频在线播放观看不卡| 人人妻人人看人人澡| 日本wwww免费看| 免费黄网站久久成人精品| 男女啪啪激烈高潮av片| 国产精品国产三级国产专区5o| 久久久久精品久久久久真实原创| 久久人人爽人人片av| 国产成人精品无人区| 麻豆精品久久久久久蜜桃| 国产精品福利在线免费观看| 国产精品国产三级国产专区5o| 欧美日韩精品成人综合77777| 中文字幕亚洲精品专区| 97超视频在线观看视频| 一级爰片在线观看| 亚洲av电影在线观看一区二区三区| 人人妻人人澡人人爽人人夜夜| 久久精品国产亚洲网站| 亚洲欧洲日产国产| 一级毛片黄色毛片免费观看视频| 嘟嘟电影网在线观看| 午夜福利影视在线免费观看| 亚洲精品乱久久久久久| 一个人看视频在线观看www免费| 亚洲精品日韩在线中文字幕| 最近的中文字幕免费完整| 观看av在线不卡| 国产伦精品一区二区三区四那| 韩国高清视频一区二区三区| 久久99热这里只频精品6学生| 一区二区av电影网| av.在线天堂| 日韩成人伦理影院| 人妻系列 视频| 国产男女内射视频| 在线精品无人区一区二区三| 国产在线一区二区三区精| a级毛片免费高清观看在线播放| 国产一区有黄有色的免费视频| 日韩强制内射视频| 精品国产露脸久久av麻豆| av线在线观看网站| 亚洲精品日韩av片在线观看| 中文在线观看免费www的网站| 秋霞伦理黄片| 日本wwww免费看| 精品久久久久久久久亚洲| 精品人妻熟女毛片av久久网站| 丝瓜视频免费看黄片| 色婷婷久久久亚洲欧美| 国产亚洲最大av| 亚洲婷婷狠狠爱综合网| 啦啦啦在线观看免费高清www| 亚洲综合色惰| 一本—道久久a久久精品蜜桃钙片| 最新中文字幕久久久久| 22中文网久久字幕| 欧美国产精品一级二级三级 | 久久午夜综合久久蜜桃| 午夜福利网站1000一区二区三区| 欧美一级a爱片免费观看看| 这个男人来自地球电影免费观看 | 女人精品久久久久毛片| 欧美少妇被猛烈插入视频| 少妇猛男粗大的猛烈进出视频| 丝袜脚勾引网站| 免费黄网站久久成人精品| 国产伦精品一区二区三区四那| 免费av不卡在线播放| 午夜日本视频在线| 国产男人的电影天堂91| 18禁在线无遮挡免费观看视频| 天堂俺去俺来也www色官网| 中文字幕人妻熟人妻熟丝袜美| 熟女av电影| 精品国产一区二区三区久久久樱花| 久久99精品国语久久久| 久久久精品94久久精品| 国产成人a∨麻豆精品| 99热6这里只有精品| 十八禁高潮呻吟视频 | 校园人妻丝袜中文字幕| 欧美 亚洲 国产 日韩一| 妹子高潮喷水视频| 国产伦理片在线播放av一区| 内射极品少妇av片p| 亚洲,欧美,日韩| 美女大奶头黄色视频| 桃花免费在线播放| 菩萨蛮人人尽说江南好唐韦庄| 91久久精品电影网| 插逼视频在线观看| 国产在线男女| 春色校园在线视频观看| 十分钟在线观看高清视频www | 精品一品国产午夜福利视频| 天堂俺去俺来也www色官网| 亚洲精品第二区| 99热6这里只有精品| 亚洲成人一二三区av| 妹子高潮喷水视频| 另类精品久久| 又爽又黄a免费视频| 亚洲美女搞黄在线观看| 香蕉精品网在线| 又黄又爽又刺激的免费视频.| 亚洲精品一区蜜桃| 精品亚洲成国产av| 最近手机中文字幕大全| 一本—道久久a久久精品蜜桃钙片| 欧美最新免费一区二区三区| 涩涩av久久男人的天堂| 韩国高清视频一区二区三区| 99久国产av精品国产电影| 国产淫片久久久久久久久| 少妇熟女欧美另类| 亚洲精品456在线播放app| 亚洲人成网站在线观看播放| 欧美变态另类bdsm刘玥| 欧美人与善性xxx| 亚洲经典国产精华液单| 国产精品99久久久久久久久| 欧美97在线视频| 黑人巨大精品欧美一区二区蜜桃 | 男女啪啪激烈高潮av片| 在线看a的网站| 九九在线视频观看精品| www.av在线官网国产| 成人亚洲精品一区在线观看| 九九在线视频观看精品| av播播在线观看一区| 日韩成人伦理影院| 老司机亚洲免费影院| 99热这里只有是精品在线观看| 97精品久久久久久久久久精品| 五月天丁香电影| 老司机亚洲免费影院| 久久久久国产精品人妻一区二区| 国产爽快片一区二区三区| av专区在线播放| 国产欧美亚洲国产| 伊人亚洲综合成人网| 久久精品久久久久久噜噜老黄| 国产精品偷伦视频观看了| 欧美日韩在线观看h| 少妇丰满av| 久久久久人妻精品一区果冻| 校园人妻丝袜中文字幕| 久久6这里有精品| 人妻人人澡人人爽人人| 免费黄色在线免费观看| 国产精品蜜桃在线观看| 少妇精品久久久久久久| 亚洲国产精品999| 欧美日韩综合久久久久久| 国产白丝娇喘喷水9色精品| 美女脱内裤让男人舔精品视频| 22中文网久久字幕| 亚洲一级一片aⅴ在线观看| 亚洲欧美精品专区久久| 婷婷色麻豆天堂久久| 久久人妻熟女aⅴ| 久久久久久久久久久免费av| 精品国产露脸久久av麻豆| 深夜a级毛片| 国产一区亚洲一区在线观看| 国产成人精品婷婷| 国产av国产精品国产| 一区二区三区乱码不卡18| 亚洲内射少妇av| 我要看日韩黄色一级片| 日本爱情动作片www.在线观看| 99热这里只有是精品50| 人人妻人人添人人爽欧美一区卜| 国产精品国产三级国产av玫瑰| 精品一区二区免费观看| 99热网站在线观看| 日韩欧美 国产精品| 色94色欧美一区二区| 日韩一区二区视频免费看| 丁香六月天网| 纯流量卡能插随身wifi吗| 亚洲四区av| 在线观看免费高清a一片| 国产黄频视频在线观看| 国产黄片美女视频| 亚洲图色成人| 免费黄色在线免费观看| 美女内射精品一级片tv| 熟女电影av网| 免费观看在线日韩| 日韩欧美 国产精品| av.在线天堂| 亚洲天堂av无毛| 成人黄色视频免费在线看| 亚洲精品日韩av片在线观看| 中文精品一卡2卡3卡4更新| 久久午夜综合久久蜜桃| 欧美少妇被猛烈插入视频| 久久影院123| 美女xxoo啪啪120秒动态图| 一级毛片久久久久久久久女| 欧美日韩视频高清一区二区三区二| 2021少妇久久久久久久久久久| 高清毛片免费看| 成年人免费黄色播放视频 | 亚洲精品久久久久久婷婷小说| 久久人妻熟女aⅴ| 成人亚洲欧美一区二区av| 久久久久久久亚洲中文字幕| 久久久久久久大尺度免费视频| 嫩草影院新地址| 国产一区二区在线观看av| 边亲边吃奶的免费视频| 午夜福利网站1000一区二区三区| 高清黄色对白视频在线免费看 | 亚洲综合色惰| 国产熟女午夜一区二区三区 | 精品久久久精品久久久| 狂野欧美激情性xxxx在线观看| 午夜久久久在线观看| 久久久久人妻精品一区果冻| 免费久久久久久久精品成人欧美视频 | 国产无遮挡羞羞视频在线观看| 亚洲欧美一区二区三区国产| 免费黄色在线免费观看| 青春草国产在线视频| 啦啦啦啦在线视频资源| 久久久久国产精品人妻一区二区| 国产老妇伦熟女老妇高清| 国产精品99久久99久久久不卡 | 校园人妻丝袜中文字幕| 嫩草影院入口| 啦啦啦视频在线资源免费观看| 91精品伊人久久大香线蕉| 国语对白做爰xxxⅹ性视频网站| 亚洲欧美清纯卡通| 婷婷色综合www| 夜夜骑夜夜射夜夜干| 精品一区在线观看国产| 国产伦精品一区二区三区视频9| 久久99一区二区三区| 男女啪啪激烈高潮av片| 在线观看免费日韩欧美大片 | av国产久精品久网站免费入址| 久久午夜福利片| 国模一区二区三区四区视频| 六月丁香七月| 午夜老司机福利剧场| 王馨瑶露胸无遮挡在线观看| 最近中文字幕高清免费大全6| 9色porny在线观看| 91在线精品国自产拍蜜月| av卡一久久| 成人无遮挡网站| 成人漫画全彩无遮挡| 搡女人真爽免费视频火全软件| 视频区图区小说| 菩萨蛮人人尽说江南好唐韦庄| 亚洲综合色惰| 精品国产乱码久久久久久小说| 最新中文字幕久久久久| 各种免费的搞黄视频| 夫妻午夜视频| 欧美另类一区| 人人妻人人添人人爽欧美一区卜| 久久6这里有精品| 欧美性感艳星| 最近手机中文字幕大全| 精品卡一卡二卡四卡免费| 国产亚洲欧美精品永久| 欧美国产精品一级二级三级 | 自拍偷自拍亚洲精品老妇| 日本色播在线视频| 日韩大片免费观看网站| 国产男人的电影天堂91| 色哟哟·www| 一级二级三级毛片免费看| 在线观看免费高清a一片| 国产精品熟女久久久久浪| 久久精品国产亚洲网站| 纯流量卡能插随身wifi吗| 国产精品久久久久成人av| 欧美xxxx性猛交bbbb| 久久久久久久大尺度免费视频| 中文字幕久久专区| 国产欧美亚洲国产| 在线看a的网站| 久久国产乱子免费精品| 国国产精品蜜臀av免费| 男女国产视频网站| av国产久精品久网站免费入址| 亚洲一级一片aⅴ在线观看| 日本av免费视频播放| 国产精品一区二区性色av| 伦理电影大哥的女人| 欧美激情国产日韩精品一区| 精品一品国产午夜福利视频| 国内精品宾馆在线| 亚洲精品色激情综合| 寂寞人妻少妇视频99o| 欧美最新免费一区二区三区| 人人妻人人看人人澡| 99热这里只有是精品50| 亚洲国产成人一精品久久久| 国产精品国产三级国产专区5o| 狂野欧美激情性bbbbbb| 99九九在线精品视频 | 免费人妻精品一区二区三区视频| 汤姆久久久久久久影院中文字幕| 欧美日韩在线观看h| 啦啦啦在线观看免费高清www| 国内少妇人妻偷人精品xxx网站| 成人毛片a级毛片在线播放| 精品国产乱码久久久久久小说| 欧美另类一区| 免费观看的影片在线观看| 久久久久久久国产电影| 18+在线观看网站| 熟女电影av网| 少妇丰满av| 美女xxoo啪啪120秒动态图| 麻豆成人午夜福利视频| 国产乱人偷精品视频| 国产在线视频一区二区| 日韩av在线免费看完整版不卡| 99热网站在线观看| 国产黄片视频在线免费观看| 国产黄色视频一区二区在线观看| 在线观看人妻少妇| 日韩熟女老妇一区二区性免费视频| 国产亚洲5aaaaa淫片| 国产男女内射视频| 免费观看的影片在线观看| 蜜桃久久精品国产亚洲av| 国产精品99久久久久久久久| 在线观看av片永久免费下载| 亚洲av.av天堂| 美女福利国产在线| 久热久热在线精品观看| 午夜视频国产福利| 精品熟女少妇av免费看| 99久久精品热视频| 免费观看无遮挡的男女| 欧美3d第一页| 少妇的逼水好多| 亚洲精品aⅴ在线观看| 一本—道久久a久久精品蜜桃钙片| 91在线精品国自产拍蜜月| 久久99热6这里只有精品| 新久久久久国产一级毛片| 一级毛片aaaaaa免费看小| 国产成人精品久久久久久| 人妻人人澡人人爽人人| 国产69精品久久久久777片| 国产精品国产av在线观看| 精品熟女少妇av免费看| 久久国产乱子免费精品| 亚洲情色 制服丝袜| 国产精品国产三级国产专区5o| 另类亚洲欧美激情| 男女边摸边吃奶| 激情五月婷婷亚洲| 国产美女午夜福利| 午夜视频国产福利| 男女边摸边吃奶| 伦理电影免费视频| 99热6这里只有精品| 国产精品人妻久久久久久| 精品国产一区二区久久| 综合色丁香网| 热re99久久精品国产66热6| 熟女av电影| 亚洲欧美精品专区久久| 在线观看美女被高潮喷水网站| 性色av一级| 99国产精品免费福利视频| 亚洲精品日韩av片在线观看| 最近中文字幕高清免费大全6| 晚上一个人看的免费电影| www.av在线官网国产| 69精品国产乱码久久久| 国产av国产精品国产| 免费黄网站久久成人精品| 波野结衣二区三区在线| 日日撸夜夜添| 国内精品宾馆在线| 久久狼人影院| 美女大奶头黄色视频| 91久久精品国产一区二区三区| 久久精品国产亚洲网站| 伦精品一区二区三区| 少妇被粗大猛烈的视频| 国产精品熟女久久久久浪| 少妇高潮的动态图| 我要看日韩黄色一级片| 精品久久久噜噜| 国产一区二区在线观看日韩| 亚洲va在线va天堂va国产| 91成人精品电影| 一级毛片黄色毛片免费观看视频| 成人国产av品久久久| 久久久国产精品麻豆| 国产精品久久久久久久电影| 22中文网久久字幕| 少妇人妻一区二区三区视频| 国产一区二区在线观看av| 2018国产大陆天天弄谢| 噜噜噜噜噜久久久久久91| 观看美女的网站| 亚洲精品国产av成人精品| 午夜激情福利司机影院| 午夜精品国产一区二区电影| 亚洲精品第二区| 精品99又大又爽又粗少妇毛片| 国产欧美日韩精品一区二区| 九九在线视频观看精品| 国产熟女欧美一区二区| 亚洲成人av在线免费| 国产成人精品久久久久久| 一级,二级,三级黄色视频| 日本与韩国留学比较| 99热国产这里只有精品6| 亚洲美女视频黄频| 国产精品人妻久久久影院| 亚洲,一卡二卡三卡| 欧美3d第一页| 99re6热这里在线精品视频| 欧美日韩在线观看h| 一级毛片电影观看| 免费看日本二区| 亚洲欧美一区二区三区黑人 | 在线观看三级黄色| 午夜精品国产一区二区电影| 高清午夜精品一区二区三区| 99热国产这里只有精品6| 夜夜骑夜夜射夜夜干| 亚洲图色成人| 亚洲av日韩在线播放| av一本久久久久| 亚洲成人一二三区av| 夫妻性生交免费视频一级片| 97超视频在线观看视频| av女优亚洲男人天堂| 午夜福利,免费看| 26uuu在线亚洲综合色| 男男h啪啪无遮挡| 伊人久久国产一区二区| 欧美三级亚洲精品| 免费av中文字幕在线| 国产精品久久久久久久久免| 午夜91福利影院| 欧美一级a爱片免费观看看| 欧美亚洲 丝袜 人妻 在线| 久久国产亚洲av麻豆专区| 老女人水多毛片| 亚洲精品视频女| 一二三四中文在线观看免费高清| 一级爰片在线观看| 在线观看免费日韩欧美大片 | 美女xxoo啪啪120秒动态图| 久久精品国产亚洲av天美| 日本黄大片高清| 在线观看美女被高潮喷水网站| 极品少妇高潮喷水抽搐| 日韩av在线免费看完整版不卡| 国精品久久久久久国模美| 国产毛片在线视频| 国产精品三级大全| 91成人精品电影| 国产极品天堂在线| 国产成人a∨麻豆精品| 久久婷婷青草| av福利片在线| 国产亚洲精品久久久com| 国产伦在线观看视频一区| 十分钟在线观看高清视频www | 精品一区二区三卡| 国产熟女午夜一区二区三区 | 亚洲国产最新在线播放| 国产午夜精品一二区理论片| 少妇人妻 视频| 午夜激情福利司机影院| av福利片在线观看| 国产视频首页在线观看| 国产乱人偷精品视频| 最新的欧美精品一区二区| av国产久精品久网站免费入址| 国产成人午夜福利电影在线观看| 日韩制服骚丝袜av| 狂野欧美白嫩少妇大欣赏| .国产精品久久| 久久影院123| 国产一区有黄有色的免费视频| av在线观看视频网站免费| 亚洲欧美清纯卡通| 最近中文字幕2019免费版| 国产免费一区二区三区四区乱码| av有码第一页| 日日摸夜夜添夜夜爱| 国产成人精品福利久久| 啦啦啦中文免费视频观看日本| 国产成人freesex在线| 91在线精品国自产拍蜜月| www.av在线官网国产| 啦啦啦视频在线资源免费观看| 熟女av电影| 免费不卡的大黄色大毛片视频在线观看| 嘟嘟电影网在线观看| av网站免费在线观看视频| 久久国产亚洲av麻豆专区| 国产午夜精品一二区理论片| 国产一区二区在线观看av| 国产亚洲一区二区精品| 欧美xxⅹ黑人| 高清不卡的av网站| 欧美高清成人免费视频www| 国产欧美另类精品又又久久亚洲欧美| 简卡轻食公司| 国产av码专区亚洲av| 777米奇影视久久| 国产深夜福利视频在线观看| 久久99精品国语久久久| 亚洲欧美清纯卡通| 国产一区二区三区综合在线观看 | 中文字幕免费在线视频6| 伊人亚洲综合成人网| 亚洲va在线va天堂va国产| 欧美激情极品国产一区二区三区 | 又黄又爽又刺激的免费视频.| 国产精品无大码| 精品一区二区三区视频在线| av福利片在线观看| 日本爱情动作片www.在线观看| 日韩欧美一区视频在线观看 | 91精品国产九色| 亚洲精品视频女| 国产精品嫩草影院av在线观看| 久久女婷五月综合色啪小说| 人人妻人人添人人爽欧美一区卜| 男人添女人高潮全过程视频| 色婷婷av一区二区三区视频| 女的被弄到高潮叫床怎么办| 日本与韩国留学比较| 日韩 亚洲 欧美在线| 国产成人精品久久久久久| 热re99久久国产66热| 国产探花极品一区二区| 精品一区在线观看国产| 男人添女人高潮全过程视频| 99久久中文字幕三级久久日本| 中文字幕免费在线视频6| 黄片无遮挡物在线观看| 亚洲欧美中文字幕日韩二区| 国产精品久久久久久久电影| 91精品伊人久久大香线蕉| 久久精品国产亚洲av涩爱| 成人影院久久| 午夜免费观看性视频| 精品午夜福利在线看| 涩涩av久久男人的天堂| 日韩不卡一区二区三区视频在线| 妹子高潮喷水视频| 欧美亚洲 丝袜 人妻 在线| 日韩 亚洲 欧美在线| 午夜福利在线观看免费完整高清在| 王馨瑶露胸无遮挡在线观看| 大香蕉久久网| 日本爱情动作片www.在线观看| 日日摸夜夜添夜夜添av毛片| 黑人猛操日本美女一级片| 亚洲三级黄色毛片| 亚洲国产欧美在线一区| 丝袜喷水一区| 桃花免费在线播放| 乱人伦中国视频| 久久久久精品久久久久真实原创| 一级av片app| 亚洲精品自拍成人| 久久精品夜色国产| 成年美女黄网站色视频大全免费 | 成人18禁高潮啪啪吃奶动态图 | 一本大道久久a久久精品| 久久久久久久久久人人人人人人| 在线观看免费高清a一片| 久久精品国产亚洲av涩爱| 亚洲情色 制服丝袜| 亚洲精品一二三| 亚洲欧洲精品一区二区精品久久久 | 午夜日本视频在线| 精品少妇内射三级| 日韩欧美一区视频在线观看 | 一二三四中文在线观看免费高清| 黄色欧美视频在线观看| 欧美精品一区二区免费开放| 插阴视频在线观看视频| 日韩在线高清观看一区二区三区| 国产永久视频网站| 校园人妻丝袜中文字幕| 久久国产精品男人的天堂亚洲 | 久久久久精品久久久久真实原创| 久久人人爽人人片av| 日日啪夜夜撸| 欧美丝袜亚洲另类| 成人黄色视频免费在线看| 国产视频内射| av免费观看日本| 国产91av在线免费观看| 人人妻人人澡人人看| 日日啪夜夜爽| 女人精品久久久久毛片| 97在线人人人人妻| 日韩三级伦理在线观看|