JaSST’09Tokyo
パネルディスカッション用
資料

サマリ
ソフトウェアテストとは本来何をどのように行うべきなのか

今直面している問題と潜在的な問題は何なのか

2009年1月29日 目黒雅叙園



直面している問題
 ソフトの大規模化＆複雑化に伴い、テストに要する期間・工数も増大し、開発に占めるテストの割合が大きくなってしまっていること
潜在的な問題 概念が混乱している →「テスト用語の整理」
 ライフサイクル（プロセスの連鎖）の活動が出来ていない→「テスティングプロセス全体構成」（豆蔵の考え方）
かっこいい名前

募集中
様々な手法と呼ばれているものの背景には何があって、実はどういうことを行なおうとしているのか →「ゆもつよメソッド」



株式会社豆蔵 湯本 剛

無限にある実行ケースから「目的」を持って有限のテストケースを選定し、検証を行うこと→「テスティングの重要な性質」

ゆもつよメソッドは、テスト分析を効率よく行うための実践方法
 テストすべきことをメンバー間で意識あわせする テストする内容の全体像を把握する

2009/1/29

テスティングの重要な性質

JaSST'09Tokyo Tsuyoshi YUMOTO

1

テスト用語の整理（概念モデル：静的構造）

 無限にある実行ケースから、有限のテストケース

 ISTQB用語を英語表記の集合を選定しなければならない
 選定の原理

Test objective
テスティングの目的（ex. 何を検証したいか）を明確化する

テスト目的
Test adequacy criteria

Test selection criteria

テスト十分性基準

テスト選択基準

テスト目的を達成するには、どれだけのテスティングを行なえば良いかの基準

テスト目的を達成するには、どのようなテストケースを取り上げるのかの基準選択したものへのアプローチ
expected result

テストケース
選定

取捨選択

テストケースの有効性の判断

outputs

テスト目的に対し、選定したテストケースの集合の妥当性を判断する

JaSST'09Tokyo Tsuyoshi YUMOTO

operations
for a testcase execution
execution preconditions
2

2009/1/29■ ISTQBとのマッピング②分析・設計全体テスト計画書に基づき、各テストのアプローチを設計する

テストの分析と設計

テスト分析・設計

テスト分析・設計①戦略

テスト全体の進め方の指針（ie.
戦略）をまとめる

テスト計画テスト全体設計・計画およびテスト

テスト設計書、テスト計画書を基
全体テスト設計・計画に、テストが実施可能なレベルに全体テストなるようにテストケースを設計し、計画書
テストシナリオ、テストデータの作
テストベース
成をする（テストの基となるSOW
テスト仕様書テスト詳細設計・実装③詳細設計

システム設計書

テストシナリオ

テスト環境準備

テストの結果を報告書としてまとめて報告、あるいはその時点での途中状況を報告書をとしてまとめて報告する

2009/1/29

JaSST'09Tokyo Tsuyoshi YUMOTO

テスト詳細設計・実装
テストベース

テスト仕様書③詳細設計
テストシナリオ

テスト環境準備

テストデータ

テスト環境
開発プロセス

テスト実施
テストアイテム

終了条件の検証とレポート

テスト仕様書リリースノート

不具合票/
バグレポートCopyright(C) 2008 Mamezou Co.,Ltd. All rights reserved

テスト報告書4

テスト報告

テストログ
テスト仕様書不具合票/
バグレポート終了作業

5
豆蔵 ソフトウェアテスティング基礎講座
より引用

Copyright(C) 2008 Mamezou Co.,Ltd. All rights reserved

テストの実装と実行

テストデータ

テストログ

テスト報告

①戦略

（テストの基となる開発ドキュメント）テストアイテム

リリースノート

テスト計画
全体テスト
計画書

プロジェクト計画書

技術的なポイントは３つ①戦略（スコープ・配置・役割分担）
テスト実施
テスト実装に基づき②分析・設計（テスト対象理解・やりたい事決め）テストを実施する③詳細設計・実装（技法活用・実践にむけた最終調整）

開発プロセス

テスト計画を元に、テスト実施可能なレベルになるようにテスト環
テスト環境境を準備する

テスト計画書

全体テスト設計・計画

分析・設計に基づき、該当するテストの計画を作成する

開発ドキュメント）
プロジェクト計画書②分析・設計テスト設計書

テストの計画テスト計画書システム設計書

3

テスティングプロセス（ISTQB）

テスト設計書SOW

input values

JaSST'09Tokyo Tsuyoshi YUMOTO

テスティングプロセス（ISTQB）

テスティングプロセス全体構成
テスティングプロセス全体構成■ 全体構成execute timing

postconditions

豆蔵 ソフトウェアテスティング基礎講座 より引用
2009/1/29

・入力値（input values,）
・実行事前条件（execution preconditions）
・予想結果（expected result）
execution
・実行事後条件（executionpostconditions）

2009/1/29

JaSST'09Tokyo Tsuyoshi YUMOTO

テスト報告書65

①

全体テスト計画を立案（ie.戦略）

本パネルのライフサイクル定義とのマッピング
観点の列挙
・整理・検討

テスト実装

テスト実施



テスト計画
全体テスト設計・計画

SOW

システム設計書

テストアイテム

開発全体のライフサイクルの中でどの目的のテストをいつするかを決める。

テストレベルとテストの種類（テストタイプ）の選定



テスト実施の役割分担

テストログ
リリースノート

テスト報告

テスト仕様書不具合票/
バグレポート

テスト報告書

テスト対象項目（概要レベル）をシステム要件書やシステム設計書から明らかにする。



どの程度の深さ、抽象レベルで、何に着目してテストするかを明らかにする。



テストごとに担当組織とその担当/責任範囲を定義する。

テスト仕様書

全体テスト
計画書

テスト詳細設計・実装
テストベース①

テスト実施


テスト計画書

テストデータ

開発プロセス

テスト対象範囲特定


テスト設計書

テストシナリオ

テスト環境準備テスト環境

テスト分析・設計

テスト戦略の立案

テストベースプロジェクト計画書

テストの配置②

テスト詳細設計・実装（テストの基となる開発ドキュメント）以下の内容で全体テスト計画を立案
アーキテクチャの検討 テスト項目の・テスト項目の剪定組み合わせと（トレードオフ）
詳細化

テスト仕様書

全体テスト
計画書

システム設計書

テスト設計

テスト計画書

テスト計画
全体テスト設計・計画

SOW

テスト分析

テスト分析・設計
テスト設計書

テストシナリオ（テストの基となる開発ドキュメント）③テスト環境準備

プロジェクト計画書

立案結果の例
テストの目的

テストデータ

テスト環境
開発プロセス

テストアイテム
テストログ
リリースノート

テスト対象項目

テストの種類

担当チーム

・コアになる設計の妥当性確保

・基盤アーキテクチャ
・セキュリティメカニズム
・XMLデータ通信

・単体・統合・構造テスト・機能テスト・セキュリティテスト・開発

T2

・日次バッチの性能・リリース判定

・機能・サーバ間のデータ疎通・処理時間・統合
・システム

・機能テスト・パフォーマンステスト
・ボリュームテスト
・ストレステスト

・統合→開発・システム→QA

・・・・・・・・・・・・

・・・

テスト仕様書

テスト報告

テストレベル

T1
テスト実施

不具合票/
バグレポート

テスト報告書2009/1/29

JaSST'09Tokyo Tsuyoshi YUMOTO

6②

テスト分析・設計の進め方

2009/1/29

テスト分析・設計
テスト設計書
テスト計画書

テスト計画
全体テスト設計・計画

SOW

 テストケース設計方針を特定

JaSST'09Tokyo Tsuyoshi YUMOTO

テスト仕様書

全体テスト
計画書

システム設計書

システム設計書

テスト環境

データ操作

テストシナリオ③■ 網羅基準に基づいたテストケースの具体化

テスト環境準備

テストデータ

テスト環境

テスト実施
テストアイテム
テストログ

テスト仕様書リリースノート

不具合票/
バグレポート

テスト報告

テスト仕様書不具合票/
バグレポート

テスト分析・設計

観点を考慮

テスト報告書

設計・・・・・・

仕様項目

詳細化（観点）

この考え方の具体的な実践方法が金額計算機能
いわゆる「“ゆもつよ”メソッド」
・・・・・・

データ登録機能テスト報告書テストケース設計技法

テストベース中のモデル
S1

・特に確認しなきゃいけないことは？
・優先度は？
・設計技法を使う？
・データ/環境準備は？
・ツールは使える？

仕様書

機能

過去データ検索機能

仕様項目【テストケース設計方針】

販売金額計算処理

表示

テスト対象機能・非機能明細（テスト対象項目）

テストログ

テスト報告

テスト詳細設計・実装
テストベース（テストの基となる開発ドキュメント）開発プロセス

テスト実施

リリースノート

テスト仕様書

全体テスト
計画書

プロジェクト計画書

テストデータ

テストアイテム

分析

テスト計画書

テスト計画

全体テスト設計・計画

3.3 テストケース設計の実施事項

テストシナリオ

テスト環境準備計算

テスト設計書テスト詳細設計・実装
テストベース（テストの基となる開発ドキュメント）プロジェクト計画書

開発プロセス

テスト目的

テスト分析・設計

テスト詳細設計（テストケース設計）
SOW

するためテストの目的をブレイクダウンする
要件/仕様の合致性

7E1（内部イベント）

ex.状態遷移テスト

網羅基準

S2
E3（外部イベント）
E4（外部イベント）

ex.0スイッチカバレッジ

S4

E2（内部イベント）

テストケースE5（内部イベント）
S3【自動販売機商品ラックベース保温制御、電源ON状態】のステートマシン図

テストベース

ID

テストケースクラス

操作

期待結果

1

システムの状態

S2の境界値E3

S4・・・・・・・・・・・・・・・

詳細化

豆蔵 ソフトウェアテスティング基礎講座 より引用

豆蔵 ソフトウェアテスティング基礎講座 より引用

Copyright(C) 2008 Mamezou Co.,Ltd. All rights reserved

2009/1/29

JaSST'09Tokyo Tsuyoshi YUMOTO

8

これを「観点」とゆもつよメソッドでやっていること

9

テストカテゴリ

テストタイプごとにテスト条件をテストすべき事項を着目する対象やテストの方法で分類する箱（テストタイプとテスト条件の中間に位置する）
カテゴリ

どのようなカテゴリ（観点）が考えられるか決めて、どのようなカテゴリ（観点）が考えられるか決めて、カテゴリ毎に「どのようにテストケースを作っていくカテゴリ毎に「どのようにテストケースを作っていくか（技法適用指針など）」「テスト実施の方法」などか（技法適用指針など）」「テスト実施の方法」などを考えて、メンバー間で合意するを考えて、メンバー間で合意する
【効果】
【効果】
テストケースの質が合ってくる
テストケースの質が合ってくる

24

JaSST'09Tokyo Tsuyoshi YUMOTO「ゆもつよメソッド」の位置づけ

呼んでいる



2009/1/29

テストマトリクス
UI機能

条件やデータの組合せ

概要

画面入力・表示

画面の表示内容の確認。カーソルやフォーカ
スの移動等

ボタン機能・リンク

ボタンやリンク等が押された場合の振舞い

帳票（CSV）出力

印刷・ファイル出力の内容、フォーマット

処理条件

処理が呼び出される条件等

DB登録更新削除

レコードのCRUD処理

検索

検索条件の組合せと検索結果

計算

計算式、パラメータ等

イレギュラー条件

エラー処理

エラー発生時のメッセージ、復旧……

……

YUMOTSUYO method

横軸にテストカテゴリ、縦軸にテスト対象となる機能を並べた表.
シナリオ

パフォーマンス

応答時間測定

構成

ブラウザ
マッチング

業務フロー

他処理への反映

更新
DB

エラー処理

ログイン

機能

処理条件

機能

ボタン

テストタイプ

入力表示

テスト対象になっている機能とカテゴリでマトリクスをテスト対象になっている機能とカテゴリでマトリクスを作り、どのカテゴリ（観点）でテストするか決める
作り、どのカテゴリ（観点）でテストするか決める
【効果】
【効果】
テストする全体像を鳥瞰できる
テストする全体像を鳥瞰できる

テストカテゴリ【課題】
西暦入力
テスト対象機能【課題】
・カテゴリを決定するところが体系的でない（非機能）一覧
・カテゴリを決定するところが体系的でない
和暦表示・カテゴリの合意が無いと更に混乱する・カテゴリの合意が無いと更に混乱する・カテゴリとテスト対象の概念が混乱するとわけのわからない表になる・カテゴリとテスト対象の概念が混乱するとわけのわからない表になる・テストレベルを横断的に網羅できない・テストレベルを横断的に網羅できない
2009/1/29
JaSST'09Tokyo Tsuyoshi YUMOTO
・マトリクスが大きくなりすぎて結局全体像が見えなくなる・マトリクスが大きくなりすぎて結局全体像が見えなくなる

expected result

outputs

execution
postconditions

execute timing

operations
for execute testcase
10

2009/1/29

execution preconditions

JaSST'09Tokyo Tsuyoshi YUMOTO

input values
11