アジャイルテストを、壮絶に、考える。

5,295 views

Published on

アジャイル開発におけるテストを考えてみた。

Published in: Technology

アジャイルテストを、壮絶に、考える。

  1. 1. テストを、壮絶に、考える。 1Explore Agile Testing, Dai Fujihara http://daipresents.com/ 17/09/2012Featuring The Dark Knight Rises http://www.thedarkknightrises.com/
  2. 2. Why Agile Testing• アジャイル開発のようなショートスプリント のテスト情報が少ない• サービス開発というコンテキストに従来のテ ストがマッチしない• どうしようか困ってる
  3. 3. これまでと今の関係 フェーズ別のチェック 小さい単位でのチェック• フェーズの最後に確 • 短い期間で確認 認 • リリース後に改善活 動が続く• 仕様の実現がゴール• 品質は実現度 • 品質はビジネスバ リュー
  4. 4. よくでてくる図このフィードバックサイクルでテスト http://www.mountaingoatsoftware.com/scrum/figuresまでやらないといけない
  5. 5. アジャイルテストの4象限自動と手動 機能テスト 探索的テスト 手動 例として シナリオ ストーリーテスト ユーザビリティテスト プロトタイプ ユーザ受け入れテスト シミュレーション アルファ / ベータ 単体テスト パフォーマンス / 負荷テスト コンポーネントテスト セキュリティテスト 「∼性」テスト 自動 ツール Book : 実践アジャイルテスト(Agile Testing) http://bit.ly/NmCcNW
  6. 6. アジャイルテストの4象限自動と手動 機能テスト 探索的テスト 手動 例として シナリオ ストーリーテスト ユーザビリティテスト 綺麗に整理されているだけで プロトタイプ ユーザ受け入れテスト シミュレーション アルファ / ベータ は役に立たない。だから何? 現象が発生する パフォーマンス / 負荷テスト 単体テスト コンポーネントテスト セキュリティテスト 「∼性」テスト 自動 ツール Book : 実践アジャイルテスト(Agile Testing) http://bit.ly/NmCcNW
  7. 7. やりたいこと• やらなければならないことを知り• やるべきことを確定し• あきらめたことを共有し• みんなでリスクを理解する
  8. 8. テストを自分たち用に整理する自動 手動ユーザ受け入れテスト 探索的テスト(UAT) ユーザビリティテスト パフォーマンスツール 単体テスト(UT) セキュリティツール自動 ツール
  9. 9. テストを自分たち用に整理する自動 手動ユーザ受け入れテスト 探索的テスト UTと画面の二つを自動化。(UAT) ユーザビリティテスト 大切にしたい使ってみたとき の「気づき」は手動にこだわ 単体テスト(UT) る作戦。 パフォーマンスツール セキュリティツール自動 ツール
  10. 10. ツールの範囲 自動 手動• 負荷テスト ユーザ受け入れテスト 探索的テスト• ツールの設定を使いまわすことで楽をする (UAT) ユーザビリティテスト パフォーマンスツール 単体テスト(UT)セキュリティ部分はUTでやることもでき セキュリティツールるので、やれるだけやってツールに頼る作戦 自動 ツール
  11. 11. UTの範囲•自動 最小単位のプログラムと処理のテスト 手動• API・DB接続はここに含めてしまう ユーザ受け入れテスト (UAT) 探索的テスト ユーザビリティテスト• プログラム作成のテストエビデンスとして作る パフォーマンスツール 単体テスト(UT) バグ発生時に再現や値確認などをすばやく セキュリティツール 実行するためにプログラム化必須。 最近は自動コード生成とかあるのでそう 自動 いったところは無理して作らない。 ツール
  12. 12. UATの範囲 自動 手動 WebDriverなどを使うと簡単に画面テス トできる時代になったが、新しくウィンドユーザ受け入れテスト 探索的テスト ウを開くとかやりにくいテストもあるので(UAT) そういうのはあきらめる。 ユーザビリティテスト• UATを自動化すると単純作業の繰り返しになっ たので、画面テスト、シナリオテストもUATで パフォーマンスツール 単体テスト(UT) 一気に片付ける セキュリティツール• 画面テストはケースが大量にできるのでさらに 自動 ツール 細分化して対象を決める(後述)
  13. 13. UATのはじめかた 自動 手動ユーザ受け入れテスト 探索的テスト(UAT) ユーザビリティテスト• 画面ごとのテストより機能ごとのテストのほう パフォーマンスツール が影響範囲が分かりやすい 単体テスト(UT) セキュリティツール• RSpec + WebDriverだと初心者でも簡単に 自動化、プログラム化できるので柔軟 自動 ツール
  14. 14. UATのトレードオフ 自動 手動 ユーザ受け入れテスト 探索的テスト シンプルな機能 (UAT) ユーザビリティテスト このへんは日々の画面 チェックでカバーされて 超重要 たあきらめ対象 パフォーマンスツール 単体テスト(UT) マイナーな機能 メジャーな機能 セキュリティツール このへんは日々の画面 チェックでカバーされて 重要 自動 た ツール 複雑な機能
  15. 15. UTとUATの関係 単体テスト(UT) ユーザ受け入れテスト(UAT)• 自動 • 自動• 実行が早い • 実行が遅い• ホワイトボックス • ブラックボックス• 網羅性を確認できる • 網羅性を確認できない• データ準備が楽 • データ準備が面倒• 段階の確認 • 最終の確認
  16. 16. 手動の範囲 自動「こうなっていたらいいのに」もここで洗 手動い出し、受け入れ担当者に仕様変更か無視かの判断をしてもらう。 ユーザ受け入れテスト 探索的テスト開発者全員で時間をあわせ、せーのでテス (UAT)トしていくと盛り上がる ユーザビリティテスト• 画面レイアウト、デザインは人の目を使う 単体テスト(UT) パフォーマンスツール• 手動で操作、対象端末(iPhoneとか)で操作 セキュリティツール• テストでの「気づき」をチケット化してFBにつ 自動 ツール なげる
  17. 17. 時間を有効活用する自動 手動時間削減ユーザ受け入れテスト 注力 探索的テスト(UAT) ユーザビリティテスト パフォーマンスツール 単体テスト(UT)時間削減 時間削減 セキュリティツール自動 ツール
  18. 18. プロセスの変化UTのフィードバックサイクル (自動)UATのフィードバックサイクル (自動) http://www.mountaingoatsoftware.com/scrum/figures 探索、ユーザビリティの フィードバックサイクル (手動)
  19. 19. まとめ•テストを「なんとなく」しない•テストは狙ってやる• できないことを理解し、リスク に構える
  20. 20. まとめ•バグはあってもいい•デグレードはしない• UTいるの?

×