ちょ・す cho-su [動サ五]意味：触れる。さわる。操作する。

ワークショップ

ちょしてみよう！
テストスイートモデリング～技法と観点を活用しやすくするカタマリー～
下浅 大輔（テクノラボ）

情野 吉紀（JaSST Hokkaido 実行委員会）
水野 昇幸（JaSST Hokkaido 実行委員会）

Powered by【ご注意】※ワークショップ概要＠Webの転記

・初心者向けの概要やテスト技法に対する説明はまったく行いません！
・テスト技法を知っている前提で説明および体験会を行いますのでご注意ください。

３つの問題にテストスイートモデルで挑みます
現在のテスト現場で遭遇する問題:
1.
テスト規模拡大と複雑化
2.
文書表現の偏り3.
継続的に変更され続ける

1.

2.
3.

複雑なテストケースをモデルで抽象化することで、その構造や関係の見通しをよくします
文・表・図・記号を活用し、テストケースを簡素に表現します（あれば）モデリングツールを使ってテストケース
モデルを保守しますテストスイートモデルって？
テストケースが持つ情報構造をモデルで表したものを「テストスイートモデル」と本ワークショップ内では呼びます。
今回のワークショップ内では、クラス図に似た表現を使ってモデルを描きます。

カテゴリ/ID
項目名
概要
1、アラーム1-1 アラーム登録・表示
1-1-1 アラーム追加・個別編集、アラーム、スヌーズ
1-1-1_001 アラーム時間設定の確 アラームの時間を設定する
認テストケースXX
テストケースXX
テストケースXX…

1-1-1_002 サウンド設定の確認

サウンド設定をする

実施方法（案）

合否判定基準ケース/設定<<pattern>>
Alert~ Alert in the background : Compatibility~ Unfavorable Stress : Performance efficiency

備考

1．アラーム登録画面を開く
2．設定した時間でアラーム登録がされている
00:00
自動化対象
2．アラーム時間を設定する（時間設定はケース/設定 ことを確認する
07:00
に記載）
12:00
3．「保存」を押す
23:59
1．アラーム登録画面を開く
3．設定したサウンド設定でアラーム登録がさ デフォルト着 自動化対象
2．サウンド設定画面を開く
れていることを確認する
信音を3件確
3．サウンド設定をする※ライブラリ曲に関しては、1-1-9で確認
認概要
実施方法（案）
合否判定基準
4．「保存」を押す

カテゴリ/ID
項目名
ケース/設定備考
1、アラーム1-1-1_003 スヌーズ設定の確認
スヌーズ設定をする
1．アラーム登録画面を開く
3．設定したスヌーズ設定でアラーム登録がさON
自動化対象
1-1 アラーム登録・表示
2．スヌーズのON/OFF設定をする
れていることを確認する
OFF
1-1-1 アラーム追加・個別編集、アラーム、スヌーズ
3．「保存」を押す
1-1-1_001
アラーム時間設定の確 アラームの時間を設定する
1．アラーム登録画面を開く
2．設定した時間でアラーム登録がされている
00:00
自動化対象
1-1-1_004 設定キャンセルの場合
操作中にキャンセルを実施して登録されないこと
1．アラーム登録画面を開く
2．キャンセルが行われ、登録が行われない
任意に福栖パ 自動化対象
認
2．アラーム時間を設定する（時間設定はケース/設定
ことを確認する ターンの実施
07:00
を確認する
2．アラーム時間を設定する
ことを確認するに記載）
12:00
3．「キャンセル」を押すを推奨
3．「保存」を押す
23:59
サウンド設定をする
1．アラーム登録画面を開く
3．設定したサウンド設定でアラーム登録がさデフォルト着 自動化対象
1．アラーム登録画面を開く
3．設定した曜日の繰り返し設定でアラーム登
1-1-2_001_曜 自動化対象
2．サウンド設定画面を開く
信音を3件確
2．繰り返し設定画面を開く
録がされていることを確認する れていることを確認する
日設定表にま3．サウンド設定をする※ライブラリ曲に関しては、1-1-9で確認
認
3．曜日繰り返し設定をする
とめる
4．「保存」を押す
4．「保存」を押す
1-1-1_003 スヌーズ設定の確認
スヌーズ設定をする
1．アラーム登録画面を開く
3．設定したスヌーズ設定でアラーム登録がさON
自動化対象
1-1-3 アラーム追加・個別編集、ラベル
2．スヌーズのON/OFF設定をする
れていることを確認する
OFF
1-1-3_001 ラベル設定の確認
ラベル名称の設定をする
1．アラーム登録画面を開く
3．設定したラベル設定でアラーム登録がされ1-1-3_001_ラ 自動化対象
3．「保存」を押す
2．ラベル設定画面を開くていることを確認する
ベル設定表に1-1-1_004 設定キャンセルの場合 操作中にキャンセルを実施して登録されないこと
1．アラーム登録画面を開く
2．キャンセルが行われ、登録が行われない
任意に福栖パ 自動化対象
3．ラベル設定をする
まとめる
を確認する
2．アラーム時間を設定する
ことを確認する
ターンの実施4．「保存」を押す
3．「キャンセル」を押すを推奨
1-1-4 アラーム編集
1-1-2 アラーム追加・個別編集、曜日繰り返し設定
1-1-4_001 編集選択での表示
選択したアラームが編集画面に移行できることを 1．アラーム一覧画面を開く
2．アラーム編集対象の編集画面が表示され設定の登録は
1-1-2_001
曜日繰り返し設定の確 曜日繰り返しの設定をする
1．アラーム登録画面を開く
3．設定した曜日の繰り返し設定でアラーム登
確認する
2．編集ボタンを押し、アラーム編集対象を選択する
ることを確認1-1-1～1-1-3 1-1-2_001_曜 自動化対象
認
2．繰り返し設定画面を開く
録がされていることを確認するで実施可能
日設定表にま3．曜日繰り返し設定をする
とめる
1-1-5 アラーム削除
4．「保存」を押す
1-1-5_001 アラーム一覧の編集選 アラーム一覧の編集ボタンを押した際に削除で 1．アラーム一覧画面を開く
2．アラーム削除対象が削除されることを確認
自動化対象
択からの削除 1-1-3 アラーム追加・個別編集、ラベル
きることを確認する
2．編集ボタンを押し、アラーム編集対象「－」を押して
1-1-3_001 ラベル設定の確認
ラベル名称の設定をする
1．アラーム登録画面を開く
3．設定したラベル設定でアラーム登録がされ 1-1-3_001_ラ 自動化対象削除を選択する
2．ラベル設定画面を開くていることを確認する
ベル設定表に
1-1-5_002 編集画面からの削除
アラーム編集画面から削除できること
1．アラーム一覧画面を開く
3．アラーム削除対象が削除されることを確認
自動化対象
3．ラベル設定をする
まとめる
2．編集ボタンを押し、アラーム編集対象を選択する
3．編集画面で削除ボタンを押す4．「保存」を押す
1-1-4
アラーム編集
1-1-6 データ登録最大数確認
1-1-4_001
編集選択での表示
選択したアラームが編集画面に移行できることを
1．アラーム一覧画面を開く
2．アラーム編集対象の編集画面が表示され設定の登録は
1-1-6_001 データ登録数最大数確
アラームデータの登録数の最大数を確認する＜アラーム登録＞
3．アラーム登録数が登録されていることを確
1-1-6_001_ 自動化対象
確認する
2．編集ボタンを押し、アラーム編集対象を選択する
ることを確認 データ登録最1-1-1～1-1-3
認
1．アラーム登録画面を開く
認する
で実施可能
2．「保存」を押してアラーム登録をする
大数表にまと
1-1-5 アラーム削除
3、＜アラーム登録＞を繰り返す
める
1-1-5_001 アラーム一覧の編集選 アラーム一覧の編集ボタンを押した際に削除で 1．アラーム一覧画面を開く
2．アラーム削除対象が削除されることを確認
自動化対象
1-1-7 操作応答確認
択からの削除きることを確認する1-1-6_001の手順を実施
2．編集ボタンを押し、アラーム編集対象「－」を押して
1-1-7_001 操作応答時間の確認 操作に対する応答時間を確認する
登録時のレスポンスが遅くなるようなケース 1-1-6_001と削除を選択するがないこと同じ
1-1-5_002 編集画面からの削除
アラーム編集画面から削除できること
1．アラーム一覧画面を開く
3．アラーム削除対象が削除されることを確認
自動化対象
1-1-8 Siriからの操作
2．編集ボタンを押し、アラーム編集対象を選択する
1-1-8_001 Siriによるアラーム追加 Siri経由でアラームを追加できることを確認する 1．Siriを呼び出す
2．設定した時間でアラーム登録がされている
3．編集画面で削除ボタンを押す
2．時間指定でアラームを追加する
ことを確認する
1-1-6 データ登録最大数確認
1-1-8_002 Siriによるアラーム削除
Siri経由でアラームを削除の一覧を出せることを 1．Siriを呼び出す
2．削除対象のアラーム一覧を表示することを
1-1-6_001
データ登録数最大数確 アラームデータの登録数の最大数を確認する＜アラーム登録＞
3．アラーム登録数が登録されていることを確 1-1-6_001_ 自動化対象
一覧呼び出し確認する
2．アラーム削除を呼び出す
確認する
認
1．アラーム登録画面を開く
認する
データ登録最1-1-8_003 Siriによるアラーム削除 Siri経由でアラームを削除の一覧をからラベルで1．Siriを呼び出す
3．指定したラベルのアラーム削除がされてい2．「保存」を押してアラーム登録をする
大数表にまとラベルで削除アラームを削除できることを確認する
2．アラーム削除を呼び出す
ることを確認する
める
3．ラベルで削除対象を指摘する3、＜アラーム登録＞を繰り返す
1-1-7 操作応答確認
1-1-8_004 Siriによるアラーム削除
Siri経由でアラームを削除の一覧をから登録時 1．Siriを呼び出す
3．指定した時間のアラーム削除がされている
1-1-7_001
操作応答時間の確認 操作に対する応答時間を確認する
1-1-6_001の手順を実施
登録時のレスポンスが遅くなるようなケース 1-1-6_001と時間で削除
間でアラームを削除できることを確認する
2．アラーム削除を呼び出す
ことを確認するがないこと同じ
3．時間で削除対象を指摘する
1-1-9 ライブラリ曲データ選択 1-1-8 Siriからの操作
1-1-8_001
Siriによるアラーム追加 Siri経由でアラームを追加できることを確認する
1．Siriを呼び出す
2．設定した時間でアラーム登録がされている
1-1-9_001 着信音/通知音ストアか
着信音/通知音ストアから購入した曲をアラーム
1．アラーム登録画面を開く
4．設定したサウンドの設定でアラーム登録が自動化対象
2．時間指定でアラームを追加する
ことを確認するら登録として登録できることを確認する
2．サウンド設定画面を開くされていることを確認する
1-1-8_002 Siriによるアラーム削除 Siri経由でアラームを削除の一覧を出せることを
1．Siriを呼び出す
2．削除対象のアラーム一覧を表示することを
3．着信音/通知音ストアからダウンロードして設定を一覧呼び出し確認する
2．アラーム削除を呼び出す
確認する
する
1-1-8_003 Siriによるアラーム削除 Siri経由でアラームを削除の一覧をからラベルで1．Siriを呼び出す
3．指定したラベルのアラーム削除がされてい4．「保存」を押す
ラベルで削除アラームを削除できることを確認する
2．アラーム削除を呼び出す
ることを確認する
1-1-9_002 ライブラリ登録された曲 保存されている曲ライブラリから曲をアラームとし
1．アラーム登録画面を開く
4．設定したサウンドの設定でアラーム登録が自動化対象
3．ラベルで削除対象を指摘するから選択て登録できることを確認する
2．サウンド設定画面を開くされていることを確認する
1-1-8_004 Siriによるアラーム削除 Siri経由でアラームを削除の一覧をから登録時
1．Siriを呼び出す
3．指定した時間のアラーム削除がされている
3．ライブラリから曲を選択して設定をする
時間で削除
間でアラームを削除できることを確認する
2．アラーム削除を呼び出す
ことを確認する
4．「保存」を押す
3．時間で削除対象を指摘する
1-1-9 ライブラリ曲データ選択
1-1-9_001 着信音/通知音ストアか 着信音/通知音ストアから購入した曲をアラーム 1．アラーム登録画面を開く
4．設定したサウンドの設定でアラーム登録が
自動化対象
ら登録
として登録できることを確認する
2．サウンド設定画面を開くされていることを確認する
3．着信音/通知音ストアからダウンロードして設定をする
4．「保存」を押す
1-1-9_002 ライブラリ登録された曲 保存されている曲ライブラリから曲をアラームとし 1．アラーム登録画面を開く
4．設定したサウンドの設定でアラーム登録が
自動化対象
から選択
て登録できることを確認する
2．サウンド設定画面を開くされていることを確認する
3．ライブラリから曲を選択して設定をする
4．「保存」を押す

1-1-2 アラーム追加・個別編集、曜日繰り返し設定
1-1-1_002
サウンド設定の確認
1-1-2_001 曜日繰り返し設定の確
曜日繰り返しの設定をする
認<<pattern>>
Resister/Edit/Delete Data
~ Number of data : Performance efficiency~ Operation Response : Performance efficiency<<Resister/Edit/Delete Data>><<Alert>>Alarm+ Confirm each function : Functional suitability~ Number of data : Performance efficiency~ Operation Response : Performance efficiency~ Alert in the background : Performance efficiency~ Unfavorable Stress : Performance efficiency+ Cooperate with other Apps : Compatibility

Register/Display Alarm+ Confirm each function : Functional suitability~ Number of data : Performance efficiency~ Operation Response : Performance efficiency+ Cooperate with other Apps : Compatibility+ Register Alarm() : Confirm each function+ Edit Alarm() : Confirm each function+ Delete Alarm() : Confirm each function+ Check max registration data() : Operation Responce+ Operate from Siri() : Cooperate with other Apps

Notify Alarm+ Confirm each function : Functional suitability~ Alert in the background : Compatibility~ Unfavorable Stress : Performance efficiency+ Confirm Alerm() : Confirm each function+ Confirm Snooze() : Confirm each function+ Check with other Apps() : Alert in the background+ Check with Stress() : Unfavorable Stressテストスイートモデルって？
「テストスイートモデル」はテストケースが持つ情報の構造をモデルで表現したものです。※独自の用語です。
「テストスイートアーキテクチャ」という、テストシステムアーキテクチャ」と対となる概念として、以下の論文にて紹介されております。
＜テストスイートアーキテクチャについて記載している論文＞
Y.Nishi, “Combinatorial Test Architecture Design Using Viewpoint diagram”,
Workshop on Metrics and Standards for Software Testing (MaSST)
Y.Nishi, “Design principles in Test Suite Architecture,”International Workshop on Software Test Architecture (InSTA 2015)
上記テストスイートアーキテクチャを参考に、テストスイートモデルという独自の概念・名前を使用しております。

テストカタマリーと呼ぶ記法について
テストスイートモデルを表現する記法としてUMLツール（クラス図）を活用して表現できるようにしております。
「テストカタマリー」はテストケースの塊を箱で表したものです。
1つの箱の中に10、20ものテストケースを持たせたものを表現できます。
カタマリー名~ キガカリー（）~ 抽象的なテストケース（） : キガカリー

UMLクラス図の属性箇所にテストケースの目的となる気がかり事項を記述できるようにしています。
例：各機能確認、状態遷移、操作レスポンス、登録データ数

名前は「キガカリー」と呼んでます。

※テスト観点やテストカテゴリと考えて頂いてもよいです。

UMLクラス図のメソッド（操作）箇所に
カタマリーが持つ「抽象的なテストケース」を複数記載できるようにしております。
抽象的なテストケース：デシジョンテーブル
1つ相当のテストケースを想定してます。

※テストカタマリーは独自用語です。
※キガカリーは独自用語です。
※モデリングアプローチには他にも
UTPやVSTeP & NGTなどがありますテストカタマリーと呼ぶ記法について
いちおう、記法については国際学会で論文採録されてます。
★いいたいこと：怪しくないよ！★
・Test Conglomeration - Proposal for Test Design Notation Like Class Diagram（論文）
http://ieeexplore.ieee.org/document/7899074/

テストカタマリーとは「テストカタマリー」を簡単に言うとテストケースの塊を箱で表したものです。
1つの箱（カタマリー）で10、20ものテストケースの塊を表現できます。
アラーム登録・表示+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム追加・個別編集、アラーム・スヌーズ() : 各機能確認+ アラーム追加・個別編集、曜日繰り返し設定() : 各機能確認+ アラーム追加・個別編集、ラベル() : 各機能確認+ アラーム編集() : 各機能確認+ アラーム削除() : 各機能確認+ データ登録最大数確認() : 登録データ数+ 操作応答確認() : 操作レスポンス+ Siriからの操作() : リソース連携+ ライブラリ曲データ選択() : リソース連携

アラーム～Alarm～編集

アラームを編集
キャンセル
＋

7:06
アラーム

12:01

保存

21
22

28
29

23

30

00
01

31
32

お昼までゆっくり寝る

繰り返し

毎週土曜日 ＞

23:30

ラベル

アニメ見る ＞

アニメ見る

サウンド

紅蓮華 ＞

スヌーズ
世界時計 アラーム StopWactch タイマー

アラームを削除テストカタマリーとは「テストカタマリー」はテストケースの塊を箱で表したものです。
1つの箱（カタマリー）で10、20ものテストケースの塊を表現できます。
アラーム登録・表示+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム追加・個別編集、アラーム・スヌーズ() : 各機能確認+ アラーム追加・個別編集、曜日繰り返し設定() : 各機能確認+ アラーム追加・個別編集、ラベル() : 各機能確認+ アラーム編集() : 各機能確認+ アラーム削除() : 各機能確認+ データ登録最大数確認() : 登録データ数+ 操作応答確認() : 操作レスポンス+ Siriからの操作() : リソース連携+ ライブラリ曲データ選択() : リソース連携

テストケース17件＋パラメータ組合せに対応

カテゴリ/ID
項目名
概要
1、アラーム1-1 アラーム登録・表示
1-1-1 アラーム追加・個別編集、アラーム、スヌーズ
1-1-1_001 アラーム時間設定の確 アラームの時間を設定する
認実施方法（案）

合否判定基準ケース/設定備考

1．アラーム登録画面を開く
2．設定した時間でアラーム登録がされている
00:00
自動化対象
2．アラーム時間を設定する（時間設定はケース/設定 ことを確認する
07:00
に記載）
12:00
3．「保存」を押す
23:59
1-1-1_002 サウンド設定の確認
サウンド設定をする
1．アラーム登録画面を開く
3．設定したサウンド設定でアラーム登録がさ デフォルト着 自動化対象
2．サウンド設定画面を開く
れていることを確認する
信音を3件確
3．サウンド設定をする※ライブラリ曲に関しては、1-1-9で確認
認
4．「保存」を押す
1-1-1_003 スヌーズ設定の確認
スヌーズ設定をする
1．アラーム登録画面を開く
3．設定したスヌーズ設定でアラーム登録がさON
自動化対象
2．スヌーズのON/OFF設定をする
れていることを確認する
OFF
3．「保存」を押す
1-1-1_004 設定キャンセルの場合 操作中にキャンセルを実施して登録されないこと 1．アラーム登録画面を開く
2．キャンセルが行われ、登録が行われない 任意に福栖パ 自動化対象を確認する
2．アラーム時間を設定する
ことを確認する
ターンの実施3．「キャンセル」を押すを推奨
1-1-2 アラーム追加・個別編集、曜日繰り返し設定
1-1-2_001 曜日繰り返し設定の確 曜日繰り返しの設定をする
1．アラーム登録画面を開く
3．設定した曜日の繰り返し設定でアラーム登 1-1-2_001_曜 自動化対象
認
2．繰り返し設定画面を開く
録がされていることを確認する
日設定表にま3．曜日繰り返し設定をする
とめる
4．「保存」を押す
1-1-3 アラーム追加・個別編集、ラベル
1-1-3_001 ラベル設定の確認
ラベル名称の設定をする
1．アラーム登録画面を開く
3．設定したラベル設定でアラーム登録がされ 1-1-3_001_ラ 自動化対象
2．ラベル設定画面を開くていることを確認する
ベル設定表に
3．ラベル設定をする
まとめる
4．「保存」を押す
1-1-4 アラーム編集
1-1-4_001 編集選択での表示
選択したアラームが編集画面に移行できることを 1．アラーム一覧画面を開く
2．アラーム編集対象の編集画面が表示され設定の登録は確認する
2．編集ボタンを押し、アラーム編集対象を選択する ることを確認
1-1-1～1-1-3
で実施可能
1-1-5 アラーム削除
1-1-5_001 アラーム一覧の編集選 アラーム一覧の編集ボタンを押した際に削除で 1．アラーム一覧画面を開く
2．アラーム削除対象が削除されることを確認
自動化対象
択からの削除きることを確認する
2．編集ボタンを押し、アラーム編集対象「－」を押して削除を選択する
1-1-5_002 編集画面からの削除
アラーム編集画面から削除できること
1．アラーム一覧画面を開く
3．アラーム削除対象が削除されることを確認
自動化対象
2．編集ボタンを押し、アラーム編集対象を選択する
3．編集画面で削除ボタンを押す
1-1-6 データ登録最大数確認
1-1-6_001 データ登録数最大数確 アラームデータの登録数の最大数を確認する＜アラーム登録＞
3．アラーム登録数が登録されていることを確 1-1-6_001_ 自動化対象
認
1．アラーム登録画面を開く
認する
データ登録最2．「保存」を押してアラーム登録をする
大数表にまと3、＜アラーム登録＞を繰り返す
める
1-1-7 操作応答確認
1-1-7_001 操作応答時間の確認 操作に対する応答時間を確認する
1-1-6_001の手順を実施
登録時のレスポンスが遅くなるようなケース 1-1-6_001とがないこと同じ
1-1-8 Siriからの操作
1-1-8_001 Siriによるアラーム追加 Siri経由でアラームを追加できることを確認する 1．Siriを呼び出す
2．設定した時間でアラーム登録がされている
2．時間指定でアラームを追加する
ことを確認する
1-1-8_002 Siriによるアラーム削除 Siri経由でアラームを削除の一覧を出せることを 1．Siriを呼び出す
2．削除対象のアラーム一覧を表示することを一覧呼び出し確認する
2．アラーム削除を呼び出す
確認する
1-1-8_003 Siriによるアラーム削除 Siri経由でアラームを削除の一覧をからラベルで 1．Siriを呼び出す
3．指定したラベルのアラーム削除がされていラベルで削除アラームを削除できることを確認する
2．アラーム削除を呼び出す
ることを確認する
3．ラベルで削除対象を指摘する
1-1-8_004 Siriによるアラーム削除 Siri経由でアラームを削除の一覧をから登録時 1．Siriを呼び出す
3．指定した時間のアラーム削除がされている
時間で削除
間でアラームを削除できることを確認する
2．アラーム削除を呼び出す
ことを確認する
3．時間で削除対象を指摘する
1-1-9 ライブラリ曲データ選択
1-1-9_001 着信音/通知音ストアか 着信音/通知音ストアから購入した曲をアラーム 1．アラーム登録画面を開く
4．設定したサウンドの設定でアラーム登録が
自動化対象
ら登録
として登録できることを確認する
2．サウンド設定画面を開くされていることを確認する
3．着信音/通知音ストアからダウンロードして設定をする
4．「保存」を押す
1-1-9_002 ライブラリ登録された曲 保存されている曲ライブラリから曲をアラームとし 1．アラーム登録画面を開く
4．設定したサウンドの設定でアラーム登録が
自動化対象
から選択
て登録できることを確認する
2．サウンド設定画面を開くされていることを確認する
3．ライブラリから曲を選択して設定をする
4．「保存」を押す

テストカタマリーの利点
カタマリー1つに対し、数十ケースものテストケースをまとめることができます。
抽象化の活用で「テスト規模拡大、複雑化」「文書表現の偏り」に対応します。
また、ツール活用により、「継続的な変更」への対処も比較的容易になります。
アラーム登録・表示+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム追加・個別編集、アラーム・スヌーズ() : 各機能確認+ アラーム追加・個別編集、曜日繰り返し設定() : 各機能確認+ アラーム追加・個別編集、ラベル() : 各機能確認+ アラーム編集() : 各機能確認+ アラーム削除() : 各機能確認+ データ登録最大数確認() : 登録データ数+ 操作応答確認() : 操作レスポンス+ Siriからの操作() : リソース連携+ ライブラリ曲データ選択() : リソース連携

テストケース17件＋パラメータ組合せに対応

カテゴリ/ID
項目名
概要
1、アラーム1-1 アラーム登録・表示
1-1-1 アラーム追加・個別編集、アラーム、スヌーズ
1-1-1_001 アラーム時間設定の確 アラームの時間を設定する
認実施方法（案）

合否判定基準ケース/設定備考

1．アラーム登録画面を開く
2．設定した時間でアラーム登録がされている
00:00
自動化対象
2．アラーム時間を設定する（時間設定はケース/設定 ことを確認する
07:00
に記載）
12:00
3．「保存」を押す
23:59
1-1-1_002 サウンド設定の確認
サウンド設定をする
1．アラーム登録画面を開く
3．設定したサウンド設定でアラーム登録がさ デフォルト着 自動化対象
2．サウンド設定画面を開く
れていることを確認する
信音を3件確
3．サウンド設定をする※ライブラリ曲に関しては、1-1-9で確認
認
4．「保存」を押す
1-1-1_003 スヌーズ設定の確認
スヌーズ設定をする
1．アラーム登録画面を開く
3．設定したスヌーズ設定でアラーム登録がさON
自動化対象
2．スヌーズのON/OFF設定をする
れていることを確認する
OFF
3．「保存」を押す
1-1-1_004 設定キャンセルの場合 操作中にキャンセルを実施して登録されないこと 1．アラーム登録画面を開く
2．キャンセルが行われ、登録が行われない 任意に福栖パ 自動化対象を確認する
2．アラーム時間を設定する
ことを確認する
ターンの実施3．「キャンセル」を押すを推奨
1-1-2 アラーム追加・個別編集、曜日繰り返し設定
1-1-2_001 曜日繰り返し設定の確 曜日繰り返しの設定をする
1．アラーム登録画面を開く
3．設定した曜日の繰り返し設定でアラーム登 1-1-2_001_曜 自動化対象
認
2．繰り返し設定画面を開く
録がされていることを確認する
日設定表にま3．曜日繰り返し設定をする
とめる
4．「保存」を押す
1-1-3 アラーム追加・個別編集、ラベル
1-1-3_001 ラベル設定の確認
ラベル名称の設定をする
1．アラーム登録画面を開く
3．設定したラベル設定でアラーム登録がされ 1-1-3_001_ラ 自動化対象
2．ラベル設定画面を開くていることを確認する
ベル設定表に
3．ラベル設定をする
まとめる
4．「保存」を押す
1-1-4 アラーム編集
1-1-4_001 編集選択での表示
選択したアラームが編集画面に移行できることを 1．アラーム一覧画面を開く
2．アラーム編集対象の編集画面が表示され設定の登録は確認する
2．編集ボタンを押し、アラーム編集対象を選択する ることを確認
1-1-1～1-1-3
で実施可能
1-1-5 アラーム削除
1-1-5_001 アラーム一覧の編集選 アラーム一覧の編集ボタンを押した際に削除で 1．アラーム一覧画面を開く
2．アラーム削除対象が削除されることを確認
自動化対象
択からの削除きることを確認する
2．編集ボタンを押し、アラーム編集対象「－」を押して削除を選択する
1-1-5_002 編集画面からの削除
アラーム編集画面から削除できること
1．アラーム一覧画面を開く
3．アラーム削除対象が削除されることを確認
自動化対象
2．編集ボタンを押し、アラーム編集対象を選択する
3．編集画面で削除ボタンを押す
1-1-6 データ登録最大数確認
1-1-6_001 データ登録数最大数確 アラームデータの登録数の最大数を確認する＜アラーム登録＞
3．アラーム登録数が登録されていることを確 1-1-6_001_ 自動化対象
認
1．アラーム登録画面を開く
認する
データ登録最2．「保存」を押してアラーム登録をする
大数表にまと3、＜アラーム登録＞を繰り返す
める
1-1-7 操作応答確認
1-1-7_001 操作応答時間の確認 操作に対する応答時間を確認する
1-1-6_001の手順を実施
登録時のレスポンスが遅くなるようなケース 1-1-6_001とがないこと同じ
1-1-8 Siriからの操作
1-1-8_001 Siriによるアラーム追加 Siri経由でアラームを追加できることを確認する 1．Siriを呼び出す
2．設定した時間でアラーム登録がされている
2．時間指定でアラームを追加する
ことを確認する
1-1-8_002 Siriによるアラーム削除 Siri経由でアラームを削除の一覧を出せることを 1．Siriを呼び出す
2．削除対象のアラーム一覧を表示することを一覧呼び出し確認する
2．アラーム削除を呼び出す
確認する
1-1-8_003 Siriによるアラーム削除 Siri経由でアラームを削除の一覧をからラベルで 1．Siriを呼び出す
3．指定したラベルのアラーム削除がされていラベルで削除アラームを削除できることを確認する
2．アラーム削除を呼び出す
ることを確認する
3．ラベルで削除対象を指摘する
1-1-8_004 Siriによるアラーム削除 Siri経由でアラームを削除の一覧をから登録時 1．Siriを呼び出す
3．指定した時間のアラーム削除がされている
時間で削除
間でアラームを削除できることを確認する
2．アラーム削除を呼び出す
ことを確認する
3．時間で削除対象を指摘する
1-1-9 ライブラリ曲データ選択
1-1-9_001 着信音/通知音ストアか 着信音/通知音ストアから購入した曲をアラーム 1．アラーム登録画面を開く
4．設定したサウンドの設定でアラーム登録が
自動化対象
ら登録
として登録できることを確認する
2．サウンド設定画面を開くされていることを確認する
3．着信音/通知音ストアからダウンロードして設定をする
4．「保存」を押す
1-1-9_002 ライブラリ登録された曲 保存されている曲ライブラリから曲をアラームとし 1．アラーム登録画面を開く
4．設定したサウンドの設定でアラーム登録が
自動化対象
から選択
て登録できることを確認する
2．サウンド設定画面を開くされていることを確認する
3．ライブラリから曲を選択して設定をする
4．「保存」を押す

テストケースの傾向とカタマリーの関係
テストケースの傾向として、1つのデシジョンテーブル（DT）にまとめられるような、テストケースの目的でグルーピングできる点があります。
※テストケース・DT単位で目的を明らかにすることはとても有効です。
アラーム登録・表示+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム追加・個別編集、アラーム・スヌーズ() : 各機能確認+ アラーム追加・個別編集、曜日繰り返し設定() : 各機能確認+ アラーム追加・個別編集、ラベル() : 各機能確認+ アラーム編集() : 各機能確認+ アラーム削除() : 各機能確認+ データ登録最大数確認() : 登録データ数+ 操作応答確認() : 操作レスポンス+ Siriからの操作() : リソース連携+ ライブラリ曲データ選択() : リソース連携

1行＝1つの抽象的なテストケースが下記の組合せ表（12ケース）と対応〇が設定する項目です。
No 毎週月曜 毎週火曜
1
〇
2
〇
3
4
5
6
7
8
〇
〇
9
10
〇
11
〇
12
〇
〇

テストケースの目的に関わる説明は以下も参考
納得できるテストをつくるアプローチ
https://www.slideshare.net/NoriyukiMizuno/jasst17-kansai

毎週水曜

毎週木曜

毎週金曜

毎週土曜

毎週日曜

〇
〇
〇
〇
〇
〇
〇
〇
〇

〇

〇
〇

〇
〇

〇

〇

〇
〇
〇

〇

テストケースの傾向とカタマリーの関係
テストケースの傾向として、1つのデシジョンテーブル（DT）にまとめられるような、テストケースの目的でグルーピングできる点があります。
※テストケース・DT単位で目的を明らかにすることはとても有効です。
アラーム登録・表示+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム追加・個別編集、アラーム・スヌーズ() : 各機能確認+ アラーム追加・個別編集、曜日繰り返し設定() : 各機能確認
カテゴリ/ID
項目名
概要+ アラーム追加・個別編集、ラベル(): 各機能確認
1、アラーム+ アラーム編集(): 各機能確認1-1 アラーム登録・表示
1-1-1 アラーム追加・個別編集、アラーム、スヌーズ+ アラーム削除(): 各機能確認1-1-1_001 アラーム時間設定の確 アラームの時間を設定する+ データ登録最大数確認(): 登録データ数
認+ 操作応答確認() : 操作レスポンス+ Siriからの操作() : リソース連携
1-1-1_002 サウンド設定の確認
サウンド設定をする+ ライブラリ曲データ選択() : リソース連携

1行で4つのテストケース（それぞれにパラメータ組合せを持つ）をまとめる

実施方法（案）

合否判定基準ケース/設定備考

1．アラーム登録画面を開く
2．設定した時間でアラーム登録がされている
00:00
自動化対象
2．アラーム時間を設定する（時間設定はケース/設定 ことを確認する
07:00
に記載）
12:00
3．「保存」を押す
23:59
1．アラーム登録画面を開く
3．設定したサウンド設定でアラーム登録がさ デフォルト着 自動化対象
2．サウンド設定画面を開く
れていることを確認する
信音を3件確
3．サウンド設定をする※ライブラリ曲に関しては、1-1-9で確認
認
4．「保存」を押す
1-1-1_003 スヌーズ設定の確認
スヌーズ設定をする
1．アラーム登録画面を開く
3．設定したスヌーズ設定でアラーム登録がさON
自動化対象
2．スヌーズのON/OFF設定をする
れていることを確認する
OFF
3．「保存」を押す
1-1-1_004 設定キャンセルの場合 操作中にキャンセルを実施して登録されないこと 1．アラーム登録画面を開く
2．キャンセルが行われ、登録が行われない 任意に福栖パ 自動化対象を確認する
2．アラーム時間を設定する
ことを確認する
ターンの実施3．「キャンセル」を押すを推奨カタマリーの記法：抽象的なテストケース
テストカタマリーではUMLクラス図の「操作（メソッド）」エリアに「抽象的なテストケース（＝ロジカルテストケース）」を複数記述できます。

カタマリー名~ キガカリー1（）~ キガカリー2（）~ 抽象的なテストケース1（） : キガカリー1~ 抽象的なテストケース2（） : キガカリー2
UMLクラス図のメソッド（操作）箇所に
カタマリーが持つ「抽象的なテストケース」を複数記載できるようにしております。

〇が設定する項目です。
No 毎週月曜 毎週火曜
1
〇
2
〇
3
4
5
6
7
8
〇
〇
9
10
〇
11
〇
12
〇
〇

毎週水曜

毎週木曜

毎週金曜

毎週土曜

毎週日曜

〇
〇
〇
〇
〇
〇
〇
〇
〇

〇

〇
〇

〇
〇

〇

〇

〇
〇
〇

〇

カタマリーの記法：キガカリーについて
テストカタマリーには「キガカリー」を設定することができます。
• キガカリーでテストケースの持つ目的（意図）を明示できます。
• キガカリーを活用することで知識の蓄積やパターン化もできます。
• 「テスト観点（の、とある抽象度範囲）」もしくは「テストカテゴリ」と（↑を知っている人は）同等と考えてよいです。
カタマリー名~ キガカリー1（）~ 機能確認（）~ 操作レスポンス（）~ 登録データ数（）~ 連続操作（）~ 抽象的なテストケース（） : キガカリー1~ 抽象的なテストケース（） : 操作レスポンス

UMLクラス図の属性箇所にテストケースの目的となりうる気がかり事項を記述できるようにしています。
例：各機能確認、操作レスポンス、登録データ数など

名前は「キガカリー」と呼んでます。

※キガカリーは独自用語です。

テストカタマリー（UMLクラス図と共通箇所）
テストカタマリーはUMLツール（astah*やEnterprise Architect）のクラス図を使用してテストスイートモデルを表現できるように検討しております。
ただし、UMLクラス図とは異なる表現部分があります。
１．UMLと共通の部分：
クラス間の関連（集約、汎化など）をそのまま使用できるようにしています。
テストケースのグループ単位の関連性を表現しやすくしております。
<<データ登録・編集・削除>>
アラーム+ 各機能確認 : 機能適合性~ 登録データ数 : 性能効率性~ 操作レスポンス : 性能効率性+ バックグラウンド通知 : 互換性+ 想定以上の負荷 : 性能効率性+ リソース連携 : 互換性->相互運用性<<pattern>>

データ登録・編集・削除~ 登録データ数 : 性能効率性~ 操作レスポンス : 性能効率性

集約（has-a）の例

汎化（is-a）の例

アラーム登録・表示+ 各機能確認 : 機能適合性~ 登録データ数 : 性能効率性~ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム登録(結果網羅) : ふるまい
+ アラーム編集(結果網羅) : ふるまい
+ アラーム削除(結果網羅) : ふるまい
+ データ登録最大確認(性能評価) : 登録データ数+ 操作応答確認(性能評価) : 操作レスポンス+ Siriからの操作(結果網羅) : リソース連携

アラーム通知+ 各機能確認 : 機能適合性+ バックグラウンド通知 : 互換性+ 負荷時バックグラウンド動作 : 性能効率性<<データ登録・編集・削除>>
世界時計+ アラーム動作確認(結果網羅) : ふるまい
+ スヌーズ処理確認(結果網羅) : ふるまい
+ 他アプリ動作時(通常動作) : バックグラウンド通知+ 負荷時確認(性能評価) : 負荷時バックグラウンド動作+ 各機能確認 : 機能適合性~ 登録データ数 : 性能効率性~ 操作レスポンス : 性能効率性<<データ登録・編集・削除>>
アラーム+ 各機能確認 : 機能適合性~ 登録データ数 : 性能効率性~ 操作レスポンス : 性能効率性+ バックグラウンド通知 : 互換性+ 想定以上の負荷 : 性能効率性+ リソース連携 : 互換性->相互運用性

テストカタマリー（UMLクラス図との違い）
テストカタマリーはUMLツール（astah*やEnterprise Architect）のクラス図を使用してテストスイートモデルを表現できるように検討しております。
ただし、UMLクラス図とは異なる表現部分があります。
２．UMLと異なる部分：
クラス図のエンティティに記載する属性（プロパティ）、操作（メソッド）
部分は独自の表現方法に置き換えております。
カタマリー名~ キガカリー~ 抽象的なテストケース : キガカリー

クラス図：属性エリア⇒気がかり事項、
テストケースの目的を記載
クラス図：操作エリア⇒抽象的なテストケースと対応する
テストケースの目的を記載

テストカタマリーの表現方法
１つのテストカタマリー構造とテストケースの階層は簡単に一致できます。
アラーム登録・表示+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム追加・個別編集、アラーム・スヌーズ() : 各機能確認+ アラーム追加・個別編集、曜日繰り返し設定() : 各機能確認+ アラーム追加・個別編集、ラベル() : 各機能確認+ アラーム編集() : 各機能確認+ アラーム削除() : 各機能確認
カテゴリ/ID
項目名
概要
1、アラーム+ データ登録最大数確認() : 登録データ数
1-1+アラーム登録・表示
操作応答確認() : 操作レスポンス
1-1-1 アラーム追加・個別編集、アラーム、スヌーズ+ Siriからの操作(): リソース連携
1-1-1_001 アラーム時間設定の確アラームの時間を設定する+ ライブラリ曲データ選択(): リソース連携認

カタマリーの範囲※カタマリー自体も階層化できます
カタマリーの持つ抽象的なテストケース範囲
実施方法（案）

合否判定基準ケース/設定備考

1．アラーム登録画面を開く
2．設定した時間でアラーム登録がされている
00:00
自動化対象
2．アラーム時間を設定する（時間設定はケース/設定 ことを確認する
07:00
に記載）
12:00
3．「保存」を押す
23:59
1-1-1_002 サウンド設定の確認
サウンド設定をする
1．アラーム登録画面を開く
3．設定したサウンド設定でアラーム登録がさ デフォルト着 自動化対象
2．サウンド設定画面を開く
れていることを確認する
信音を3件確
3．サウンド設定をする※ライブラリ曲に関しては、1-1-9で確認
認
4．「保存」を押す
1-1-1_003 スヌーズ設定の確認
スヌーズ設定をする
1．アラーム登録画面を開く
3．設定したスヌーズ設定でアラーム登録がさON
自動化対象
2．スヌーズのON/OFF設定をする
れていることを確認する
OFF
3．「保存」を押す
1-1-1_004 設定キャンセルの場合 操作中にキャンセルを実施して登録されないこと 1．アラーム登録画面を開く
2．キャンセルが行われ、登録が行われない 任意に福栖パ 自動化対象を確認する
2．アラーム時間を設定する
ことを確認する
ターンの実施3．「キャンセル」を押すを推奨

テストカタマリーの使い方例：ボトムアップ
テストカタマリーの使い方として、ボトムアップで整理する方法があります。
既存の（Excel？）テストケースをカタマリーとして表現しつつ、個々の「抽象的なテストケース」単位で抜けや不要な項目がないか、元のExcelテストケースにおけるテストケースの目的について整理できます。

アラーム登録・表示

この比較で抜けを発見！

+ アラーム追加・個別編集、アラーム・スヌーズ() : 各機能確認
カテゴリ/ID
項目名
概要
1、アラーム1-1 アラーム登録・表示
1-1-1 アラーム追加・個別編集、アラーム、スヌーズ
1-1-1_001 アラーム時間設定の確 アラームの時間を設定する
認実施方法（案）

合否判定基準ケース/設定備考

1．アラーム登録画面を開く
2．設定した時間でアラーム登録がされている
00:00
自動化対象
2．アラーム時間を設定する（時間設定はケース/設定 ことを確認する
07:00
に記載）
12:00
3．「保存」を押す
23:59
1．アラーム登録画面を開く
3．設定したサウンド設定でアラーム登録がさ デフォルト着 自動化対象
2．サウンド設定画面を開く
れていることを確認する
信音を3件確
3．サウンド設定をする※ライブラリ曲に関しては、1-1-9で確認
認
4．「保存」を押す
1．アラーム登録画面を開く
3．設定したスヌーズ設定でアラーム登録がさON
自動化対象
2．スヌーズのON/OFF設定をする
れていることを確認する
OFF
3．「保存」を押す
1-1-1_004 設定キャンセルの場合 操作中にキャンセルを実施して登録されないこと 1．アラーム登録画面を開く
2．キャンセルが行われ、登録が行われない 任意に福栖パ 自動化対象を確認する
2．アラーム時間を設定する
ことを確認する
ターンの実施3．「キャンセル」を押すを推奨
1-1-2 アラーム追加・個別編集、曜日繰り返し設定
1-1-2_001 曜日繰り返し設定の確 曜日繰り返しの設定をする
1．アラーム登録画面を開く
3．設定した曜日の繰り返し設定でアラーム登 1-1-2_001_曜 自動化対象
認
2．繰り返し設定画面を開く
録がされていることを確認する
日設定表にま3．曜日繰り返し設定をする
とめる
4．「保存」を押す
1-1-3 アラーム追加・個別編集、ラベル
1-1-3_001 ラベル設定の確認
ラベル名称の設定をする
1．アラーム登録画面を開く
3．設定したラベル設定でアラーム登録がされ 1-1-3_001_ラ 自動化対象
2．ラベル設定画面を開くていることを確認する
ベル設定表に
3．ラベル設定をする
まとめる
4．「保存」を押す
1-1-4 アラーム編集
1-1-4_001 編集選択での表示
選択したアラームが編集画面に移行できることを 1．アラーム一覧画面を開く
2．アラーム編集対象の編集画面が表示され設定の登録は確認する
2．編集ボタンを押し、アラーム編集対象を選択する ることを確認
1-1-1～1-1-3
で実施可能
1-1-5 アラーム削除
1-1-5_001 アラーム一覧の編集選 アラーム一覧の編集ボタンを押した際に削除で 1．アラーム一覧画面を開く
2．アラーム削除対象が削除されることを確認
自動化対象
択からの削除きることを確認する
2．編集ボタンを押し、アラーム編集対象「－」を押して削除を選択する
1-1-5_002 編集画面からの削除
アラーム編集画面から削除できること
1．アラーム一覧画面を開く
3．アラーム削除対象が削除されることを確認
自動化対象
2．編集ボタンを押し、アラーム編集対象を選択する
3．編集画面で削除ボタンを押す
1-1-6 データ登録最大数確認
1-1-6_001 データ登録数最大数確 アラームデータの登録数の最大数を確認する＜アラーム登録＞
3．アラーム登録数が登録されていることを確 1-1-6_001_ 自動化対象
認
1．アラーム登録画面を開く
認する
データ登録最2．「保存」を押してアラーム登録をする
大数表にまと3、＜アラーム登録＞を繰り返す
める
1-1-7 操作応答確認
1-1-7_001 操作応答時間の確認 操作に対する応答時間を確認する
1-1-6_001の手順を実施
登録時のレスポンスが遅くなるようなケース 1-1-6_001とがないこと同じ
1-1-8 Siriからの操作
1-1-8_001 Siriによるアラーム追加 Siri経由でアラームを追加できることを確認する 1．Siriを呼び出す
2．設定した時間でアラーム登録がされている
2．時間指定でアラームを追加する
ことを確認する
1-1-8_002 Siriによるアラーム削除 Siri経由でアラームを削除の一覧を出せることを 1．Siriを呼び出す
2．削除対象のアラーム一覧を表示することを一覧呼び出し確認する
2．アラーム削除を呼び出す
確認する
1-1-8_003 Siriによるアラーム削除 Siri経由でアラームを削除の一覧をからラベルで 1．Siriを呼び出す
3．指定したラベルのアラーム削除がされていラベルで削除アラームを削除できることを確認する
2．アラーム削除を呼び出す
ることを確認する
3．ラベルで削除対象を指摘する
1-1-8_004 Siriによるアラーム削除 Siri経由でアラームを削除の一覧をから登録時 1．Siriを呼び出す
3．指定した時間のアラーム削除がされている
時間で削除
間でアラームを削除できることを確認する
2．アラーム削除を呼び出す
ことを確認する
3．時間で削除対象を指摘する
1-1-9 ライブラリ曲データ選択
1-1-9_001 着信音/通知音ストアか 着信音/通知音ストアから購入した曲をアラーム 1．アラーム登録画面を開く
4．設定したサウンドの設定でアラーム登録が
自動化対象
ら登録
として登録できることを確認する
2．サウンド設定画面を開くされていることを確認する
3．着信音/通知音ストアからダウンロードして設定をする
4．「保存」を押す
1-1-9_002 ライブラリ登録された曲 保存されている曲ライブラリから曲をアラームとし 1．アラーム登録画面を開く
4．設定したサウンドの設定でアラーム登録が
自動化対象
から選択
て登録できることを確認する
2．サウンド設定画面を開くされていることを確認する
3．ライブラリから曲を選択して設定をする
4．「保存」を押す
1-1-1_002 サウンド設定の確認

サウンド設定をする

1-1-1_003 スヌーズ設定の確認

スヌーズ設定をする

Excelテストケース群

1-1 アラーム登録・表示
1-1-1 アラーム追加・個別編集、アラーム、スヌーズ
1-1-1_001 アラーム時間設定の確 アラームの時間を設定する
認

1．アラーム登録画面を開く
2．設定した時間でアラーム登録がされている
00:00
自動化対象
2．アラーム時間を設定する（時間設定はケース/設定 ことを確認する
07:00
に記載）
12:00
3．「保存」を押す
23:59
1-1-1_004 設定キャンセルの場合 操作中にキャンセルを実施して登録されないこと 1．アラーム登録画面を開く
2．キャンセルが行われ、登録が行われない 任意に福栖パ 自動化対象を確認する
2．アラーム時間を設定する
ことを確認する
ターンの実施3．「キャンセル」を押すを推奨

抽象的なテストケース（Excelテストケースと比較）

テストカタマリーの使い方例：ボトムアップ
実際の例。

元の情報
Excelテストケース群
入場時間「00:00:00」の時

入場時間（料金表）~ 機能確認・同値分割~ 境界値~ 入場時間・同一結果の時間確認（） : 機能確認・同値分割~ 入場時間・境界値確認（） : 境界値

入場時間「00:01:00」の時

入場時間「05:00:30」の時

料金表

入場時間「09:00:00」の時

おとな（15才以上）1000円
こども（14才以下）500円＜入場時間＞
10:00-17:59入場
通常料金
18:00-19:59入場+300円

入場時間「09:59:59」の時※上記時間以外は購入不可

必要
いらないかも？

不足

入場時間「10:00:00」の時

入場時間「00:00:00」の時
入場時間「10:00:00」の時同一結果となる
時間を確認

入場時間「19:59:59」の時

入場時間「20:00:00」の時
購入不可

通常料金

夜間料金（+300）

購入不可

入場時間「12:00:00」の時
入場時間「15:30:30」の時

23:59:59
09:59:59
17:59:59
19:59:59
00:00:00
10:00:00
18:00:00
20:00:00

入場時間「17:00:00」の時
入場時間「19:59:59」の時
入場時間「20:00:00」の時
入場時間「23:59:59」の時

入場時間「09:59:59」の時

上記時間範囲の境界の確認（上記を補完するもののみ）

入場時間「17:59:59」の時
入場時間「18:00:00」の時
入場時間「23:59:59」の時

テストケースとキガカリー、目的との対応
抽象的なテストケースにキガカリーを関連付けることで、
テストケースの目的を明確に意識したグループを作ることができます。
⇒「同一の目的を持つテストケース群」としてまとめることが大事！
カタマリー名~ キガカリー（）~ 境界値（）~ 操作レスポンス（）~ 登録データ数（）~ 連続操作（）~ 抽象的なテストケース（） : キガカリー~ 入場時間・境界値の確認（） : 境界値~ 大量データのアラーム登録（）：登録データ数~ アラーム登録時レスポンス確認（） : 操作レスポンス
テストケースの目的に関わる説明は以下も参考
納得できるテストをつくるアプローチ
https://www.slideshare.net/NoriyukiMizuno/jasst17-kansai

・テストケースの目的となるキガカリーを「型」として割り当てて表現可能（キガカリーがテストケースの目的に）

テストカタマリーの利点：機能と非機能「機能と関連する非機能（特定操作に対するレスポンスや繰り返しの信頼性）」などがテストケースの傾向として出てきやすいです。
同一カタマリーで機能以外の気がかり要素（下記例では操作レスポンスなど）を同時に取り扱うことで、テストケースを思いつきやすくしています。
それをテストカタマリーのみを見ながら議論もしやすくしています。
アラーム登録・表示+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム追加・個別編集、アラーム・スヌーズ() : 各機能確認+ アラーム追加・個別編集、曜日繰り返し設定() : 各機能確認+ アラーム追加・個別編集、ラベル() : 各機能確認+ アラーム編集() : 各機能確認+ アラーム削除() : 各機能確認+ データ登録最大数確認() : 登録データ数+ 操作応答確認() : 操作レスポンス+ Siriからの操作() : リソース連携+ ライブラリ曲データ選択() : リソース連携「各機能確認」以外のキガカリーの例
・登録データ数
・操作に対するレスポンス
もテストを検討するようにしてます※テストケースと関連付けることでわかりやすくなりますテストカタマリーの使い方例：トップダウン
トップダウンの設計時にテストカタマリーを使用します。
１．カタマリーのキガカリー箇所のみを記載して、テストを検討する範囲を決定
２．抽象的なテストケースをまでまとめた後、具体的なテストケース作成を実施※この先の作業は（テスト設計を知っている）外部へ委託も可能。
１．の例
キガカリーまで合意して詳細化作業に入ります。

２．の例
ここから具体的なテストケース作成へ
アラーム

参考：
アラーム登録のパラメータ・曜日繰り返し設定
・ラベル名称設定
・サウンド選択設定（効果音、ライブラリ曲）
・スヌーズ設定+ 各機能確認 : 機能適合性+ 機能組合せ確認 : 二因子組合せ+ 状態遷移確認 : 状態遷移
+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ バックグラウンド通知 : 互換性+ リソース連携 : 互換性->相互運用性+ 負荷時バックグランド動作 : 性能効率性

アラーム登録・表示

各アラームの設定
ON/OFF設定

アラーム登録・表示

アラーム

合意

+ 各機能確認 : 機能適合性+ 機能組合せ確認 : 二因子組合せ+ 状態遷移確認 : 状態遷移
+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ バックグラウンド通知 : 互換性+ リソース連携 : 互換性->相互運用性+ 負荷時バックグランド動作 : 性能効率性

アラーム通知+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性+ 各機能確認 : 機能適合性+ バックグラウンド通知 : 互換性+ 負荷時バックグラウンド動作 : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム追加・個別編集、アラーム・スヌーズ() : 各機能確認+ アラーム追加・個別編集、曜日繰り返し設定() : 各機能確認+ アラーム追加・個別編集、ラベル() : 各機能確認+ アラーム編集() : 各機能確認+ アラーム削除() : 各機能確認+ データ登録最大数確認() : 登録データ数+ 操作応答確認() : 操作レスポンス+ Siriからの操作() : リソース連携+ ライブラリ曲データ選択() : リソース連携+ アラーム動作確認() : 各機能確認+ スヌーズ処理確認() : 各機能確認+ 他アプリ動作時確認() : バックグラウンド通知+ 負荷時確認() : 負荷時バックグラウンド動作

詳細化へ+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム追加・個別編集、アラーム・スヌーズ() : 各機能確認+ アラーム追加・個別編集、曜日繰り返し設定() : 各機能確認+ アラーム追加・個別編集、ラベル() : 各機能確認+ アラーム編集() : 各機能確認+ アラーム削除() : 各機能確認+ データ登録最大数確認() : 登録データ数+ 操作応答確認() : 操作レスポンス+ Siriからの操作() : リソース連携+ ライブラリ曲データ選択() : リソース連携

テスト
ケースへ

例：テストケース全体俯瞰
右のカタマリーは
時計アプリ全体のテストケースの構造を表現しています・アラーム（例を用意）
・世界時計（ワーク用）
・タイマー
・ストップウォッチのカタマリーがあります。
その他スマホアプリ全体を横断するカタマリーもあります。

ワークで設計しますテストケース設計の参考例：アラーム
アラーム～Alarm～
編集

＋

2:06
アラーム

12:01
アラーム

23:11
アラーム

世界時計 アラーム StopWactch タイマー

世界時計
～World Clock～編集＋

今日、＋0時間

17:35

今日、-1時間

16:35

今日、-16時間

1:35

東京

深圳

サンフランシスコ

世界時計 アラーム StopWactch タイマー

ワークで設計しますテストケース設計の参考例：アラーム
全体図では俯瞰性を高めるためアラームの概要のみ表記してますがアラームには詳細テストケースが多数あることが想定されます。

階層的に詳細化して表記させることができます。
has-a（集約）で階層化させてます。
⇒「アラーム登録・表示」と「アラーム通知」に分けてます。
アラーム+ 各機能確認 : 機能適合性+ 操作シナリオ : 機能適合性+ 状態遷移確認 : 状態遷移
+ 機能組合せ確認 : 二因子組合せ+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ バックグラウンド通知 : 互換性+ リソース連携 : 互換性->相互運用性+ 負荷時バックグランド動作 : 性能効率性

各画面対応
アラーム

アラーム
～Alarm～
編集

世界時計

＋

~ ひみつ

2:06

+ 各機能確認 : 機能適合性+ 機能組合せ確認 : 二因子組合せ+ 状態遷移確認 : 状態遷移
+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ バックグラウンド通知 : 互換性+ リソース連携 : 互換性->相互運用性+ 負荷時バックグランド動作 : 性能効率性

アラーム

12:01
アラーム

23:11
アラーム

世界時計 アラーム StopWactch タイマー

タイマー

ストップウオッチ- 省略 : 省略- 省略 : 省略

詳細化+ アラーム操作シナリオ() : 操作シナリオ+ アラーム状態遷移() : 状態遷移確認+ 操作組合せ() : 機能組合せ確認+ OSのイベント発生() : 相互運用性

アラーム登録・表示

アラーム通知+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性+ 各機能確認 : 機能適合性+ バックグラウンド通知 : 互換性+ 負荷時バックグラウンド動作 : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム追加・オプション設定() : 各機能確認+ アラーム追加・オプション・曜日繰り返し設定() : 各機能確認+ アラーム追加・オプション・ラベル() : 各機能確認+ アラーム編集() : 各機能確認+ アラーム削除() : 各機能確認+ データ登録最大数確認() : 登録データ数+ 操作応答確認() : 操作レスポンス+ Siriからの操作() : リソース連携+ ライブラリ曲データ選択() : リソース連携+ アラーム動作確認() : 各機能確認+ スヌーズ処理確認() : 各機能確認+ 他アプリ動作時確認() : バックグラウンド通知+ 負荷時確認() : 負荷時バックグラウンド動作+ ライブラリ曲データ再生() : リソース連携

テストケース設計の参考例：アラーム
アラーム

アラームの
テストケースを
テストカタマリーで表現した例+ 各機能確認 : 機能適合性+ 操作シナリオ : 機能適合性+ 状態遷移確認 : 状態遷移
+ 機能組合せ確認 : 二因子組合せ+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ バックグラウンド通知 : 互換性+ リソース連携 : 互換性->相互運用性+ 負荷時バックグランド動作 : 性能効率性+ アラーム操作シナリオ() : 操作シナリオ+ アラーム状態遷移() : 状態遷移確認+ 操作組合せ() : 機能組合せ確認+ OSのイベント発生() : 相互運用性

アラーム～Alarm～
編集

＋

7:06
アラーム

12:01
お昼までゆっくり寝る

23:00
アニメ見る

世界時計 アラーム StopWactch タイマー

アラーム登録・表示

アラーム通知+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性+ 各機能確認 : 機能適合性+ バックグラウンド通知 : 互換性+ 負荷時バックグラウンド動作 : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム追加・オプション設定() : 各機能確認+ アラーム追加・オプション・曜日繰り返し設定() : 各機能確認+ アラーム追加・オプション・ラベル() : 各機能確認+ アラーム編集() : 各機能確認+ アラーム削除() : 各機能確認+ データ登録最大数確認() : 登録データ数+ 操作応答確認() : 操作レスポンス+ Siriからの操作() : リソース連携+ ライブラリ曲データ選択() : リソース連携+ アラーム動作確認() : 各機能確認+ スヌーズ処理確認() : 各機能確認+ 他アプリ動作時確認() : バックグラウンド通知+ 負荷時確認() : 負荷時バックグラウンド動作+ ライブラリ曲データ再生() : リソース連携

テストケース設計の参考例：アラーム
アラーム

トップダウンでの設計をするときは階層的に一度分解してテストケースを考えると考えやすいことが多いです。

+ 各機能確認 : 機能適合性+ 操作シナリオ : 機能適合性+ 状態遷移確認 : 状態遷移
+ 機能組合せ確認 : 二因子組合せ+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ バックグラウンド通知 : 互換性+ リソース連携 : 互換性->相互運用性+ 負荷時バックグランド動作 : 性能効率性

詳細化された下位のカタマリー側でテストケースを検討すると考えやすいです。

+ アラーム操作シナリオ() : 操作シナリオ+ アラーム状態遷移() : 状態遷移確認+ 操作組合せ() : 機能組合せ確認+ OSのイベント発生() : 相互運用性

アラーム登録・表示

分解することでテストケースを考えやすくなります！

上位カタマリー+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム追加・オプション設定() : 各機能確認+ アラーム追加・オプション・曜日繰り返し設定() : 各機能確認+ アラーム追加・オプション・ラベル() : 各機能確認+ アラーム編集() : 各機能確認+ アラーム削除() : 各機能確認+ データ登録最大数確認() : 登録データ数+ 操作応答確認() : 操作レスポンス+ Siriからの操作() : リソース連携+ ライブラリ曲データ選択() : リソース連携

アラーム通知詳細化+ 各機能確認 : 機能適合性+ バックグラウンド通知 : 互換性+ 負荷時バックグラウンド動作 : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム動作確認() : 各機能確認+ スヌーズ処理確認() : 各機能確認+ 他アプリ動作時確認() : バックグラウンド通知+ 負荷時確認() : 負荷時バックグラウンド動作+ ライブラリ曲データ再生() : リソース連携

下位カタマリーテストケース設計の参考例：アラーム
アラーム

ただし、上位カタマリーでもテストケースを考える行為が有効となります。

+ 各機能確認 : 機能適合性+ 操作シナリオ : 機能適合性+ 状態遷移確認 : 状態遷移
+ 機能組合せ確認 : 二因子組合せ+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ バックグラウンド通知 : 互換性+ リソース連携 : 互換性->相互運用性+ 負荷時バックグランド動作 : 性能効率性

下位カタマリーだけではアラーム全体の目的達成、
アラームの外部との関連等検討が抜けやすい
項目もあります。

+ アラーム操作シナリオ() : 操作シナリオ+ アラーム状態遷移() : 状態遷移確認+ 操作組合せ() : 機能組合せ確認+ OSのイベント発生() : 相互運用性

アラーム登録・表示

上位のカタマリー範囲で検討することで、抜けを減らすこともできます。

上位カタマリー上位カタマリーでテストケースを検討する効果もあります
アラーム通知+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性+ 各機能確認 : 機能適合性+ バックグラウンド通知 : 互換性+ 負荷時バックグラウンド動作 : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム追加・オプション設定() : 各機能確認+ アラーム追加・オプション・曜日繰り返し設定() : 各機能確認+ アラーム追加・オプション・ラベル() : 各機能確認+ アラーム編集() : 各機能確認+ アラーム削除() : 各機能確認+ データ登録最大数確認() : 登録データ数+ 操作応答確認() : 操作レスポンス+ Siriからの操作() : リソース連携+ ライブラリ曲データ選択() : リソース連携+ アラーム動作確認() : 各機能確認+ スヌーズ処理確認() : 各機能確認+ 他アプリ動作時確認() : バックグラウンド通知+ 負荷時確認() : 負荷時バックグラウンド動作+ ライブラリ曲データ再生() : リソース連携

下位カタマリーテストケース設計の参考例：アラーム
下位カタマリーをどうやって上手く分解するの…？という質問については…

Siri

パネル

すべて削除、
すべてON/OFF

追加・編集・削除

登録アラーム、
ON/OFF状態

アラーム
登録・表
示

表示

アラーム音対象設定
設定
曜日繰り返しラベル名称設定
サウンド設定スヌーズ設定ライブラ
リ曲選択

アラーム設定アラーム情報ON/OFF設定
登録数は50以上可能（上限不明だが97個以上いけるらしい）

音楽ライブラリ

アラーム設定追加
・登録・削除

スヌーズ、
OFF変更

再生曲

スヌーズ停止アラーム通知

現在時間

アラーム音

アラーム音データ

音声出力
ミュージックアプリ側へ再生や停止指示を出しているかもしれないが、機能の一部としておく

「カタマリー」「キガカリー」などの謎用語でテストを議論するようになるよう、今回のワークで染まっちゃってください！

Copyrights atamotoさん
https://twitter.com/atamotonu/status/769825862204043266/photo/1

出題：世界時計のテスト設計
世界時計～World Clock～編集＋

今日、＋0時間

17:35

今日、-1時間

16:35

東京

深圳

今日、-16時間

サンフランシスコ

1:35

世界時計 アラーム StopWactch タイマー

カタマリー名~ キガカリー（）~ 抽象的なテストケース（） : キガカリー

お手持ちのスマホに入っている
世界時計について
テストカタマリーを使ってテスト設計しましょう出題：世界時計のテスト設計
時計アプリの機能のうち、世界時計をテスト設計します。
世界時計はiPhone, Android の時計アプリが持つ機能です。
アラーム～Alarm～編集

世界時計～World Clock～
＋

2:06
アラーム

2:06
アラーム

2:06

編集

＋

今日、＋0時間

17:35

今日、-1時間

16:35

今日、-16時間

1:35

東京

深圳

サンフランシスコ

アラーム

世界時計 アラーム StopWactch タイマー

世界時計 アラーム StopWactch タイマー

℗

テストベース：世界時計の機能
モニター地域一覧・登録・編集
世界時計～World Clock～

世界時計～World Clock～＋編集
今日、＋0時間

17:35

今日、-1時間

16:35

今日、-16時間

1:35

東京

深圳

世界時計無し＋サンフランシスコ

世界時計 アラーム StopWactch タイマー

• モニター地域表示• モニター地域登録・削除• モニター地域表示位置変更

世界時計 アラーム StopWactch タイマー

※お手元に世界時計がない場合に活用してください℗

テストベース：世界時計の機能
タイムゾーン一覧・検索
都市を選択してください🔍

あ～都市を選択してください

キャンセル

Ａ
・
Ｃ
アイウン、西サハラ
・Ｆ・
アカプルコ、メキシコ
Ｈ・
アグアスカリエンテス、メキシコＪ
・Ｍ
アクタウ、カザフスタン・Ｏ・
アクトベ、カザフスタン
Ｑ・Ｔ
アクトン、米国
・Ｖ・
アクラ、ガーナ
Ｘ・
アシガバード、トルクメニスタンあ・さアジスアベバ、エチオピア・な・
アスタナ、カザフスタン
や
・
わ

キャンセル

🔍日本
大阪、日本
東京、日本

→

あ

か

さ

ｘ

↺

た

な

は

空白

ABC

ま

や

ら

あ

🎤 ^_^

わ

、。?!

あ

• タイムゾーン一覧表示• タイムゾーン検索• タイムゾーン選択※お手元に世界時計がない場合に活用してください℗

テストベース：世界時計の画面遷移
世界時計～World Clock～

UTC基準地域
検索画面を
表示する

＋

世界時計無し地域登録をキャンセルし時刻一覧画面に戻る

世界時計～World Clock～

編集

＋

17:35
深圳 16:35
サンフランシスコ 1:35
今日、＋0時間

東京

今日、-1時間

世界時計 アラーム StopWactch タイマー

今日、-16時間

世界時計 アラーム StopWactch タイマー

地域名を入力するとフィルタ結果が表示される都市を選択してください
🔍

あ～

キャンセル

Ａ
・
Ｃ
アイウン、西サハラ
・Ｆ・
アカプルコ、メキシコ
Ｈ・
アグアスカリエンテス、メキシコＪ
・Ｍ
アクタウ、カザフスタン・Ｏ・
アクトベ、カザフスタン
Ｑ・Ｔ
アクトン、米国
・Ｖ・
アクラ、ガーナ
Ｘ・
アシガバード、トルクメニスタンあ・さアジスアベバ、エチオピア・な・
アスタナ、カザフスタン
や・わ

都市を選択してください
キャンセル

🔍日本
大阪、日本
東京、日本

→

あ

か

さ

ｘ

↺

た

な

は

空白

ABC

ま

や

ら

あ

🎤 ^_^

わ

、。?!

あ

登録したい地域Aをタップすると時刻表示画面が表示される
地域Aが新たに追加されている※お手元に世界時計がない場合に活用してください℗

テストベース：モニター地域の登録・削除
編集押下
世界時計
～World Clock～

世界時計～World Clock～編集＋

タイムゾーン画面でモニター地域登録
世界時計無し＋今日、＋0時間

17:35

今日、-1時間

16:35

今日、-16時間

1:35

東京

深圳

サンフランシスコ

モニター
地域一覧
≧１件
完了押下

世界時計
～World Clock～
完了

-

＋

今日、＋0時間=

今日、-1時間=東京

深圳

今日、-16時間

サンフランシスコ=削除

世界時計 アラーム StopWactch タイマー

世界時計 アラーム StopWactch タイマー

世界時計 アラーム StopWactch タイマー

モニター地域一覧が0件で完了押下※お手元に世界時計がない場合に活用してくださいワークショップのゴール
参加者は、テストカタマリーを使って
1. テスト設計技法を意識できる粒度でテストケースを整理することができる。
2. テストの目的がくみ取れるテストケースを作ることができる。
3. テストスイートモデルを俯瞰することで包括的にテストを設計できる。

Work①

Work①
テストケースを整理する

名称
属性

テストケースWork①ゴール
テスト設計技法を意識できる粒度でテスト
ケースを整理することができる。

（再掲）テストカタマリーの使い方例：ボトムアップ
テストカタマリーの使い方として、ボトムアップで整理する方法があります。
既存の（Excel？）テストケースをカタマリーとして表現しつつ、個々の「抽象的なテストケース」単位で抜けや不要な項目がないか、元のExcelテストケースにおけるテストケースの目的について整理できます。

アラーム登録・表示

この比較で抜けを発見！

+ アラーム追加・個別編集、アラーム・スヌーズ() : 各機能確認
カテゴリ/ID
項目名
概要
1、アラーム1-1 アラーム登録・表示
1-1-1 アラーム追加・個別編集、アラーム、スヌーズ
1-1-1_001 アラーム時間設定の確 アラームの時間を設定する
認実施方法（案）

合否判定基準ケース/設定備考

1．アラーム登録画面を開く
2．設定した時間でアラーム登録がされている
00:00
自動化対象
2．アラーム時間を設定する（時間設定はケース/設定 ことを確認する
07:00
に記載）
12:00
3．「保存」を押す
23:59
1．アラーム登録画面を開く
3．設定したサウンド設定でアラーム登録がさ デフォルト着 自動化対象
2．サウンド設定画面を開く
れていることを確認する
信音を3件確
3．サウンド設定をする※ライブラリ曲に関しては、1-1-9で確認
認
4．「保存」を押す
1．アラーム登録画面を開く
3．設定したスヌーズ設定でアラーム登録がさON
自動化対象
2．スヌーズのON/OFF設定をする
れていることを確認する
OFF
3．「保存」を押す
1-1-1_004 設定キャンセルの場合 操作中にキャンセルを実施して登録されないこと 1．アラーム登録画面を開く
2．キャンセルが行われ、登録が行われない 任意に福栖パ 自動化対象を確認する
2．アラーム時間を設定する
ことを確認する
ターンの実施3．「キャンセル」を押すを推奨
1-1-2 アラーム追加・個別編集、曜日繰り返し設定
1-1-2_001 曜日繰り返し設定の確 曜日繰り返しの設定をする
1．アラーム登録画面を開く
3．設定した曜日の繰り返し設定でアラーム登 1-1-2_001_曜 自動化対象
認
2．繰り返し設定画面を開く
録がされていることを確認する
日設定表にま3．曜日繰り返し設定をする
とめる
4．「保存」を押す
1-1-3 アラーム追加・個別編集、ラベル
1-1-3_001 ラベル設定の確認
ラベル名称の設定をする
1．アラーム登録画面を開く
3．設定したラベル設定でアラーム登録がされ 1-1-3_001_ラ 自動化対象
2．ラベル設定画面を開くていることを確認する
ベル設定表に
3．ラベル設定をする
まとめる
4．「保存」を押す
1-1-4 アラーム編集
1-1-4_001 編集選択での表示
選択したアラームが編集画面に移行できることを 1．アラーム一覧画面を開く
2．アラーム編集対象の編集画面が表示され設定の登録は確認する
2．編集ボタンを押し、アラーム編集対象を選択する ることを確認
1-1-1～1-1-3
で実施可能
1-1-5 アラーム削除
1-1-5_001 アラーム一覧の編集選 アラーム一覧の編集ボタンを押した際に削除で 1．アラーム一覧画面を開く
2．アラーム削除対象が削除されることを確認
自動化対象
択からの削除きることを確認する
2．編集ボタンを押し、アラーム編集対象「－」を押して削除を選択する
1-1-5_002 編集画面からの削除
アラーム編集画面から削除できること
1．アラーム一覧画面を開く
3．アラーム削除対象が削除されることを確認
自動化対象
2．編集ボタンを押し、アラーム編集対象を選択する
3．編集画面で削除ボタンを押す
1-1-6 データ登録最大数確認
1-1-6_001 データ登録数最大数確 アラームデータの登録数の最大数を確認する＜アラーム登録＞
3．アラーム登録数が登録されていることを確 1-1-6_001_ 自動化対象
認
1．アラーム登録画面を開く
認する
データ登録最2．「保存」を押してアラーム登録をする
大数表にまと3、＜アラーム登録＞を繰り返す
める
1-1-7 操作応答確認
1-1-7_001 操作応答時間の確認 操作に対する応答時間を確認する
1-1-6_001の手順を実施
登録時のレスポンスが遅くなるようなケース 1-1-6_001とがないこと同じ
1-1-8 Siriからの操作
1-1-8_001 Siriによるアラーム追加 Siri経由でアラームを追加できることを確認する 1．Siriを呼び出す
2．設定した時間でアラーム登録がされている
2．時間指定でアラームを追加する
ことを確認する
1-1-8_002 Siriによるアラーム削除 Siri経由でアラームを削除の一覧を出せることを 1．Siriを呼び出す
2．削除対象のアラーム一覧を表示することを一覧呼び出し確認する
2．アラーム削除を呼び出す
確認する
1-1-8_003 Siriによるアラーム削除 Siri経由でアラームを削除の一覧をからラベルで 1．Siriを呼び出す
3．指定したラベルのアラーム削除がされていラベルで削除アラームを削除できることを確認する
2．アラーム削除を呼び出す
ることを確認する
3．ラベルで削除対象を指摘する
1-1-8_004 Siriによるアラーム削除 Siri経由でアラームを削除の一覧をから登録時 1．Siriを呼び出す
3．指定した時間のアラーム削除がされている
時間で削除
間でアラームを削除できることを確認する
2．アラーム削除を呼び出す
ことを確認する
3．時間で削除対象を指摘する
1-1-9 ライブラリ曲データ選択
1-1-9_001 着信音/通知音ストアか 着信音/通知音ストアから購入した曲をアラーム 1．アラーム登録画面を開く
4．設定したサウンドの設定でアラーム登録が
自動化対象
ら登録
として登録できることを確認する
2．サウンド設定画面を開くされていることを確認する
3．着信音/通知音ストアからダウンロードして設定をする
4．「保存」を押す
1-1-9_002 ライブラリ登録された曲 保存されている曲ライブラリから曲をアラームとし 1．アラーム登録画面を開く
4．設定したサウンドの設定でアラーム登録が
自動化対象
から選択
て登録できることを確認する
2．サウンド設定画面を開くされていることを確認する
3．ライブラリから曲を選択して設定をする
4．「保存」を押す
1-1-1_002 サウンド設定の確認

サウンド設定をする

1-1-1_003 スヌーズ設定の確認

スヌーズ設定をする

Excelテストケース群

1-1 アラーム登録・表示
1-1-1 アラーム追加・個別編集、アラーム、スヌーズ
1-1-1_001 アラーム時間設定の確 アラームの時間を設定する
認

1．アラーム登録画面を開く
2．設定した時間でアラーム登録がされている
00:00
自動化対象
2．アラーム時間を設定する（時間設定はケース/設定 ことを確認する
07:00
に記載）
12:00
3．「保存」を押す
23:59
1-1-1_004 設定キャンセルの場合 操作中にキャンセルを実施して登録されないこと 1．アラーム登録画面を開く
2．キャンセルが行われ、登録が行われない 任意に福栖パ 自動化対象を確認する
2．アラーム時間を設定する
ことを確認する
ターンの実施3．「キャンセル」を押すを推奨

抽象的なテストケース（Excelテストケースと比較）例題：アラーム登録
アラーム登録・表示+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性？
+ アラーム追加・個別編集、アラーム・スヌーズ(): 各機能確認+ アラーム追加・個別編集、曜日繰り返し設定() : 各機能確認+ アラーム追加・個別編集、ラベル() : 各機能確認+ アラーム編集() : 各機能確認+ アラーム削除() : 各機能確認+ データ登録最大数確認() : 登録データ数+ 操作応答確認() : 操作レスポンス+ Siriからの操作() : リソース連携
カテゴリ/ID
項目名
概要+ ライブラリ曲データ選択(): リソース連携

1、アラーム1-1 アラーム登録・表示？：各機能確認1-1-1 アラーム追加・個別編集、アラーム、スヌーズ
1-1-1_001 アラーム時間設定の確 アラームの時間を設定する
認

この部分を考えてください（抽象的テストケースの名称）

実施方法（案）

合否判定基準ケース/設定1．アラーム登録画面を開く
2．設定した時間でアラーム登録がされている
00:00
自動
2．アラーム時間を設定する（時間設定はケース/設定 ことを確認する
07:00
に記載）
12:00
3．「保存」を押す
23:59
1-1-1_002 サウンド設定の確認
サウンド設定をする
1．アラーム登録画面を開く
3．設定したサウンド設定でアラーム登録がさ デフォルト着 自動
2．サウンド設定画面を開く
れていることを確認する
信音を3件確
3．サウンド設定をする※ライブラリ曲に関しては、1-1-9で確認
認
4．「保存」を押す
1-1-1_003 スヌーズ設定の確認
スヌーズ設定をする
1．アラーム登録画面を開く
3．設定したスヌーズ設定でアラーム登録がさON
自動
2．スヌーズのON/OFF設定をする
れていることを確認する
OFF
3．「保存」を押す
1-1-1_004 設定キャンセルの場合 操作中にキャンセルを実施して登録されないこと 1．アラーム登録画面を開く
2．キャンセルが行われ、登録が行われない 任意に福栖パ 自動を確認する
2．アラーム時間を設定する
ことを確認する
ターンの実施3．「キャンセル」を押すを推奨

例題：アラーム登録
アラーム登録・表示+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性
アラームオプションを設定する+ アラーム追加・個別編集、アラーム・スヌーズ(): 各機能確認+ アラーム追加・個別編集、曜日繰り返し設定() : 各機能確認+ アラーム追加・個別編集、ラベル() : 各機能確認+ アラーム編集() : 各機能確認+ アラーム削除() : 各機能確認+ データ登録最大数確認() : 登録データ数+ 操作応答確認() : 操作レスポンス+ Siriからの操作() : リソース連携
カテゴリ/ID
項目名
概要+ ライブラリ曲データ選択(): リソース連携

1、アラーム1-1 アラーム登録・表示
アラームオプションを設定する：各機能確認
1-1-1 アラーム追加・個別編集、アラーム、スヌーズ
1-1-1_001 アラーム時間設定の確 アラームの時間を設定する
認パラメータ（テスト条件）
アラーム時間サウンド設定スヌーズ設定例：「アラームオプション」を設定する
実施方法（案）

合否判定基準ケース/設定1．アラーム登録画面を開く
2．設定した時間でアラーム登録がされている
00:00
自動
2．アラーム時間を設定する（時間設定はケース/設定 ことを確認する
07:00
に記載）
12:00
3．「保存」を押す
23:59
1-1-1_002 サウンド設定の確認
サウンド設定をする
1．アラーム登録画面を開く
3．設定したサウンド設定でアラーム登録がさ デフォルト着 自動
2．サウンド設定画面を開く
れていることを確認する
信音を3件確
3．サウンド設定をする※ライブラリ曲に関しては、1-1-9で確認
認
4．「保存」を押す
1-1-1_003 スヌーズ設定の確認
スヌーズ設定をする
1．アラーム登録画面を開く
3．設定したスヌーズ設定でアラーム登録がさON
自動
2．スヌーズのON/OFF設定をする
れていることを確認する
OFF
3．「保存」を押す
1-1-1_004 設定キャンセルの場合 操作中にキャンセルを実施して登録されないこと 1．アラーム登録画面を開く
2．キャンセルが行われ、登録が行われない 任意に福栖パ 自動を確認する
2．アラーム時間を設定する
ことを確認する
ターンの実施3．「キャンセル」を押すを推奨℗Work① 出題：？を埋めてください
テストカタマリーに機能の抽象的テストケースを追加してください。
（下図の？を穴埋めしましょう）
pkg 世界時計
世界時計
モニター地域登録・削除

タイムゾーン一覧表示

ふるまい

ふるまい

ふるまい

？：ふるまい
モニター地域を登録できる(境界値) : ふるまい？：ふるまい: ふるまいタイムゾーン検索結果を一覧に表示できる(表示パーツ確認): ふるまい
に登録されたタイムゾーンが表示できる()
databasezone
time？：ふるまいふるまい:
一覧画面に検索フォームを表示できる()？：ふるまい文字列入力フォームをフォーカスするとキーボードが表示される() : ふるまい

モニター地域を削除できる(境界値) : ふるまい？：ふるまい
モニター地域が永続的に記録できる() : ふるまい？：ふるまい？：ふるまいタイムゾーン検索

モニター地域一覧表示
ふるまい

ふるまい

？：ふるまい？：ふるまい入力文字列とタイムゾーン検索結果の名称が部分一致している(入力文字列をクラシフィケーションツリー) : ふるまい

モニター地域の時刻情報を表示できる(表示内容を網羅確認) : ふるまい？：ふるまいあるモニター地域を一覧中の指定位置に表示できる(表示位置の境界値確認) : ふるまい

モニター地域画面を仕様レイアウトどおりに表示できる(表示パーツ網羅) : ふるまい？：ふるまい℗？：ふるまい？：ふるまい？：ふるまい℗？：ふるまい？：ふるまい？：ふるまい℗？：ふるまい？：ふるまい？：ふるまい？：ふるまい？：ふるまい？：ふるまい℗？：ふるまいWork①② 解答用紙

℗

世界時計
ふるまい

タイムゾーン一覧表示

モニター地域一覧表示
ふるまい

ふるまい

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿：ふるまい＿＿＿：ふるまい＿＿＿：ふるまい＿＿＿：ふるまい＿＿＿：ふるまい＿＿＿：ふるまい＿＿＿：＿＿＿＿＿＿＿：ふるまい＿＿＿：＿＿＿＿＿＿＿：＿＿＿＿＿＿＿

タイムゾーン検索

モニター地域登録・削除
ふるまい

ふるまい

＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿＿：ふるまい＿＿＿：ふるまい＿＿＿：ふるまい＿＿＿：＿＿＿＿＿＿＿：ふるまい＿＿＿：＿＿＿＿＿＿＿：＿＿＿＿＿＿＿：＿＿＿＿＿＿＿：＿＿＿＿＿＿＿：＿＿＿＿＿＿＿

Work①ヒント：パラメータの構造化
パラメータを構造化して名付けましょう。
付けた名前を抽象的テストケースで使いましょう

タイムゾーン
データベース

モニター地域一覧

1..N（登録数）

0..*

モニター地域1

1

タイムゾーン

Work① ヒント：抽象的テストケースの表現
pkg• 具体的テストケースを他人が実装できる表現• 「入力-テスト対象機能-出力」の関係が透けてみえる表現
世界時計～World Clock～

モニター地域名称
時差
地域時刻
タイムゾーン識別子

1-A
モニター
地域表示

入力パラメータまたは
入力イベント

テスト対象機能

モニター地域一覧画面
スクリーンショット

編集
今日、＋0時間

17:35

今日、-1時間

16:35

今日、-16時間

1:35

東京

深圳

出力
（確認対象）

例：モニター地域を一覧に表示＋

サンフランシスコ

世界時計 アラーム StopWactch タイマー

Work① ヒント：抽象的テストケースの表現• 「○○を××する」というようにフォーマットを統一〇〇：入力
××：機能を意味する名詞
ただし「××」に「確認」「評価」というのが出てきたら、それはテストケース確認方針のことを言ってるのかも。
テスト対象機能とテスト確認方針を混ざてはいけません。

Work①設計例
pkg 世界時計
OS設定表示言語：
OS設定で表示言語Aを指定すると全アプリケーションのデフォルト表示言語がAとなる
Time Zone Database：
http://www.iana.org/time-zones
https://ja.wikipedia.org/wiki/Tz_database
世界時計
モニター地域登録・削除

タイムゾーン一覧表示

ふるまい

ふるまい

ふるまい

モニター地域を登録できる(境界値) : ふるまい
モニター地域を削除できる(境界値) : ふるまい
モニター地域が永続的に記録できる() : ふるまい

タイムゾーン検索結果を一覧に表示できる(表示パーツ確認) : ふるまい
time zone databaseに登録されたタイムゾーンが表示できる() : ふるまい
一覧画面に検索フォームを表示できる() : ふるまい
文字列入力フォームをフォーカスするとキーボードが表示される() : ふるまい

モニター地域一覧表示

タイムゾーン検索

ふるまい

ふるまい

モニター地域の時刻情報を表示できる(表示内容を網羅確認) : ふるまいあるモニター地域を一覧中の指定位置に表示できる(表示位置の境界値確認) : ふるまい
モニター地域画面を仕様レイアウトどおりに表示できる(表示パーツ網羅) : ふるまい

入力文字列とタイムゾーン検索結果の名称が部分一致している(入力文字列をクラシフィケーションツリー) : ふるまい

Work① 解説：
テストケースの粒度：仮に４つの段階を紹介
比較的抽象的なテストケース粒度では…？
レベル１：処理だけを特定したテストケース

抽象化（例）購入計算処理のロジック/入出力を確認する

？

購入計算
処理

？

レベル２：入出力のパラメータ項目まで表現したテストケース（例）購入種別と入場時間から計算結果を確認する
購入種別
入場時間

購入計算
処理

参考：レベル３
テストケース

計算結果

入場時間

購入種別（通常料金）

通常料金
10:00:0017:59:59

おとな

1000
円

こども

500
円

夜間料金
18:00:0019:59:59

購入不可時間00:00:0009:59:59
購入不可時間20:00:0023:59:59

購入種別（夜間料金）

おとな

購入
不可

こども

1300
円
800
円

具体化

Work① 解説：
テストケースの粒度：仮に４つの段階を紹介
より詳細なテストケースでは…
レベル３：同値クラスを用いて組合せ論理条件（ルール）まで表現したテストケース（例）購入種別：おとな、入場時間：通常料金時間 で結果1000円

入場時間

購入種別（通常料金）

通常料金
10:00:0017:59:59

おとな

1000
円

こども

500
円

夜間料金
18:00:0019:59:59

購入不可時間00:00:0009:59:59
購入不可時間20:00:0023:59:59

購入種別（夜間料金）

おとな

購入
不可

こども

1300
円
800
円

（例）
CFDとDTで関係性を図示レベル４：実際の値まで具体化したテストケース

入力条件
1 購入種別1 おとな
2 こども
2 入場時間
1 購入不可時間
00:00:00-09:59:59
2 通常料金時間
10:00:00-17:59:59
3 夜間料金時間
18:00:00-19:59:59
4 購入不可時間
20:00:00-23:59:59
期待結果
1 購入不可2 1300円
3 1000円
4 800円5 500円

#1 #2 #3 #4 #5 #6--○ ○ - - - ○ ○

○

-

-

-

-

-

-

-

○

-

○

-

-

-

-

○

-

○

-

○

-

-

-

-

#1 #2 #3 #4 #5 #6○ ○ - - - - - - ○ - - - ○ - - - - - - - ○- - - - ○ -（例）購入種別：おとな、入場時間：10:00:00 で結果1000円

・#3-1 購入種別：おとな、入場時間：10:00:00 で結果1000円
・#3-1 購入種別：おとな、入場時間：15:00:00 で結果1000円
・#4-1 購入種別：おとな、入場時間：19:00:00 で結果1300円
…

具体的な
値を設定

Work① 解説：
テストケースの粒度：仮に４つの段階を紹介
全体を示すとこの通りになります。
抽象化

レベル１：処理だけを特定したテストケース（例）購入計算処理を確認する

？

購入計算
処理

？

レベル２：入出力のパラメータ項目まで表現したテストケース（例）購入種別と時間から計算結果を確認する
購入種別
入場時間

購入計算
処理

計算結果

具体化

レベル３：同値クラスを用いて組合せ論理条件（ルール）まで表現したテストケース（例）購入種別：おとな、入場時間：通常料金時間 で結果1000円
入場時間

購入種別（通常料金）

通常料金
10:00:0017:59:59

おとな

1000
円

こども

500
円

夜間料金
18:00:0019:59:59

購入不可時間00:00:0009:59:59
購入不可時間20:00:0023:59:59

購入種別（夜間料金）

おとな

購入
不可

こども

1300
円
800
円

（例）
CFDで関係性を図示してデシジョンテーブルで表現することができる

入力条件
1 購入種別1 おとな
2 こども
2 入場時間
1 購入不可時間
00:00:00-09:59:59
2 通常料金時間
10:00:00-17:59:59
3 夜間料金時間
18:00:00-19:59:59
4 購入不可時間
20:00:00-23:59:59
期待結果
1 購入不可2 1300円
3 1000円
4 800円5 500円

レベル４：実際の値まで具体化したテストケース（例）購入種別：おとな、入場時間：10:00:00 で結果1000円

・#3-1 購入種別：おとな、入場時間：10:00:00 で結果1000円
・#3-1 購入種別：おとな、入場時間：15:00:00 で結果1000円
・#4-1 購入種別：おとな、入場時間：19:00:00 で結果1300円…

#1 #2 #3 #4 #5 #6--○ ○ - - - ○ ○

○

-

-

-

-

-

-

○

-

○

-

-

-

-

○

-

○

-

○

-

-

-

-

-

#1 #2 #3 #4 #5 #6○ ○ - - - - - - ○ - - - ○ - - - - - - - ○- - - - ○ -

具体的な
値を設定

各レベルの例
レベル１：購入計算処理のロジック/
入出力を確認する
レベル２：購入種別と時間から計算結果を確認する
レベル３：購入種別：おとな、入場時間：通常料金時間で結果1000円
レベル４：購入種別：おとな、入場時間：10:00:00
で結果1000円

Work① 解説：
テストカタマリーに配置する粒度
テストカタマリーに配置するテストケース粒度は…
？

購入計算
処理

テストカタマリーに記述する
テストケースの粒度は
ここでの「レベル１～２」を推奨※「ロジカルテストケース」相当

抽象化

レベル１：処理だけを特定したテストケース（例）購入計算処理を確認する？

レベル２：入出力のパラメータ項目まで表現したテストケース（例）購入種別と時間から計算結果を確認する

各レベルの例
計算結果
レベル１：購入計算処理のロジック/
入場時間
具体化
入出力を確認するレベル３：同値クラスを用いて組合せ論理条件（ルール）まで表現したテストケース
レベル２：購入種別と時間から（例）購入種別：おとな、入場時間：通常料金時間 で結果1000円
計算結果を確認する
レベル３：購入種別：おとな、入場時間：通常料金時間で結果1000円
レベル４：購入種別：おとな、レベル４：実際の値まで具体化したテストケース（例）購入種別：おとな、入場時間：10:00:00 で結果1000円
入場時間：10:00:00
・#3-1 購入種別：おとな、入場時間：10:00:00 で結果1000円
テストケースの詳細化はで結果1000円
・#3-1 購入種別：おとな、入場時間：15:00:00 で結果1000円
・#4-1 購入種別：おとな、入場時間：19:00:00 で結果1300円
テスト詳細設計で実施
…
購入種別

購入計算
処理

入場時間

購入種別（通常料金）

通常料金
10:00:0017:59:59

おとな

1000
円

こども

500
円

夜間料金
18:00:0019:59:59

購入不可時間00:00:0009:59:59
購入不可時間20:00:0023:59:59

購入種別（夜間料金）

おとな

購入
不可

こども

1300
円
800
円

（例）
CFDで関係性を図示してデシジョンテーブルで表現することができる

入力条件
1 購入種別1 おとな
2 こども
2 入場時間
1 購入不可時間
00:00:00-09:59:59
2 通常料金時間
10:00:00-17:59:59
3 夜間料金時間
18:00:00-19:59:59
4 購入不可時間
20:00:00-23:59:59
期待結果
1 購入不可2 1300円
3 1000円
4 800円5 500円

#1 #2 #3 #4 #5 #6--○ ○ - - - ○ ○

○

-

-

-

-

-

-

○

-

○

-

-

-

-

○

-

○

-

○

-

-

-

-

-

#1 #2 #3 #4 #5 #6○ ○ - - - - - - ○ - - - ○ - - - - - - - ○- - - - ○ -

具体的な
値を設定

Work① 解説：抽象的テストケースの粒度• 粒度が大きすぎる例：「モニター地域の一覧画面を表示する」• テスト対象が大きすぎて、具体的テストケースの漏れが発生しそう• 入力・出力を示唆する内容がない→具体的なテストケースを作るために考慮するパラメータが多すぎて、漏れてしまう

世界時計～World Clock～編集＋

今日、＋0時間

17:35

今日、-1時間

16:35

今日、-16時間

1:35

東京

深圳

サンフランシスコ

世界時計 アラーム StopWactch タイマー

Work① 解説：抽象的テストケースの粒度• 粒度がちいさすぎる例：• モニター地域の時刻が表示される• モニター地域の名称が表示される• モニター地域の時差が表示される

世界時計～World Clock～編集
今日、＋0時間

17:35

今日、-1時間

16:35

今日、-16時間

1:35

東京

深圳

→具体的テストケースと表現が変わらない• 抽象的テストケースの数が増え、テストカタマリーのサイズが大きくなると、
テスト全体を俯瞰できなくなる＋

サンフランシスコ

世界時計 アラーム StopWactch タイマー

Work①まとめ

テスト設計技法を意識できる粒度でテスト
ケースを整理することができる。
→テスト技法を使って実装されたテストケースをボト
ムアップで抽象的テストケースで整理した。
→抽象的テストケースをトップダウンで設計する際にどの程度の粒度で表現すればよいかを考えた。

Work②

Work②機能のほかに確認すべきことを考える
キガカリーでテスト目的を考える
名称

属性

テストケースWork②のゴール
テストの目的がくみ取れるテストケースを作ることができる。

℗

Work②出題
1. テストカタマリーにキガカリーを追加して下さい。
2. キガカリーを確認するための抽象的テストケースを追加して下さい。
pkg 世界時計
世界時計
ふるまい
ローカライゼーション
インターナショナリゼーション
表示時刻の精度
レスポンス

１

OS設定表示言語：
OS設定で表示言語Aを指定すると全アプリケーションのデフォルト表示言語がAとなる
Time Zone Database：
http://www.iana.org/time-zones
https://ja.wikipedia.org/wiki/Tz_database

モニター地域登録・削除
ふるまい１
モニター地域を登録できる(境界値): ふるまい
モニター地域を削除できる(境界値) : ふるまい
２
モニター地域が永続的に記録できる(): ふるまいタイムゾーン一覧表示
ふるまい
ローカライゼーション
１
タイムゾーン検索結果を一覧に表示できる(表示パーツ確認) : ふるまい
time zone databaseに登録されたタイムゾーンが表示できる() : ふるまい
一覧画面に検索フォームを表示できる() : ふるまい
文字列入力フォームをフォーカスするとキーボードが表示される() : ふるまい
一覧画面でデータ全件を表示したときに規定時間以内に表示できる() : レスポンス
OSに設定した表示言語でタイムゾーンを一覧表示できる() : ローカライゼーション

２

モニター地域一覧表示
ふるまい
表示時刻の正確性
ローカライゼーション
インターナショナリゼーション

１

モニター地域の時刻情報を表示できる(表示内容を網羅確認) : ふるまいあるモニター地域を一覧中の指定位置に表示できる(表示位置の境界値確認) : ふるまい
モニター地域画面を仕様レイアウトどおりに表示できる(表示パーツ網羅) : ふるまい
一覧画面で最大件数を表示したときに規定時間以内に表示できる() : レスポンス
任意の更新イベントをきっかけにモニター地域の表示時刻が更新できる(イベント種類網羅) : 表示時刻の正確性
全てのモニター地域をユーザ指定言語で一覧に表示できる(表示結果を網羅確認) : ローカライゼーション
各モニター地域と現在地の時差時間表示を更新できる(時間差を境界値確認) : インターナショナリゼーション

２

タイムゾーン検索
ふるまい
ローカライゼーション
１
インターナショナリゼーション
入力文字列とタイムゾーン検索結果の名称が部分一致している(入力文字列をクラシフィケーションツリー) : ふるまい
検索結果はOSに設定した表示言語の文字コード順にしたがって整列される(OS設定表示言語を網羅) : ローカライゼーション
２
OS表示設定言語を入力文字列として検索できる(OS設定表示言語を網羅): インターナショナリゼーション

℗Work②-1 確認したいキガカリーの分類
キガカリーの分類図
ふるまい
機能排他

機能適合性
相互運用性

状態遷移

表示時刻の精度

バックグラウンド通知

機能正確性

互換性
アプリ内複数機能動作

レスポンス

別アプリ同時動作製品

メモリリーク

異常値入力

性能効率性
登録データ数

信頼性

負荷時バックグラウンド動作

品質特性をベースに
スマホアプリ特有の気がかり項目と世界時計特有の気がかり項目を洗い出しました。

連続時動作
機能組合せ

見やすさ

使用性
UI基準

ローカライゼーション（地域化）

グローバリゼーション
インターナショナリゼーション（国際化）※注意 本ワークでは品質特性をベースにキガカリーを作りましたが、品質特性ベースでキガカリーを考えることを強制する意図はありません。

℗Work②-1 キガカリーを網羅する
テストカタマリーを縦、キガカリーの分類を横に並べた表を用意しました。
まず、キガカリーの分類図から確認したいキガカリーだけ選んで列に追加します（１）。
次に各カタマリーに関して、確認が必要なキガカリーとの交点に〇をつけます（２）。
最後に、各テストカタマリーに、〇がついたキガカリーを書き込みます（３）。
モニター地域一覧表示

キガカリーの分類図
ふるまい
機能排他

機能適合性
相互運用性

状態遷移

表示時刻の精度

バックグラウンド通知

機能正確性

互換性
アプリ内複数機能動作

レスポンス

異常値入力

性能効率性
登録データ数ふるまい

別アプリ同時動作製品

メモリリーク

信頼性

負荷時バックグラウンド動作

連続時動作
機能組合せ

見やすさ

使用性
UI基準

①

ローカライゼーション（地域化）

グローバリゼーション

インターナショナリゼーション（国際化）③

表示時刻の精度＿＿＿＿＿＿＿：ふるまい＿＿＿

キガカリーの分類→ 機能適合性
キガカリー→ ふるまい
モニター地域一覧表示
モニター地域登録・削除
タイムゾーン一覧表示
タイムゾーン検索
テストカタマリー↑

〇
〇
〇
〇

②
状態
遷移

機能正確性

機能 表示時刻の
排他 精度〇

Work①② 解答用紙

Work②－2 出題

世界時計
ふるまい

タイムゾーン一覧表示

モニター地域一覧表示
ふるまい

ふるまい

表示時刻の精度ZZZZZZZZZZZZXXXXXXXXXXX＿＿＿＿＿＿＿：ふるまい＿＿＿：ふるまい＿＿＿：ふるまい＿＿＿：ふるまい＿＿＿：ふるまい＿＿＿：ふるまい＿＿＿

AをBに入力しCする：XXXXXXXXXXX：ふるまい＿＿＿

AをBに入力しCする：XXXXXXXXXXX：ZZZZZZZZZZZZ

AをBに入力しCする
タイムゾーン検索

モニター地域登録・削除
ふるまい

ふるまい

XXXXXXXXXXXYYYYYYYYYYY

YYYYYYYYYYY＿＿＿＿：ふるまい＿＿＿：ふるまい＿＿＿：ふるまい＿＿＿

AをBに入力しCする：YYYYYYYYYYY：ふるまい＿＿＿：＿＿＿＿＿＿＿

AをBに入力しCする：XXXXXXXXXXX：＿＿＿＿＿＿＿

AをBに入力しCする：YYYYYYYYYYY：＿＿＿＿＿＿＿

Work②ヒント
OS設定
タイムゾーン
データベース

モニター地域一覧

0..*

1..*
タイムゾーン

モニター地域1
リスト中表示位置

表示言語リスト

1

×

1..*

表示言語

時刻設定
GPS位置によるタイムゾーン
自動設定

テストベースにある機能リストや画面遷移だけでなくOSの機能を押さえましたか？

Work②設計例
pkg 世界時計

世界時計+ 各機能確認 : 機能適合性+ ローカライゼーション : グローバリゼーション+ インターナショナリゼーション : グローバリゼーション+ 表示時刻の精度 : 機能正確性+ レスポンス : 性能効率性

OS設定表示言語：
OS設定で表示言語Aを指定すると全アプリケーションのデフォルト表示言語がAとなる
Time Zone Database：
http://www.iana.org/time-zones
https://ja.wikipedia.org/wiki/Tz_database

モニター地域登録・削除
タイムゾーン一覧表示+ 各機能確認 : 機能適合性+ モニター地域を登録できる(境界値) : ふるまい+ モニター地域を削除できる(境界値) : ふるまい+ モニター地域が永続的に記録できる() : ふるまい

- 各機能確認 : 機能適合性- ローカライゼーション : グローバリゼーション+ タイムゾーン検索結果を一覧に表示できる(表示パーツ確認) : ふるまい
+ time zone databaseに登録されたタイムゾーンが表示できる() : ふるまい
+ 一覧画面に検索フォームを表示できる() : ふるまい
+ 文字列入力フォームをフォーカスするとキーボードが表示される() : ふるまい
+ 一覧画面でデータ全件を表示したときに規定時間以内に表示できる() : レスポンス+ OSに設定した表示言語でタイムゾーンを一覧表示できる() : ローカライゼーション

モニター地域一覧表示+ 各機能確認 : 機能適合性+ 表示時刻の正確性 : 機能正確性+ ローカライゼーション : グローバリゼーション+ インターナショナリゼーション : グローバリゼーション+ モニター地域の時刻情報を表示できる(表示内容を網羅確認) : ふるまい
+ あるモニター地域を一覧中の指定位置に表示できる(表示位置の境界値確認) : ふるまい+ モニター地域画面を仕様レイアウトどおりに表示できる(表示パーツ網羅) : ふるまい
+ 一覧画面で最大件数を表示したときに規定時間以内に表示できる() : レスポンス+ 任意の更新イベントをきっかけにモニター地域の表示時刻が更新できる(イベント種類網羅) : 表示時刻の正確性+ 全てのモニター地域をユーザ指定言語で一覧に表示できる(表示結果を網羅確認) : ローカライゼーション+ 各モニター地域と現在地の時差時間表示を更新できる(時間差を境界値確認) : インターナショナリゼーション

タイムゾーン検索- 各機能確認 : 機能適合性- ローカライゼーション : グローバリゼーション- インターナショナリゼーション : グローバリゼーション+ 入力文字列とタイムゾーン検索結果の名称が部分一致している(入力文字列をクラシフィケーションツリー) : ふるまい
+ 検索結果はOSに設定した表示言語の文字コード順にしたがって整列される(OS設定表示言語を網羅) : ローカライゼーション+ OS表示設定言語を入力文字列として検索できる(OS設定表示言語を網羅) : インターナショナリゼーション

Work②補足 キガカリーの蓄積• 知見を蓄積し再活用できる• 用語集として役立つ• ドキュメント中の用語のぶれを防ぐ
ふるまい
機能排他

キガカリーの分類図
機能適合性

表示時刻の精度

満足性

相互運用性

状態遷移

バックグラウンド通知

機能正確性

利用時有効性

互換性
アプリ内複数機能動作

レスポンス

別アプリ同時動作製品

メモリリーク

異常値入力

性能効率性
登録データ数

利用時

信頼性

負荷時バックグラウンド動作

連続時動作

利用時効率性
利用状況網羅性
リスク回避性

機能組合せ

見やすさ

使用性
UI基準

ローカライゼーション

その他

グローバリゼーション
インターナショナリゼーション

Work②まとめ
テストの目的がくみ取れるテストケースを作ることができる→全ての抽象的テストケースを、どのキガカ
リーを確認するか意識して作りました。

Work③

work③
上位カタマリーのテストケースを考えよう
上位カタマリー属性
テストケース

下位カタマリーA
属性
テストケース

下位カタマリーB
属性
テストケース

下位カタマリーC
属性
テストケースWork③のゴール•テストスイートモデルを俯瞰することで包括的にテストを設計できる。

℗

Work③出題• Work②のように、上位カタマリーに関して、キガカリーの分類とテストケースを追加しましょう。
• 下位のテストカタマリーと整合をとりましょう。
pkg 世界時計
OS設定表示言語：
OS設定で表示言語Aを指定すると全アプリケーションのデフォルト表示言語がAとなる

世界時計

モニター地域登録・削除
各機能確認
モニター地域を登録できる(境界値) : ふるまい
モニター地域を削除できる(境界値) : ふるまい
モニター地域が永続的に記録できる() : ふるまい

各機能確認
状態遷移
？：？
メモリリークローカライゼーション？：？
インターナショナリゼーション
表示時刻の精度
？：？
レスポンス
UI準拠
見やすさ
？：？

Time Zone Database：
http://www.iana.org/time-zones
https://ja.wikipedia.org/wiki/Tz_database
タイムゾーン一覧表示
各機能確認
ローカライゼーション「戻る」ボタンで操作をキャンセルできる(アプリ状態遷移網羅) : 状態遷移
タイムゾーン検索結果のうち１つをモニター地域として登録できる() : 機能組合せ
画面がOSベンダーのUIガイドラインに従っている() : UI準拠？：？
OS設定表示言語ごとに見切れなしで表示できる(文字列サイズの境界値) : 見やすさ
右->左のOS設定表示言語で表示できる() : ローカライゼーション？：？
長時間利用でメモリリークしない() : メモリリーク？：？

モニター地域一覧表示
各機能確認
表示時刻の正確性
ローカライゼーション
インターナショナリゼーション
モニター地域の時刻情報を表示できる(表示内容を網羅確認) : ふるまいあるモニター地域を一覧中の指定位置に表示できる(表示位置の境界値確認) : ふるまい
モニター地域画面を仕様レイアウトどおりに表示できる(表示パーツ網羅) : ふるまい
一覧画面で最大件数を表示したときに規定時間以内に表示できる() : レスポンス
任意の更新イベントをきっかけにモニター地域の表示時刻が更新できる(イベント種類網羅) : 表示時刻の正確性
全てのモニター地域をユーザ指定言語で一覧に表示できる(表示結果を網羅確認) : ローカライゼーション
各モニター地域と現在地の時差時間表示を更新できる(時間差を境界値確認) : インターナショナリゼーション

タイムゾーン検索結果を一覧に表示できる(表示パーツ確認) : ふるまい
time zone databaseに登録されたタイムゾーンが表示できる() : ふるまい
一覧画面に検索フォームを表示できる() : ふるまい
文字列入力フォームをフォーカスするとキーボードが表示される() : ふるまい
一覧画面でデータ全件を表示したときに規定時間以内に表示できる() : レスポンス
OSに設定した表示言語でタイムゾーンを一覧表示できる() : ローカライゼーション

タイムゾーン検索
各機能確認
ローカライゼーション
インターナショナリゼーション
入力文字列とタイムゾーン検索結果の名称が部分一致している(入力文字列をクラシフィケーションツリー) : ふるまい
検索結果はOSに設定した表示言語の文字コード順にしたがって整列される(OS設定表示言語を網羅) : ローカライゼーション
OS表示設定言語を入力文字列として検索できる(OS設定表示言語を網羅) : インターナショナリゼーション

（再掲）テストケース設計の参考例：アラーム
ただし、上位カタマリーでもテストケースを考える行為が参考：
アラーム登録のパラメータ
有効となります。
下位カタマリーだけではアラーム全体の目的達成、
アラームの外部との関連等検討が抜けやすい
項目もあります。

・曜日繰り返し設定
・ラベル名称設定
・サウンド選択設定（効果音、ライブラリ曲）
・スヌーズ設定
各アラームの設定
ON/OFF設定+ 各機能確認 : 機能適合性+ 機能組合せ確認 : 二因子組合せ+ 状態遷移確認 : 状態遷移
+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ バックグラウンド通知 : 互換性+ リソース連携 : 互換性->相互運用性+ 負荷時バックグランド動作 : 性能効率性+ 操作組合せ() : 機能組合せ確認+ アラーム状態遷移() : 状態遷移確認+ OSのイベント発生() : 相互運用性

アラーム登録・表示

上位のカタマリー範囲で検討することで、抜けを減らすこともできます。

上位カタマリーアラーム

上位カタマリーでテストケースを検討する効果もあります
アラーム通知+ 各機能確認 : 機能適合性+ 登録データ数 : 性能効率性+ 操作レスポンス : 性能効率性+ リソース連携 : 互換性->相互運用性+ 各機能確認 : 機能適合性+ バックグラウンド通知 : 互換性+ 負荷時バックグラウンド動作 : 性能効率性+ リソース連携 : 互換性->相互運用性+ アラーム追加・個別編集、アラーム・スヌーズ() : 各機能確認+ アラーム追加・個別編集、曜日繰り返し設定() : 各機能確認+ アラーム追加・個別編集、ラベル() : 各機能確認+ アラーム編集() : 各機能確認+ アラーム削除() : 各機能確認+ データ登録最大数確認() : 登録データ数+ 操作応答確認() : 操作レスポンス+ Siriからの操作() : リソース連携+ ライブラリ曲データ選択() : リソース連携+ アラーム動作確認() : 各機能確認+ スヌーズ処理確認() : 各機能確認+ 他アプリ動作時確認() : バックグラウンド通知+ 負荷時確認() : 負荷時バックグラウンド動作

下位カタマリー

Work③出題 カタマリーの関係性• モニター地域表示カタマリーと登録カタマリーには互いに依存しない独立した抽象的テストケースを持たせます• 世界時計アプリ全体に関わるテストケース（画面遷移・機能組
合せなど）は上位の世界時計カタマリーに含めます
pkg 世界時計
OS設定表示言語：
OS設定で表示言語Aを指定すると全アプリケーションのデフォルト表示言語がAとなる

世界時計

モニター地域登録・削除
ふるまい
モニター地域を登録できる(境界値) : ふるまい
モニター地域を削除できる(境界値) : ふるまい
モニター地域が永続的に記録できる() : ふるまい

ふるまい
状態遷移
メモリリークローカライゼーション
インターナショナリゼーション
表示時刻の精度
レスポンス
UI準拠
見やすさ

Time Zone Database：
http://www.iana.org/time-zones
https://ja.wikipedia.org/wiki/Tz_database？

タイムゾーン一覧表示
ふるまい
ローカライゼーション「戻る」ボタンで操作をキャンセルできる(アプリ状態遷移網羅) : 状態遷移
タイムゾーン検索結果のうち１つをモニター地域として登録できる() : 機能組合せ
画面がOSベンダーのUIガイドラインに従っている() : UI準拠
OS設定表示言語ごとに見切れなしで表示できる(文字列サイズの境界値) : 見やすさ
右->左のOS設定表示言語で表示できる() : ローカライゼーション
長時間利用でメモリリークしない() : メモリリーク

モニター地域一覧表示
ふるまい
表示時刻の正確性
ローカライゼーション
インターナショナリゼーション
モニター地域の時刻情報を表示できる(表示内容を網羅確認) : ふるまいあるモニター地域を一覧中の指定位置に表示できる(表示位置の境界値確認) : ふるまい
モニター地域画面を仕様レイアウトどおりに表示できる(表示パーツ網羅) : ふるまい
一覧画面で最大件数を表示したときに規定時間以内に表示できる() : レスポンス
任意の更新イベントをきっかけにモニター地域の表示時刻が更新できる(イベント種類網羅) : 表示時刻の正確性
全てのモニター地域をユーザ指定言語で一覧に表示できる(表示結果を網羅確認) : ローカライゼーション
各モニター地域と現在地の時差時間表示を更新できる(時間差を境界値確認) : インターナショナリゼーション

タイムゾーン検索結果を一覧に表示できる(表示パーツ確認) : ふるまい
time zone databaseに登録されたタイムゾーンが表示できる() : ふるまい
一覧画面に検索フォームを表示できる() : ふるまい
文字列入力フォームをフォーカスするとキーボードが表示される() : ふるまい
一覧画面でデータ全件を表示したときに規定時間以内に表示できる() : レスポンス
OSに設定した表示言語でタイムゾーンを一覧表示できる() : ローカライゼーション

タイムゾーン検索
ふるまい
ローカライゼーション
インターナショナリゼーション
入力文字列とタイムゾーン検索結果の名称が部分一致している(入力文字列をクラシフィケーションツリー) : ふるまい
検索結果はOSに設定した表示言語の文字コード順にしたがって整列される(OS設定表示言語を網羅) : ローカライゼーション
OS表示設定言語を入力文字列として検索できる(OS設定表示言語を網羅) : インターナショナリゼーション℗

℗Work③ 解答用紙
世界時計
ふるまい
＿＿＿＿＿＿＿＿＿＿＿＿＿＿：ふるまい＿＿＿：＿＿＿＿＿＿＿：＿＿＿＿＿＿＿：＿＿＿＿＿＿＿：＿＿＿＿＿＿＿

この解答用紙を点線で折りたたみ、Work①②解答用紙のすぐそばに、並べて見える位置に置いてください。

Work③ヒント• モニター系機能とタイムゾーン検索系機能を両方使う画面遷移はどのようにテストしますか？
• データ登録・編集系機能とデータ表示系機能との組合せテストはどのように設計しますか？

Work③設計例
pkg 世界時計
OS設定表示言語：
OS設定で表示言語Aを指定すると全アプリケーションのデフォルト表示言語がAとなる

世界時計

モニター地域登録・削除
ふるまい
モニター地域を登録できる(境界値) : ふるまい
モニター地域を削除できる(境界値) : ふるまい
モニター地域が永続的に記録できる() : ふるまい

ふるまい
状態遷移
メモリリークローカライゼーション
インターナショナリゼーション
表示時刻の精度
レスポンス
UI準拠
見やすさ

Time Zone Database：
http://www.iana.org/time-zones
https://ja.wikipedia.org/wiki/Tz_database
タイムゾーン一覧表示
ふるまい
ローカライゼーション「戻る」ボタンで操作をキャンセルできる(アプリ状態遷移網羅) : 状態遷移
タイムゾーン検索結果のうち１つをモニター地域として登録できる() : 機能組合せ
画面がOSベンダーのUIガイドラインに従っている() : UI準拠
OS設定表示言語ごとに見切れなしで表示できる(文字列サイズの境界値) : 見やすさ
右->左のOS設定表示言語で表示できる() : ローカライゼーション
長時間利用でメモリリークしない() : メモリリーク

モニター地域一覧表示
ふるまい
表示時刻の正確性
ローカライゼーション
インターナショナリゼーション
モニター地域の時刻情報を表示できる(表示内容を網羅確認) : ふるまいあるモニター地域を一覧中の指定位置に表示できる(表示位置の境界値確認) : ふるまい
モニター地域画面を仕様レイアウトどおりに表示できる(表示パーツ網羅) : ふるまい
一覧画面で最大件数を表示したときに規定時間以内に表示できる() : レスポンス
任意の更新イベントをきっかけにモニター地域の表示時刻が更新できる(イベント種類網羅) : 表示時刻の正確性
全てのモニター地域をユーザ指定言語で一覧に表示できる(表示結果を網羅確認) : ローカライゼーション
各モニター地域と現在地の時差時間表示を更新できる(時間差を境界値確認) : インターナショナリゼーション

タイムゾーン検索結果を一覧に表示できる(表示パーツ確認) : ふるまい
time zone databaseに登録されたタイムゾーンが表示できる() : ふるまい
一覧画面に検索フォームを表示できる() : ふるまい
文字列入力フォームをフォーカスするとキーボードが表示される() : ふるまい
一覧画面でデータ全件を表示したときに規定時間以内に表示できる() : レスポンス
OSに設定した表示言語でタイムゾーンを一覧表示できる() : ローカライゼーション

タイムゾーン検索
ふるまい
ローカライゼーション
インターナショナリゼーション
入力文字列とタイムゾーン検索結果の名称が部分一致している(入力文字列をクラシフィケーションツリー) : ふるまい
検索結果はOSに設定した表示言語の文字コード順にしたがって整列される(OS設定表示言語を網羅) : ローカライゼーション
OS表示設定言語を入力文字列として検索できる(OS設定表示言語を網羅) : インターナショナリゼーション

Work③のゴール
テストスイートモデルを俯瞰することで包括的にテストを設計できる。
→下位カタマリーの責務の外にあるテストケー
スを上位カタマリーに追加した。

まとめ

３つの問題にテストカタマリーで挑みました
現在のテスト現場で遭遇する問題:
1.
テスト規模拡大と複雑化
2.
文書表現の偏り3.
継続的に変更され続ける

1.

2.
3.

規模の大きなテストケースをモデルで抽象化し、その構造や関係を俯瞰できるようにしました
文・表・図・記号を活用し、テストケースを簡素に表現しました（持っている人は）モデリングツールでテストケース
モデルを保守しましたちょしてみよう！
テストスイートモデリング～技法と観点を活用しやすくするカタマリー～

お疲れ様でした。

完！！

Powerd By

ご参加ありがとうございました！！
アンケートへのご記入よろしくお願いいたします