SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
探索的テスト入門	
2013/11/10 	
  テスト技術勉強会	
  
井芹 洋輝	
1
この講演について	
•  この講義は探索的テストの基礎知識の学習を目
的としています	
  
•  自己紹介	
  
– 井芹洋輝	
  
•  組み込みの開発・テストに従事	
  
•  テスト自動化研究会、TDD研究会などに従事	
  
2
目次	
•  1.	
  探索的テストの概要	
  
–  探索的テストとは	
  
–  探索的テストの定義	
  
–  探索的テストの歴史的経
緯	
  
–  探索的テストの適用領域	
  
–  探索的テストの位置づけ
についての注意点	
–  探索的テストのメリット・デ
メリット	
–  探索的テストの主な用途	
  
•  2.	
  探索的テストの基礎	
–  探索的テストの入出力	
–  探索的テストの実施者に
求められるもの	
–  探索的テストのスタイル	
–  探索的テストの進め方	
•  フリースタイルの探索的テ
スト	
•  テストチャータを用いる探
索的テスト	
•  テストチャータの例	
  
•  セッションベースドテスト	
–  探索的テストの自動化	
  
•  3.探索的テストの実践	
3
1.	
  探索的テストの概要	
4
1.1	
  探索的テストとは(概要)	
•  ソフトウェアテストのアプローチの一つ	
  
•  以下のアプローチを効率的に行う	
  
– テスト手順のスクリプト化を行わない	
  
– テスト実施者が主体となり、	
  
•  実施者の知見や思考	
  
•  事前の分析情報	
  
•  動かして得たフィードバック	
  
 を元に、テスト実施とテストの構築を並行実施する	
  
5
1.1	
  探索的テストとは(2つのパラダイム)	
6	
●探索的テスト	
  
	
  
・テスト手順のドキュメ
ント化を行わない	
  
	
  
	
  
・事前分析情報、実施
者の能力、動かして得
られたフィードバックな
どを活用して、テストの
構築と実施を並行的に
行う	
●スクリプトテスト	
  
	
  
・テスト設計を行い、事
前にテスト手順をドキュ
メント化する	
  
	
  
・テスト手順にしたがっ
てテストを実施する	
テスト手順の管理	
  
テスト実施	
  
1.2	
  探索的テストの定義	
•  標準的な定義確立の動きはあるが収束していな
い	
  
– “Exploratory	
  Tes9ng	
  Research	
  Summitなどで議論した
が収束しなかった”(Cem	
  Kaner)	
  
•  hFp://kaner.com/?p=46	
  
•  ただしおおまかに共通定義が形成されている	
  
7
1.2	
  探索的テストの定義(James	
  Bach)	
•  「Exploratory	
  tes9ng	
  is	
  simultaneous	
  learning,	
  test	
  
design,	
  and	
  test	
  execu9on.	
  」	
  
(探索的テストは、学習、テスト設計、テスト実行を
並行して実施するものだ)	
  
– James	
  Bach,	
  Exploratory	
  Tes9ng	
  Explained(v.1.3	
  
4/16/03)	
  
•  探索的テストの定義として引用されていることが
多い	
8
1.2	
  探索的テストの定義(Cem	
  Kaner)	
•  Exploratory	
  soRware	
  tes9ng	
  
–  is	
  a	
  style	
  of	
  soRware	
  tes9ng	
  
–  that	
  emphasizes	
  the	
  personal	
  freedom	
  and	
  responsibility	
  
–  of	
  the	
  individual	
  tester	
  
–  to	
  con9nually	
  op9mize	
  the	
  value	
  of	
  her	
  work	
  
–  by	
  trea9ng	
  	
  
•  test-­‐related	
  learning,	
  	
  
•  test	
  design,	
  	
  
•  test	
  execu9on,	
  and	
  
•  test	
  result	
  interpreta9on	
  
–  as	
  mutually	
  suppor9ve	
  ac9vi9es	
  
–  that	
  run	
  in	
  parallel	
  throughout	
  the	
  project.	
  
	
   	
  (Cem	
  Kaner,	
  A	
  Tutorial	
  in	
  Exploratory	
  Tes9ng)	
  
•  こちらも探索的テストの定義として引用されることが多い	
9
1.2	
  探索的テストの定義(Cem	
  Kaner)	
•  Exploratory	
  soRware	
  tes9ng	
  
–  is	
  a	
  style	
  of	
  soRware	
  tes9ng	
  
–  that	
  emphasizes	
  the	
  personal	
  freedom	
  and	
  responsibility	
  
–  of	
  the	
  individual	
  tester	
  
–  to	
  con9nually	
  op9mize	
  the	
  value	
  of	
  her	
  work	
  
–  by	
  trea9ng	
  	
  
•  test-­‐related	
  learning,	
  	
  
•  test	
  design,	
  	
  
•  test	
  execu9on,	
  and	
  
•  test	
  result	
  interpreta9on	
  
–  as	
  mutually	
  suppor9ve	
  ac9vi9es	
  
–  that	
  run	
  in	
  parallel	
  throughout	
  the	
  project.	
  
	
   	
  (Cem	
  Kaner,	
  A	
  Tutorial	
  in	
  Exploratory	
  Tes9ng)	
  
•  こちらも探索的テストの定義として引用されることが多い	
10	
●ソフトウェアテストのスタイル	
  
●テスター一人一人の自由意思
と責務に基づく	
  
●各々の価値に合わせて洗練さ
せていく	
  
●テスト関係の学習、テスト設計、
テスト実施、テスト結果の説明を
扱う	
  
●プロジェクトを通して並行実施さ
れる補完的な活動
1.3	
  探索的テストの歴史的経緯	
•  ソフトウェア開発初期	
  
–  探索的テストは一般的なテストアプローチ。ソフトウェア開発が始まっ
た初期から実施されてきた	
  
•  1980年代〜	
  
–  手順書に依存せずに分析やフィードバックを活用するアプローチとし
て、探索的テストという名前で概念を明確化する	
  
•  1983年にCem	
  Kanerが命名	
  
–  それまで探索的なアプローチとアドホックテストは区別されておらず。
知的なアプローチ(=探索的テスト)とそれ以外のアプローチを区別
するため、探索的テストという考え方を確立した	
  
•  1990年代後半〜	
  
–  専門の文献が整備され、テスト手法の一分野として確立する	
  
•  Ex)「Exploratory	
  SoRware	
  Tes9ng:	
  Tips,	
  Tricks,	
  Tours,	
  and	
  Techniques	
  to	
  
Guide	
  Test	
  Design」	
  
•  「How	
  to	
  Break	
  SoRware:	
  A	
  Prac9cal	
  Guide	
  to	
  Tes9ng」	
  
–  (いずれもJames	
  A.	
  WhiFaker)	
  
11
1.4	
  探索的テストの適用領域	
12	
• テスト設計・実装・実施が主な対象	
テストプロセス	
• どのテストレベルでも活用できる	
• システムテストなど上位のテストレベル
で主に活用される	
テストレベル	
• 多くのテストタイプで活用できる	
• ブラックボックステストで主に活用され
る。ただしそれ以外で活用できないわ
けではない	
テストタイプ
1.5	
  探索的テストの位置づけについての注意点	
•  アドホックテスト≠探索的テスト	
  
– 探索的テストの歴史的経緯の通り、	
  
知的でないアドホックテストは探索的テストではない 	
  
•  課題となるのは「探索的テストの生産性をどう高
めるか?」	
  
– 探索的テストの効果はやり方によって大きく変動する	
  
– 暗黙的・非明示的なものも含めて、探索的テストはす
でに多くの現場で実践されている	
  
– 多くの場面で課題となるのが、探索的テストの効果を
どう活かしていくか?/生産性をどう高めていくか?	
  
13
1.6	
  探索的テストのメリット・デメリット	
  
 スクリプトテストに対するメリット	
•  軽快	
  
–  テスト設計・実装コストを削減	
  
–  必要なところをピンポイントでテスト	
  
•  柔軟性が高い	
  
–  テスト手順の変更コストを削減	
  
–  実物に合わせながらテストを構築できる	
  
–  人間の知能を使って次のようなものにも柔軟に対応できる	
  
•  仕様やテスト設計の穴	
  
•  明文化しにくい操作や動作	
  
•  人間の能力を活用しやすい	
  
–  暗黙知や明文化しにくいノウハウを活用できる	
  
14	
欠陥検出での
高い生産性	
テストの保守コ
スト削減	
検出困難な欠
陥検出の実現
1.7	
  探索的テストのメリット・デメリット	
  
 スクリプトテストに対するデメリット	
•  属人性が高い	
  
–  人によって効果が変動する	
  
•  能力のない人間が担当するとアドホックテストと変わらなくなる	
  
•  テスト設計の品質がわかりにくい	
  
–  漏れ・だぶり・網羅率がわかりにくい	
  
–  テストの品質を保証しにくい	
  
•  記録が残りにくい	
  
–  テストのエビデンスや監査証跡の記録を保証しにくい	
  
–  テストの再現性を保証しにくい	
  
•  テスト設計段階でのバグの予防効果が低い場合がある 	
  
–  テスト分析・設計による問題検出効果が属人的	
15
1.8	
  探索的テストの主な用途	
•  他のテスト手法の補完	
  
– 最も多い用途	
  
– Ex)スクリプトテストの補完	
  
– Ex)テスト終了後の追加テスト	
  
•  テスト漏れの確認。不具合ではないが怪しい現象の調査	
  
•  軽快さの確保	
  
– Ex)スモークテストとしての実施	
  
•  長大なスクリプトテストの直前に実施。手戻りを防ぐ	
  
•  テストの保守コストの削減	
  
– Ex)反復開発でのイテレーションごとのテストとして実
施	
  
16
1.8	
  探索的テストの主な用途	
  
(スクリプトテストの補完)	
•  一般的に探索的テストとスクリプトテストは相互補完
の形で活用される	
  
•  テストケースの網羅度の補完	
  
–  詳細なスクリプトテストは高コスト	
  
•  テスト設計・実装コスト・変更対応コスト・保守コスト	
  
•  テストの効果がテストのコストに見合わなくなることがある	
  
–  保証のためのテストをスクリプトテストで構築しつつ、詳細
な欠陥検出のテストは探索的テストで補完する	
  
•  変化への対応	
  
–  スクリプトテストは変更コストが高い	
  
–  テストの変動部分は探索的テストで担保することで変更コ
ストを削減する	
  
17
2.	
  探索的テストの基礎	
18
2.1	
  探索的テストの入出力	
19	
探索的	
  
テスト	
●動かして得た
フィードバック	
  
Ex)怪しい動作	
  
	
  
●実施者の能力
や知見	
  
Ex)テスト技術、バグ
や品質リスクに対す
る考察力	
  
	
  
●事前分析結果	
  
Ex)対象の品質リスク、
機能構成、品質の偏
在度、テストチャータ	
  
インプット	
●不具合関連の
情報	
  
	
  
●テストログ	
  
	
  
●気づきや学習効
果	
  
アウトプット
2.2	
  探索的テストの実施者に求められるもの	
•  製品知識 	
  
– Ex)対象の構成がわかる/対象の弱点がわかる	
•  テスト技術 	
  
– Ex)テスト要求に応じて必要なテストのアプローチやテ
ストケースを柔軟に組み立てられる/各種テスト技術を
扱える	
•  バグの知識	
  
– 欠陥のBad	
  Smellを感覚的に感じ取れる/欠陥の特徴
を理解している/欠陥の傾向を柔軟に学習できる 	
20
2.3	
  探索的テストのスタイル	
  
(今回扱うもの)	
•  フリースタイルの探索的テスト	
  
•  テストチャータを用いる探索的テスト	
  
– Ex)シナリオベースドテスト	
  
•  セッションベースドテスト	
  
21	
管理の厳格さ
2.4	
  探索的テストの進め方	
•  手順 	
– 準備 	
•  計画・学習	
  
–  必要な能力・情報を特定し確保する 	
  
–  テスト目的やミッションを明確化する 	
  
•  設計	
  
–  テストチャータを確保する 	
– 実施 	
•  実施・学習・舵取り 	
– 報告 	
•  テスト実施結果を報告する	
  
•  テストの十分性を評価する	
  
22	
※探索的テストは様々な進め方がある。あくまで一例
2.5	
  探索的テストの進め方	
•  手順 	
– 準備 	
•  計画・学習	
  
–  必要な能力・情報を特定し確保する 	
  
–  テスト目的やミッションを明確化する 	
  
•  設計	
  
–  テストチャータを確保する 	
– 実施 	
•  実施・学習・舵取り 	
– 報告 	
•  テスト実施結果を報告する	
  
•  テストの十分性を評価する	
  
	
 23	
フリースタイルの探索的テスト	
・テストチャータを	
  
用いる探索的テスト	
  
・セッションベースドテスト	
  
※探索的テストは様々な進め方がある。あくまで一例
2.5.1	
  フリースタイルの探索的テスト	
•  フリースタイルの探索的テスト	
  
–  テスト実施者の責任に基づいて、自由意思により探索的
テストを実施する	
  
–  ソフトウェア開発では珍しくない。Bad	
  Smellや不安の調査、
デバッグなどを知的に行おうとすると、しばしばこのスタイ
ルとなる	
  
–  実施時の基本サイクル	
  
1.  実施	
  
–  テストを実施する	
  
2.  学習	
  
–  テスト結果から知見を得る	
  
3.  舵取り(Steering)	
  
–  学習結果も加味してテストの方向性を補正する	
  
24	
反復する
2.5.1	
  フリースタイルの探索的テスト	
•  フリースタイルの探索的テストの手順の例	
  
– 仮説検証型	
  
1.  システムについて仮説(メンタルモデル)を作る	
  
2.  仮説を反証するようなテストを設計する	
  
3.  テストを実行し結果を得る	
  
4.  仮説に反する結果を評価する	
  
•  仮説が証明されるか反証されるまで上記を繰り返す	
  
– 学習型	
  
1.  学習の対象やミッションを選ぶ	
  
2.  対象の動きを探索し、必要な知見を学習する	
  
	
   	
   	
   	
   	
  (リー・コープランド,「はじめて学ぶソフトウェアのテスト技法」)	
  
25
2.5.2	
  テストチャータを用いる探索的テスト	
•  テストの目的とテストチャータ	
  
– テストチャータを用いる探索的テストでは、準備段階で
テストの目的(or	
  ミッション or	
  テストのゴール)と、その
達成のためのテストチャータを用意する	
  
– テストの目的	
  
•  テストの実施で達成したい目的	
  
•  Ex)「XSSの脆弱性がないことを確認する」「ユーザマニュアル
と実際の動作が合致することを確認する」	
  
– テストチャータ	
  
•  テストの目的達成のための方針や目印	
  
•  抽象度の高いテストケース、機能リスト、リスクリスト等	
  
26
2.5.3テストチャータの例	
27	
テストの目的	
 テストチャータ	
 テストの進め方	
マニュアルとの合致性を確認
する	
マニュアル	
 ・マニュアルで説明される操作
に対して、探索的テストを実施	
  
・これをマニュアルの最初から
最後まで実施	
あるUIのセキュリティバグを検
出する	
一般的なセキュリティリ
スクや攻撃手法、典型
的バグをまとめたリスト	
・リストの各項目についてのバ
グがないか、順々に探索的テス
トを実施	
作りかけのあるテストケース
で、バグが検出されないことを
確認する	
  
	
テスト未実装の上位の
テストケース	
・テストケースごとにバグがない
か探索的テストを実施。テスト
実装は探索的に行う	
  
・これを上位のテストケース1つ
1つで実施	
  
ある変更でリグレッションが発
生していないことを確認する	
リグレッションのリスク
分析結果をまとめたリ
スクリスト	
・リスクリストの項目ごとにバグ
がないか、順々に探索的テスト
を実施	
  
・これを上位リスクを網羅するよ
うに実施する	
  
2.5.3	
  テストチャータの例(James	
  A.	
  WhiFaker)	
  
シナリオに基づいた探索的テスト	
•  探索的テストではシナリオをテストチャータとして活用する
手法がある	
  
–  James	
  A.	
  WhiFaker「Exploratory	
  SoRware	
  Tes9ng:	
  Tips,	
  Tricks,	
  
Tours,	
  and	
  Techniques	
  to	
  Guide	
  Test	
  Design」	
  
•  シナリオに基づく探索的テストは、スクリプトテストでのシナ
リオテストと異なるもの	
  
–  スクリプトテストでのシナリオ	
  
•  具体的なテスト手順	
  
–  探索的テストのシナリオ	
  
•  実施の方針や大まかな流れを示すものである。実施者の判断で手順を
派生させたり、気になった箇所を追加で深堀りしたりして良い	
  
•  形式としては最低限達成すべき手順やテスト条件、ベースとする手順
(実施中に派生させたり補強したりする)、上位のテストケース(テスト実
装は探索的に行う)など	
28
2.5.3	
  テストチャータの例(James	
  A.	
  WhiFaker)	
  
ランドマークツアーテスト	
•  ランドマークツアーテストはシナリオに基づく探索的テス
トの一つ	
  
–  James	
  A.	
  WhiFaker「Exploratory	
  SoRware	
  Tes9ng:	
  Tips,	
  Tricks,	
  
Tours,	
  and	
  Techniques	
  to	
  Guide	
  Test	
  Design」	
  
•  テスト対象の状態やイベントをランドマークとする。ランド
マークの網羅方針や遷移の網羅方針をテストチャータと
する	
29	
画面A	
画面B	
 画面C	
画面D	
 Ex)テストの方針	
  
探索的テストで、各ランド
マーク(例では画面)の遷移
をひと通り網羅する	
  
2.5.3	
  テストチャータの例(Explore	
  It!)	
  
Explore	
  Itのチャータフォーマット	
•  Given/When/Thenのシナリオフォーマットのように、形式的にテ
ストシナリオを記述し、それをテストチャータとする場合がある。	
  
ここでのチャータはセッションのタイムボックスに合わせて粒度
が調整される	
  
•  テストチャータテンプレートの例	
  
–  フォーマット(Elisabeth	
  Hendrickson「Explore	
  It!」)	
  
•  Explore	
  (target)	
  
•  with	
  (resources)	
  
•  to	
  discover	
  (informa9on)	
  
–  上記フォーマットの()の項目に以下の内容を記述する	
  
•  Target	
  
–  探索する対象	
  
•  Resources	
  
–  テストで使用するリソース。ツールや技術、データ等	
  
•  Informa9on	
  to	
  discover	
  
–  見つけるべきものについての情報。観点や特定のバグ、品質特性など	
  
30
2.5.3	
  テストチャータの例(Explore	
  It!)	
  
Explore	
  Itのチャータフォーマット	
•  テストチャータテンプレートの例	
  
– Target:	
  
•  Target	
  
–  アップデートシステム	
  
•  Resources	
  
–  指定のExploitを使用する	
  
•  Informa9on	
  to	
  discover	
  
–  フォーマットに違反する不正アップデートデータによるアップデート	
  
31
2.5.4	
  セッションベースドテスト	
•  セッションベースドテストは探索的テストから派生
した手法。タイムボックスを設けた探索的テスト	
  
– 探索的テストの実施単位として「セッション」を定義す
る	
  
•  セッションというタイムボックスでテストを構成する
ことで、探索的テストの計画管理や全体網羅性の
確認を容易にする	
  
32
2.5.4	
  セッションベースドテスト	
  
基礎用語	
•  セッション	
  
– 1時間弱から2時間程度のタイムボックス。各セッショ
ンはミッションとテストチャータを持つ。	
  
– セッションベースドテストでは、セッションを構成要素と
して、テストの設計・実施を行う	
  
•  テスト設計は、セッションで構成する。	
  
•  テスト設計では、テストの目的をセッションのミッション・テス
トチャータまでブレークダウンする	
  
•  テスト実施では、セッションの単位で計画や工数確保を行う	
  
•  ミッション	
  
– セッションで達成を目指すテストの目的	
33
2.5.4	
  セッションベースドテスト(進め方の例)	
•  計画・設計	
  
–  テストの目的を各セッションのミッション(=テストの目的)
にブレークダウンする。またセッションのミッションに応じた
テストチャータを作成する	
  
•  実施	
  
–  セッション単位でテストを実施する。	
  
–  セッションが指定する時間内で、セッションの示すテスト
チャータに従って探索的テストを実施し、セッションのミッ
ション達成を目指す	
  
•  報告	
  
–  指定の形式に従ってセッションレポートを作成する	
  
–  また各セッションの結果から、テストの全体網羅性などを
評価する	
34
2.6	
  探索的テストの自動化	
•  探索的テストのあらゆる作業にツールを活用でき
る余地がある。効率化のため、各作業をツールで
自動化するのが推奨されている	
  
•  探索的テストの様々な作業をコンピュータで支
援・代替させることは「探索的テストの自動化」と
呼称される	
  
– (Cem	
  Kaner,	
  A	
  Tutorial	
  in	
  Exploratory	
  Tes9ng)	
  
35
2.6	
  探索的テストの自動化	
•  探索的テストの作業支援ツールの例	
  
–  品質分析のためのツール	
  
•  静的解析ツール、レビュー支援ツール	
  
–  操作のツール	
  
•  キャプチャ&リプライツール、デバッガ、データジェネレータ、ファ
ジングツール	
  
–  記録のツール	
  
•  ロギングツール	
  
–  思考支援のためのツール	
  
•  マインドマップツール	
  
–  Cem	
  Kanerが挙げているもの	
  
•  Test	
  Explorer、BBTest	
  Assisntant、Atlas.9等	
  
36
3.	
  探索的テストの実践	
37
3.1	
  探索的テストの実施例	
  
スクリプトテストの補完	
1.  スクリプトテストを実施中に以下を留意事項とし
てリスト化していく	
  
– 期待値に反していないが不具合の可能性がある現象	
  
– テスト設計・実装の間違いや不足部分	
  
– その他調査が要因	
  
2.  上記リストをテストチャータとして、スクリプトテス
ト終了後に探索的テストを実施する	
  
38
3.2	
  探索的テストの実施例	
  
リスクベースドテスト	
•  品質リスクの分析を行う	
  
– 例えば開発者や要求定義者などを交えたブレストで
発生が予期されるバグをリストアップする	
  
– バグのリスクレベルを定義する	
  
•  上記リスクリストをテストチャータとし、リスクレベ
ルの高いものにフォーカスを当てて探索的テスト
を実施する	
39
まとめ	
•  1.	
  探索的テストの概要	
  
–  探索的テストとは	
  
–  探索的テストの定義	
  
–  探索的テストの歴史的経
緯	
  
–  探索的テストの適用領域	
  
–  探索的テストの位置づけ
についての注意点	
–  探索的テストのメリット・デ
メリット	
–  探索的テストの主な用途	
  
•  2.	
  探索的テストの基礎	
–  探索的テストの入出力	
–  探索的テストの実施者に
求められるもの	
–  探索的テストのスタイル	
–  探索的テストの進め方	
•  フリースタイルの探索的テ
スト	
•  テストチャータを用いる探
索的テスト	
•  テストチャータの例	
  
•  セッションベースドテスト	
–  探索的テストの自動化	
  
•  3.探索的テストの実践	
40

Weitere ähnliche Inhalte

Was ist angesagt?

テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacateテスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
Kinji Akemine
 
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
Hironori Washizaki
 

Was ist angesagt? (20)

テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacateテスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate
 
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
 
テスト分析についての説明資料公開用
テスト分析についての説明資料公開用テスト分析についての説明資料公開用
テスト分析についての説明資料公開用
 
テスコン優勝事例におけるテスト分析公開用
テスコン優勝事例におけるテスト分析公開用テスコン優勝事例におけるテスト分析公開用
テスコン優勝事例におけるテスト分析公開用
 
テスト計画の立て方 WACATE2019 夏
テスト計画の立て方 WACATE2019 夏テスト計画の立て方 WACATE2019 夏
テスト計画の立て方 WACATE2019 夏
 
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しようテスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
 
クラシフィケーション・ツリー法入門
クラシフィケーション・ツリー法入門クラシフィケーション・ツリー法入門
クラシフィケーション・ツリー法入門
 
私にとってのテスト
私にとってのテスト私にとってのテスト
私にとってのテスト
 
Wacate2018 winter jstqb-al-ta
Wacate2018 winter jstqb-al-taWacate2018 winter jstqb-al-ta
Wacate2018 winter jstqb-al-ta
 
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へパターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
パターン QA to AQ: 伝統的品質保証(Quality Assurance)からアジャイル品質(Agile Quality)へ
 
メトリクスによるソフトウェア品質評価・改善および製品品質実態
メトリクスによるソフトウェア品質評価・改善および製品品質実態メトリクスによるソフトウェア品質評価・改善および製品品質実態
メトリクスによるソフトウェア品質評価・改善および製品品質実態
 
Agile開発でのテストのやり方~私の場合~
Agile開発でのテストのやり方~私の場合~Agile開発でのテストのやり方~私の場合~
Agile開発でのテストのやり方~私の場合~
 
modern software qa - draft 1
modern software qa - draft 1modern software qa - draft 1
modern software qa - draft 1
 
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
メトリクスを用いたソフトウェア品質定量評価・改善 (GQM, Metrics, ET2013)
 
テストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornightテストエンジニアの品格 #automatornight
テストエンジニアの品格 #automatornight
 
Agile Quality アジャイル品質パターン (QA2AQ)
Agile Quality アジャイル品質パターン (QA2AQ)Agile Quality アジャイル品質パターン (QA2AQ)
Agile Quality アジャイル品質パターン (QA2AQ)
 
テスト分析.pptx
テスト分析.pptxテスト分析.pptx
テスト分析.pptx
 
アジャイル品質パターン (Agile Quality, QA2AQ)
アジャイル品質パターン (Agile Quality, QA2AQ)アジャイル品質パターン (Agile Quality, QA2AQ)
アジャイル品質パターン (Agile Quality, QA2AQ)
 
はじめてのソフトウェアテスト2019
はじめてのソフトウェアテスト2019はじめてのソフトウェアテスト2019
はじめてのソフトウェアテスト2019
 
LINE Developer Meetup in Tokyo #39 Presentation
LINE Developer Meetup in Tokyo #39 PresentationLINE Developer Meetup in Tokyo #39 Presentation
LINE Developer Meetup in Tokyo #39 Presentation
 

Ähnlich wie 探索的テスト入門

Rm20130410 1bkey
Rm20130410 1bkeyRm20130410 1bkey
Rm20130410 1bkey
youwatari
 
Continuous delivery chapter4
Continuous delivery chapter4Continuous delivery chapter4
Continuous delivery chapter4
favril1
 

Ähnlich wie 探索的テスト入門 (20)

レガシーコードとの付き合い方とテストでの話
レガシーコードとの付き合い方とテストでの話レガシーコードとの付き合い方とテストでの話
レガシーコードとの付き合い方とテストでの話
 
121012高度気道管理指導員養成コース ver.1.0.
121012高度気道管理指導員養成コース ver.1.0.121012高度気道管理指導員養成コース ver.1.0.
121012高度気道管理指導員養成コース ver.1.0.
 
SQiP研究会2014 ミニ講座「論文の書き方入門」 2014年11月7日
SQiP研究会2014 ミニ講座「論文の書き方入門」 2014年11月7日SQiP研究会2014 ミニ講座「論文の書き方入門」 2014年11月7日
SQiP研究会2014 ミニ講座「論文の書き方入門」 2014年11月7日
 
TDD Boot Camp Tokyo for C++ 2014-01 補講
TDD Boot Camp Tokyo for C++ 2014-01 補講TDD Boot Camp Tokyo for C++ 2014-01 補講
TDD Boot Camp Tokyo for C++ 2014-01 補講
 
Rm20140730 15key
Rm20140730 15keyRm20140730 15key
Rm20140730 15key
 
新しいコンピュータ支援語学学習態度尺度作成の試み:英語を学習する大学生を対象として
新しいコンピュータ支援語学学習態度尺度作成の試み:英語を学習する大学生を対象として新しいコンピュータ支援語学学習態度尺度作成の試み:英語を学習する大学生を対象として
新しいコンピュータ支援語学学習態度尺度作成の試み:英語を学習する大学生を対象として
 
2022リサーチ入門2リサーチ戦略と調査テーマの理解1
2022リサーチ入門2リサーチ戦略と調査テーマの理解12022リサーチ入門2リサーチ戦略と調査テーマの理解1
2022リサーチ入門2リサーチ戦略と調査テーマの理解1
 
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけてAgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
 
How to Develop Experiment-Oriented Programs
How to Develop Experiment-Oriented ProgramsHow to Develop Experiment-Oriented Programs
How to Develop Experiment-Oriented Programs
 
Rm20130410 1bkey
Rm20130410 1bkeyRm20130410 1bkey
Rm20130410 1bkey
 
Continuous delivery chapter4
Continuous delivery chapter4Continuous delivery chapter4
Continuous delivery chapter4
 
テスト設計・テストケース作成 グループ
テスト設計・テストケース作成 グループテスト設計・テストケース作成 グループ
テスト設計・テストケース作成 グループ
 
20160409_Validating Product Ideas_yukio yoshida_cp04
20160409_Validating Product Ideas_yukio yoshida_cp0420160409_Validating Product Ideas_yukio yoshida_cp04
20160409_Validating Product Ideas_yukio yoshida_cp04
 
品質保証を体験しよう
品質保証を体験しよう品質保証を体験しよう
品質保証を体験しよう
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!
 
Rm20140716 13key
Rm20140716 13keyRm20140716 13key
Rm20140716 13key
 
WACATE2018冬 45分で講師になれそうな気になるASTERセミナー標準テキスト #wacate
WACATE2018冬 45分で講師になれそうな気になるASTERセミナー標準テキスト #wacateWACATE2018冬 45分で講師になれそうな気になるASTERセミナー標準テキスト #wacate
WACATE2018冬 45分で講師になれそうな気になるASTERセミナー標準テキスト #wacate
 
外国語教育研究におけるRを用いた統計処理入門
外国語教育研究におけるRを用いた統計処理入門外国語教育研究におけるRを用いた統計処理入門
外国語教育研究におけるRを用いた統計処理入門
 
リバースモデリングを用いたテスト観点標準化の取り組み
リバースモデリングを用いたテスト観点標準化の取り組みリバースモデリングを用いたテスト観点標準化の取り組み
リバースモデリングを用いたテスト観点標準化の取り組み
 
ソフトウェアテスト入門
ソフトウェアテスト入門ソフトウェアテスト入門
ソフトウェアテスト入門
 

Kürzlich hochgeladen

Kürzlich hochgeladen (11)

LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

探索的テスト入門

  • 2. この講演について •  この講義は探索的テストの基礎知識の学習を目 的としています   •  自己紹介   – 井芹洋輝   •  組み込みの開発・テストに従事   •  テスト自動化研究会、TDD研究会などに従事   2
  • 3. 目次 •  1.  探索的テストの概要   –  探索的テストとは   –  探索的テストの定義   –  探索的テストの歴史的経 緯   –  探索的テストの適用領域   –  探索的テストの位置づけ についての注意点 –  探索的テストのメリット・デ メリット –  探索的テストの主な用途   •  2.  探索的テストの基礎 –  探索的テストの入出力 –  探索的テストの実施者に 求められるもの –  探索的テストのスタイル –  探索的テストの進め方 •  フリースタイルの探索的テ スト •  テストチャータを用いる探 索的テスト •  テストチャータの例   •  セッションベースドテスト –  探索的テストの自動化   •  3.探索的テストの実践 3
  • 5. 1.1  探索的テストとは(概要) •  ソフトウェアテストのアプローチの一つ   •  以下のアプローチを効率的に行う   – テスト手順のスクリプト化を行わない   – テスト実施者が主体となり、   •  実施者の知見や思考   •  事前の分析情報   •  動かして得たフィードバック    を元に、テスト実施とテストの構築を並行実施する   5
  • 6. 1.1  探索的テストとは(2つのパラダイム) 6 ●探索的テスト     ・テスト手順のドキュメ ント化を行わない       ・事前分析情報、実施 者の能力、動かして得 られたフィードバックな どを活用して、テストの 構築と実施を並行的に 行う ●スクリプトテスト     ・テスト設計を行い、事 前にテスト手順をドキュ メント化する     ・テスト手順にしたがっ てテストを実施する テスト手順の管理   テスト実施  
  • 7. 1.2  探索的テストの定義 •  標準的な定義確立の動きはあるが収束していな い   – “Exploratory  Tes9ng  Research  Summitなどで議論した が収束しなかった”(Cem  Kaner)   •  hFp://kaner.com/?p=46   •  ただしおおまかに共通定義が形成されている   7
  • 8. 1.2  探索的テストの定義(James  Bach) •  「Exploratory  tes9ng  is  simultaneous  learning,  test   design,  and  test  execu9on.  」   (探索的テストは、学習、テスト設計、テスト実行を 並行して実施するものだ)   – James  Bach,  Exploratory  Tes9ng  Explained(v.1.3   4/16/03)   •  探索的テストの定義として引用されていることが 多い 8
  • 9. 1.2  探索的テストの定義(Cem  Kaner) •  Exploratory  soRware  tes9ng   –  is  a  style  of  soRware  tes9ng   –  that  emphasizes  the  personal  freedom  and  responsibility   –  of  the  individual  tester   –  to  con9nually  op9mize  the  value  of  her  work   –  by  trea9ng     •  test-­‐related  learning,     •  test  design,     •  test  execu9on,  and   •  test  result  interpreta9on   –  as  mutually  suppor9ve  ac9vi9es   –  that  run  in  parallel  throughout  the  project.      (Cem  Kaner,  A  Tutorial  in  Exploratory  Tes9ng)   •  こちらも探索的テストの定義として引用されることが多い 9
  • 10. 1.2  探索的テストの定義(Cem  Kaner) •  Exploratory  soRware  tes9ng   –  is  a  style  of  soRware  tes9ng   –  that  emphasizes  the  personal  freedom  and  responsibility   –  of  the  individual  tester   –  to  con9nually  op9mize  the  value  of  her  work   –  by  trea9ng     •  test-­‐related  learning,     •  test  design,     •  test  execu9on,  and   •  test  result  interpreta9on   –  as  mutually  suppor9ve  ac9vi9es   –  that  run  in  parallel  throughout  the  project.      (Cem  Kaner,  A  Tutorial  in  Exploratory  Tes9ng)   •  こちらも探索的テストの定義として引用されることが多い 10 ●ソフトウェアテストのスタイル   ●テスター一人一人の自由意思 と責務に基づく   ●各々の価値に合わせて洗練さ せていく   ●テスト関係の学習、テスト設計、 テスト実施、テスト結果の説明を 扱う   ●プロジェクトを通して並行実施さ れる補完的な活動
  • 11. 1.3  探索的テストの歴史的経緯 •  ソフトウェア開発初期   –  探索的テストは一般的なテストアプローチ。ソフトウェア開発が始まっ た初期から実施されてきた   •  1980年代〜   –  手順書に依存せずに分析やフィードバックを活用するアプローチとし て、探索的テストという名前で概念を明確化する   •  1983年にCem  Kanerが命名   –  それまで探索的なアプローチとアドホックテストは区別されておらず。 知的なアプローチ(=探索的テスト)とそれ以外のアプローチを区別 するため、探索的テストという考え方を確立した   •  1990年代後半〜   –  専門の文献が整備され、テスト手法の一分野として確立する   •  Ex)「Exploratory  SoRware  Tes9ng:  Tips,  Tricks,  Tours,  and  Techniques  to   Guide  Test  Design」   •  「How  to  Break  SoRware:  A  Prac9cal  Guide  to  Tes9ng」   –  (いずれもJames  A.  WhiFaker)   11
  • 13. 1.5  探索的テストの位置づけについての注意点 •  アドホックテスト≠探索的テスト   – 探索的テストの歴史的経緯の通り、   知的でないアドホックテストは探索的テストではない   •  課題となるのは「探索的テストの生産性をどう高 めるか?」   – 探索的テストの効果はやり方によって大きく変動する   – 暗黙的・非明示的なものも含めて、探索的テストはす でに多くの現場で実践されている   – 多くの場面で課題となるのが、探索的テストの効果を どう活かしていくか?/生産性をどう高めていくか?   13
  • 14. 1.6  探索的テストのメリット・デメリット    スクリプトテストに対するメリット •  軽快   –  テスト設計・実装コストを削減   –  必要なところをピンポイントでテスト   •  柔軟性が高い   –  テスト手順の変更コストを削減   –  実物に合わせながらテストを構築できる   –  人間の知能を使って次のようなものにも柔軟に対応できる   •  仕様やテスト設計の穴   •  明文化しにくい操作や動作   •  人間の能力を活用しやすい   –  暗黙知や明文化しにくいノウハウを活用できる   14 欠陥検出での 高い生産性 テストの保守コ スト削減 検出困難な欠 陥検出の実現
  • 15. 1.7  探索的テストのメリット・デメリット    スクリプトテストに対するデメリット •  属人性が高い   –  人によって効果が変動する   •  能力のない人間が担当するとアドホックテストと変わらなくなる   •  テスト設計の品質がわかりにくい   –  漏れ・だぶり・網羅率がわかりにくい   –  テストの品質を保証しにくい   •  記録が残りにくい   –  テストのエビデンスや監査証跡の記録を保証しにくい   –  テストの再現性を保証しにくい   •  テスト設計段階でのバグの予防効果が低い場合がある   –  テスト分析・設計による問題検出効果が属人的 15
  • 16. 1.8  探索的テストの主な用途 •  他のテスト手法の補完   – 最も多い用途   – Ex)スクリプトテストの補完   – Ex)テスト終了後の追加テスト   •  テスト漏れの確認。不具合ではないが怪しい現象の調査   •  軽快さの確保   – Ex)スモークテストとしての実施   •  長大なスクリプトテストの直前に実施。手戻りを防ぐ   •  テストの保守コストの削減   – Ex)反復開発でのイテレーションごとのテストとして実 施   16
  • 17. 1.8  探索的テストの主な用途   (スクリプトテストの補完) •  一般的に探索的テストとスクリプトテストは相互補完 の形で活用される   •  テストケースの網羅度の補完   –  詳細なスクリプトテストは高コスト   •  テスト設計・実装コスト・変更対応コスト・保守コスト   •  テストの効果がテストのコストに見合わなくなることがある   –  保証のためのテストをスクリプトテストで構築しつつ、詳細 な欠陥検出のテストは探索的テストで補完する   •  変化への対応   –  スクリプトテストは変更コストが高い   –  テストの変動部分は探索的テストで担保することで変更コ ストを削減する   17
  • 19. 2.1  探索的テストの入出力 19 探索的   テスト ●動かして得た フィードバック   Ex)怪しい動作     ●実施者の能力 や知見   Ex)テスト技術、バグ や品質リスクに対す る考察力     ●事前分析結果   Ex)対象の品質リスク、 機能構成、品質の偏 在度、テストチャータ   インプット ●不具合関連の 情報     ●テストログ     ●気づきや学習効 果   アウトプット
  • 20. 2.2  探索的テストの実施者に求められるもの •  製品知識   – Ex)対象の構成がわかる/対象の弱点がわかる •  テスト技術   – Ex)テスト要求に応じて必要なテストのアプローチやテ ストケースを柔軟に組み立てられる/各種テスト技術を 扱える •  バグの知識   – 欠陥のBad  Smellを感覚的に感じ取れる/欠陥の特徴 を理解している/欠陥の傾向を柔軟に学習できる 20
  • 21. 2.3  探索的テストのスタイル   (今回扱うもの) •  フリースタイルの探索的テスト   •  テストチャータを用いる探索的テスト   – Ex)シナリオベースドテスト   •  セッションベースドテスト   21 管理の厳格さ
  • 22. 2.4  探索的テストの進め方 •  手順 – 準備 •  計画・学習   –  必要な能力・情報を特定し確保する   –  テスト目的やミッションを明確化する   •  設計   –  テストチャータを確保する – 実施 •  実施・学習・舵取り – 報告 •  テスト実施結果を報告する   •  テストの十分性を評価する   22 ※探索的テストは様々な進め方がある。あくまで一例
  • 23. 2.5  探索的テストの進め方 •  手順 – 準備 •  計画・学習   –  必要な能力・情報を特定し確保する   –  テスト目的やミッションを明確化する   •  設計   –  テストチャータを確保する – 実施 •  実施・学習・舵取り – 報告 •  テスト実施結果を報告する   •  テストの十分性を評価する   23 フリースタイルの探索的テスト ・テストチャータを   用いる探索的テスト   ・セッションベースドテスト   ※探索的テストは様々な進め方がある。あくまで一例
  • 24. 2.5.1  フリースタイルの探索的テスト •  フリースタイルの探索的テスト   –  テスト実施者の責任に基づいて、自由意思により探索的 テストを実施する   –  ソフトウェア開発では珍しくない。Bad  Smellや不安の調査、 デバッグなどを知的に行おうとすると、しばしばこのスタイ ルとなる   –  実施時の基本サイクル   1.  実施   –  テストを実施する   2.  学習   –  テスト結果から知見を得る   3.  舵取り(Steering)   –  学習結果も加味してテストの方向性を補正する   24 反復する
  • 25. 2.5.1  フリースタイルの探索的テスト •  フリースタイルの探索的テストの手順の例   – 仮説検証型   1.  システムについて仮説(メンタルモデル)を作る   2.  仮説を反証するようなテストを設計する   3.  テストを実行し結果を得る   4.  仮説に反する結果を評価する   •  仮説が証明されるか反証されるまで上記を繰り返す   – 学習型   1.  学習の対象やミッションを選ぶ   2.  対象の動きを探索し、必要な知見を学習する            (リー・コープランド,「はじめて学ぶソフトウェアのテスト技法」)   25
  • 26. 2.5.2  テストチャータを用いる探索的テスト •  テストの目的とテストチャータ   – テストチャータを用いる探索的テストでは、準備段階で テストの目的(or  ミッション or  テストのゴール)と、その 達成のためのテストチャータを用意する   – テストの目的   •  テストの実施で達成したい目的   •  Ex)「XSSの脆弱性がないことを確認する」「ユーザマニュアル と実際の動作が合致することを確認する」   – テストチャータ   •  テストの目的達成のための方針や目印   •  抽象度の高いテストケース、機能リスト、リスクリスト等   26
  • 27. 2.5.3テストチャータの例 27 テストの目的 テストチャータ テストの進め方 マニュアルとの合致性を確認 する マニュアル ・マニュアルで説明される操作 に対して、探索的テストを実施   ・これをマニュアルの最初から 最後まで実施 あるUIのセキュリティバグを検 出する 一般的なセキュリティリ スクや攻撃手法、典型 的バグをまとめたリスト ・リストの各項目についてのバ グがないか、順々に探索的テス トを実施 作りかけのあるテストケース で、バグが検出されないことを 確認する   テスト未実装の上位の テストケース ・テストケースごとにバグがない か探索的テストを実施。テスト 実装は探索的に行う   ・これを上位のテストケース1つ 1つで実施   ある変更でリグレッションが発 生していないことを確認する リグレッションのリスク 分析結果をまとめたリ スクリスト ・リスクリストの項目ごとにバグ がないか、順々に探索的テスト を実施   ・これを上位リスクを網羅するよ うに実施する  
  • 28. 2.5.3  テストチャータの例(James  A.  WhiFaker)   シナリオに基づいた探索的テスト •  探索的テストではシナリオをテストチャータとして活用する 手法がある   –  James  A.  WhiFaker「Exploratory  SoRware  Tes9ng:  Tips,  Tricks,   Tours,  and  Techniques  to  Guide  Test  Design」   •  シナリオに基づく探索的テストは、スクリプトテストでのシナ リオテストと異なるもの   –  スクリプトテストでのシナリオ   •  具体的なテスト手順   –  探索的テストのシナリオ   •  実施の方針や大まかな流れを示すものである。実施者の判断で手順を 派生させたり、気になった箇所を追加で深堀りしたりして良い   •  形式としては最低限達成すべき手順やテスト条件、ベースとする手順 (実施中に派生させたり補強したりする)、上位のテストケース(テスト実 装は探索的に行う)など 28
  • 29. 2.5.3  テストチャータの例(James  A.  WhiFaker)   ランドマークツアーテスト •  ランドマークツアーテストはシナリオに基づく探索的テス トの一つ   –  James  A.  WhiFaker「Exploratory  SoRware  Tes9ng:  Tips,  Tricks,   Tours,  and  Techniques  to  Guide  Test  Design」   •  テスト対象の状態やイベントをランドマークとする。ランド マークの網羅方針や遷移の網羅方針をテストチャータと する 29 画面A 画面B 画面C 画面D Ex)テストの方針   探索的テストで、各ランド マーク(例では画面)の遷移 をひと通り網羅する  
  • 30. 2.5.3  テストチャータの例(Explore  It!)   Explore  Itのチャータフォーマット •  Given/When/Thenのシナリオフォーマットのように、形式的にテ ストシナリオを記述し、それをテストチャータとする場合がある。   ここでのチャータはセッションのタイムボックスに合わせて粒度 が調整される   •  テストチャータテンプレートの例   –  フォーマット(Elisabeth  Hendrickson「Explore  It!」)   •  Explore  (target)   •  with  (resources)   •  to  discover  (informa9on)   –  上記フォーマットの()の項目に以下の内容を記述する   •  Target   –  探索する対象   •  Resources   –  テストで使用するリソース。ツールや技術、データ等   •  Informa9on  to  discover   –  見つけるべきものについての情報。観点や特定のバグ、品質特性など   30
  • 31. 2.5.3  テストチャータの例(Explore  It!)   Explore  Itのチャータフォーマット •  テストチャータテンプレートの例   – Target:   •  Target   –  アップデートシステム   •  Resources   –  指定のExploitを使用する   •  Informa9on  to  discover   –  フォーマットに違反する不正アップデートデータによるアップデート   31
  • 32. 2.5.4  セッションベースドテスト •  セッションベースドテストは探索的テストから派生 した手法。タイムボックスを設けた探索的テスト   – 探索的テストの実施単位として「セッション」を定義す る   •  セッションというタイムボックスでテストを構成する ことで、探索的テストの計画管理や全体網羅性の 確認を容易にする   32
  • 33. 2.5.4  セッションベースドテスト   基礎用語 •  セッション   – 1時間弱から2時間程度のタイムボックス。各セッショ ンはミッションとテストチャータを持つ。   – セッションベースドテストでは、セッションを構成要素と して、テストの設計・実施を行う   •  テスト設計は、セッションで構成する。   •  テスト設計では、テストの目的をセッションのミッション・テス トチャータまでブレークダウンする   •  テスト実施では、セッションの単位で計画や工数確保を行う   •  ミッション   – セッションで達成を目指すテストの目的 33
  • 34. 2.5.4  セッションベースドテスト(進め方の例) •  計画・設計   –  テストの目的を各セッションのミッション(=テストの目的) にブレークダウンする。またセッションのミッションに応じた テストチャータを作成する   •  実施   –  セッション単位でテストを実施する。   –  セッションが指定する時間内で、セッションの示すテスト チャータに従って探索的テストを実施し、セッションのミッ ション達成を目指す   •  報告   –  指定の形式に従ってセッションレポートを作成する   –  また各セッションの結果から、テストの全体網羅性などを 評価する 34
  • 35. 2.6  探索的テストの自動化 •  探索的テストのあらゆる作業にツールを活用でき る余地がある。効率化のため、各作業をツールで 自動化するのが推奨されている   •  探索的テストの様々な作業をコンピュータで支 援・代替させることは「探索的テストの自動化」と 呼称される   – (Cem  Kaner,  A  Tutorial  in  Exploratory  Tes9ng)   35
  • 36. 2.6  探索的テストの自動化 •  探索的テストの作業支援ツールの例   –  品質分析のためのツール   •  静的解析ツール、レビュー支援ツール   –  操作のツール   •  キャプチャ&リプライツール、デバッガ、データジェネレータ、ファ ジングツール   –  記録のツール   •  ロギングツール   –  思考支援のためのツール   •  マインドマップツール   –  Cem  Kanerが挙げているもの   •  Test  Explorer、BBTest  Assisntant、Atlas.9等   36
  • 38. 3.1  探索的テストの実施例   スクリプトテストの補完 1.  スクリプトテストを実施中に以下を留意事項とし てリスト化していく   – 期待値に反していないが不具合の可能性がある現象   – テスト設計・実装の間違いや不足部分   – その他調査が要因   2.  上記リストをテストチャータとして、スクリプトテス ト終了後に探索的テストを実施する   38
  • 39. 3.2  探索的テストの実施例   リスクベースドテスト •  品質リスクの分析を行う   – 例えば開発者や要求定義者などを交えたブレストで 発生が予期されるバグをリストアップする   – バグのリスクレベルを定義する   •  上記リスクリストをテストチャータとし、リスクレベ ルの高いものにフォーカスを当てて探索的テスト を実施する 39
  • 40. まとめ •  1.  探索的テストの概要   –  探索的テストとは   –  探索的テストの定義   –  探索的テストの歴史的経 緯   –  探索的テストの適用領域   –  探索的テストの位置づけ についての注意点 –  探索的テストのメリット・デ メリット –  探索的テストの主な用途   •  2.  探索的テストの基礎 –  探索的テストの入出力 –  探索的テストの実施者に 求められるもの –  探索的テストのスタイル –  探索的テストの進め方 •  フリースタイルの探索的テ スト •  テストチャータを用いる探 索的テスト •  テストチャータの例   •  セッションベースドテスト –  探索的テストの自動化   •  3.探索的テストの実践 40