T1: Why Don’t Software Developers Use Static Analysis Tools to Find Bugs? Brittany Jonson†, Yoonki Song†, Emerson Murphy-Hill†, Robert Bowdidge‡ † 2013/7/9 : North Carolina State University T. Analysis Studies(T1) ‡ : Google 担当:山内寛己 株式会社アクセス 1 概要 • 静的解析ツールはソフトウェア開発において,手動 のインスペクションに比べ,安価で素早くバグの発 見や欠陥の除去に寄与できる • …にも関わらず,開発者にあまり活用されていない • 静的解析ツールがなぜ活用されないか,開発者に インタビューし,その原因と改善策を調査した. 2013/7/9 T. Analysis Studies(T1) 2 Research Question • RQ1: なぜ開発者はバグ発見のために静的解析ツールを 使う/使わなくなったのか? • RQ2: 現在の静的解析ツールは開発者のワークフローに 合っているのか? ( コードを書いている時,レビュー時,修正時など) • RQ3: 開発者は静的解析ツールの何を改善して欲しい か? 2013/7/9 T. Analysis Studies(T1) 3 インタビュー概要 • インタビュー対象者:20人 • 内訳: – 16人は大企業の開発者 – 4人は著者の同じ大学の学生 (ただし,過去に企業での開発経験あり) – それぞれの開発経験は3年から25年 • インタビュー方法とその処理 – RQに沿って,それぞれの方法で質問する – “coding category” を定義して,回答それぞれをカテゴリー 化(5+1種類)し,それに沿ってまとめる. 2013/7/9 T. Analysis Studies(T1) 4 静的ツールの何がいけない? [RQ1, RQ2] • Tool Output: – False positives が True positives より多い • User Input/Customizability: – Warning の数が多すぎて,処理しきれない – 多くのツールが思うようにカスタマイズできない • Supporting Teamwork: – 設定の共有化が難しい • Result Understandability: – 出力結果が何を意味するか理解できない • Developer Workflows: – コーディング作業に合ったツールの統合を して欲しい 2013/7/9 T. Analysis Studies(T1) 5 どう改善すればいいと思いますか? [RQ3] • Tool Design: – コードアシスト・表示機能 • (IntelliJ IDEA の)Quick Fix 機能のような表示 – Eclipse のリファクタリング機能を連想してもらえば • コード修正前後でどのように変わるかプレビューやdiff – ユーザの作業を邪魔しない,速いフィードバック • バックグラウンドでコードの解析をする • 特定のエラーやワーニングを〝あとで見る“ – etc. 2013/7/9 T. Analysis Studies(T1) 6 所感 • 読みやすい,わかりやすい – RQに対応するカテゴリの定義それぞれに例文を 挙げており,理解しやすい • 実験の設定を過去の論文を参考にうまく設定してい るため,ツッコミにくい • 結論がちょっとありきたりな印象 2013/7/9 T. Analysis Studies(T1) 7 Resources • 実験に使われたリソース: http://www4.ncsu.edu/~bijohnso/ffsat.html インタビューのおよび,事前アンケートの質問内容や項目, この研究の発端となったペーパーが掲載さている. • 動画あります: http://www.youtube.com/watch?v=kkUWq68FQAk 2013/7/9 T. Analysis Studies(T1) 8
© Copyright 2024 ExpyDoc