JaSST'18 Hokkaido

複数人で「パーティ」を組んで探索的テストを行った実例
日本ナレッジ 札幌事業所
山本 涼平

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

1目次【序詞】はじめに【第一章】 背景【第二章】 課題と施策【第三章】 施策を適用した実例【第四章】 得られた効果【第五章】 今後の課題・展望

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

2

自己紹介
◼ 氏名：山本 涼平（やまもと りょうへい）◼ 所属：日本ナレッジ株式会社 札幌事業所◼ 経歴
業務経験 4年（2014～）
スマートフォン向けソフトウェアのテスト担当として従事。
主にテスト設計、実行管理を担当。
取得資格
・IT検証技術者認定試験(IVEC)
・JSTQB認定テスト技術者資格

2018/09/07

Level 4AL TM/TA

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

3

はじめに
◼ 探索的テストとは？
ISTQBテスト技術者資格制度
Advanced Level シラバス テストアナリスト Version2012.J01「探索的テストには、テスト担当者がプロダクトとその欠陥の学習、完了すべきテスト作業の計画、テストの設計と実行、および結果の報告を同時に行うという特徴がある。テスト担当者は、テスト実行時にテスト目標を動的に調整し、軽量のドキュメントのみを準備する」◼ 探索的テストの理想
不具合の発生しそうな箇所を予測し、テストを考えながら実行するという特性から、高いスキルを持つ担当者(Skilled Tester)が理想「ドメイン知識」「欠陥に関する知識」「テスト設計技術」 etc

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

4

はじめに
◼ 理想と現実
探索的テストで期待される効果を得るためにはテスト実行担当者のスキルが必要となるが、現実として十分なスキルを持つ実行担当者は少ない
特に第三者検証では、経験豊富な担当者やスキルの高い担当者は実行管理やテスト設計を行い、テスト実行をBP担当者に依頼していることが多い
理想はテスト設計を担当しているスキルの高い担当者が実施したいが、現場の実状としてはスキルの低いテスト担当者に任せざるを得ない

この問題を解決するためスキルを持つ担当者「Skilled Tester」とスキルの低い実行担当者「Unskilled Tester」とで両者の問題点を補うパーティで探索的テストを行った事例を紹介する

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

5

【第一章】 背景

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

6プロジェクト概要◼ 概要
・スマートフォン(Android)向けアプリケーション
・年2回の定期開発と数回の追加開発が行われる
・初回リリースから5年間、継続的な開発が行われている◼ テストについて
・第三者検証としてシステムテスト～受け入れテストを担当
・対象プロジェクトの複数ラインのテスト、他プロジェクトのテストが並走しており、設計や実行のスケジュールがタイト
・実行管理とテスト設計を行う担当者と、テスト実行を行う担当者に分かれている

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

7

探索的テスト導入の経緯◼ テストケースで検出できない不具合を見つけたい
・テストケースで見逃した、機能境界などの不具合を検出したい・ユーザ視点やビジネス視点の問題点を検出したい
・タイミングや高負荷など、対象の弱点の不具合を狙いたい◼ Agile対応のための早くて柔軟なテストが必要
・工期が短く、テストケース作成が間に合わない・仕様変更が頻発するため、柔軟なテストを行いたい
・時間区切りのセッションであれば実行時間を見積もりやすい
上記の目的から、探索的テストを導入することとなった
しかし前述の通りSkilled Testerはテスト実行に参加できず、初回の探索的テストの導入は失敗に終わった

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

8

失敗例◼ 実施方法・縦軸を機能、横軸を観点としてテストチャータを作成
・3.0人日の工数で時間区切りのセッションとして実施
・Unskilled Tester二人がチャータを元にテストを実行し、Skilled Testerが検出されたインシデントを精査して最終報告を行う
テスト種別
観点
詳細観点例

機能性
手順バリエーション
連続操作

同時操作

ユーザビリティ
環境

理解性

OSや設定状態による直感的に操作可能か異常が発生しないか ヘルプが分かりやすいか

統一性

レスポンス

画面表示、文言に ユーザ視点でレスポン
統一性があるか

スにストレスがないか

画面表示
要件A

画面遷移
通信処理
*****

要件B

*****
*****
*****

要件C

*****
*****

テストチャータ例
縦軸は開発内容や不具合改修から機能を分類して記載
2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

9

失敗例
◼ 結果
○：テストケースでは検出できなかった問題を検出できた→タイミング依存、限定的な遷移パターンなど

×：インシデントから、Skilled Testerが振る舞いをイメージできない→検出したインシデント報告の記載が荒く、実際に動作を見られていないことが原因
Skilled Tester側での精査時に再確認が必要となり、二度手間が発生した

×：機能的な問題は検出できたが、ビジネス視点・ユーザ視点の検出が少ない→機能の開発目的や実運用上の利用シーンが想定できていない

×：テスト対象の振る舞いから、動的に対象機能・観点の調整ができていない
×：テスターのスキルの違いにより、同じ機能・観点でも問題を検出できないケースがある

×：実際に不具合が潜む領域と異なる機能・観点・手順に時間を掛けすぎた→Unskilled Testerが問題の潜む機能・観点を推測できていない
Skilled Testerが作成したチャータで誘導できていない
2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

10

見つかった課題◼ Skilled Testerの関わり方
・管理、設計、他プロジェクトの担当でテスト実行ができない・プロダクトに触れる機会が少なく、報告された動作をイメージできない
・現状のテストチャータでは Unskilled Tester をサポートできていない◼ Unskilled Testerのスキル不足
・開発内容の目的や、実運用のケースを想定できない
・テスト対象の振る舞いやインシデントから次のアクションに繋げられない・スキルのばらつきにより問題検出に差がある
・不具合の推測ができず、問題が潜む領域を外してしまう

上記の課題を解消できる方法の検討が必要

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

11

【第二章】 課題と施策

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

12

やり方を考えてみる◼ 失敗例の課題から
課題
SkilledTester

実行管理、テスト設計作業で実行の時間が取れない

自分で実施する時間はないが、Unskilled

実際にプロダクトに触れる機会が少なく、インシデンTesterのインシデント報告を詳細化する

トをイメージできないと実行時間が削られてしまう

開発目的・実運用を想定できず、ビジネス視点・ユー
ザ視点のインシデントを検出できない
Unskilled テスト対象の動作やインシデントから、次のアクショスキル・知識不足が原因だが、一朝一夕

Testerで解決できる問題ではない

ンを動的に調整できない
テスターのスキルの違いにより、同じ機能・観点でも問題を検出できないケースがある

両方

不具合の潜む領域を推測できず、異なる機能・観点・

Unskilled Testerのスキル不足

手順に時間を掛けすぎていた

チャータで誘導できていない

複数人で実施している点を活かし、それぞれの役割・スキルを活かしたパーティを組んで、不足している部分を補うことができないか
2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

13

問題に対する改善策◼ 改善策①
テスト対象機能・観点を示し、Unskilled Testerのスキル不足を補う
・Skilled Testerがテストチャータに重要度・優先度が分かるように実施観点の例を記載し、テスト設計技術と不具合推測の補助を行う
テスト種別
観点要件A

機能性
手順バリエーション

詳細観点例

連続操作

画面表示

○○を連続操作

画面遷移

した際に～

同時操作

ユーザビリティ
環境

理解性

OSや設定状態による直感的に操作可能か異常が発生しないか ヘルプが分かりやすいか

統一性

レスポンス

画面表示、文言に ユーザ視点でレスポン
統一性があるか

スにストレスがないか

通信処理

要件B

*****

複数のキー押下*****時の動作で～

画面遷移に統一性があるか

*****

要件C

*****

△△機能をONにして*****も正しく動作するか

違和感はないか*****観点例をチャータ内に記載
重要度・優先度が高い機能・観点を色付け

2018/09/07

画面表示や遷移速度にポイントが視認しやすく、Unskilled Testerの補助だけでなく、要望元との観点レビューにも有効

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

14

問題に対する改善策◼ 改善策②Skilled Testerにテスト実行結果・インシデントを報告し、確認した振る舞いや問題点をフィードバックする・テスト結果やインシデントをチャータに直接記載し、その内容や分布から次のアクションを打ち合わせする
テスト種別
観点
詳細観点例

機能性
手順バリエーション
連続操作

環境
OSや設定状態による同時操作

異常が発生しないか【実施者B】
過去OS上で、最新OS画面表示と同等の表示となることを確認

要件A

チャータに記載することで、確認を行った領域やインシデント検出が多い範囲を可視化し、次のアクションを考えやすくする【実施者A】

画面遷移○○ボタンと△△ボタンの同時押下で異常終了が発生■インシデント管理番号:1

通信処理

確認した手順、検出したインシデントの概要をチャータ内に記載する
手順は簡素化し、実行時間を圧迫しないように配慮

2018/09/07

Skilled Testerがイメージできなかった内容・動作をチャータへの記載と口頭でのフィードバックを行うことで、最終報告時の確認の手間が省ける

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

15

問題に対する改善策◼ 改善策③
パーティ内で共通認識を持ちながら役割分担する・打ち合わせで重要度や優先度の高い機能・観点を議論する
・機能性の欠陥推測だけでなく、ビジネス視点・ユーザ視点の観点を共有
今回の開発のビジネス的な意図はXXXのため、機能Aの△△は重要度が高い

xxxを目的としているなら、チャータには観点例がないけど□□も見たほうがよいのでは？

テスト種別
観点詳細観点例

機能性
手順バリエーション
連続操作

同時操作

環境
OSや設定状態による異常が発生しないか【実施者B】
過去OS上で、最新OS

画面表示

前日のインシデントの傾向から、○○の観点で他機能も確認しておきたいと同等の表示となることを確認

要件A【実施者A】

画面遷移○○ボタンと△△ボタンの同時押下で異常終了が発生■インシデント管理番号:1

昨日の感じだと、インシデント数は多くないけど△△の観点も怪しい感じがした

通信処理

・Unskilled Testerのスキルに合わせて実施する範囲を分担する
相談の結果、今日は・ 機能Aを重視して確認
・ ○○、△△の観点を他機能で確認の方針でいきましょう

機能Aの類似機能を担当した経験→機能Aの確認をメイン担当

昨日○○の観点でインシデントを検出→○○、△△の観点をメイン担当
2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

16

改善策を反映した実施方法①Skilled Testerがテストチャータにテストすべき領域や手順例といった「指針」を記載する（設計）

改善策①②テスト開始前にパーティ内で打ち合わせを行い、その日のテストの方針の議論・共有を行う

改善策①、③・欠陥推測
・次のアクションなどの設計の補助（学習、設計）③Unskilled Testerはテスト実施時、実際に行った手順・その際の反応、検出したインシデントを改善策②

・対象の反応・インシデントをフィードバックチャータに記録する（実行、報告）④テスト記録・インシデントの結果を次のテスト前にパーティ内で打ち合わせして共有し、そこからその日に行うアクションを議論・共有する

打ち合わせで認識ずれを防ぐ

改善策③（学習、設計）⑤上記の③④を繰り返し、最終的な実施結果とインシデントをSkilled Testerが報告する（報告）

改善策②

本来一個人で行う探索的テストの活動の「学習」「設計」「実行」「報告」をチーム内で分担して実施できる

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

17改善策の注意点◼ チャータを細かく記載しすぎない
細かく記載しすぎると探索的テストの特性である柔軟性やひらめきを損ねてしまい、テストケースを実行するのと差がなくなる◼ 打ち合わせでは相互の意見を重視
一方的な指示ではなく、実行担当のUnskilled Testerの感覚を尊重する
Skilled Testerの意見はその後のアクションの「補助」の範囲に留める

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

18

【第三章】 施策を適用した実例

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

19メンバー紹介
やまもと

ドメイン知識 ：テスト設計 ：
欠陥知識 ：
テスト実行速度：4440

プロジェクト始動初期からテスト設計と実行管理を担当。開発の変遷やビジネスの目的、過去の不具合内容とその原因はほぼ把握している。
他プロジェクトも複数兼任しているため、時間的余裕がなくテスト実行は参加できない。

さとう(仮)

ドメイン知識 ：テスト設計 ：
欠陥知識 ：
テスト実行速度：3332

プロジェクトに関わってから日が浅く、既存機能や過去の不具合を把握していない部分が多い。
過去に開発業務の経験があり、メンバーの中では内部構造に強い担当者。テスト設計は行っていたものの実行経験がほぼなく、実行速度に難あり。

すずき(仮)

ドメイン知識 ：テスト設計 ：
欠陥知識 ：
テスト実行速度：3223

前職等の経験からネットワーク系、Web系、ユーザビリティなど視点が広く、また本プロジェクト担当経験も長い。不具合の推測と重要度の把握に難があり、不具合検出の可能性が低い箇所や、重要度が低い箇所に時間を割いてしまいがち。

たなか(仮)

ドメイン知識 ：テスト設計 ：
欠陥知識 ：
テスト実行速度：2224

ドメイン知識や欠陥知識は高くないが、何故か不具合を検出する感覚派。
テスト実行の速度に優れるが、機能性の確認に集中しがちな面と、対象の振る舞いから動的にアクションを調整するのが苦手な面がある。

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

20

パーティメンバー選択◼ 適したスキルを持つメンバーを選択
今回の開発内容は「設定値やパターンの組み合わせが多い」「既存機能の変更点が多く、使用性に懸念がある」という特徴がある
やまもと

さとう

すずき

たなか

テスト実行不可
高スキル

テスト設計経験
開発経験ありユーザビリティ
既存機能の把握

司令塔

実行担当

実行担当

実行速度
機能性寄り

・設定値やパターンの組み合わせが多い→組み合わせテストの設計技術が有効

・既存機能の変更点が多く、使用性に懸念がある→既存機能の把握、ユーザビリティ観点の知識が有効「やまもと」はテスト実行ができないためSkilled Testerの役割を担当
開発内容に適したスキルを持つ「さとう」「すずき」を実行担当とした
2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

21

テストチャータと開始前の打ち合わせ
メンバーのスキルに合わせた補助を行う◼ 「さとう」は既存機能の把握が不十分
・テストチャータを展開して事前に読んでおいてもらい、その後の打ち合わせで「今回開発による既存機能への影響」理解度を確認した→理解不足があったため、チャータへの追記、口頭での補足説明を実施◼ 「すずき」は重要度の低い箇所をテストしてしまう
・今回の開発目的、ビジネスゴール、実運用上の利用シーンを説明
・テストチャータで「重要」とした部分について、その理由を説明
さとう
既存機能の把握が不十分

やまもと
テストチャータ作成
打ち合わせでの説明

すずき
テスト実行箇所が適切でない

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

22

実行時間と打ち合わせ頻度◼ 日々の実行時間
合計3.0人日の工数だったが、それを4.0h×3日×2名に分割して実施
・一日で長時間実施すると、フィードバックを得て相談する機会が減る
・日々の時間を短くしすぎると最終的な報告が遅れる◼ 2.0hごとに打ち合わせを実施
2.0hごとに結果確認と次のアクションの相談のための打ち合わせを実施
・Skilled Testerの時間的余裕の問題であまり多い回数は行えない
・特に相談や調整がない場合は5分程度で終わることもあった
内容

時間

開始前打ち合わせ

0.25h

テスト実行

1.75h

中間打ち合わせ

0.25h

テスト実行

1.75h

2018/09/07

・打ち合わせ以外は別作業
・この時間外でインシデントの精査を行い、明確な不具合については先んじて報告

・各々4.0h×3日拘束されるため、別作業の調整が必要
・4.0hの間に適宜休憩は取った

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

23

【第四章】 得られた効果

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

24

Skilled Testerに対する効果◼ 作業軽減・Skilled Testerが元々の業務に加えて探索的テストを実行した場合と比較して、打ち合わせやインシデント精査のみの工数で済む・結果報告と打ち合わせでフィードバックを得ることで、実際にプロダクトを動かしてインシデント精査にかかる工数が削減された

テスト実行

12.0h

インシデント精査

2.0h

要望元への結果報告

2.0h

Skilled Testerが実行した場合

2018/09/07

インシデント確認の二度手間で工数増加

インシデント精査

4.0h

要望元への結果報告

2.0h

失敗例で掛かった工数

打ち合わせの工数は増加したが、インシデント精査の工数が削減できた

打ち合わせ

1.0h

インシデント精査

3.0h

要望元への結果報告

2.0h

改善策適用後の工数

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

25

Unskilled Testerに対する効果◼ インシデント検出対象機能の変化
・テストチャータと打ち合わせで方針の認識合わせを行うことにより、重要度の高い機能・観点のインシデント検出が行えるようになった◼ インシデント内容の変化
・開始前の打ち合わせで観点を話し合うことで、機能面の不具合検出だけでなく、仕様定義に関する指摘、ユーザ観点のインシデントが増加した→そもそものビジネス的視点での開発目的からずれるような仕様に対して、改善提案の指摘ができた◼ 検出したインシデントから効果的なアクションができた・フィードバックを得てチームで相談することで、類似の確認を同一機能・同一観点で行ってインシデントを検出するなど、効果的なアクションを起こすことができた

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

26副次的効果◼ 複数人による視点での気付き・Skilled Testerから一方的に支持するのではなく、チーム内で相互に意見を出し合うことで、気がついていなかった新たな発見をすることができた◼ 知識・ノウハウの継承・打ち合わせで次のアクションを検討する中で、反応や結果の分析、不具合推測の考え方など、Unskilled TesterにSkilled Testerの知識や経験をノウハウとして継承することができた

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

27

【第五章】今後の課題・展望

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

28

今後の課題・展望◼ Skilled Testerの能力に依存
知識の共有や適切な担当者のアサインなどは、欠陥推測やテスト技術とは異なるスキルであり、個人で行うのとは別の難しさがある
仮に同等の欠陥推測ができても、Unskilled Testerにうまく伝えられなければ効果は半減すると言える
テストチャータの記載内容や打ち合わせの方法についてはより導入しやすい方法を検討し、ノウハウの体系化を図りたい◼ 教育効果を意識した活用
副次的効果として挙げた「知識・ノウハウの継承」では、Unskilled Testerのスキルアップに繋げることができた
今後はプロジェクト参入時のトレーニング、初期教育への導入など、教育効果を意識した活用を検討したい

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

29

ありがとうございます日本ナレッジ株式会社

本社〒111-0042
東京都台東区寿3-19-5 JSビル9階
http://www.know-net.co.jp/

2018/09/07

Copyright © 2018 Nihon Knowledge Co., Ltd. All rights reserved.

30