QAコミュニケーションアンチパターン 1章 QAEの技と静的解析の導入
QAEの技と静的解析の導入
甲斐さんがエンジニアミーティングで話し始めた。
「そうそう、来世と話したんだけど、静的解析を導入することになったから」
「静的解析って何ですか?」とメビウス君が尋ねた。
「ソースコードを自動でチェックしてくれるんだよ」
「へー」
「来世の提案なんですか?」
「そうそう、ソースコードのカバレッジも上がってきたから、次は静的解析を入れてもいいかもねってさ」
「来世ってソースコードのこともわかるんですか?」と龍井先輩が驚いたように聞いた。
「うわっ、知らなかったのか?」
「へっ?」
「来世は凄腕のプログラマーだぞ」
「全然イメージない」
「来世はバグをほとんど出さないから、その腕を買われて第三者検証の会社に入ったんだよ」
「はぁ…」エンジニア全員が驚いている。
「前に緊急事態が起こった時も、来世がすぐにバグを見つけてくれたんだ。その時もソースコードを見てたよ」
「やば、俺よりすごいかも」
「たぶん、EMもできると思う」甲斐さんが付け加えた。
みんな来世を信頼しているので、静的解析を導入することになった。
そのことを来世に話すと、
「よかったぁ、みんな嫌がるかなって思ってたのよ。私からも説明が必要かなと思ったけど、納得してくれたみたいね」
「凄腕のプログラマーだそうで」
「凄腕じゃないわよ〜。むしろ、静的解析が私の見逃す脆弱性を見つけてくれたり、改善点を教えてくれるんだもん。それにテストコードを書いてただけよ」
「教えてください!」
「テストコード、書いてる?」
「はい!」
「テストコードが書きにくいメソッドってない?」
「ありますね」
「そう、その時点でテスタブルじゃないからリファクタリングしたほうがいいのよね」
「なるほど」
「そのコードを調べてみると、サイクロマティック複雑度が高いはずよ」
「サイクロマティック複雑度?」
「ソースコードの複雑さを定量化してくれる指標よ」
「へー」
「その複雑度が高いとテストが書きにくいの。納期に追われて設計が甘くなってることもあるけどね、仕方ない部分もあるわ」
「確かにありますね」
「ユニットテストを書いてると、安心してプルリク出せるでしょ?」
「確かに、自分のソースコードに自信が持てます!」
「そう!そこが大事!まずは自分が居心地良い環境を作ることが重要なのよ。長い目で見れば生産性も上がるし」
「勉強になります!」
「メビウス君は素直だから、教え甲斐があるわー」
「教え方が上手ですもん」
Discussion