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.

What is exploratory testing?

2,357 views

Published on

探索的テストって何だろう?探索的テストってどうやるんだろう?
この資料では探索的テストを旅行や、マンガで例えてわかりやすく説明をしています。

Published in: Technology
  • Be the first to comment

  • Be the first to like this

What is exploratory testing?

  1. 1. What is Exploratory Testing?
  2. 2. Exploratory Testing : : : 講師紹介 Name 松谷 峰生 Role AI Platform QA JaSST Kyushu実行委員 (ソフトウェアテストシンポジウム) Activities 2016:自動化の敷居を下げる活動 2017:テストの敷居を下げる活動 Hobbies 筋トレ お絵かき ゲーム作り Etc…
  3. 3. Exploratory Testing : : : 講師紹介 http://testerchan.hatenadiary.com/
  4. 4. テスト現場であった悲劇
  5. 5. Exploratory Testing : : : テスト現場であった事例 ゲームのテストをしていた時のこと。 突然の仕様変更が発覚した。 QAリミットは残り半日だ。 突然の仕様変更にテストケースで対応 【現場リーダー】 今からテストケース作るから待ってて! テストケース完成後に急いでテスト。 時間がないためテストケースのみの確認で完了。 結果は本番障害が発生。 原因は、テストケースのテスト観点漏れであった。
  6. 6. Exploratory Testing : : : テスト現場であった事例 「このアプリのテスト、お願い!」 ほとんどテスト期間もない依頼が来たときの話。 無計画なアドホックで対応 【現場リーダー】 時間ないし、とりあえず触りまくってバグを出そう! そんな無計画な※アドホックテストを実施。 結果、みんなの確認箇所が重複したり、 誤字脱字といった細かなところにばかり気がとられ、 通っていない基本機能などがあり、散々な目に…。 ※アドホックテスト = 自由なテスト
  7. 7. Exploratory Testing : : : テスト現場であった事例 「テストのやり方」の知識不足が生んだ悲劇 テストは「テストケース」をやればよい? 「自由なテスト」はみんなでただ触りまくればいい?
  8. 8. Exploratory Testing 探索的テスト
  9. 9. Exploratory Testing : : : 探索的テストの利用場面 探索的テストってどういう場面で使えるの? 急な仕様変更 アジャイル開発 (軽量なテストを求められる時) テストの時間が少ないとき
  10. 10. 探索的テストは 「フットワークの軽い」 テスト
  11. 11. Exploratory Testing : : : 探索的テストって何? 探索的テストって何? James bach “Exploratory testing is simultaneous leaning, test design, and test execution.” ジェームズ・バック 「探索的テストはね、学習、テスト設計、テスト実行を 一緒に実行するんだ」
  12. 12. Exploratory Testing : : : 探索的テストって何? 探索的テストって何? 探索的テスト = アドホックテスト? ※アドホックテスト = 自由なテスト テスターちゃん32話より
  13. 13. 「アドホックテスト」と 「探索的テスト」を 東京旅行に例えてみた
  14. 14. Exploratory Testing : : : 探索的テストって何? アドホックテスト (野郎どもで旅行に行った感じ) 東京のイイカンジの場所に行きまくろうぜ! ウェーイウェーイ
  15. 15. Exploratory Testing : : : 探索的テストって何? 探索的テスト (自由だが方針・計画性がある) 東京の「グルメツアー」をしましょ。 美味しい店はTwitterで報告ね 俺、アキバ周辺見てみる!私、中野周辺に行くわ!
  16. 16. Exploratory Testing : : : 探索的テストって何? 探索的テスト (計画がダメになっても状況に応じて柔軟に方針を変更) 東京の「とんこつラーメン」…… こんなのとんこつとは認めない!絶対にだ! イタリアンをググるっす! ラーメン店は避けて イタリアンで攻めましょ
  17. 17. 探索的テストは 計画性や方向性といった 「思考」 を伴った 自由なテストである。
  18. 18. 探索的テストのベースとなる考え方
  19. 19. Exploratory Testing : : : 探索的テストの基本的な考え方 探索的テストの基本的な考え方 James bach “Exploratory testing is simultaneous leaning, test design, and test execution.” ジェームズ・バック 「探索的テストはね、学習、テスト設計、テスト実行を 一緒に実行するんだ」
  20. 20. Exploratory Testing : : : 探索的テストの基本的な考え方
  21. 21. Exploratory Testing : : : 探索的テストの考え方 テストケース作り等に時間をかける代わりに 「テスト設計」と「テスト実行」を「一緒」 にやってしまえば早いという テスト実行に主眼を置いているテスト 探索的テストの考え方
  22. 22. Exploratory Testing : : : 探索的テストは難しい 「テスト設計」と「テスト実行」を「一緒」 にやってしまえ…簡単に言うけれども… これらを頭の中でやるには どういうところにバグが潜んでいるか こういうアプリなら大体こういう動き といった「経験」と「知識」が必須である。 探索的テストを実行するためには…
  23. 23. Exploratory Testing : : : 探索的テストは難しい 新人さんにはかなり難しいテスト
  24. 24. 月曜から使える 探索的テストの種類
  25. 25. Exploratory Testing : : : 探索的テストの種類 探索的テストの種類 フリータイプ テストチャータを 使うタイプ セッションベースド タイプ
  26. 26. 具体的な探索的テストのやり方 ~テストチャータを使うタイプ~
  27. 27. Exploratory Testing : : : テストチャータを使うタイプの探索的テスト 例えるなら「何か参考にしながらするツアー」 美味しいもの巡りをするゾ! 「ミシュランガイド」を見て自由に散策しよう! 自由にブラブラするんじゃなくて、 自由だけど目的・方向性があるね!
  28. 28. Exploratory Testing : : : テストチャータを使うタイプの探索的テスト テストチャータを使うタイプの探索的テストのやり方 1. テストの指針となる「目的」を決める 例:仕様書にある機能が実装されているか確認 2. テストチャータを用意する ※テストチャータ…探索的テストの道しるべになるもの。ガイド。 例:仕様書 3. テストチャータを参考にしてテストを実施する 「テストした証拠」が必要な場合は ※「テストのログ(テストしたこと)」を記載しながら進む。 それを見て、人が確認していないところを見る、というやり方もできる。 後々、テスト観点の参考にもなる。 ※松谷たちは「テストノート」と呼んでいる
  29. 29. Exploratory Testing : : : テストチャータを使うタイプの探索的テスト 例えるなら「何か参考にしながらするツアー」 美味しいもの巡りをするゾ! 「ミシュランガイド」に沿って自由に散策しよう!
  30. 30. Exploratory Testing : : : テストチャータを使うタイプの探索的テスト テストチャータを使うタイプのメリット・デメリット 狙ったところを 攻められる リーダーが テスト戦略を ハッキリさせる 必要がある
  31. 31. Exploratory Testing : : : テストチャータを使うタイプの探索的テスト テストチャータを使うタイプの様々なやり方 •ガイドブックツアー(別名F1ツアー。マニュアルに着目) •マネーツアー(お客さんにデモをする手順に着目) •ランドマークツアー(遷移に着目) •知的ツアー(境界値などエラー処理系に着目) •FedExツアー(データのライフサイクルに着目) •ガーベージコレクターツアー(画面や機能を渡り歩く) •Bad Neghborhoodツアー(バグがあるところを狙う) •ミュージアムツアー(古いコードの部分に着目) •裏通りツアー(ユーザーに注目されていない機能に着目) •オールナイトツアー(ファイル開きっぱ、アプリつけっぱ、といったやりっぱに着目) •スーパーモデルツアー(UIに着目) •カウチポテトツアー(最低限の操作で機能を使ってテスト) •強迫性障害ツアー(同じ操作を繰り返すことに着目)
  32. 32. 具体的な探索的テストのやり方 ~フリータイプ~
  33. 33. Exploratory Testing : : : フリータイプの探索的テスト 例えるなら「旅行のプロによる効率的で計画的な自由行動」 まずは浅草に行った後にどぜうを食べ、その後雷 門を見学、そこから浅草寺へお参り、そこからスカ イツリーに行き…… 同人誌を買い、秋月電子で部品を購入、 ジャンクショップで中華パッドを買いあさり 山手線で事故!? ならば第二案だ。 中央総武線で新宿に移動し… 自由奔放… じゃねぇ!! 頭の中で考え抜かれ ている!?
  34. 34. Exploratory Testing : : : フリータイプの探索的テスト フリータイプの探索的テストのやり方 テストする人に「おまかせ」するスタイル テストチャータなどは特になく、 テストする人自身で目的を決め、 •学習 •テスト設計 •テスト実行 •分析 を進める。
  35. 35. Exploratory Testing : : : フリータイプの探索的テスト フリータイプのメリット・デメリット プロが行うと こちらで 段取りするより 短時間で 効率的に バグが出る 新人さんだと やるべきこと を見失い 何もできないで 終わる どこまでテストが 進行しているか 把握しにくい
  36. 36. 具体的な探索的テストのやり方 ~セッションベースドタイプ~
  37. 37. Exploratory Testing : : : セッションベースドタイプの探索的テスト 例えるなら「修学旅行」 では、11:00 ~ 12:00まで 水族館で自由行動です~ ペンギンペンギン! ワニワニ!
  38. 38. Exploratory Testing : : : セッションベースドタイプの探索的テスト セッションベースドタイプの探索的テストのやり方 1. 一回の探索的テストの時間を決める よく言われるのは45分~2時間くらい この一回のことを「セッション」と言う。 2. そのセッションでの「目的」と「テストチャータ」を用意する。(フリータイプでも可) セッションベースドタイプの目的のことを「ミッション」と言う。 例: 画面遷移図を使って、画面遷移が正しいか確認 3. 目的、テストチャータに沿って、制限時間内でテストを行う 4. 時間終了後、テストメンバーで話を行い、次のセッションの内容を調整する 10分~15分くらい。 例:遷移して思ったけど、UI確認を強化した方よくね? →じゃあ次のセッションの目的は「UI確認」にしよう この話し合いのことを「デブリーフィング」という。 簡単にいうと探索的テストに時間制限を付けたもの
  39. 39. Exploratory Testing : : : セッションベースドタイプの探索的テスト
  40. 40. Exploratory Testing : : : テストチャータを使うタイプの探索的テスト セッションベースドタイプのメリット・デメリット 探索的テストの 管理が 行いやすい 時間付きなので 集中力を 保ちやすい 時間がずれると 時間管理が 煩雑
  41. 41. 具体的な探索的テストのやり方 ~松谷が現場でよく使う手法・セッションベースド改~ ※松谷のやり方であり、用語等はオリジナル部分が含まれます
  42. 42. Exploratory Testing : : : セッションベースドタイプの探索的テスト 例えるなら「修学旅行のグループ行動」 11:00 ~ 12:00までA班はアキバ、B班は池袋、C班は浅草で自由行動。 12:00 ~ 13:00はA班浅草、B班アキバ、C班池袋、 13:00 ~ 14:00はA班池袋、B班浅草、C班アキバなー アキバだー! 浅草かぁ…
  43. 43. Exploratory Testing : : : セッションベースドタイプの探索的テスト 松谷が使う探索的テストのやり方 1. プロダクトの確認範囲を別ける 例:A機能、B機能…など機能で別ける。 2. セッションの時間を決める。 3. そのセッションでの「目的」と「テストチャータ」を用意する。(フリータイプでも可) 例:各機能を仕様書を見ながら、記載されている内容が実装されているか確認 4. メンバーを各確認範囲に割り振る。 例 : A機能はXさん、B機能はYさん、C機能はZさん 5. テスト実行 6. デブリーフィングなどで次の方向性決め 「時間」と「確認範囲」でテストを区切る方法
  44. 44. Exploratory Testing : : : セッションベースドタイプの探索的テスト 松谷が使う探索的テストのやり方の例(カバレッジ重視型) 例 :機能(A機能、B機能、C機能、D機能、E機能、F機能の6機能) メンバー(Xさん、Yさん、Zさんの3人) A機能:Xさん B機能:Yさん C機能:Zさん セッション1:40分 ミッション: 各機能を仕様書を見ながら、 記載されている内容が実装されているか確認 D機能:Xさん E機能:Yさん F機能:Zさん セッション2:40分 ミッション: 各機能を仕様書を見ながら、 記載されている内容が実装されているか確認 約80分で全体的な機能の簡易チェック可能
  45. 45. Exploratory Testing : : : セッションベースドタイプの探索的テスト 松谷が使う探索的テストのやり方の例(絨毯爆撃型) A機能 B機能 C機能 D機能 E機能 F機能 セッション1 Xさん Yさん Zさん セッション2 Xさん Yさん Zさん セッション3 Xさん Yさん Zさん セッション4 Xさん Yさん Zさん セッション5 Zさん Xさん Yさん セッション6 Yさん Zさん Xさん 約半日で全体的な機能を3重チェック可能
  46. 46. Exploratory Testing : : : テストチャータを使うタイプの探索的テスト 松谷のやり方のメリット・デメリット(基本はセッションベースドと同じ) セッションベースド テストマネージメント
  47. 47. 探索的テストだけでいい?
  48. 48. Exploratory Testing : : : 探索的テストだけでいい? もう全部探索的テストでいいんじゃないかな 探索的テストだけだと確認が漏れる可能性がある • 複雑な条件が必要な場所 • 様々な組み合わせが必要なテスト • 性能テスト テストケースや別のテスト手法と組み合わせてテスト設計を行おう 十分にトレーニングを受けたテスト担当者が行う必要がある 入社すぐのメンバーでは「学習」「設計」「実行」「分析」ができない 結果、同じ場所、しかも基本動作ばかり行っている可能性もある
  49. 49. おまけ
  50. 50. Exploratory Testing : : : おまけ 探索的テストの資料・参考資料 探索的テスト入門(井芹洋輝) https://www.slideshare.net/goyoki/ss-34292539 探索的テストって何ですか?アジャイル時代のソフトウェア(高橋寿一) http://jasst.jp/symposium/jasst14kyushu/pdf/S3.pdf 探索ってどういうこと?(中岫信) https://www.slideshare.net/tef-do/ss-78605206 Session-Based Test Management http://www.satisfice.com/sbtm/ 【書籍】知識ゼロから学ぶソフトウェアテスト(高橋寿一)
  51. 51. What is Exploratory Testing?

×