テスト観点に関する取り組み事例
柏倉 直樹
システム本部 品質統括部 品質管理部 QC第二グループ
株式会社ディー・エヌ・エー
発表概要
WEBサービスやモバイルアプリのテスト設計においてテスト観点の網羅を支援する
ための仕組みであるテスト観点リストについてご紹介します
(近日一般公開予定!)
【発表の流れ】
• 前半
• 取り組みを進めてきた背景
• テスト観点リストが対象とするドメイン+エンジニアの特性
• 後半
• テスト観点リストの一部を紹介
• 使い方の一例を紹介
2
目次
3
取り組みを進めてきた背景
対象とするドメイン+エンジニアの特性
テスト観点リストの一部を紹介
1
2
3
使い方の一例を紹介4
DeNA品質管理部でのテストの流れ
• 上の図のようなテストの流れをとっています
• テスト設計においてテスト観点を抜け漏れなく網羅することが大切
4
(柏倉 他, “リバースモデリングを用いたテスト観点標準化の取組み”, ソフトウェアテストシンポジウム 2019 東京 (2019).)
DeNA品質管理部の課題
• テスト観点を抜け漏れなく網羅するための対策
→ テスト経験豊富なテストエンジニアをアサインすること
5
WEBサービスやモバイルアプリは
比較的新しいドメインのため、
テスト経験豊富なエンジニアの
確保が難しい場合がある
WEBサービスやモバイルアプリ
の分野は人材の流動性が比較的高い
対策が限界に!
しかし・・・
テスト経験の浅いエンジニアに対してテスト観点の導出を支援する
体系的な仕組みを用意することが課題
テスト観点を標準化する取り組みの履歴
以上の課題に対しDeNA品質管理部ではかねてよりテスト観点を整理する取り組み
を進めており一定の効果を確認済み
• リバースモデリングを用いたテスト観点標準化の取り組み
• 過去のテストスイートからテスト観点を抽出し体系的に整理した取り組み
• この活動はあくまでもDeNA社内で活用するためのテスト観点リストの整備
• JaSST’19 Tokyoのサイトから資料をDL可能
(http://jasst.jp/symposium/jasst19tokyo/report.html#research)
• Webサービス・モバイルアプリケーション開発におけるテスト設計を支援する
ための標準テスト観点の整備
• 上記の活動をさらに進めテスト設計でテスト観点リストを活用した場合に一定の
効果があることを確認しました
• ソフトウェアシンポジウム2019のサイトから資料をDL可能
(論文:https://www.sea.jp/ss2019/programme.php)
(slideshare:https://www.slideshare.net/tetsuyakouno1/web-149644480)
6
業界貢献のためオープン化
これまでに進めてきた活動を通して得られたテスト観点リストを、
DeNA社内に閉じずに業界全体で共有し少しでも業界に貢献できればとの
思いからオープン化を進めています
オープン化に先立ち、整理したテスト観点のリストを一部ご紹介します。
7
目次
8
取り組みを進めてきた背景
対象とするドメイン+エンジニアの特性
テスト観点リストの一部を紹介
1
2
3
使い方の一例を紹介4
テスト観点リストの概要
今回ご紹介するテスト観点リストは前述の活動で得られたテスト観点リストを
社外WEB識者からレビューしていただきフィードバックを得て
ブラッシュアップ中のもの
対象エンジニアについて次ページでもう少し詳しく説明します
9
対象ドメイン WEBサービス・モバイルアプリ
対象エンジニア テスト設計スキルは習熟しているがドメインスキルが未習熟な
テストエンジニア
テスト設計の流れを深掘り
対象エンジニアについて理解するためにまずはテスト設計の流れについて少し深掘りします
• ドメインスキル:テストエンジニアが保有するドメイン知識に照らし合わせながら、
必要なテスト観点を抽出するためのスキル
• テスト設計スキル:テストエンジニアが保有するテスト技法に関する知識に照らし
合わせながら、テスト観点からテスト仕様書を作成するためのスキル
10
図1:テスト分析・テスト設計の流れ
(河野 他, "Webサービス・モバイルアプリケーション開発におけるテスト設計を支援するための標準テスト観点の整備",
ソフトウェア・シンポジウム2019in熊本 (2019).)
テスト分析からテスト設計の例
11
WEBサービス
ログイン機能仕様書
・ユーザIDの仕様
・パスワードの仕様
・ログイン成功条件
・ログイン失敗条件
テスト分析
テスト観点
・ユーザIDの条件を満たす
・ユーザIDの条件を満たさない
・パスワードの条件を満たす
・パスワードの条件を満たさない
・ログイン成功条件を満たす
・ログイン成功条件を満たさない
ドメインスキル
テスト設計スキル
テスト設計
テスト仕様書
・…
・ログイン成功条件を満たす
・ログイン成功条件を満たさない
・複数回ログイン失敗
・通信不可状態でログイン試行
・…ドメインスキルによって補完
もしテスト設計スキルが習熟していない場合
12
WEBサービス
ログイン機能仕様書
・ユーザIDの仕様
・パスワードの仕様
・ログイン成功条件
・ログイン失敗条件
テスト分析
テスト観点
・ユーザIDの条件を満たす
・ユーザIDの条件を満たさない
・パスワードの条件を満たす
・パスワードの条件を満たさない
・ログイン成功条件を満たす
・ログイン成功条件を満たさない
ドメインスキル
テスト設計スキル
テスト設計
テスト仕様書
・…
・…
もしドメインスキルが不足している場合
13
WEBサービス
ログイン機能仕様書
・ユーザIDの仕様
・パスワードの仕様
・ログイン成功条件
・ログイン失敗条件
テスト分析
テスト観点
・ユーザIDの条件を満たす
・ユーザIDの条件を満たさない
・パスワードの条件を満たす
・パスワードの条件を満たさない
・ログイン成功条件を満たす
・ログイン成功条件を満たさない
ドメインスキル
テスト設計スキル
テスト設計
テスト仕様書
・…
・ログイン成功条件を満たす
・ログイン成功条件を満たさない
・複数回ログイン失敗
・通信不可状態でログイン試行
・…補完できない
対象とするテストエンジニアの特性
14
(河野 他, "Webサービス・モバイルアプリケーション開発におけるテスト設計を支援するための標準テスト観点の整備",
ソフトウェア・シンポジウム2019in熊本 (2019).)
テスト観点リストのスコープ
プロダクト固有の機能に関するテスト観点はテスト観点リストのスコープ外です
WEBサービス・モバイルアプリに共通するテスト観点が対象スコープです
15
ここまでの簡単なまとめ
• テスト観点リストはテスト設計スキルが習熟したテストエンジニアがテスト設計
を行う際にドメインスキルの不足を補うためのツール
• テスト観点リストが対象とするドメインはWEBサービス・モバイルアプリ
• 対象とするスコープはWEBサービス・モバイルアプリに共通するテスト観点
16
目次
17
取り組みを進めてきた背景
対象とするドメイン+エンジニアの特性
テスト観点リストの一部を紹介
1
2
3
使い方の一例を紹介4
テスト観点リストの一部紹介
18
ビュー テスト観点
機能 部品 環境 観点タイトル Level1 Level2 Level3
〇 ログイン 複数ブラウザからの多重ログイン
〇 ログイン 複数端末からの多重ログイン OS別アプリの組み合わせ Android-Android
〇 ログイン 複数端末からの多重ログイン OS別アプリの組み合わせ Android-iOS
〇 ログイン 複数端末からの多重ログイン OS別アプリの組み合わせ iOS-iOS
〇 ログイン ログアウト
〇 メールアドレスの入力 @マークの前に文字列がない
〇 メールアドレスの入力 @マークの後に文字列がない
〇 パスワードの入力 入力不可文字のコピーペースト
〇 パスワードの入力 推測されやすい文字列の制限
〇 OS種別 PC Windows サポート対象バージョン
〇 OS種別 PC macOS サポート対象外バージョン
〇 OS種別 SmartPhone iOS 旧バージョン
〇 OS種別 SmartPhone Android 最新バージョン
全体としては ・観点タイトル = 約90種類
・テスト観点 = 約700件
ログインに関する機能仕様書からテスト観点を抽出した例
19
Level1 Level2 Level3
連続認証失敗 失敗回数許容上限の超過
ログイン状態の維持
キーチェーンアクセス
ログアウト
仮登録アカウントでのログイン
SNS認証連携 サービス種別 Facebook
SNS認証連携 有効期限切れ
SNS認証連携 アカウント利用許可の取り消し
ID/パス不一致エラー エラー発生後の再ログイン
アカウントの状態 パスワードの有効期限切れ
アカウントの状態 解約済みアカウントでのログイン
アカウントの状態 アカウントロック
アカウントの状態 アカウントロック解除
アカウントの状態 アカウントの停止
仕様書から抽出できるテスト観点だけを列挙したもの。
抜け漏れがありそう。
抜け漏れのチェック手順
20
ビュー テスト観点
機能 部品 環境 観点タイトル Level1 Level2 Level3
〇 ログイン 複数ブラウザからの多重ログイン
〇 ログイン 複数端末からの多重ログイン OS別アプリの組み合わせ Android-Android
〇 ログイン 複数端末からの多重ログイン OS別アプリの組み合わせ Android-iOS
〇 ログイン 複数端末からの多重ログイン OS別アプリの組み合わせ iOS-iOS
〇 ログイン 複数アカウントの切り替え
〇 ログイン 既存アカウントへのログイン
〇 ログイン 連続認証失敗 失敗回数許容上限の超過
〇 ログイン ログイン状態の維持
〇 ログイン キーチェーンアクセス
〇 ログイン ログアウト
〇 ログイン 仮登録アカウントでのログイン
〇 ログイン SNS認証連携 サービス種別 Facebook
〇 ログイン SNS認証連携 有効期限切れ
〇 ログイン SNS認証連携 アカウント利用許可の取り消し
〇 ログイン ID/パス不一致エラー エラー発生後の再ログイン
〇 ログイン アカウントの状態 パスワードの有効期限切れ
〇 ログイン アカウントの状態 解約済みアカウントでのログイン
〇 ログイン アカウントの状態 アカウントロック
〇 ログイン アカウントの状態 アカウントロック解除
〇 ログイン アカウントの状態 アカウントの停止
① ②
漏れていたテスト観点
目次
21
取り組みを進めてきた背景
対象とするドメイン+エンジニアの特性
テスト観点リストの一部を紹介
1
2
3
使い方の一例を紹介4
補足
• テスト観点リストの有効性について
• 冒頭で紹介したようにDeNA社内では一定の効果が確認されています
• 詳細は以下の発表資料・論文をご参照ください
• JaSST’19 Tokyoでの事例発表
• ソフトウェアシンポジウム2019での経験論文
• ご紹介したテスト観点リストの有効性はまだ社外での検証例がありません
• フィードバックいただけると幸いです
• 今回はテスト設計時に活用する一例を紹介しました
• 開発ドキュメントレビュー時に利用するような使い方も考えられるが実績は
ありません
• 今後の課題と考えています
22
END
〜テスト観点に関する取り組み事例〜
23

テスト観点に関する取り組み事例