Submit Search
Upload
第4章 自動比較
•
5 likes
•
2,645 views
toku toku
Follow
システムテスト自動化標準ガイド読書会で発表した資料です。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 49
Download now
Download to read offline
Recommended
Tapl 5
Tapl 5
rf0444
すごいHaskell楽しく学ぼう 第6章
すごいHaskell楽しく学ぼう 第6章
aomori ringo
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
都元ダイスケ Miyamoto
システムテスト自動化標準ガイド第7章
システムテスト自動化標準ガイド第7章
nihon buson
アジャイルリーダーシップと組織改革 ~楽天のアジャイル開発というリアル~ エピローグ
アジャイルリーダーシップと組織改革 ~楽天のアジャイル開発というリアル~ エピローグ
Dai FUJIHARA
テスト自動化読書会 第3章 20150523
テスト自動化読書会 第3章 20150523
dnoguchi
WooCommerce & Apple TV
WooCommerce & Apple TV
Marko Heijnen
[デブサミ2015] スクラムならうまくいく?〜グリーのネイティブゲーム作りの歴史をひもとく、そして未来へ〜
[デブサミ2015] スクラムならうまくいく?〜グリーのネイティブゲーム作りの歴史をひもとく、そして未来へ〜
gree_tech
Recommended
Tapl 5
Tapl 5
rf0444
すごいHaskell楽しく学ぼう 第6章
すごいHaskell楽しく学ぼう 第6章
aomori ringo
20120830 DBリファクタリング読書会第三回
20120830 DBリファクタリング読書会第三回
都元ダイスケ Miyamoto
システムテスト自動化標準ガイド第7章
システムテスト自動化標準ガイド第7章
nihon buson
アジャイルリーダーシップと組織改革 ~楽天のアジャイル開発というリアル~ エピローグ
アジャイルリーダーシップと組織改革 ~楽天のアジャイル開発というリアル~ エピローグ
Dai FUJIHARA
テスト自動化読書会 第3章 20150523
テスト自動化読書会 第3章 20150523
dnoguchi
WooCommerce & Apple TV
WooCommerce & Apple TV
Marko Heijnen
[デブサミ2015] スクラムならうまくいく?〜グリーのネイティブゲーム作りの歴史をひもとく、そして未来へ〜
[デブサミ2015] スクラムならうまくいく?〜グリーのネイティブゲーム作りの歴史をひもとく、そして未来へ〜
gree_tech
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料
Masatoshi Itoh
文芸的プログラミング
文芸的プログラミング
Shoko Sasaki
LeanCustomerDevelopment
LeanCustomerDevelopment
Kouki Kawagoi
20150418 システムテスト自動化 第二章
20150418 システムテスト自動化 第二章
atsushi ishiji
TAPL勉強会 第1章 (2012-07-17)
TAPL勉強会 第1章 (2012-07-17)
none_toka
NaITE#15オープニング資料
NaITE#15オープニング資料
Akira Ikeda
システムテスト自動化標準ガイド 読書会 第8章
システムテスト自動化標準ガイド 読書会 第8章
mirer
a-hisame
Stg2015 1c-1プレゼン資料 いまココにある請負アジャイル開発現場の実態 ~4年で4億弱売上20案件以上の実践経験から語る~
Stg2015 1c-1プレゼン資料 いまココにある請負アジャイル開発現場の実態 ~4年で4億弱売上20案件以上の実践経験から語る~
健 渡会
名前付けのすすめ / GMOペパボ株式会社 鹿島恵実(かしめぐ)
名前付けのすすめ / GMOペパボ株式会社 鹿島恵実(かしめぐ)
Kashima Megumi
不確実性への挑戦Ver0.1
不確実性への挑戦Ver0.1
naoto kyo
要注意!?効果の出ない技術研修に共通する3つのこと
要注意!?効果の出ない技術研修に共通する3つのこと
codecampJP
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
Koichi Sakata
HerokuではじめるRailsプログラミング入門 6-3節「複数モデルの連携」
HerokuではじめるRailsプログラミング入門 6-3節「複数モデルの連携」
makopi 23
Confluenceショートカットキー表 v1
Confluenceショートカットキー表 v1
Naho Inuyama
Database smells
Database smells
Mikiya Okuno
Sqlアンチパターン読書会 #7スライド資料
Sqlアンチパターン読書会 #7スライド資料
Naoya Ishii
8a1#19[はじめてのdocker] 公開版
8a1#19[はじめてのdocker] 公開版
Kamon Nobuchika
[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~
[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~
Shigeki Morizane
Confluence 503に立ち向かう 〜 2代目管理者の一年 〜
Confluence 503に立ち向かう 〜 2代目管理者の一年 〜
akiko_pusu
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
More Related Content
Viewers also liked
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料
Masatoshi Itoh
文芸的プログラミング
文芸的プログラミング
Shoko Sasaki
LeanCustomerDevelopment
LeanCustomerDevelopment
Kouki Kawagoi
20150418 システムテスト自動化 第二章
20150418 システムテスト自動化 第二章
atsushi ishiji
TAPL勉強会 第1章 (2012-07-17)
TAPL勉強会 第1章 (2012-07-17)
none_toka
NaITE#15オープニング資料
NaITE#15オープニング資料
Akira Ikeda
システムテスト自動化標準ガイド 読書会 第8章
システムテスト自動化標準ガイド 読書会 第8章
mirer
a-hisame
Stg2015 1c-1プレゼン資料 いまココにある請負アジャイル開発現場の実態 ~4年で4億弱売上20案件以上の実践経験から語る~
Stg2015 1c-1プレゼン資料 いまココにある請負アジャイル開発現場の実態 ~4年で4億弱売上20案件以上の実践経験から語る~
健 渡会
名前付けのすすめ / GMOペパボ株式会社 鹿島恵実(かしめぐ)
名前付けのすすめ / GMOペパボ株式会社 鹿島恵実(かしめぐ)
Kashima Megumi
不確実性への挑戦Ver0.1
不確実性への挑戦Ver0.1
naoto kyo
要注意!?効果の出ない技術研修に共通する3つのこと
要注意!?効果の出ない技術研修に共通する3つのこと
codecampJP
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
Koichi Sakata
HerokuではじめるRailsプログラミング入門 6-3節「複数モデルの連携」
HerokuではじめるRailsプログラミング入門 6-3節「複数モデルの連携」
makopi 23
Confluenceショートカットキー表 v1
Confluenceショートカットキー表 v1
Naho Inuyama
Database smells
Database smells
Mikiya Okuno
Sqlアンチパターン読書会 #7スライド資料
Sqlアンチパターン読書会 #7スライド資料
Naoya Ishii
8a1#19[はじめてのdocker] 公開版
8a1#19[はじめてのdocker] 公開版
Kamon Nobuchika
[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~
[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~
Shigeki Morizane
Confluence 503に立ち向かう 〜 2代目管理者の一年 〜
Confluence 503に立ち向かう 〜 2代目管理者の一年 〜
akiko_pusu
Viewers also liked
(20)
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料
文芸的プログラミング
文芸的プログラミング
LeanCustomerDevelopment
LeanCustomerDevelopment
20150418 システムテスト自動化 第二章
20150418 システムテスト自動化 第二章
TAPL勉強会 第1章 (2012-07-17)
TAPL勉強会 第1章 (2012-07-17)
NaITE#15オープニング資料
NaITE#15オープニング資料
システムテスト自動化標準ガイド 読書会 第8章
システムテスト自動化標準ガイド 読書会 第8章
Stg2015 1c-1プレゼン資料 いまココにある請負アジャイル開発現場の実態 ~4年で4億弱売上20案件以上の実践経験から語る~
Stg2015 1c-1プレゼン資料 いまココにある請負アジャイル開発現場の実態 ~4年で4億弱売上20案件以上の実践経験から語る~
名前付けのすすめ / GMOペパボ株式会社 鹿島恵実(かしめぐ)
名前付けのすすめ / GMOペパボ株式会社 鹿島恵実(かしめぐ)
不確実性への挑戦Ver0.1
不確実性への挑戦Ver0.1
要注意!?効果の出ない技術研修に共通する3つのこと
要注意!?効果の出ない技術研修に共通する3つのこと
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
HerokuではじめるRailsプログラミング入門 6-3節「複数モデルの連携」
HerokuではじめるRailsプログラミング入門 6-3節「複数モデルの連携」
Confluenceショートカットキー表 v1
Confluenceショートカットキー表 v1
Database smells
Database smells
Sqlアンチパターン読書会 #7スライド資料
Sqlアンチパターン読書会 #7スライド資料
8a1#19[はじめてのdocker] 公開版
8a1#19[はじめてのdocker] 公開版
[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~
[XP祭り2016]野良LT~KPT=>KPTA=>KPTATAH~
Confluence 503に立ち向かう 〜 2代目管理者の一年 〜
Confluence 503に立ち向かう 〜 2代目管理者の一年 〜
Recently uploaded
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
Recently uploaded
(8)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
第4章 自動比較
1.
第4章 自動比較 第二回 システムテスト自動化標準ガイド 読書会 1 2015/05/23
@toku_toku3
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.
4.01 検証、比較、そして自動化 3
4.
比較による検証 • テストの結果が正しかったのかどうか • 「検証」する必要がある 4 •
検証ってなにすればいいの • 実行結果と期待結果を「比較」して検証する
5.
ご比較は計画的に • 自動化を検討する際は、 • 「何を」「どれくらいの粒度で」比較するのか •
を考える必要がある ! • それらはテストの実装や、 • メンテナンスコストに大きな影響をもっている 5
6.
ご比較は計画的に • 「正しい結果になっている事を確認する」 ! • 正しいってなに?どういう表示になればいい? ! ! ! 6
7.
結果の予想と実行結果の検証 • 参照テスト • 自動テストの期待結果として使えるかどうか、 •
テスト実行の結果を手動で検証すること ! ! ! ! ! ! ! 7 • 期待結果を前もって用意するか参照テストするかは、 • 以下の項目を検討して決めるほうがよい• • • • • 1)期待結果の程度 • 2)期待結果の予想可能性 • 3)テスト対象のソフトウェアが利用可能か • 4)検証の品質
8.
なぜ比較を自動化するのか • 単調な作業の繰り返し、大量の数値の比較は • 人間が得意な分野ではない • •
比較はテストの中で最も自動化しやすい ! • すべての比較を自動化する必要はない • 比較作業が一目でわかるものなら、テストの実行のみ自 動化するのもあり 8 ミスが起きやすい
9.
何を比較するべきなのか • 出力画面、ログファイル、DBなど、チェックすべき対 象は様々 ! • 手動によるアドホックなテストだと漏れが生じてしま う可能性がある ! •
自動化しておけば項目を追加することでテスティング 自体の品質を改善できる 9
10.
自動比較の限界 • 自動比較は実行結果と期待結果を単純に比較してい • るだけである ! •
柔軟ではないし、期待結果が変わるたびに • メンテナンスコストがかかるかもしれない ! • それでも、手動で比較するよりも何倍も正確に、早• く比較することはできる 10
11.
4.02 比較ツールは何を比較するか? 11
12.
比較ツールは何を比較するか? • 自動比較ツールは通称コンパレータと呼ばれる ! ✓ 何が比較できるか •
テキスト、ファイル、データ、画像など ✓ 比較で何がわかるか • 比較された2つのデータが同じかどうか • またその差分 ✓ 比較でわからないものは何か • テストが成功しているかどうか 12
13.
Q. 比較ツールは 何を使っていますか? 13
14.
4.03 動的比較 14
15.
動的比較とは • テストケースを実行しながら比較する手法のこと ! • 色々なツールでサポートされており、 •
人がチェックするのと同じように、画面に表示され るものをチェックするのに適している 15
16.
デモ 16
17.
テストケースへの工夫 • もしテストケースが対象に合わなくなってしまったら、 • そのテストケースは使用しない方がよい ! •
もしかすると他のテストケースで使用するデータを • 破壊してしまうかもしれない ! ! • 動的比較なら、振る舞いを変えるための工夫を • スクリプトに加える事ができる 17
18.
4.04 実行後比較 18
19.
実行後比較とは • テストケースを実行した後に行われる比較のこと ! • 生成されたファイルやDBなど、画面出力以外のもの を比較する際によく用いられる ! •
サポートしてるテスト実行ツールがあまりないの で、個別のツールを利用することが多い 19
20.
デモ 20
21.
実行後比較 • 動的比較と違い、比較対象の選択ができる ! • 大まかにチェックして失敗していたら、 •
それ以上細かい比較を行う必要はない ! • 不必要な比較を省くことで、 • 時間を節約することができる 21
22.
能動的/受動的な実行後比較 • 受動的な実行後比較 • 今まで説明してきた比較のこと •
テストケース実行結果のうち、比較できるものをなんでも比較 する単純な手法 ! • 能動的な実行後比較 • 実行後比較で必要になる(関心のある)結果を、 • テストケースの実行時に保存して利用する手法 • 動的比較を行った際に着目するポイントと同じになるはず 22
23.
能動的/受動的な実行後比較 • 動的比較に比べて、 • 能動的な実行後比較には以下のようなメリットがある ! •
1)実行結果が保存される • 2)オフラインで比較できる • 3)様々な比較ツールが使える • 4)他の出力も保存できる ! 23 • が、一般的に動的比較によるテストを行うほうが多い
24.
–システムテスト自動化標準ガイド P139より “テストケースが終わってから検証するよりも、 テストケースを実行している最中に その出力を検証する方がよい” 24
25.
Q. 動的比較と能動的実行後比較 どちらを採用していますか? 25
26.
実行後比較の実装 • 実行後比較の実装は思うほど単純ではない • テスト実行ツールが、 •
実行後比較のための比較ツールを扱えるかはわからない ! ! ! ! ! ! • 手動で解決するのは自動化できてないので良くない 26
27.
! ! ! ! ! • 現実 • テスターが気合いで頑張る テスト実行と実行後比較 の結合の4つの方法 •
理想 • テスト実行ツールと自動比較ツール間の • インタフェースがシームレス ! 27
28.
テスト実行と実行後比較 の結合の4つの方法 ! • テストハーネス • テスト実行ツールや自動比較ツールだけで対応できないタスクやイ ンタフェースを実装したもの •
必要に応じてテストメーターが自分で用意する ! • 具体的にこれ、というものは無いので、 • ハーネスの実装はバッチファイルやツールの拡張言語、通常のプロ グラムだったりと様々になる 28
29.
テスト実行と実行後比較 の結合の4つの方法 ! • テストハーネス ! ! ! ! ! ! ! 29
30.
4.05 単純な比較 30
31.
単純な比較とは • 実行結果と期待結果が完全に同じかどうか比較する ! ✓ どんなに些細な違いでもすべて検出する ✓
シンプルゆえに誰でも理解しやすい ✓ 実装やメンテナンスのコストが低い ✓ 無視していい差異もすべてハイライトされてしまう 31
32.
たとえば 32 diffツール (画像はWinMerge)
33.
4.06 複雑な比較 33
34.
なぜ複雑な比較が必要になるか • 複雑な比較とは、実行結果と期待結果を • 「既知の違い」を使って比較する方法のこと ! •
たとえば • * 会員毎に表示される固有のID • * ページを表示している日付 • などは差分として検知してほしくない場合がある 34
35.
4.07 テストの感度 35
36.
センシティブかロバストか 36
37.
テストの冗長性 • センシティブな比較を複数のテスト結果で行った場 合、多くのテストケースで同じ欠陥によって失敗す ることがある ! • 想定外の欠陥は別として、 •
1つの欠陥につき • 1つのテストケースが失敗するのが望ましい 37
38.
テスト感度の戦略 • テストケースにおけるセンシティブとロバストの度合いはとても重要 ! • オススメ戦略1 •
「ソフトウェアの変更時に行われる基本的なチェック」は主にセンシ ティブな比較を行い、 • 「より詳細レベルのチェック」に大してはロバストな比較を用いる ! • オススメ戦略2 • テストケースのうち1、2個はセンシティブな比較を行い、 • 残りはロバストな比較にする 38
39.
4.08 異なるタイプの比較結果 39
40.
異なるタイプの比較結果 • • • •
テキストファイル、DB、バイナリファイルの比較 ! • 文字列、GUI、画像の比較 ! • マルチメディアアプリケーション、 • 通信アプリケーションの場合はどうするのか 40
41.
4.09 比較フィルタ 41
42.
フィルタとは? • 本当に得たい差異を取得するために、 • 実行結果と期待結果に1つずつ適用する変更/編集処理のこと ! ! ! ! ! ! •
なじみのある例だと、sed/awk/grepのようなコマンドや、 • Perlの正規表現などを用いた処理がフィルタになる 42 比較プロセス
43.
フィルタの長所と短所 • 長所 • 1)テキスト操作ツールを利用できる •
2)再利用できる 3)比較の標準がより厳格 4)実装とデバッグがより簡単 • 5)複雑な比較も実行可能 43
44.
フィルタの長所と短所 • 短所 • 1)作成にプログラミング能力が必要 •
2)定期的なメンテナンスとデバッグが必要 • 3)再利用のためにドキュメントと継続的な管理が必要 44
45.
4.10 比較のガイドライン 45
46.
基本的な原則 ✓ シンプルにする ✓ ドキュメントに残す ✓
できるだけ標準化する ✓ 分割統治 ✓ 効率性を心がける ✓ ビットマップの比較を避ける ✓ センシティブ/ロバストなテストのバランスをとる ✓ 適用するプロジェクトの性質を理解する 46
47.
4.11 まとめ 47
48.
第4章 自動比較 • テストの実行結果を次回実行時の期待結果とすることが多い ! •
比較ツールはただ比較しているだけである • 期待結果が正しいかどうかをチェックすること ! • センシティブ/ロバストな比較のバランスを考える ! • テストは常にシンプルで、効率性を高めるためのものでなく てはならないことを念頭におくこと 48
49.
ご清聴ありがとうございました。 49
Download now