Study on Cost-Effective Debugging Methods under Restricted Resources
2021年度研究会推薦博士論文速報
[ソフトウェア工学研究会]
嶋利 一真
(奈良先端科学技術大学院大学先端科学技術研究科 助教)
邦訳:限られた資源を用いた効率的なデバッグ手法に関する研究
【背景】ソフトウェア開発におけるデバッグ作業のコストは大きい
【問題】デバッグ作業にかけられる資源は限られている
【貢献】限られた資源で利用可能なデバッグ手法を開発した
ソフトウェアは近年の社会に必要不可欠であり,ソフトウェア開発には非常に多くの人材が携わっている.そのため,全世界のソフトウェア開発にかかるコストは増大しており,1年で2,600万人を超える人材と1.25兆米ドルを超える費用を要しているとの報告がなされている.ソフトウェア開発においては,設計やコーディング,プロジェクトの管理などのさまざまな作業が行われている.その中でも,ソフトウェアのバグを取り除いたり予期した挙動を行うように修正する作業であるデバッグには,ソフトウェア開発全体の4分の1,つまり312億米ドルと非常に大きなコストがかかっている.
デバッグにかかるコストを削減するためにこれまでに多くの研究がなされており,さまざまなデバッグ手法が提案されている.その1つに全知デバッグ手法(Omniscient Debugging)と呼ばれる手法がある.全知デバッグ手法は,プログラムにおいて実行された命令とその観測された値をすべて記録し,記録した情報を用いてデバッグを行う手法である.この手法を用いることで,開発者は任意の時点におけるプログラムの状態の観測や,バグが起きているプログラム実行の完全な再現などが可能となり,デバッグ作業を効率良く行うことができる.しかし,この手法の課題としてプログラムにおけるすべての命令とその観測値を記録するため,膨大なストレージ容量が必要であるという点が挙げられる.特に,バグを含むプログラムについてはどのような実行になるかを予測できないため,命令の記録量を事前に予測することは困難となっている.そのため,記録量の問題は全知デバッグ手法を気軽に使用することが困難な原因の1つとなっている.
そこで,この研究では全知デバッグ手法における記録量の問題を解決する準全知デバッグ手法を提案した$${^{1)}}$$.このデバッグ手法では,ループ文によって繰り返し記録された命令については,そのすべてを記録せずに最新数十件程度の記録にとどめても,デバッグに必要な情報は記録されているという仮説に基づいて,プログラムの命令とその観測値における記録量を削減している.実験の結果,準全知デバッグ手法によって多くの場合デバッグ事例において,デバッグに必要な情報は十分記録されていることが分かった.つまり,デバッグにおける記録量が限られている状況でも,準全知デバッグ手法で高い精度でデバッグが可能であることが示された.また,この研究では記録した情報をプログラムのソースコードに紐づけて,開発者のデバッグ作業を支援する可視化ツールの作成も行っている.このツールによって,準全知デバッグ手法を用いた実際のバグ修正が可能であることが示された$${^{2)}}$$.
■Webサイト/動画/アプリなどのURL
本研究で作成したツールのデモサイトを以下に示す.
http://sel-nod3v.ics.es.osaka-u.ac.jp/
参考文献
1)Shimari, K., Ishio, T., Kanda, T. and Inoue, K. : Near-Omniscient Debugging for Java Using Size-Limited Execution Trace, Proceedings of the 35th IEEE International Conference on Software Maintenance and Evolution (ICSME 2019), pp.398-401, Cleveland, OH, USA (Oct. 2019).
2)Shimari, K., Ishio, T., Kanda, T., Ishida, N. and Inoue, K. : NOD4J: Near-Omniscient Debugging Tool for Java Using Size-Limited Execution Trace, Science of Computer Programming, Vol.206, pp.102630 (June 2021).
(2022年5月31日受付)
(2022年8月15日note公開)
ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー
取得年月日:2022年3月
学位種別:博士(情報科学)
大学:大阪大学
正会員
ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー ー
研究生活 学部生のころに長時間かけて些細なバグを修正するという経験を何度もしたことをきっかけに,デバッグに関する研究に興味を持ちました.特にプログラム実行時の情報をすべて取得してデバッグに利用するという手法に驚き,大学院ではこの手法の実用における課題である効率化について研究しました.博士課程に進むことで,長いスパンで多くの先生方や学生と協力してツールの作成や実験を行うことができ,さまざまな視点からこの研究テーマを究められ,非常に充実した日々を送ることができたと考えています.また,国内外の多くの研究者や企業の方との交流を通じて自身の研究成果が実際に他の研究グループや企業で使われたことは,何ものにも代え難い貴重な経験となりました.最後になりましたが,研究生活ならびに博士論文の執筆にあたってご指導をいただきました井上克郎教授,石尾隆准教授,松下誠准教授,神田哲也助教にこの場を借りて心よりお礼申し上げます.