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

2,018 views
1,936 views

Published on

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,018
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
10
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

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

  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にする • 自動テスト以外 • コストと時間を低減して、自動テストに向ける余裕を作 る • だれかが頑張ればメンバー全員が恩恵を受けられる • 自動ビルド • 自動デプロイ

×