Loading...

テストを書く文化を育てる戦略と戦術

和田 卓人 (a.k.a @t_wada)

Press key to advance.

Slides controls, press:

  • and to move around.
  • Ctrl/Command and + or - to zoom in and out if slides don’t fit.
  • T to change the theme.
  • H to toggle syntax highlight.

自己紹介

自己紹介

  • 名前 : 和田 卓人(わだ たくと)
  • hatena : t-wada
  • twitter : @t_wada
  • github / facebook : twada

./../../images/TQ_LOGO_SMALL.png

戦略編

銀の弾丸は無い

  • テスト自動化は銀の弾丸では無い
  • 導入のやりかたにも銀の弾丸はない
  • 導入そのものを目的にしてはならない
  • 状況は現場によって全て異なる

文化を変える

  • テスト文化の醸成は、年単位の事業になることを認識する
  • 「テストを書く時間が無い」のではなく、テストを書かないから時間が無くなる
  • 「動くコードに触れるな」と戦う。触れなければ死あるのみ

イマココから始める

  • ToBe ではなく AsIs と Not ToBe から始める
  • 隣の芝は青い。気にしないこと
  • 人は自分の速度でしか成長できない
  • プロジェクトもプロジェクトの速度でしか成長できない
  • 「まわりはもうみんなやってますよ」という劇薬は用法用量を(ry

人を知る

  • 快不快で動く人、損得で動く人
  • リファクタリングの快楽
  • 回帰テストのお得感
  • カバレッジの数値
  • そしてビジネス価値

テストは品質を上げない

  • 品質が「わかる」ようになる
  • わかることこそ大事
  • 体重計に乗るだけでは痩せない
  • テストを書くだけでは、良くはならない
  • 品質を上げるのは設計とプログラミング
  • 再設計とリファクタリングをテストで支える

戦術編

どこからやるか

  • 「何が一番やばい?」
  • 最も困っているところからテストを書き始める
  • お金、個人情報、……
  • 新機能開発から
  • バグ修正のところから

塹壕からのテスト対象選び

  • リスク
  • 手動テストのコスト
  • 自動化コスト

./../../images/lean-trenches.gif

だれとやるか

  • 一度に多くの人は難しい
  • 育てるのではなく、自ら育つように
  • 教えられる人を増やす
  • ペアプロで1人ずつ
  • 若手のホープ? ベテラン?

こだわるな

  • 最初から全部やろうとしない
  • テスト駆動にこだわるな
  • テストファーストにこだわるな
  • 「ユニット」テストにこだわるな
  • テストの速さにこだわるな
  • テストの網羅性にこだわるな

こだわろう

  • 良いユニットテストの指標にも優先度がある
  • 再現性、繰り返し可能(Repeatable)
  • 独立していること(Independent)
  • 他はそれからでいい

とにかくサンプル

  • 真似してもらう土台を作る
  • 最初はサンプルのコピペでも良い
  • テストのある生活を体験してもらうことが大事
  • 次にテストのメンテナンスを学ぶ

見える化

  • 割れ窓理論
  • メトリクスを取ろう
  • カバレッジが低いうちはカバレッジ測定は効果大
  • 小うるさいツールを使い、使われるな

『レガシーコード改善ガイド』

  • 何はなくとも読むべし
  • 「仕様化テスト」のススメ
  • 「絞り込み点」を探す

./../../images/WEwLC_jp.png

設計の可動域を確保する

  • テストが無いのは既に設計が悪い兆候
  • 設計/実装を変えるのが前提
  • 実装のテストを書かないこと
  • テストがカバーする範囲に遊びを持たせ、カバー範囲内をリファクタリングする

シンプルさ

  • シンプルさを貴ぶ
  • 迷ったらシンプルな方を選ぶ
  • シンプル(simple)と簡単(easy)は違う

技術のつかいどころ

  • モック or スタブ
  • リフレクション
  • IDE
  • デバッガ
  • コンパイラ

コードレビュー

  • コードレビューのインフラを整備する
  • github, gitlab, gitbucket
  • 仲間のコードを見る文化、見せる文化を育てる

リファクタリングのジレンマ

  • 「リファクタリングしたい」と言うとリファクタリングできない
  • 技術的負債
  • ボーイスカウトルール (by Bob Martin)

Social Change starts with YOU

  • できるからやるのではない
  • やるからできるようになる
  • あなたが書けるようにならなければ、誰も書けるようにはならない

ご清聴ありがとうございました