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

20
1 Explore Agile Testing, Dai Fujihara http://daipresents.com / 17/09/2012 Featuring “The Dark Knight Rises” http://www.thedarkknightrises.com/ テストを、壮絶に、考える。

description

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

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

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

1

Explore Agile Testing, Dai Fujihara http://daipresents.com/ 17/09/2012Featuring “The Dark Knight Rises” http://www.thedarkknightrises.com/

テストを、壮絶に、考える。

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

Why Agile Testing

• アジャイル開発のようなショートスプリントのテスト情報が少ない

• サービス開発というコンテキストに従来のテストがマッチしない

• どうしようか困ってる

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

小さい単位でのチェックフェーズ別のチェック

これまでと今の関係

• フェーズの最後に確認

• 仕様の実現がゴール• 品質は実現度

• 短い期間で確認• リリース後に改善活動が続く

• 品質はビジネスバリュー

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

よくでてくる図

http://www.mountaingoatsoftware.com/scrum/figuresこのフィードバックサイクルでテストまでやらないといけない

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

アジャイルテストの4象限

単体テストコンポーネントテスト

機能テスト例として ストーリーテスト プロトタイプ シミュレーション

探索的テストシナリオユーザビリティテストユーザ受け入れテストアルファ / ベータ

パフォーマンス / 負荷テストセキュリティテスト「~性」テスト

Book : 実践アジャイルテスト(Agile Testing) http://bit.ly/NmCcNW

自動と手動

自動 ツール

手動

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

アジャイルテストの4象限

単体テストコンポーネントテスト

機能テスト例として ストーリーテスト プロトタイプ シミュレーション

探索的テストシナリオユーザビリティテストユーザ受け入れテストアルファ / ベータ

パフォーマンス / 負荷テストセキュリティテスト「~性」テスト

Book : 実践アジャイルテスト(Agile Testing) http://bit.ly/NmCcNW

自動と手動

自動 ツール

手動

綺麗に整理されているだけでは役に立たない。だから何?

現象が発生する

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

やりたいこと

• やらなければならないことを知り• やるべきことを確定し• あきらめたことを共有し• みんなでリスクを理解する

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

テストを自分たち用に整理する

単体テスト(UT)

ユーザ受け入れテスト(UAT)

探索的テストユーザビリティテスト

パフォーマンスツールセキュリティツール

自動

自動 ツール

手動

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

ユーザ受け入れテスト(UAT)

テストを自分たち用に整理する

単体テスト(UT)

探索的テストユーザビリティテスト

パフォーマンスツールセキュリティツール

自動

自動 ツール

手動

UTと画面の二つを自動化。大切にしたい使ってみたときの「気づき」は手動にこだわ

る作戦。

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

単体テスト(UT) パフォーマンスツールセキュリティツール

自動

自動 ツール

手動

ツールの範囲

探索的テストユーザビリティテスト

ユーザ受け入れテスト(UAT)

セキュリティ部分はUTでやることもできるので、やれるだけやってツールに頼る作戦

• 負荷テスト• ツールの設定を使いまわすことで楽をする

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

ユーザ受け入れテスト(UAT)

単体テスト(UT) パフォーマンスツールセキュリティツール

自動

自動 ツール

手動

バグ発生時に再現や値確認などをすばやく実行するためにプログラム化必須。最近は自動コード生成とかあるのでそういったところは無理して作らない。

UTの範囲

探索的テストユーザビリティテスト

• 最小単位のプログラムと処理のテスト• API・DB接続はここに含めてしまう• プログラム作成のテストエビデンスとして作る

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

単体テスト(UT) パフォーマンスツールセキュリティツール

自動

自動 ツール

手動

UATの範囲

探索的テストユーザビリティテスト

• UATを自動化すると単純作業の繰り返しになったので、画面テスト、シナリオテストもUATで一気に片付ける

• 画面テストはケースが大量にできるのでさらに細分化して対象を決める(後述)

ユーザ受け入れテスト(UAT)

WebDriverなどを使うと簡単に画面テストできる時代になったが、新しくウィンドウを開くとかやりにくいテストもあるのでそういうのはあきらめる。

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

単体テスト(UT) パフォーマンスツールセキュリティツール

自動

自動 ツール

手動

UATのはじめかた

探索的テストユーザビリティテスト

• 画面ごとのテストより機能ごとのテストのほうが影響範囲が分かりやすい

• RSpec + WebDriverだと初心者でも簡単に自動化、プログラム化できるので柔軟

ユーザ受け入れテスト(UAT)

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

単体テスト(UT) パフォーマンスツールセキュリティツール

自動

自動 ツール

手動

UATのトレードオフ

探索的テストユーザビリティテスト

ユーザ受け入れテスト(UAT) シンプルな機能

複雑な機能

メジャーな機能マイナーな機能

超重要

重要

このへんは日々の画面チェックでカバーされて

このへんは日々の画面チェックでカバーされて

あきらめ対象

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

ユーザ受け入れテスト(UAT)単体テスト(UT)

UTとUATの関係

• 自動• 実行が早い• ホワイトボックス• 網羅性を確認できる• データ準備が楽• 段階の確認

• 自動• 実行が遅い• ブラックボックス• 網羅性を確認できない• データ準備が面倒• 最終の確認

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

単体テスト(UT) パフォーマンスツールセキュリティツール

自動

自動 ツール

手動

手動の範囲

探索的テストユーザビリティテスト

ユーザ受け入れテスト(UAT)

「こうなっていたらいいのに」もここで洗い出し、受け入れ担当者に仕様変更か無視かの判断をしてもらう。開発者全員で時間をあわせ、せーのでテストしていくと盛り上がる

• 画面レイアウト、デザインは人の目を使う• 手動で操作、対象端末(iPhoneとか)で操作• テストでの「気づき」をチケット化してFBにつなげる

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

時間を有効活用する

単体テスト(UT)

ユーザ受け入れテスト(UAT)

探索的テストユーザビリティテスト

パフォーマンスツールセキュリティツール

自動

自動 ツール

手動

注力

時間削減 時間削減

時間削減

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

プロセスの変化

http://www.mountaingoatsoftware.com/scrum/figures

UTのフィードバックサイクル(自動)

UATのフィードバックサイクル(自動)

探索、ユーザビリティのフィードバックサイクル

(手動)

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

まとめ

•テストを「なんとなく」しない•テストは狙ってやる•できないことを理解し、リスクに構える

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

まとめ

•バグはあってもいい•デグレードはしない•UTいるの?