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.

5

Share

Download to read offline

第4章 自動比較

Download to read offline

システムテスト自動化標準ガイド読書会で発表した資料です。

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

第4章 自動比較

  1. 1. 第4章 自動比較 第二回 システムテスト自動化標準ガイド 読書会 1 2015/05/23 @toku_toku3
  2. 2. 全体の流れ • 4.01 検証、比較、そして自動化 • 4.02 比較ツールは何を比較するか? • 4.03 動的比較 • 4.04 実行後比較 • 4.05 単純な比較 • 4.06 複雑な比較 • 4.07 テストの感度 • 4.08 異なるタイプの比較結果 • 4.09 比較フィルタ • 4.10 比較のガイドライン • 4.11 まとめ 2 3章で紹介した テスティングによる 実行結果と期待結果を 「比較」する手法 についての章
  3. 3. 4.01 検証、比較、そして自動化 3
  4. 4. 比較による検証 • テストの結果が正しかったのかどうか • 「検証」する必要がある 4 • 検証ってなにすればいいの • 実行結果と期待結果を「比較」して検証する
  5. 5. ご比較は計画的に • 自動化を検討する際は、 • 「何を」「どれくらいの粒度で」比較するのか • を考える必要がある ! • それらはテストの実装や、 • メンテナンスコストに大きな影響をもっている 5
  6. 6. ご比較は計画的に • 「正しい結果になっている事を確認する」 ! • 正しいってなに?どういう表示になればいい? ! ! ! 6
  7. 7. 結果の予想と実行結果の検証 • 参照テスト • 自動テストの期待結果として使えるかどうか、 • テスト実行の結果を手動で検証すること ! ! ! ! ! ! ! 7 • 期待結果を前もって用意するか参照テストするかは、 • 以下の項目を検討して決めるほうがよい• • • • • 1)期待結果の程度 • 2)期待結果の予想可能性 • 3)テスト対象のソフトウェアが利用可能か • 4)検証の品質
  8. 8. なぜ比較を自動化するのか • 単調な作業の繰り返し、大量の数値の比較は • 人間が得意な分野ではない
 • • 比較はテストの中で最も自動化しやすい ! • すべての比較を自動化する必要はない • 比較作業が一目でわかるものなら、テストの実行のみ自 動化するのもあり 8 ミスが起きやすい
  9. 9. 何を比較するべきなのか • 出力画面、ログファイル、DBなど、チェックすべき対 象は様々 ! • 手動によるアドホックなテストだと漏れが生じてしま う可能性がある ! • 自動化しておけば項目を追加することでテスティング 自体の品質を改善できる 9
  10. 10. 自動比較の限界 • 自動比較は実行結果と期待結果を単純に比較してい • るだけである ! • 柔軟ではないし、期待結果が変わるたびに • メンテナンスコストがかかるかもしれない ! • それでも、手動で比較するよりも何倍も正確に、早•
 く比較することはできる 10
  11. 11. 4.02 比較ツールは何を比較するか? 11
  12. 12. 比較ツールは何を比較するか? • 自動比較ツールは通称コンパレータと呼ばれる ! ✓ 何が比較できるか • テキスト、ファイル、データ、画像など ✓ 比較で何がわかるか • 比較された2つのデータが同じかどうか • またその差分 ✓ 比較でわからないものは何か • テストが成功しているかどうか 12
  13. 13. Q. 比較ツールは 何を使っていますか? 13
  14. 14. 4.03 動的比較 14
  15. 15. 動的比較とは • テストケースを実行しながら比較する手法のこと ! • 色々なツールでサポートされており、 • 人がチェックするのと同じように、画面に表示され るものをチェックするのに適している 15
  16. 16. デモ 16
  17. 17. テストケースへの工夫 • もしテストケースが対象に合わなくなってしまったら、 • そのテストケースは使用しない方がよい ! • もしかすると他のテストケースで使用するデータを • 破壊してしまうかもしれない ! ! • 動的比較なら、振る舞いを変えるための工夫を • スクリプトに加える事ができる 17
  18. 18. 4.04 実行後比較 18
  19. 19. 実行後比較とは • テストケースを実行した後に行われる比較のこと ! • 生成されたファイルやDBなど、画面出力以外のもの を比較する際によく用いられる ! • サポートしてるテスト実行ツールがあまりないの で、個別のツールを利用することが多い 19
  20. 20. デモ 20
  21. 21. 実行後比較 • 動的比較と違い、比較対象の選択ができる ! • 大まかにチェックして失敗していたら、 • それ以上細かい比較を行う必要はない ! • 不必要な比較を省くことで、 • 時間を節約することができる 21
  22. 22. 能動的/受動的な実行後比較 • 受動的な実行後比較 • 今まで説明してきた比較のこと • テストケース実行結果のうち、比較できるものをなんでも比較 する単純な手法 ! • 能動的な実行後比較 • 実行後比較で必要になる(関心のある)結果を、 • テストケースの実行時に保存して利用する手法 • 動的比較を行った際に着目するポイントと同じになるはず 22
  23. 23. 能動的/受動的な実行後比較 • 動的比較に比べて、 • 能動的な実行後比較には以下のようなメリットがある ! • 1)実行結果が保存される • 2)オフラインで比較できる • 3)様々な比較ツールが使える • 4)他の出力も保存できる ! 23 • が、一般的に動的比較によるテストを行うほうが多い
  24. 24. –システムテスト自動化標準ガイド P139より “テストケースが終わってから検証するよりも、 テストケースを実行している最中に その出力を検証する方がよい” 24
  25. 25. Q. 動的比較と能動的実行後比較 どちらを採用していますか? 25
  26. 26. 実行後比較の実装 • 実行後比較の実装は思うほど単純ではない • テスト実行ツールが、 • 実行後比較のための比較ツールを扱えるかはわからない ! ! ! ! ! ! • 手動で解決するのは自動化できてないので良くない 26
  27. 27. ! ! ! ! ! • 現実 • テスターが気合いで頑張る テスト実行と実行後比較 の結合の4つの方法 • 理想 • テスト実行ツールと自動比較ツール間の • インタフェースがシームレス ! 27
  28. 28. テスト実行と実行後比較 の結合の4つの方法 ! • テストハーネス • テスト実行ツールや自動比較ツールだけで対応できないタスクやイ ンタフェースを実装したもの • 必要に応じてテストメーターが自分で用意する ! • 具体的にこれ、というものは無いので、 • ハーネスの実装はバッチファイルやツールの拡張言語、通常のプロ グラムだったりと様々になる 28
  29. 29. テスト実行と実行後比較 の結合の4つの方法 ! • テストハーネス ! ! ! ! ! ! ! 29
  30. 30. 4.05 単純な比較 30
  31. 31. 単純な比較とは • 実行結果と期待結果が完全に同じかどうか比較する ! ✓ どんなに些細な違いでもすべて検出する ✓ シンプルゆえに誰でも理解しやすい ✓ 実装やメンテナンスのコストが低い ✓ 無視していい差異もすべてハイライトされてしまう 31
  32. 32. たとえば 32 diffツール (画像はWinMerge)
  33. 33. 4.06 複雑な比較 33
  34. 34. なぜ複雑な比較が必要になるか • 複雑な比較とは、実行結果と期待結果を • 「既知の違い」を使って比較する方法のこと ! • たとえば • * 会員毎に表示される固有のID • * ページを表示している日付 • などは差分として検知してほしくない場合がある 34
  35. 35. 4.07 テストの感度 35
  36. 36. センシティブかロバストか 36
  37. 37. テストの冗長性 • センシティブな比較を複数のテスト結果で行った場 合、多くのテストケースで同じ欠陥によって失敗す ることがある ! • 想定外の欠陥は別として、 • 1つの欠陥につき • 1つのテストケースが失敗するのが望ましい 37
  38. 38. テスト感度の戦略 • テストケースにおけるセンシティブとロバストの度合いはとても重要 ! • オススメ戦略1 • 「ソフトウェアの変更時に行われる基本的なチェック」は主にセンシ ティブな比較を行い、 • 「より詳細レベルのチェック」に大してはロバストな比較を用いる ! • オススメ戦略2 • テストケースのうち1、2個はセンシティブな比較を行い、 • 残りはロバストな比較にする 38
  39. 39. 4.08 異なるタイプの比較結果 39
  40. 40. 異なるタイプの比較結果 • • • • テキストファイル、DB、バイナリファイルの比較 ! • 文字列、GUI、画像の比較 ! • マルチメディアアプリケーション、 • 通信アプリケーションの場合はどうするのか 40
  41. 41. 4.09 比較フィルタ 41
  42. 42. フィルタとは? • 本当に得たい差異を取得するために、 • 実行結果と期待結果に1つずつ適用する変更/編集処理のこと ! ! ! ! ! ! • なじみのある例だと、sed/awk/grepのようなコマンドや、 • Perlの正規表現などを用いた処理がフィルタになる 42 比較プロセス
  43. 43. フィルタの長所と短所 • 長所 • 1)テキスト操作ツールを利用できる • 2)再利用できる
 3)比較の標準がより厳格
 4)実装とデバッグがより簡単 • 5)複雑な比較も実行可能 43
  44. 44. フィルタの長所と短所 • 短所 • 1)作成にプログラミング能力が必要 • 2)定期的なメンテナンスとデバッグが必要 • 3)再利用のためにドキュメントと継続的な管理が必要 44
  45. 45. 4.10 比較のガイドライン 45
  46. 46. 基本的な原則 ✓ シンプルにする ✓ ドキュメントに残す ✓ できるだけ標準化する ✓ 分割統治 ✓ 効率性を心がける ✓ ビットマップの比較を避ける ✓ センシティブ/ロバストなテストのバランスをとる ✓ 適用するプロジェクトの性質を理解する 46
  47. 47. 4.11 まとめ 47
  48. 48. 第4章 自動比較 • テストの実行結果を次回実行時の期待結果とすることが多い ! • 比較ツールはただ比較しているだけである • 期待結果が正しいかどうかをチェックすること ! • センシティブ/ロバストな比較のバランスを考える ! • テストは常にシンプルで、効率性を高めるためのものでなく てはならないことを念頭におくこと 48
  49. 49. ご清聴ありがとうございました。 49
  • taroyamakawa18

    Aug. 14, 2017
  • ikumahayasaka

    Jun. 10, 2016
  • ssuserf4ac76

    Sep. 23, 2015
  • tamashin

    Jun. 4, 2015
  • kauji0522

    May. 27, 2015

システムテスト自動化標準ガイド読書会で発表した資料です。

Views

Total views

2,567

On Slideshare

0

From embeds

0

Number of embeds

803

Actions

Downloads

13

Shares

0

Comments

0

Likes

5

×