背景
- 出處:2016 IEEE/ACM 38th IEEE International Conference on Software Engineering
- 作者:Song Wang,Taiyue Liu and Lin Tan
概述
論文主要觀點
解析程序源代碼中的抽象語法樹(AST)院峡,利用深度置信網(wǎng)絡(luò)(DBN)從中抽取特征兴使,形成“語義特征”,利用這些特征進行軟件缺陷檢測照激。
成果
利用DBN從AST中抽取的語義特征在within-project和cross-project中均表現(xiàn)良好发魄。
方法模型#
相關(guān)工作圖
主要步驟
- 將源碼轉(zhuǎn)換成AST;
- 從AST中識別聲明節(jié)點俩垃、控制流節(jié)點等励幼,將其轉(zhuǎn)換成向量;
- 將向量中的元素映射成數(shù)字口柳,形成數(shù)字向量苹粟;
- 將向量送入DBN中進行特征提取(降維)跃闹,產(chǎn)生最終的“語義特征”嵌削;
- 如此形成帶標記的訓(xùn)練數(shù)據(jù),在訓(xùn)練數(shù)據(jù)上利用經(jīng)典分類器訓(xùn)練望艺。
實驗
- 為DBN選擇三個參數(shù):通過改變參數(shù)值不斷實驗得到最優(yōu)值苛秕;
- within-project:選擇同一個項目的兩個連續(xù)的版本,前一個作為訓(xùn)練數(shù)據(jù)找默,后一個作為測試數(shù)據(jù)艇劫。對比另外兩個特征;
- 對比不同的分類器惩激,均為經(jīng)典分類器店煞,樸素貝葉斯,邏輯回歸等咧欣;
- cross-project:兩個不同的項目浅缸,第一個用來訓(xùn)練,第二個用來測試魄咕。對比ACT+算法(使用經(jīng)典特征)衩椒;
- 測試算法的時間空間復(fù)雜度。
創(chuàng)新點
所謂的“語義特征”,用DBN處理AST毛萌,對raw數(shù)據(jù)進行了壓縮提純苟弛。
總結(jié)
優(yōu)點
“語義特征”的效果似乎非常好。
不足
對比的TCA+是作者自己實現(xiàn)的阁将,其效果不一定有原始的好膏秫,數(shù)據(jù)來源不太可靠。
我的想法
可否在分類器上再做些更好的選擇做盅?