テスト設計コンテスト’16

チーム紹介 チーム名SASADAN Go！

※登録チーム名は「!」が登録不可文字の関係で省略されています。

新潟の名産である「笹団子」からきており、「みんなで頑張って取り組もう」という意気込みで、語尾を「Go!」にしました。
仕事で担当しているテスト設計の対象範囲が限られており、普段の業務で経験する事の少ない範囲をコンテストを利用して経験してみようと思い応募しました。

コンセプトとチームの位置付け

テスト設計の流れ（概要）テストベース
要件定義書
補足資料
用語集

利用時の品質特性
業界の動向
ユーザーの使い方
ステークホルダーの要求

テスト
アーキテクチャ
設計

テスト
要求分析

因子水準表

機能一覧表
非機能観点一覧表

テストアーキテクチャ
設計書

テスト
詳細設計

テスト詳細設計書
テストケース一覧

テスト要求分析

要件の整理チームメンバーにカラオケシステムの知見が無い■テストベースの理解：要求
目的、チームメンバーの状況を考慮し、3色ボールペンの各色を定義
赤：仕様不備青：観点やテスト条件
緑：不明点、気になった点

先ずは、テストで考慮する必要がありそうな仕様、観点、条件などを書き出す。

仕様不備や不明点をリスト化し、合意を得た記録として管理！ (※)
未回答のものも漏れなく管理！

※コンテストでは発注元から回答があったと仮定して仕様を確定

要件の整理■テストベースの理解：状態遷移
不明点や気になる点を整理

状態遷移表に変換することで、仕様の定義漏れをチェックステークホルダー分析与えられたテストベースを読み進めた結果、多様のステークホルダーが関係するシステムであり、整理する必要があると判断した。
そこで、要件を整理する過程でどのような関係者が存在するのか整理する事にした。
マインドマップを使って、ブレインストーミング

ステークホルダーの関連性を整理し、テストの目的を明確化

要件の妥当性検証
USDMで理由を明確にすることで、要求を理解。
その上で、妥当な要件定義がされているか、漏れが無いかを検証。

要件の背景である要求を考慮しながら検証した。
間違えた要件や仕様でテスト設計を行うことによる、手戻り防止が目的。

テスト対象機能を抽出整理した要求に対して、機能、操作方法、条件を考慮しながらテストしやすい粒度にカテゴリ分け
機能一覧表

テスト対象（スコープ）を明確化

非機能観点の抽出
要件定義書には、非機能に関して詳しく記載されていないと判断した。
そこでテストベースとは別のインプットからも非機能に関する観点を抽出することとした。
カラオケシステムのユーザーがストレスなく利用できることと、実際の利用状況を想定して、機能のテストと合わせて確認するための観点を抽出。

テストベースの記載だけでは不十分なテストになる
ユーザーの立場で考える

マインドマップを使って、ブレインストーミング

ISO/IEC25010で定義されている「利用時の品質特性」モデルと、テストベースの分析結果から導き出した
非機能観点一覧表

因子/水準の抽出一通りの要件の妥当性を確認後、整理因子/水準を抽出した。
その際に、テストベースに記載されていない情報を加味している。
ここで抽出した因子/水準は、テスト詳細設計時にテスト条件の一つとする。

機能要件一覧
因子水準表

非機能観点
ユーザーの使い方や状態、ファイルフォーマットの規格等の情報を考慮
テストで必要な情報を補いながら整理

プロダクトリスク分析
テストの規模が大きく、テスト終盤で重大な問題が発生する懸念がある
プロダクトリスクを分析システム開発の背景や趣旨、目的、前提条件からリスクを抽出

該当するリスクの数と重みから機能ごとに重要度を判定、また、問題が発生した際の影響範囲から影響度を判定
機能一覧表

重要度

影響度

テストアーキテクチャ設計時に、テスト優先度を判定する基準になる

テストアーキテクチャ設計

俯瞰図

機能間の関連性が複雑で、ステークホルダー間で認識違いや、テストの漏れ、重複が発生する懸念がある
まずは俯瞰図を作って、機能間の関連を整理
チームメンバー、ステークホルダーが同じイメージを共有しやすい

アーキテクチャ設計書作成

テスト対象の分析の結果、多くの機能と多くの関係者が存在することが判明した。
複雑な機能間の組合せやユーザーの使い方、利用環境を想定したテストは不十分であることが推測された為、システムテストで補うべきと判断し、その関連性をマトリクスで表現した。
縦軸にテスト対象の機能、横軸に組み合わせる観点を配置

テスト対象の機能を、どの観点と組み合わせてテストするか決める。
まとめて詳細設計する機能や観点には、同じIDを振る。

品質特性から導き出された非機能観点を、機能のテスト観点に紐付ける機能観点と非機能観点をマージし、非機能観点も考慮した詳細設計が可能に！

テスト優先度テスト対象の分析で設定した「重要度」と「影響度」を、アーキテクチャ設計書の縦軸と横軸に配置。
テスト対象の組合せの優先度を、別途定義した優先度の重みルールに従い記載

リスク分析から導きだした「重要度」と「影響度」から「優先度」を設定

テストアーキテクチャ設計書
詳細表示

重要度と影響度の組合せで優先度を導き出す※重要度が高い機能で問題が発生した場合、製品の出荷やスケジュールに影響が出るという判断から、影響度が低くても優先度を高めに設定した。

テストアーキテクチャ設計

俯瞰図だけでは細かな関連まで理解しにくい
機能数、観点数が多くなると表が巨大化し、全体像を把握しにくい巨大なマトリクス表を集約表示する仕組みを作成
テストアーキテクチャ設計書
※集約表示

機能観点
テスト対象の機能にどのような観点を関連付いているか等の全体像の把握が容易

各セルや文字の色に意味を持たせることで、優先度を可視化

非機能観点テスト詳細設計

テスト詳細設計

テスト条件を整理し、目的、方針を定義
テスト詳細設計書

目的、方針、観点を整理し、どんな不具合を狙って、どんなテストをするのかを明確に！

テスト詳細設計書

テスト条件や方針に従い、テストケースを作成抽出したテストケースを、テストしやすい様式に整える

テストケース一覧

期待結果に機能観点と非機能観点を合わせて記載することで、テスト担当者が非機能観点を意識しやすいテストケースに！

参考文献、資料【書籍】
1.『三色ボールペン情報活用術』, 齋藤孝, 角川書店, 2003
2.『ソフトウェア・テストPRESS』Vol.2「三色ボールペンで読む仕様書」, 鈴木三紀夫, 技術評論社,
2006
3.『マインドマップから始めるソフトウェアテスト』, 池田暁, 鈴木三紀夫, 技術評論社, 2007
4.『[入門＋実践]要求を仕様化する技術 表現する技術』改訂第2版, 清水吉男, 技術評論社,
2010
5.『つながる世界のソフトウェア品質ガイド』, 独立行政法人情報処理推進機構 技術本部 ソフトウェ
ア高信頼化センター, 独立行政法人情報処理推進機構, 2015
【論文、発表資料】
1.『テストアーキテクチャ解説 ～テストアーキテクチャ設計を実践するには～』, 智美塾塾長＋塾生一同,
JaSST'12 Tokyo, 2012
2.『テスト要求分析やテストアーキテクチャ設計を重視したテスト開発』, 智美塾塾長＋塾生一同,JaSST'13 Tokyo, 2013
3.『テストアーキテクチャ設計の質について議論しよう』, 智美塾塾長＋塾生一同, JaSST'14 Tokyo,
2014
4.『USDM Quick Start Guide』, 第29年度(2013年度) SQiP研究会 第6分科会Dグループ,
2014
5.『ソフトウェアテスト標準用語集 日本語版』Version 2.3.J02, JSTQB技術委員会, 2015

ご清聴ありがとうございました