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.
「探索的テストを探索してみよう!」
-Explore Exploratory Testing都築 将夫(TEF東海)
本日の流れ
(1)自己紹介
15:05~15:15
(2)探索的テストとは?
15:15~15:25
(3)JaSST'12東海SIGでの気付き 15:25~15:45
(4)探索的テストに必要な要素 15:45~16:45
(5)探索的テスト...
自己紹介
•業務歴
– 開発課:7.5年間(0.5年間は兼務) テスト担当
– 第3者検証課:1.5年間~(現在) テストリーダ担当

•主な業務
– 組み込み機器のF/Wテスト管理&担当

•社外活動

– 2010年春から、TEF東海(※)...
本SIGの目標
•JaSST'13東海のタイトル、
「Beyond The Testing
~その殻を壊せ!もっと先へ~」
ということで…

(1)みなさんで「場当たり的テスト」から脱却しよう!
(2)みなさんで「探索的テストの要素」を探索しよ...
(1)自己紹介
•お名前
•ご所属(差し支えない範囲でOKです)
•開発現場での得意技
•本SIGに参加した理由
•探索的テストのイメージ

2013/11/15

JaSST'13 Tokai SIG

5
(2)探索的テストとは? -定義•JSTQB:ソフトウェアテスト標準用語集
– 非公式なテスト設計技法の一つ。
– テストを実施する過程で、
テスト担当者がテスト実施情報を活用しながら
テスト設計をコントロールし、
積極的に質の高い新しいテスト...
(2)探索的テストとは? -定義•SQuBOK:ソフトウェア品質知識体系

– テスト対象に関して「適切な振舞い仮説」を作り、
動作させながらテスト設計、テスト実行を
同時並行的に行うテスト。
– 指示書がある「チャーター付き探索的テスト」では...
(2)探索的テストとは? -定義•Exploratory Testing Explained (satisfice.com)の
記事によると
– 「学習/テスト設計/テスト実行を同時に行うこと」
– 「テスターが新しいテスト設計やより良いテスト...
(2)探索的テストとは?-私の定義•下記要素を踏まえた進化型テストアプローチ

1. 過去プロジェクト&類似プロジェクトの
「テスト実施結果」「インシデントレポート」
「市場不具合」等、ありとあらゆる情報を収集。
2. テスト対象の「弱点」「教...
(3)JaSST'12東海SIGでの気付き
1.情報源
2.ふりかえり内容
3.○○が多い/○○な傾向
4.観察
5.推測
6.教訓
7.○○をやってみた

2013/11/15

JaSST'13 Tokai SIG

10
(3)JaSST'12東海SIGでの気付き
1.情報源
下記7点の情報を地道に収集し、開発の
コンテキスト(背景)を把握。
①
②
③
④
⑤
⑥
⑦

ソフトウェア設計書レビューの指摘リスト
ソフトウェア設計者同士の質問メモ
外部仕様書の更新...
(3)JaSST'12東海SIGでの気付き
2.ふりかえり内容
<開発側>
①
②
③
④
⑤

市場不具合関連ドキュメントの不具合発生原因
反省会(ふりかえり)資料 or ホワイトボード資料
インシデントレポートの設計見直し内容
開発者と愚痴...
(3)JaSST'12東海SIGでの気付き
2.ふりかえり内容
<テスト側>
① テストケースで不足した or 無かった要素(条件等)
② 過去のテストケースで、
テスト実施内容が解釈によって分かれるもの
③ コピー&ペースト&モディファイなテ...
(3)JaSST'12東海SIGでの気付き
3.○○が多い/○○な傾向
① 仕様書の備考欄に記述されている割に、
実は重要な仕様
② 仕様書の説明が複雑な機能
③ 1機能を複数の部署 or 会社で設計した
モジュール
④ 特定の設計者の癖(関数...
(3)JaSST'12東海SIGでの気付き
4.観察
① テスト対象の表示値やLED等の出力の変化
② 仕様書の変更頻度
③ 仕様書の更新時間帯(特に深夜)
④ 設計者席の雑踏度(問い合わせ頻度)
⑤ 設計レビューで揉めた機能 or キーワード...
(3)JaSST'12東海SIGでの気付き
5.推測
① 設計書が無い状態で外部から内部処理を推測
② 過去の不具合が多発するモジュールの挙動
③ 入力や外乱の候補(ノイズ、誤操作)
④ 開発メンバーがミスしやすいタスク
⑤ 不具合現象から引き...
(3)JaSST'12東海SIGでの気付き
6.教訓
① ふりかえりで次回プロジェクトへの取り組み
② ベテラン技術者の経験談(失敗したこと)
③ 開発でよく失敗する処理に関わる機能
④ 表示系デバイスの連打入力
⑤ 市場不具合の再発防止策

...
(3)JaSST'12東海SIGでの気付き
7.○○をやってみた
① 自分がやったことのない操作
② 操作手順をポンチ絵で検討
③ エラーメッセージから検討した
異常な一連の操作(運用ミス)
④ エラー解消に至る操作
(トラブルシューティング)...
(4)探索的テストに必要な要素
•これまでの話やみなさまのプロジェクトで
苦労した経験を踏まえ、

『探索的テストに必要な要素』
を検討してみよう!

2013/11/15

JaSST'13 Tokai SIG

19
(4)探索的テストに必要な要素

•これまでの話やJaSST'13東海での気付き、
みなさまの豊富なプロジェクトの経験を踏まえ、
探索的テストに必要な要素を形にしよう!
– テストチャータ(探索的テストのガイドライン)を
テンプレートとして、探...
(4)探索的テストに必要な要素
•テストチャータ(探索的テストのガイドライン)
<探索目的>
What
Where
When

<テスト対象の探索ポイント>
入力
出力
内部処理
2013/11/15

気になる事/関心事
JaSST'13 T...
(4)探索的テストに必要な要素(一例)
•テストチャータ(探索的テストのガイドライン)
<探索目的>
What
Where
When
頻繁な仕様変更 テストが手薄 仕様書最終版
<テスト対象の探索ポイント>
入力
出力
やったことが無い操作

...
(5)探索的テストの5要素
1.
2.
3.
4.
5.

製品探索
テスト設計
テスト実行
経験則によるテスト
レビュー可能な結果

2013/11/15

JaSST'13 Tokai SIG

23
(5)探索的テストの5要素
1.製品探索
•潜在的な不安定領域とデータ処理の型、
製品の目的と機能を発見し、記録する。
– 潜在的な不安定領域
•既存の製品なら、市場クレームの情報。

– データ処理の型
•構造体の予約領域

– 製品の目的や...
(5)探索的テストの5要素
2.テスト設計
•製品の操作、観察、価値の戦略を決める。
– 製品の操作と観察
•どのように使用するのか?
•どのような動きをするのか?

– 製品の価値
•製品があるとうれしいこと
•製品がなかったら困ること

2...
(5)探索的テストの5要素
3.テスト実行
•どのように製品が動作するかについて
(1)仮説からの情報を利用し、
(2)振る舞いを観測し、
(3)製品を操作する。

2013/11/15

JaSST'13 Tokai SIG

26
(5)探索的テストの5要素
4.経験則によるテスト
•経験則は、どう実施かを決めることを手助けする
経験的常識またはガイドライン。
(1)経験的常識
– 産業機械など
電源用ランプが消灯状態でボタンを押下後、電源ON。

– エレベータ

[↑...
(5)探索的テストの5要素
5.見直し可能な結果
•探索的テストは、結果指向プロセスである。
– スクリプトテスト実施後の結果をベースに
探索的テストで何をテスト実施するのか決める。
– 探索的テスト実施後の結果から次テストで
何のテストを実施...
(6)まとめ
•探索的テストに必要な要素を検討してみた。
•普段の開発現場で感じたことや気付いたことを
メモして、メンバーで共有しつつまとめると、
何の目的で何を探索してテストを実施するか、
整理できる。
•探索的テストを通じて、製品を深く知り...
参考文献
•Exploratory Testing Explained (Satisfice, Inc)
– http://www.satisfice.com/articles/et-article.pdf

•General Function...
Upcoming SlideShare
Loading in …5
×

探索的テストを探索する

6,648 views

Published on

JaSST'13東海 SIG資料

Published in: Technology
  • Be the first to comment

探索的テストを探索する

  1. 1. 「探索的テストを探索してみよう!」 -Explore Exploratory Testing都築 将夫(TEF東海)
  2. 2. 本日の流れ (1)自己紹介 15:05~15:15 (2)探索的テストとは? 15:15~15:25 (3)JaSST'12東海SIGでの気付き 15:25~15:45 (4)探索的テストに必要な要素 15:45~16:45 (5)探索的テストの5要素 16:45~17:00 (6)まとめ 17:00~17:05 2013/11/15 JaSST'13 Tokai SIG 2
  3. 3. 自己紹介 •業務歴 – 開発課:7.5年間(0.5年間は兼務) テスト担当 – 第3者検証課:1.5年間~(現在) テストリーダ担当 •主な業務 – 組み込み機器のF/Wテスト管理&担当 •社外活動 – 2010年春から、TEF東海(※)の勉強会で活動中。 また、TEF東海合宿を企画&運営など、諸々活動中。 ※Testing Engineer's Forum: ソフトウェアテスト技術者交流会の地方部会 → 詳細は、 swtest.jp を参照下さい。 2013/11/15 JaSST'13 Tokai SIG 3
  4. 4. 本SIGの目標 •JaSST'13東海のタイトル、 「Beyond The Testing ~その殻を壊せ!もっと先へ~」 ということで… (1)みなさんで「場当たり的テスト」から脱却しよう! (2)みなさんで「探索的テストの要素」を探索しよう! (3)みなさんと「工夫駆動テスト設計」で探求しよう! 『既存の殻を壊して、次なる時代を開拓するがね!』 2013/11/15 JaSST'13 Tokai SIG 4
  5. 5. (1)自己紹介 •お名前 •ご所属(差し支えない範囲でOKです) •開発現場での得意技 •本SIGに参加した理由 •探索的テストのイメージ 2013/11/15 JaSST'13 Tokai SIG 5
  6. 6. (2)探索的テストとは? -定義•JSTQB:ソフトウェアテスト標準用語集 – 非公式なテスト設計技法の一つ。 – テストを実施する過程で、 テスト担当者がテスト実施情報を活用しながら テスト設計をコントロールし、 積極的に質の高い新しいテストケースを設計する。 [After Bach] 2013/11/15 JaSST'13 Tokai SIG 6
  7. 7. (2)探索的テストとは? -定義•SQuBOK:ソフトウェア品質知識体系 – テスト対象に関して「適切な振舞い仮説」を作り、 動作させながらテスト設計、テスト実行を 同時並行的に行うテスト。 – 指示書がある「チャーター付き探索的テスト」では、 テストの戦術や、リスク、行うべきことの ガイドラインが示される。 2013/11/15 JaSST'13 Tokai SIG 7
  8. 8. (2)探索的テストとは? -定義•Exploratory Testing Explained (satisfice.com)の 記事によると – 「学習/テスト設計/テスト実行を同時に行うこと」 – 「テスターが新しいテスト設計やより良いテストを 実行して得られた情報を利用して実行することで、 活発に制御する範囲でテストすること。」 – 「探索的テスト」という専門用語は、 Cem Kanerの"Testing Computer Software"という書籍で、 主に非スクリプトテスト(※)を含むプロセスと 教えやすい実務で開発することを手始めに考えた。 ※既に記述されているテスト順序通りに実行するテスト方法 2013/11/15 JaSST'13 Tokai SIG 8
  9. 9. (2)探索的テストとは?-私の定義•下記要素を踏まえた進化型テストアプローチ 1. 過去プロジェクト&類似プロジェクトの 「テスト実施結果」「インシデントレポート」 「市場不具合」等、ありとあらゆる情報を収集。 2. テスト対象の「弱点」「教訓」「変化」の要素を抽出し、 テストチャータ(指示書、ガイドライン)として利用。 3. テストチャータを用いたテスト実行結果から、 次に実施するテストケースを検討し、 テストチャーターを動的に変化。 4. テスト実施結果やメンバーからの開発情報を積み重ねつつ、 学習しながらテストを実行。 2013/11/15 JaSST'13 Tokai SIG 9
  10. 10. (3)JaSST'12東海SIGでの気付き 1.情報源 2.ふりかえり内容 3.○○が多い/○○な傾向 4.観察 5.推測 6.教訓 7.○○をやってみた 2013/11/15 JaSST'13 Tokai SIG 10
  11. 11. (3)JaSST'12東海SIGでの気付き 1.情報源 下記7点の情報を地道に収集し、開発の コンテキスト(背景)を把握。 ① ② ③ ④ ⑤ ⑥ ⑦ ソフトウェア設計書レビューの指摘リスト ソフトウェア設計者同士の質問メモ 外部仕様書の更新(変更/追加/削除)部分 開発者の過去の設計資料 製品の市場不具合関連ドキュメント 開発で気になるキーワードのメモ インシデントレポートの不具合発生原因 2013/11/15 JaSST'13 Tokai SIG 11
  12. 12. (3)JaSST'12東海SIGでの気付き 2.ふりかえり内容 <開発側> ① ② ③ ④ ⑤ 市場不具合関連ドキュメントの不具合発生原因 反省会(ふりかえり)資料 or ホワイトボード資料 インシデントレポートの設計見直し内容 開発者と愚痴を含んだ過去の立ち話 レビューで極端に指摘が多い or 少ない機能や モジュール 2013/11/15 JaSST'13 Tokai SIG 12
  13. 13. (3)JaSST'12東海SIGでの気付き 2.ふりかえり内容 <テスト側> ① テストケースで不足した or 無かった要素(条件等) ② 過去のテストケースで、 テスト実施内容が解釈によって分かれるもの ③ コピー&ペースト&モディファイなテストケース ④ インシデントレポートで多く指摘した機能 ⑤ 網羅的に実施しなかったテストケース 2013/11/15 JaSST'13 Tokai SIG 13
  14. 14. (3)JaSST'12東海SIGでの気付き 3.○○が多い/○○な傾向 ① 仕様書の備考欄に記述されている割に、 実は重要な仕様 ② 仕様書の説明が複雑な機能 ③ 1機能を複数の部署 or 会社で設計した モジュール ④ 特定の設計者の癖(関数名の間違いなど) ⑤ 関数名や機能名が類似しているところ ⑥ 出力が不安定になりやすい機能 2013/11/15 JaSST'13 Tokai SIG 14
  15. 15. (3)JaSST'12東海SIGでの気付き 4.観察 ① テスト対象の表示値やLED等の出力の変化 ② 仕様書の変更頻度 ③ 仕様書の更新時間帯(特に深夜) ④ 設計者席の雑踏度(問い合わせ頻度) ⑤ 設計レビューで揉めた機能 or キーワード ⑥ 設計レビューで何度もを実施している機能 2013/11/15 JaSST'13 Tokai SIG 15
  16. 16. (3)JaSST'12東海SIGでの気付き 5.推測 ① 設計書が無い状態で外部から内部処理を推測 ② 過去の不具合が多発するモジュールの挙動 ③ 入力や外乱の候補(ノイズ、誤操作) ④ 開発メンバーがミスしやすいタスク ⑤ 不具合現象から引き起こす損害(失敗事例) 2013/11/15 JaSST'13 Tokai SIG 16
  17. 17. (3)JaSST'12東海SIGでの気付き 6.教訓 ① ふりかえりで次回プロジェクトへの取り組み ② ベテラン技術者の経験談(失敗したこと) ③ 開発でよく失敗する処理に関わる機能 ④ 表示系デバイスの連打入力 ⑤ 市場不具合の再発防止策 2013/11/15 JaSST'13 Tokai SIG 17
  18. 18. (3)JaSST'12東海SIGでの気付き 7.○○をやってみた ① 自分がやったことのない操作 ② 操作手順をポンチ絵で検討 ③ エラーメッセージから検討した 異常な一連の操作(運用ミス) ④ エラー解消に至る操作 (トラブルシューティング) ⑤ テスト実行に関わる要素(操作や条件)の 組み合わせ 2013/11/15 JaSST'13 Tokai SIG 18
  19. 19. (4)探索的テストに必要な要素 •これまでの話やみなさまのプロジェクトで 苦労した経験を踏まえ、 『探索的テストに必要な要素』 を検討してみよう! 2013/11/15 JaSST'13 Tokai SIG 19
  20. 20. (4)探索的テストに必要な要素 •これまでの話やJaSST'13東海での気付き、 みなさまの豊富なプロジェクトの経験を踏まえ、 探索的テストに必要な要素を形にしよう! – テストチャータ(探索的テストのガイドライン)を テンプレートとして、探索的テストに必要な要素を 付箋に書き入れてみよう。[15分] – みなさんで考えたテストチャータを共有し、 知見と知見の化学変化を起こしてみよう! [10分] 2013/11/15 JaSST'13 Tokai SIG 20
  21. 21. (4)探索的テストに必要な要素 •テストチャータ(探索的テストのガイドライン) <探索目的> What Where When <テスト対象の探索ポイント> 入力 出力 内部処理 2013/11/15 気になる事/関心事 JaSST'13 Tokai SIG 21
  22. 22. (4)探索的テストに必要な要素(一例) •テストチャータ(探索的テストのガイドライン) <探索目的> What Where When 頻繁な仕様変更 テストが手薄 仕様書最終版 <テスト対象の探索ポイント> 入力 出力 やったことが無い操作 出力が不安定な値 内部処理 気になる事/関心事 レビューで揉めた機能 頻繁にテスト失敗した機能 2013/11/15 JaSST'13 Tokai SIG 22
  23. 23. (5)探索的テストの5要素 1. 2. 3. 4. 5. 製品探索 テスト設計 テスト実行 経験則によるテスト レビュー可能な結果 2013/11/15 JaSST'13 Tokai SIG 23
  24. 24. (5)探索的テストの5要素 1.製品探索 •潜在的な不安定領域とデータ処理の型、 製品の目的と機能を発見し、記録する。 – 潜在的な不安定領域 •既存の製品なら、市場クレームの情報。 – データ処理の型 •構造体の予約領域 – 製品の目的や機能 •何のために製品を利用しているのか? •製品が動作することで、何が変化するのか? 2013/11/15 JaSST'13 Tokai SIG 24
  25. 25. (5)探索的テストの5要素 2.テスト設計 •製品の操作、観察、価値の戦略を決める。 – 製品の操作と観察 •どのように使用するのか? •どのような動きをするのか? – 製品の価値 •製品があるとうれしいこと •製品がなかったら困ること 2013/11/15 JaSST'13 Tokai SIG 25
  26. 26. (5)探索的テストの5要素 3.テスト実行 •どのように製品が動作するかについて (1)仮説からの情報を利用し、 (2)振る舞いを観測し、 (3)製品を操作する。 2013/11/15 JaSST'13 Tokai SIG 26
  27. 27. (5)探索的テストの5要素 4.経験則によるテスト •経験則は、どう実施かを決めることを手助けする 経験的常識またはガイドライン。 (1)経験的常識 – 産業機械など 電源用ランプが消灯状態でボタンを押下後、電源ON。 – エレベータ [↑]ボタンを押下すると、下の階から上昇したカゴが停止。 (2)ガイドライン – 社内開発規約「MISRA Cの規約に沿って実装すること。」 2013/11/15 JaSST'13 Tokai SIG 27
  28. 28. (5)探索的テストの5要素 5.見直し可能な結果 •探索的テストは、結果指向プロセスである。 – スクリプトテスト実施後の結果をベースに 探索的テストで何をテスト実施するのか決める。 – 探索的テスト実施後の結果から次テストで 何のテストを実施するのかを決める。 •要求の特定を見つける成果物を作り出す。 – 特に、レビュー可能で保証するため、 正当化できるテスト結果が重要。 2013/11/15 JaSST'13 Tokai SIG 28
  29. 29. (6)まとめ •探索的テストに必要な要素を検討してみた。 •普段の開発現場で感じたことや気付いたことを メモして、メンバーで共有しつつまとめると、 何の目的で何を探索してテストを実施するか、 整理できる。 •探索的テストを通じて、製品を深く知り、 これからの製品作りをどのように進めるか、 提言してみよう! 2013/11/15 JaSST'13 Tokai SIG 29
  30. 30. 参考文献 •Exploratory Testing Explained (Satisfice, Inc) – http://www.satisfice.com/articles/et-article.pdf •General Functionality and Stability Test Procedure(James Bach) – http://www.satisfice.com/tools/procedure.pdf •A Tutorial in Exploratory Testing(Cem Kaner) – http://kaner.com/pdfs/QAIExploring.pdf 2013/11/15 JaSST'13 Tokai SIG 30

×