探索的テスト入門

H Iseri
H IseriSoftware Developer at none
探索的テスト入門	
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
1 of 40

Recommended

探索的テストはじめの一歩 #wacate by
探索的テストはじめの一歩 #wacate探索的テストはじめの一歩 #wacate
探索的テストはじめの一歩 #wacateToshiyuki Kawanishi
14K views39 slides
テスト観点に基づくテスト開発方法論 VSTePの概要 by
テスト観点に基づくテスト開発方法論VSTePの概要テスト観点に基づくテスト開発方法論VSTePの概要
テスト観点に基づくテスト開発方法論 VSTePの概要Yasuharu Nishi
9.6K views69 slides
LINE Developer Meetup in Tokyo #39 Presentation (modified) by
LINE Developer Meetup in Tokyo #39 Presentation (modified)LINE Developer Meetup in Tokyo #39 Presentation (modified)
LINE Developer Meetup in Tokyo #39 Presentation (modified)Yasuharu Nishi
5.3K views90 slides
概説 テスト分析 by
概説 テスト分析概説 テスト分析
概説 テスト分析崇 山﨑
31.7K views51 slides
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証 by
QAアーキテクチャの設計による説明責任の高いテスト・品質保証QAアーキテクチャの設計による説明責任の高いテスト・品質保証
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証Yasuharu Nishi
24.9K views95 slides
テスト計画の立て方 WACATE2019 夏 by
テスト計画の立て方 WACATE2019 夏テスト計画の立て方 WACATE2019 夏
テスト計画の立て方 WACATE2019 夏Naoki Nakano
5.3K views37 slides

More Related Content

What's hot

APIテスト自動化とテストピラミッド by
APIテスト自動化とテストピラミッドAPIテスト自動化とテストピラミッド
APIテスト自動化とテストピラミッド友隆 浅黄
14.6K views19 slides
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版) by
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)Yasuharu Nishi
20.2K views17 slides
シナリオテストについて考えてみる by
シナリオテストについて考えてみるシナリオテストについて考えてみる
シナリオテストについて考えてみるtef-do
8.8K views41 slides
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜 by
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜Tetsuya Kouno
7.2K views63 slides
組み合わせテストの落とし穴〜有則と無則〜 by
組み合わせテストの落とし穴〜有則と無則〜組み合わせテストの落とし穴〜有則と無則〜
組み合わせテストの落とし穴〜有則と無則〜yufu yufu
5.3K views38 slides
ソフトウェアの品質保証の基礎とこれから by
ソフトウェアの品質保証の基礎とこれからソフトウェアの品質保証の基礎とこれから
ソフトウェアの品質保証の基礎とこれからYasuharu Nishi
21.9K views209 slides

What's hot(20)

APIテスト自動化とテストピラミッド by 友隆 浅黄
APIテスト自動化とテストピラミッドAPIテスト自動化とテストピラミッド
APIテスト自動化とテストピラミッド
友隆 浅黄14.6K views
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版) by Yasuharu Nishi
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi20.2K views
シナリオテストについて考えてみる by tef-do
シナリオテストについて考えてみるシナリオテストについて考えてみる
シナリオテストについて考えてみる
tef-do8.8K views
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜 by Tetsuya Kouno
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
Tetsuya Kouno7.2K views
組み合わせテストの落とし穴〜有則と無則〜 by yufu yufu
組み合わせテストの落とし穴〜有則と無則〜組み合わせテストの落とし穴〜有則と無則〜
組み合わせテストの落とし穴〜有則と無則〜
yufu yufu5.3K views
ソフトウェアの品質保証の基礎とこれから by Yasuharu Nishi
ソフトウェアの品質保証の基礎とこれからソフトウェアの品質保証の基礎とこれから
ソフトウェアの品質保証の基礎とこれから
Yasuharu Nishi21.9K views
modern software qa - draft 1 by Yasuharu Nishi
modern software qa - draft 1modern software qa - draft 1
modern software qa - draft 1
Yasuharu Nishi3.7K views
Software-company Transformation by Yasuharu Nishi
Software-company TransformationSoftware-company Transformation
Software-company Transformation
Yasuharu Nishi918 views
Software Frontloading and QA by Yasuharu Nishi
Software Frontloading and QASoftware Frontloading and QA
Software Frontloading and QA
Yasuharu Nishi7.3K views
Re-collection of embedded software qa in the last decade by Yasuharu Nishi
Re-collection of embedded software qa in the last decadeRe-collection of embedded software qa in the last decade
Re-collection of embedded software qa in the last decade
Yasuharu Nishi5.3K views
テストプロセス改善モデルの最新動向 by 崇 山﨑
テストプロセス改善モデルの最新動向テストプロセス改善モデルの最新動向
テストプロセス改善モデルの最新動向
崇 山﨑6.7K views
Agile開発でのテストのやり方~私の場合~ by Mineo Matsuya
Agile開発でのテストのやり方~私の場合~Agile開発でのテストのやり方~私の場合~
Agile開発でのテストのやり方~私の場合~
Mineo Matsuya3.1K views
テスト分析.pptx by kauji0522
テスト分析.pptxテスト分析.pptx
テスト分析.pptx
kauji0522705 views
幅広なテスト分析ができるようになろう by scarletplover
幅広なテスト分析ができるようになろう幅広なテスト分析ができるようになろう
幅広なテスト分析ができるようになろう
scarletplover4.2K views
組み込み開発でのシステムテスト自動化の一つの考え方(STAC) by H Iseri
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
組み込み開発でのシステムテスト自動化の一つの考え方(STAC)
H Iseri34.8K views
自動テストの誤解とアンチパターン in 楽天 Tech Talk by kyon mm
自動テストの誤解とアンチパターン in 楽天 Tech Talk自動テストの誤解とアンチパターン in 楽天 Tech Talk
自動テストの誤解とアンチパターン in 楽天 Tech Talk
kyon mm31.7K views
3 Amigosの考え方で、独立したQAチームがアジャイルテストチームになるまでの話 by Koichiro Takashima
3 Amigosの考え方で、独立したQAチームがアジャイルテストチームになるまでの話3 Amigosの考え方で、独立したQAチームがアジャイルテストチームになるまでの話
3 Amigosの考え方で、独立したQAチームがアジャイルテストチームになるまでの話
自動テストの品質とテストパターン by Toru Koido
自動テストの品質とテストパターン自動テストの品質とテストパターン
自動テストの品質とテストパターン
Toru Koido9.7K views

Similar to 探索的テスト入門

レガシーコードとの付き合い方とテストでの話 by
レガシーコードとの付き合い方とテストでの話レガシーコードとの付き合い方とテストでの話
レガシーコードとの付き合い方とテストでの話H Iseri
27.3K views33 slides
121012高度気道管理指導員養成コース ver.1.0. by
121012高度気道管理指導員養成コース ver.1.0.121012高度気道管理指導員養成コース ver.1.0.
121012高度気道管理指導員養成コース ver.1.0.Ikegami Keiichi
334 views12 slides
SQiP研究会2014 ミニ講座「論文の書き方入門」 2014年11月7日 by
SQiP研究会2014 ミニ講座「論文の書き方入門」 2014年11月7日SQiP研究会2014 ミニ講座「論文の書き方入門」 2014年11月7日
SQiP研究会2014 ミニ講座「論文の書き方入門」 2014年11月7日Hironori Washizaki
21K views30 slides
TDD Boot Camp Tokyo for C++ 2014-01 補講 by
TDD Boot Camp Tokyo for C++ 2014-01 補講TDD Boot Camp Tokyo for C++ 2014-01 補講
TDD Boot Camp Tokyo for C++ 2014-01 補講Takashi Imagire
2.3K views33 slides
Rm20140730 15key by
Rm20140730 15keyRm20140730 15key
Rm20140730 15keyyouwatari
497 views27 slides
新しいコンピュータ支援語学学習態度尺度作成の試み:英語を学習する大学生を対象として by
新しいコンピュータ支援語学学習態度尺度作成の試み:英語を学習する大学生を対象として新しいコンピュータ支援語学学習態度尺度作成の試み:英語を学習する大学生を対象として
新しいコンピュータ支援語学学習態度尺度作成の試み:英語を学習する大学生を対象としてYusaku Kawaguchi
3.6K views49 slides

Similar to 探索的テスト入門(20)

レガシーコードとの付き合い方とテストでの話 by H Iseri
レガシーコードとの付き合い方とテストでの話レガシーコードとの付き合い方とテストでの話
レガシーコードとの付き合い方とテストでの話
H Iseri27.3K views
121012高度気道管理指導員養成コース ver.1.0. by Ikegami Keiichi
121012高度気道管理指導員養成コース ver.1.0.121012高度気道管理指導員養成コース ver.1.0.
121012高度気道管理指導員養成コース ver.1.0.
Ikegami Keiichi334 views
SQiP研究会2014 ミニ講座「論文の書き方入門」 2014年11月7日 by Hironori Washizaki
SQiP研究会2014 ミニ講座「論文の書き方入門」 2014年11月7日SQiP研究会2014 ミニ講座「論文の書き方入門」 2014年11月7日
SQiP研究会2014 ミニ講座「論文の書き方入門」 2014年11月7日
Hironori Washizaki21K views
TDD Boot Camp Tokyo for C++ 2014-01 補講 by Takashi Imagire
TDD Boot Camp Tokyo for C++ 2014-01 補講TDD Boot Camp Tokyo for C++ 2014-01 補講
TDD Boot Camp Tokyo for C++ 2014-01 補講
Takashi Imagire2.3K views
Rm20140730 15key by youwatari
Rm20140730 15keyRm20140730 15key
Rm20140730 15key
youwatari497 views
新しいコンピュータ支援語学学習態度尺度作成の試み:英語を学習する大学生を対象として by Yusaku Kawaguchi
新しいコンピュータ支援語学学習態度尺度作成の試み:英語を学習する大学生を対象として新しいコンピュータ支援語学学習態度尺度作成の試み:英語を学習する大学生を対象として
新しいコンピュータ支援語学学習態度尺度作成の試み:英語を学習する大学生を対象として
Yusaku Kawaguchi3.6K views
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて by Shuji Morisaki
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけてAgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
AgileTourOsaka2011 関係者に理解してもらえるアジャイル開発にむけて
Shuji Morisaki1.6K views
How to Develop Experiment-Oriented Programs by Kenta Oono
How to Develop Experiment-Oriented ProgramsHow to Develop Experiment-Oriented Programs
How to Develop Experiment-Oriented Programs
Kenta Oono3.8K views
Rm20130410 1bkey by youwatari
Rm20130410 1bkeyRm20130410 1bkey
Rm20130410 1bkey
youwatari444 views
Continuous delivery chapter4 by favril1
Continuous delivery chapter4Continuous delivery chapter4
Continuous delivery chapter4
favril1536 views
テスト設計・テストケース作成 グループ by Tomoaki Fukura
テスト設計・テストケース作成 グループテスト設計・テストケース作成 グループ
テスト設計・テストケース作成 グループ
Tomoaki Fukura1.5K views
品質保証を体験しよう by Cy1DayCy1Day
品質保証を体験しよう品質保証を体験しよう
品質保証を体験しよう
Cy1DayCy1Day292 views
Rm20140716 13key by youwatari
Rm20140716 13keyRm20140716 13key
Rm20140716 13key
youwatari562 views
WACATE2018冬 45分で講師になれそうな気になるASTERセミナー標準テキスト #wacate by Kinji Akemine
WACATE2018冬 45分で講師になれそうな気になるASTERセミナー標準テキスト #wacateWACATE2018冬 45分で講師になれそうな気になるASTERセミナー標準テキスト #wacate
WACATE2018冬 45分で講師になれそうな気になるASTERセミナー標準テキスト #wacate
Kinji Akemine3.4K views
外国語教育研究におけるRを用いた統計処理入門 by Yusaku Kawaguchi
外国語教育研究におけるRを用いた統計処理入門外国語教育研究におけるRを用いた統計処理入門
外国語教育研究におけるRを用いた統計処理入門
Yusaku Kawaguchi1.5K views
リバースモデリングを用いたテスト観点標準化の取り組み by NaokiKashiwagura
リバースモデリングを用いたテスト観点標準化の取り組みリバースモデリングを用いたテスト観点標準化の取り組み
リバースモデリングを用いたテスト観点標準化の取り組み
NaokiKashiwagura544 views
Rm20130417 2bkey by youwatari
Rm20130417 2bkeyRm20130417 2bkey
Rm20130417 2bkey
youwatari615 views

Recently uploaded

Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向 by
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向
Keycloakの全体像: 基本概念、ユースケース、そして最新の開発動向Hitachi, Ltd. OSS Solution Center.
89 views26 slides
Windows 11 information that can be used at the development site by
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development siteAtomu Hidaka
90 views41 slides
SNMPセキュリティ超入門 by
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門mkoda
453 views15 slides
定例会スライド_キャチs 公開用.pdf by
定例会スライド_キャチs 公開用.pdf定例会スライド_キャチs 公開用.pdf
定例会スライド_キャチs 公開用.pdfKeio Robotics Association
132 views64 slides
SSH応用編_20231129.pdf by
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdficebreaker4
380 views13 slides

Recently uploaded(12)

Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka90 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda453 views
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4380 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.76 views
光コラボは契約してはいけない by Takuya Matsunaga
光コラボは契約してはいけない光コラボは契約してはいけない
光コラボは契約してはいけない
Takuya Matsunaga25 views
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」 by PC Cluster Consortium
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
PCCC23:東京大学情報基盤センター 「Society5.0の実現を目指す『計算・データ・学習』の融合による革新的スーパーコンピューティング」
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」 by PC Cluster Consortium
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」

探索的テスト入門

  • 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