[發(fā)明專利]一種基于支持向量機(jī)的測(cè)試程序抄襲檢測(cè)方法在審
| 申請(qǐng)?zhí)枺?/td> | 201910055791.0 | 申請(qǐng)日: | 2019-01-18 |
| 公開(公告)號(hào): | CN111459788A | 公開(公告)日: | 2020-07-28 |
| 發(fā)明(設(shè)計(jì))人: | 陳振宇;孫偉松;孫澤嵩;王興亞;段定 | 申請(qǐng)(專利權(quán))人: | 南京大學(xué) |
| 主分類號(hào): | G06F11/36 | 分類號(hào): | G06F11/36;G06K9/62 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 210093 江蘇省南京市*** | 國(guó)省代碼: | 江蘇;32 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 支持 向量 測(cè)試 程序 抄襲 檢測(cè) 方法 | ||
本發(fā)明涉及一種基于支持向量機(jī)的測(cè)試程序抄襲檢測(cè)方法。該方法對(duì)于待測(cè)程序和測(cè)試程序進(jìn)行切割和靜態(tài)分析,得到待測(cè)方法映射集合和測(cè)試方法映射集合;其次,兩兩遍歷選手,計(jì)算測(cè)試片段相似度并匯總得到相似度集合;然后,選取合適的核函數(shù)和參照點(diǎn)建立支持向量機(jī)模型,并進(jìn)行優(yōu)化;最后,對(duì)于其他測(cè)試程序,通過計(jì)算相似度集合并輸入支持向量機(jī),判斷測(cè)試程序之間抄襲情況。本發(fā)明目的在于填補(bǔ)關(guān)于測(cè)試程序代碼相似度檢測(cè)技術(shù)的空白,提高了檢測(cè)測(cè)試程序代碼抄襲的準(zhǔn)確率和精度,從而幫助開發(fā)者測(cè)試競(jìng)賽自動(dòng)化檢測(cè)選手的代碼抄襲行為,從而免去了人工檢測(cè)環(huán)節(jié),節(jié)約了人力成本和時(shí)間成本,也保證了競(jìng)賽更加公平公正。
技術(shù)領(lǐng)域
本發(fā)明屬于軟件測(cè)試代碼抄襲檢測(cè)領(lǐng)域,尤其對(duì)于目前開發(fā)者測(cè)試競(jìng)賽中選手所提交的測(cè)試代碼存在抄襲的現(xiàn)象做到了更精準(zhǔn)的解決。在分析待測(cè)程序和測(cè)試程序后,通過引入支持向量機(jī)方法,在已有的測(cè)試代碼數(shù)據(jù)集上進(jìn)行模型訓(xùn)練、測(cè)試、驗(yàn)證和優(yōu)化。然后,對(duì)未標(biāo)記的測(cè)試代碼數(shù)據(jù)進(jìn)行分類。通過分析測(cè)試代碼所屬類別即可判斷測(cè)試代碼之間是否存在抄襲,從而免去了人工檢測(cè)環(huán)節(jié),節(jié)約了人力成本和時(shí)間成本,也保證競(jìng)賽更加公平公正。
背景技術(shù)
軟件開發(fā)者在編寫代碼的過程中,從不同的源頭復(fù)制并粘貼代碼,并通過修改來達(dá)到自己的目的已經(jīng)成為一種常見的行為,這提高了軟件代碼編寫的效率,也同時(shí)避免了花費(fèi)過長(zhǎng)的時(shí)間在前人已經(jīng)完成的思路和代碼上。不過,在某些場(chǎng)合下,復(fù)制和粘貼代碼會(huì)引發(fā)意想不到的后果,例如可能會(huì)侵犯軟件版權(quán)等等。在開發(fā)者測(cè)試競(jìng)賽中,也有選手通過拷貝、粘貼代碼,然后對(duì)他人代碼進(jìn)行一定量的修改來提高自己的分?jǐn)?shù)。為了防范這樣的行為,測(cè)試程序抄襲檢測(cè)不可或缺。
對(duì)于單元測(cè)試的測(cè)試用例代碼相似性檢測(cè),目前學(xué)術(shù)界和工業(yè)界都沒有較為成熟的應(yīng)用或工具。并且,由于參賽選手往往只復(fù)制粘貼幾個(gè)測(cè)試用例的代碼,不同的單元測(cè)試用例之間是完全獨(dú)立的,不像源碼之間有依賴;而參賽選手還會(huì)對(duì)測(cè)試用例的代碼進(jìn)行一定量的修改(例如,修改字面量、插入和刪除一條或幾條語句),使得使用目前已有的源碼相似性檢測(cè)工具直接進(jìn)行的測(cè)試用例的代碼相似性檢測(cè)往往不能真正地反映測(cè)試代碼抄襲情況,影響代碼克隆、抄襲檢查器等工具的分析準(zhǔn)確率。
支持向量機(jī)在解決小樣本、非線性及高維、超高維模式識(shí)別問題中有一定的優(yōu)勢(shì)。它采用基于分類邊界的方法,將低維空間的點(diǎn)映射到高維空間,使它們成為線性可分,能夠處理非線性特征的相互作用。
對(duì)此,本發(fā)明提出一種基于支持向量機(jī)的測(cè)試程序抄襲檢測(cè)方法。本發(fā)明的基本思想為:將測(cè)試代碼切割為片段,判斷每一個(gè)測(cè)試代碼片段所對(duì)應(yīng)的待測(cè)方法,計(jì)算對(duì)應(yīng)同一待測(cè)方法片段所對(duì)應(yīng)的測(cè)試代碼片段相似度。并以測(cè)試代碼片段相似度及“是否抄襲”的結(jié)果作為輸入,通過支持向量機(jī),對(duì)其他測(cè)試代碼進(jìn)行“是否抄襲”標(biāo)簽認(rèn)定的二分類,從而提高抄襲檢測(cè)準(zhǔn)確率。
通過該方法,在更高準(zhǔn)確率和精度的抄襲檢測(cè)基礎(chǔ)上,可以幫助開發(fā)者測(cè)試競(jìng)賽自動(dòng)化檢測(cè)選手的代碼抄襲行為,從而免去了人工檢測(cè)環(huán)節(jié),節(jié)約了人力成本和時(shí)間成本,也保證了競(jìng)賽更加公平公正。
發(fā)明內(nèi)容
本發(fā)明通過提供一種基于支持向量機(jī)的測(cè)試程序抄襲檢測(cè)方法,來提高檢測(cè)測(cè)試程序代碼抄襲的準(zhǔn)確率和精度,填補(bǔ)了關(guān)于測(cè)試程序代碼相似度檢測(cè)技術(shù)的空白。
為達(dá)成上述目標(biāo),本發(fā)明通過首先靜態(tài)分析的方法,分析源測(cè)試程序切各位待測(cè)程序PUT(Program Under Test)、分析選手提交的測(cè)試程序TP(Test Program),然后將TP中的每一個(gè)片段分類并計(jì)算其相似度SV(Similarity Value)。然后將SV和“是否抄襲”的標(biāo)簽作為支持向量機(jī)的輸入,對(duì)其他測(cè)試代碼進(jìn)行“是否抄襲”標(biāo)簽認(rèn)定的二分類。
具體而言,該方法包含下列步驟:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于南京大學(xué),未經(jīng)南京大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201910055791.0/2.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測(cè);錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測(cè)試作故障硬件的檢測(cè)或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測(cè)、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測(cè)試或調(diào)試防止錯(cuò)誤
- 移動(dòng)向量解碼方法和移動(dòng)向量解碼裝置
- 一種用于支持向量機(jī)的在線向量選取方法
- 用于在幀序列中執(zhí)行運(yùn)動(dòng)估計(jì)的數(shù)據(jù)處理系統(tǒng)和方法
- 神經(jīng)網(wǎng)絡(luò)的處理方法及裝置、存儲(chǔ)介質(zhì)、電子設(shè)備
- 字符序列處理方法及設(shè)備
- 向量獲取方法、裝置、電子設(shè)備以及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 向量獲取方法、裝置、電子設(shè)備以及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 近鄰向量的召回方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 一種向量運(yùn)算裝置及運(yùn)算方法
- 生成類別向量的方法和裝置
- 軟件測(cè)試系統(tǒng)及測(cè)試方法
- 自動(dòng)化測(cè)試方法和裝置
- 一種應(yīng)用于視頻點(diǎn)播系統(tǒng)的測(cè)試裝置及測(cè)試方法
- Android設(shè)備的測(cè)試方法及系統(tǒng)
- 一種工廠測(cè)試方法、系統(tǒng)、測(cè)試終端及被測(cè)試終端
- 一種軟件測(cè)試的方法、裝置及電子設(shè)備
- 測(cè)試方法、測(cè)試裝置、測(cè)試設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 測(cè)試裝置及測(cè)試系統(tǒng)
- 測(cè)試方法及測(cè)試系統(tǒng)
- 一種數(shù)控切削指令運(yùn)行軟件測(cè)試系統(tǒng)及方法





