2019-09-26 東京大学工学部電気電子工学科
2019年度卒業論文中間審査報告スライド
坂井・入江研究室 学部4年 高橋光輝
近年、ソフトウェアセキュリティ及びソフトウェア
テスティングの観点から、シンボリック実行を用いた
静的解析の手法が注目されている。
function abs(n) {
if (n > 0) {
return n;
}
if (n < 0) {
return -n;
}
return 0;
}
assert(abs(100) === 100);
assert(abs(-10) === 10);
assert(abs(0) === 0);
図1: 与えられたプログラム (左) に対してコードを網羅するようなテストケースの例 (右)
本研究では先行研究であるSymJSを下敷きとして、
SpiderMonkeyのバイトコードを用いて
先行研究を追試するとともに、新たな試みとして
TypeScriptの型情報を用いた改良を試みる。
[Li, 2014] より引用
リポジトリ | Rhino |
---|---|
nodejs/node | 29/182 (15.93%) |
jquery/jquery | 172/177 (97.18%) |
lodash/lodash | 1/702 (0.14%) |
chalk/chalk | 2/15 (13.33%) |
request/request | 74/74 (100.00%) |
tj/commander.js | 63/71 (88.73%) |
facebook/react | 216/1183 (18.26%) |
表1: プロジェクトに含まれるJavaScriptファイル数に対するパース可能なファイル数の割合
リポジトリ | Rhino | SpiderMonkey |
---|---|---|
nodejs/node | 29/182 (15.93%) | 174/182 (95.60%) |
jquery/jquery | 172/177 (97.18%) | 176/177 (99.44%) |
lodash/lodash | 1/702 (0.14%) | 1/702 (0.14%) |
chalk/chalk | 2/15 (13.33%) | 8/15 (53.33%) |
request/request | 74/74 (100.00%) | 74/74 (100.00%) |
tj/commander.js | 63/71 (88.73%) | 71/71 (100.00%) |
facebook/react | 216/1183 (18.26%) | 347/1183 (29.33%) |
表2: プロジェクトに含まれるJavaScriptファイル数に対するパース可能なファイル数の割合
[Andreasen, 2017] より引用
[Li, 2014] より引用
[Li, 2014] より引用