T1 - qwik.jp

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