Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

内部品質とコストを考慮した自動化

2,673 views

Published on

  • Be the first to comment

内部品質とコストを考慮した自動化

  1. 1. 内部品質とコストを 考慮した自動化の導 入 2013/12/05 株式会社SHIFT 太田健一郎
  2. 2. 経歴 • 2001 – 2011 IBM • 社内ツール開発 • お客様プロジェクトで自動テスト • 2011 – 2013 DeNA • エンジニアリングQA (ゲームエンジン・ゲーム) • 2013 – SHIFT • Jenkinsエバンジェリスト • のはずが、現在は社内テストサービス開発
  3. 3. エンジニアの理想 売上げ 内部品質
  4. 4. 現実 売上げ 内部品質
  5. 5. 内部品質 • 効率性 • 時間有効性 • 資源有効性 • 標準適合性 • 保守性 • • • • 解析性 変更性 安定性 試験性
  6. 6. 内部品質とコスト コスト 内部品質
  7. 7. コスト(時間) > 売上げ(時間) → 対応 コスト 売上げ 時間
  8. 8. dコスト/d時間 < 0 → 非対応 コスト 売上げ 時間
  9. 9. 売上げ(時間) > コスト(時間) → 理想 売上げ コスト 時間
  10. 10. 自動テストと内部品質、コストの関 係 • システムテスト以外の自動テスト • ユニットテスト • インテグレーションテスト • 基本的に内部品質の向上に寄与 • 内部品質の向上とコストの低減 • 自動テスト以外にもある • • • • • • 設計レビュー コードレビュー 静的検証 自動ビルド 自動デプロイ テスト設計手法の導入
  11. 11. 内部品質改善の導入領域 • 継続性が高く、コスト(時間) > 売上げ(時間)が ざっくりでも試算できるサービスや製品 • 売上げ • ARPU, DAU, MAUなどのKPIから1ヶ月当たりの予想売上げを試 算 • コスト • 開発メンバー、テストメンバーなどの人件費から現在値を 算出、予想を試算 • 内部品質 • サイクロマチック数などのコードメトリックスから試算、 ベンチマークとなる別サービスや製品と比較
  12. 12. 自動テスト導入のジレンマ • サービスとプロダクト • 自動テストがない既存コード • 依存関係が複雑で自動テストを書きにくい • 自動テストを書けるようにするために、自動テストがない状 態で自動テストしやすく変更する必要がある • 自動テストを実装しやすいコード • • • • 疎結合 環境依存最少化 ステートレス 実は高い設計と実装スキルが必要 • プロセスと人 • 開発者のメンタリティ • 短期間での売上げコミット • 内部品質低下によるコスト上昇に対する意識の欠如
  13. 13. できるところから始める • 既存コード • あきらめる • 新規コード • ステートレスなユーティリティークラス • 自動テストを書き始めるのに最適 • 静的検証ツールの導入 • 静的検証ツールの指摘を通じて、保守性の高い設計と実装を 学ぶ • 開発者のスキルを徐々に自動テストReadyにする • 自動テスト以外 • コストと時間を低減して、自動テストに向ける余裕を作 る • だれかが頑張ればメンバー全員が恩恵を受けられる • 自動ビルド • 自動デプロイ

×