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.

自動化テスト道への歩み - PM編

531 views

Published on

プロマネでも自動化したテストのメリッドが知らない場合もありますので、一応自分の経験で本編を書いてみました。

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

自動化テスト道への歩み - PM編

  1. 1. プロマネが抑えておくべき 自動化したテスト テストの自動化 - PM編
  2. 2. よくあるパターン
  3. 3. ドンダケの人月が掛かってしまうの?! > 技術者:今日(月曜日)は完成します ↓ でも、バグだらけで、結局終電までも終われない... 翌日続き > リーダー:今週中終る見込み ↓ でも、デグレのせいで、結局週明けになります... しかも土日も休出
  4. 4. 従来の単体テスト (いわゆるPCL) バグと時間の関係 ちゃんとしたExcel版テスト仕様書が出来た! 1. テストケースに従ってテスターに真面目に見 てくれる(感動T_T) ↓ 2. バグ発見 ↓ 3. 技術者にお願い ↓ 4. 技術者に一生懸命直ってくれる→1へ 以上、繰り返し(何度もの場合も珍しくない) バグ数 時間
  5. 5. PK 技術者&リーダー • それでも、本当にバグが直りつつシステ ムが動いていますね! • 後もう少しバグを潰せるので、頑張りま す! • すいません><遅れているけど、何とか なりそう(残業時間が延ばしている) PM • 真実は予定より遅れているでしょ • コストが大分掛かってしまったでしょ • バグ出る恐れはまだあるでしょ • デグレは大丈夫??? • 結合環境では問題ないの???
  6. 6. さ、現実を見てみましょう! テストの自動化導入前 >>
  7. 7. 単体開発 10~15% 20~25% 40~55% コストA バグ発生率 VS フェーズ 1~5% 結合環境 受け入れ 統合環境
  8. 8. バグの積み重なり 1.仕様通りにプログラムを組んでいく ⇒バグだらけ バグバグ バグ バ グ 2.仕様の誤りによりプログラムを修正 ⇒既存バグの上に 新たなバグが生じやすい バグ バグ 3.仕様変更によりプログラムを見直す ⇒もう…どこの問題なのかワケ分からん
  9. 9. テストの自動化導入後 1.仕様通りにプログラムを組んでいく ⇒バグだらけ バグバグ バグ バ グ 2.仕様の誤りによりプログラムを修正 ⇒既存バグの上に 新たなバグが生じやすい バグ バグ 3.仕様変更によりプログラムを見直す ⇒もう... どこの問題なのかワケ分からん 1.仕様通りにプログラムを組んでいく ⇒バグがその場で殆ど直った! 2.仕様の誤りによりプログラムを修正 ⇒そもそも既存バグが少ないため 新たなバグが起きてもほぼ即対応! 3.仕様変更によりプログラムを見直す ⇒テストコードも見直して入替えよう!
  10. 10. 単体開発 20~30% 10~20% 1~10% コストB バグ発生率 VS フェーズ 70~90% 結合環境 受け入れ 統合環境
  11. 11. まさか、180度の逆転ですか!!! 原因を見てみましょう >> ※完全な逆転はあくまでも理想です^^;;
  12. 12. テスト自動化のための単体テストを取り組む 1. 仕様に従って機能を実装 2. テストコードを書いて実行 (1機能ごとに1つではなく、基本は PCLのようにパターンごとに書く) 3. バグ出たら直して再実行 4. テストが通る前に上記繰返し 単体 テスト 自動化 ロジック書く テストコード 書いて実行 バグ出ると 即修正 テスト通る →次へ
  13. 13. (効果的な)例を挙げます! 自動化したテストのメリッドが見える! >>
  14. 14. ある業務の開発なんですが... 製造 設計 要件 業務 機能1 実装A 実装B 機能2 実装C インターフェース2個 ▲ 内部メソッド1~3個 PCL相当 単体テストコード(メソッド) 1~5個 インターフェース2個 ▲ 内部メソッド1~3個 インターフェース2個 ▲ 内部メソッド1~3個 PCL相当 単体テストコード(メソッド) 1~5個 PCL相当 単体テストコード(メソッド) 1~5個
  15. 15. 変化が起こった際の影響範囲推移 インターフェースに変化ある(前と異なる)場合 内部メソッドを見直しながらUTを通していく インター フェースZ 内部メソッド X 単体テスト コードM 単体テスト コードN 内部メソッド Y 単体テスト コードL 内部メソッド X 単体テスト コードM 単体テスト コードN 内部メソッド X 単体テスト コードM 単体テスト コードN バ グ #@$% …… --- ^_^ 修 正 修 正 修 正 仕様 変化
  16. 16. で、どうやって自動化? 前提:PCL単位のテストコードが揃って事前に通した >>
  17. 17. コーヒー一杯を飲んでから… 適切な環境 (IDE&FW) テストコードを 揃えておいた 実行(ボタン 押下だけで) 結果*が出る (失敗or成功) ここから コーヒー飲もう! *結果は、沢山(数十件~数百件) テストケースになった一目で分かる グラフィック化レポート
  18. 18. テストの自動化 いかがでしょうか • みんなで自動化を意識しましょう • 適切なツール(IDE&FW)を活用する • 実践しながら鍛えていく

×