JaSST’12 Tokyo
1/25(水) 13:10-14:45

セッションC2
テスト初心者向けセッション～基礎を固めて次のステップ～

2012/01/25
増田聡、中野直樹
Association of Software Test Engineering

内容

2

1. はじめに
2. 理解する
1. ソフトウェアライフサイクル
2. テストの目的
3. テストレベル、テストタイプ
4. テスト技法
5. テストツール
3. できるようになる
1. 演習/解説1
テストケース作成
2. 演習/解説2
ツールの使い方
3. 演習/解説3
障害報告書の書き方
4. 総評
4. 最後に
5. Q&A
ASTER ( Association of Software Testing Engineer)はじめに – 講師紹介
 増田聡
– 日本アイ・ビー・エム株式会社のアプリケーション開発・保守部門において技術支援業務に従事．テストメソドロジー，技法，テストツールなどに専門的に取り組み，プロジェクトにおいて展開をおこなう．2007年から
IBMのテスティングサービスの日本市場への展開業務に従事．現在、グローバル・ビジネス・サービス事業において、テストコンサルティングなどのテスティングサービスをお客様に提供をしている．NPO法人ソフトウェアテスト技術振興協会（ASTER）理事．

 中野直樹– パッケージソフトウェア開発においてプログラマーとしてキャリアをスタート。プロジェクトにおいてテスト技法やテストツールの効果的な使い方を展開している。現在マルチパラダイムシステムズ社内や各種コミュニティにおいてソフトウェアテスト技術の展開に従事。NPO法人ソフトウェ
アテスト技術振興協会(ASTER)会員

3

ASTER ( Association of Software Testing Engineer)はじめに - セッション内容<セッション目的>– ソフトウェアテスト初心者向けに疑問点解消やスキルアップの機会を提供する。
<今回の目的>1. テストに関する作業指示がどのような背景で出てくるか理解する。
2. 依頼される作業ができるようになる<内容>
1. ソフトウェアの開発・保守などのライフサイクルの中でテストがどういう位置づけにあるか理解する。
2. テストレベル、テストタイプという考えを理解する。
3. テストケース作成、テスト実施（ツール含む）、報告などの作業ができるようになる。
4

ASTER ( Association of Software Testing Engineer)はじめに - 想定する受講者
 職種または部門–テスト技術者、プログラマー、設計者–ソフトウェア検証部門、品質管理部門

 経験–ソフトウェア開発に従事して2,3年ほど 想定する現状–テストの用語や考え方が分からない。
–テストケースを作成してといわれたが、どう作ればよいかわからない。
–テストに関して自分なりに考えてやってはいるが、うまくいかない
5

ASTER ( Association of Software Testing Engineer)理解する - ソフトウェアライフサイクル 今回はV字モデルをもとにご説明します。

 V字モデル6

ASTER ( Association of Software Testing Engineer)理解する - ソフトウェアライフサイクル テストはソフトウェアライフサイクルのあらゆる所に存在します。

 開発・保守
経過

小規模改修

新規開発
大規模改修
7

テストはソフトウェアライフサイクルに存在する

ASTER ( Association of Software Testing Engineer)理解する – テストの目的 テストの目的は欠陥を発見することと言われています。

 テストの目的(*1)–欠陥を発見する。
–対象ソフトウェアの品質レベルが十分であることを確認する。
–欠陥の作りこみを防ぐ。

8*1: JSTQB FL シラバスをもとに編集
ASTER ( Association of Software Testing Engineer)理解する – テストのプロセス テストの計画から報告まで基本的なプロセスがあります。

テストのプロセス(*1)
1. 計画と管理– 計画を立てる
2. 分析と設計計画– 準備すると管3. 実装と実行
理– テストを実行する
4. 評価と報告– 結果を報告する
計画や分析も重要です。

9

分析と設計

実装と実行

評価と報
告

同値分割や境界値分析などを利用します*1: JSTQB FL シラバスをもとに編集

ASTER ( Association of Software Testing Engineer)理解する – テストレベル、テストタイプ •テストレベルはテスト対象の大きさ、テストタイプはテストの種類•各フェーズで実施するテストレベルとテストタイプを選択する

 テストレベル、テストタイプの選択とフェーズ
テストレベルとテストタイプの選択とフェーズの定義例

テストレベル
単体テス
トレベル

機能テスト
テス
トタイプ

機能並行稼動テスト
要件認テス・トインターフェーステスト・・単体テス
トフェー
ズ

結合テス
トレベル
結合テスト
フェー
ズ

パフォーマンステスト

非機能要件テスト

セキュリティーテスト

システム
受入
テストレ
テストレ
ベル
ベル
受
システムテスト
入フェーズ
テス
トフ
ェ
ーズ

障害テスト
・・・

10

テストレベル、テストタイプ、テストフェーズの違いを理解することが重要です。

ASTER ( Association of Software Testing Engineer)理解する – テスト技法 テスト技法とテスト設計技法を理解する

 テストの技法–テスト設計•テストの作業もテストケースなど作成物がある•効果的なテストケースを作成するために方針が必要である•その方針をテスト設計と呼ぶ–テスト設計技法•テスト設計技法とはテスト設計を行う際に使用する方法論などのことである例） ブラックボックステスト
 ホワイトボックステスト
11

ASTER ( Association of Software Testing Engineer)理解する – テストツール テストツールの分類(*1)
 構成管理ツール
 カバレッジ計測ツール
 デバッグツール 動的解析ツール
 インシデント管理ツール
 ロードテストツール
 モデリングツール
 モニタリングツール
 性能テストツール
 要件マネジメントツール
 レビューツール12 セキュリティツール
 静的解析ツール
 ストレステストツール
 テスト比較ツール
 テストデータ準備ツール
 テスト設計ツール
 テストハーネス
 テスト実行ツール
 テストマネジメントツール
 ユニットテストフレームワークツール*1:（ JSTQB FL シラバスより）
ASTER ( Association of Software Testing Engineer)３できるようになる
演習/解説1
テストケース作成
演習/解説2
ツールの使い方演習/解説3
障害報告書の書き方
13

Association of Software Test Engineeringできるようになる
ある日、あなたの元にプロジェクトマネージャーがやってきて

14

ASTER ( Association of Software Testing Engineer)できるようになる あなたは会議室予約システムの開発プロジェクトに参加することになりました。
 あなたはテストプロジェクトのメンバーになりました。

15

ASTER ( Association of Software Testing Engineer)できるようになる プロジェクトでは、現在、統合テストのテストケース作成を行っています。

16

ASTER ( Association of Software Testing Engineer)できるようになる

テストケース作成

会議室予約画面のテストケース作成

17をお願いします！

ASTER ( Association of Software Testing Engineer)できるようになる

テストケース作成

テストケース を考えてみましょう！！

18

ASTER ( Association of Software Testing Engineer)できるようになる

テストケース作成

会議室予約画面の「参加者」数と、会議室の使用「開始日時」に関する仕様は以下の通り① 参加者は１～９９人まで指定可能② 開始日時は当日０時～３か月先以内で指定可能

19

ASTER ( Association of Software Testing Engineer)できるようになる

テストケース作成

会議室予約画面の下記の仕様に対するテストケースを考える①参加者は１～９９人まで指定可能②使用開始日時は当日０時～３か月以内で指定可能

今回のテストケース作成の考え方・・・同値分割を行う
境界値分析を行う（同値クラス間の境界値を見極める）
テストケースを作成する
20

ASTER ( Association of Software Testing Engineer)できるようになる

テストケース作成

同値分割とは同じ処理結果、出力結果となるグループを作成し、各グループ毎の代表となる値でテストケースを作成する。

同値クラスのポイント
「同じ機能をテストする」
「１つのテストで障害が見つかれば，残りのテストでも見つかると予想できる。」
「１つのテストで障害が見つからなければ，残りのテストでも見つからないと予想できる。」(*1)*1:「”Testing Computer Software” Cem Karner,Jack Hung,Quoc Nguyen（翻訳「基本から学ぶソフトウェアテスト）」より
21

ASTER ( Association of Software Testing Engineer)できるようになる

テストケース作成

境界値分析とは同値分割した結果、複数の同値クラスが存在する場合に、同値クラスの間の値をテストケースのパラメータとして設計すること。
ポイント
同値クラスの間（境界）は不具合が多い
同値クラス毎の最小値、最大値がいくつになるのか十分に分析してパラメータを設計する

22

ASTER ( Association of Software Testing Engineer)できるようになる

テストケース作成

会議室予約画面の下記の仕様に対するテストケースを考える①参加者は１～９９人まで指定可能②使用開始日時は当日０時～３か月以内で指定可能
例題として今回のテストケース作成の考え方・・・
テストケースを設計してみましょう同値分割を行う
境界値分析を行う（同値クラス間の境界値を見極める）
テストケースを作成する
23

ASTER ( Association of Software Testing Engineer)できるようになる

テストケース作成

1 ～ 99 の値（有効同値クラス）01
1 未満の値（無効同値クラス）

99 10099より大きい値（無効同値クラス）
エラーとなるパターン（無効同値）を
Case1.入力値が 0 の場合にエラーが表示される
追加で考える

Case2.入力値が 1 の場合に正常に登録できる
Case3.入力値が 99 の場合に正常に登録できるCase4.入力値が 100 の場合にエラーが表示される

Case5.入力値が -1 の場合にエラーが表示される
Case6. Nullや数字以外の文字（英字、記号 etc）が入力時にエラーが表示される
24

ASTER ( Association of Software Testing Engineer)できるようになる

テストケース作成

会議室予約画面の下記の仕様に対するテストケースを考える① 参加者は１～９９人まで指定可能② 使用開始日時は当日０時～３か月先以内で指定可能

テストケースを設計してみましょう

25

ASTER ( Association of Software Testing Engineer)できるようになる

テストケース作成

 演習Ⅰ
ⅰ.以下の仕様に対するテストケースを作成しなさい。

「使用開始日時は当日０時～３か月以内で指定可能」① 開始日時に対する同値クラスはいくつできますか（余裕があれば例で挙げたような図も併せて書いてください）② それぞれ同値クラスの境界値となるパラメータは“いつ”になりますか※テスト実施日は本日（１月２５日）とします。

（制限時間５分）
26

ASTER ( Association of Software Testing Engineer)できるようになる 演習Ⅰ 解答例

テストケース作成

初級編① 同値クラスはいくつになりますか？
A.期間に関する同値クラスは３つ？
有効同値クラス

無効同値クラス ①
予約不可能
な期間

②③ 無効同値クラス

予約可能な期間

予約不可能
な期間

この辺大丈夫？

27ASTER ( Association of Software Testing Engineer)できるようになる 演習Ⅰ 解答例

テストケース作成

中級編① 同値クラスにはいくつになりますか？
・・・期間に関する同値クラスは６つ⑥有効同値
指定期間内１①無効同値
指定期間外１～2012/1/24

⑤有効同値
うるう年

④有効同値
指定期間内２③無効同値
指定エラー
2012/2/29

2012/3/1~2012/4/25

2012/1/25~2012/2/28
2012/2/30,31
28

②無効同値
指定期間外２

2012/4/26～
ASTER ( Association of Software Testing Engineer)できるようになる 演習Ⅰ 解答例

テストケース作成

中級編② それぞれ同値クラスの境界値となるパラメータは“いつ”になりますか？
⑥有効同値
指定期間内１①無効同値
指定期間外１

2012/2/28
23:59

⑤有効同値
うるう年

③無効同値
指定エラー

④有効同値
指定期間内２②無効同値
指定期間外２

2012/1/25
23:59

2012/3/01 2012/4/25
2012/2/290:00
23:59
0:00
2012/1/25
2012/2/30 2012/2/31
2012/4/26
2012/2/29
0:00
0:00
23:59
0:00
23:59

29

ASTER ( Association of Software Testing Engineer)できるようになる

テストケース作成

 演習Ⅰ 解答例
TestCaseID テストケース

入力値：指定日時

期待値：画面応答内容

SI-RR-001

正常値最少2012/1/25 0:00

予約が完了しました。

SI-RR-002

正常値最大2012/3/25 23:59〃

SI-RR-003

うるう年最少2012/2/29 0:00〃

SI-RR-004

うるう年最大指定期間内１SI-RR-005

指定エラー境界2012/3/01 0:00〃

SI-RR-006

過去日の境界値

2012/1/25 23:59〃

SI-RR-007

不正日付１

2012/2/30 0:00

エラー：使用開始日時の日付が正しくありません。

SI-RR-008

不正日付２

2012/2/31 23:59〃

SI-RR-009

指定範囲外（過去日付期間外）

2012/1/24 23:59〃SI-RR-010

指定範囲外（未来日付期間外）

2012/4/26 0:00

〃

30

②有効同値

③有効同値
⑤有効同値
2012/2/29
23:59
うるう年
指定期間内２〃

ASTER ( Association of Software Testing Engineer)できるようになる

テストケース作成

 補足：–「③うるう年」は処理が通常のカレンダー計算とは異なるのでテストケースに含める必要があります。
#うるう年の仕様
1. 西暦年が4で割り切れる年はうるう年である
2. 1のうち，西暦年が100で割り切れる年はうるう年ではない
3. 2のうち，西暦年が400で割り切れる年はうるう年である

31ASTER ( Association of Software Testing Engineer)できるようになるテストケース作成

 テストケース設計が完了しました！

32

ASTER ( Association of Software Testing Engineer)３できるようになる
演習/解説1
テストケース作成
演習/解説2
ツールの使い方演習/解説3
障害報告書の書き方
33

Association of Software Test Engineeringできるようになるツールの使い方

ある日、プロジェクトマネージャーがやってきて・・・

34

ASTER ( Association of Software Testing Engineer)できるようになるツールの使い方

システムテストフェーズでパフォーマンステストを行いたいのでツールの選定

35をお願いします！

ASTER ( Association of Software Testing Engineer)できるようになるツールの使い方 演習Ⅱ
ⅰ.以下のソフトウェアテスト支援ツールのうち、会議室予約システムのパフォーマンステストで使用するツールはどれか。
以下の中から選びなさい。
 構成管理ツール
 カバレッジ計測ツール
 デバッグツール 動的解析ツール
 インシデント管理ツール
 ロードテストツール
 モデリングツール
 モニタリングツール
 性能テストツール
 要件マネジメントツール
 レビューツール（ JSTQB FL シラバスより）
36

 セキュリティツール
 静的解析ツール
 ストレステストツール
 テスト比較ツール
 テストデータ準備ツール
 テスト設計ツール
 テストハーネス
 テスト実行ツール
 テストマネジメントツール
 ユニットテストフレームワークツール（制限時間５分）
ASTER ( Association of Software Testing Engineer)できるようになるツールの使い方 演習Ⅱ 解答例
ⅰ.以下のソフトウェアテスト支援ツールのうち、会議室予約システムのパフォーマンステストで使用するツールはどれか。
以下の中から選びなさい。
 構成管理ツール
 カバレッジ計測ツール
 デバッグツール 動的解析ツール
 インシデント管理ツール
 ロードテストツール
 モデリングツール
 モニタリングツール
 性能テストツール
 要件マネジメントツール
 レビューツール（ JSTQB FL シラバスより）
37

 セキュリティツール
 静的解析ツール
 ストレステストツール
 テスト比較ツール
 テストデータ準備ツール
 テスト設計ツール
 テストハーネス
 テスト実行ツール
 テストマネジメントツール
 ユニットテストフレームワークツール

ASTER ( Association of Software Testing Engineer)できるようになる 演習Ⅲ

ツールの使い方

補足①

性能テストツール
ロードテストツール
ストレステストツール–シミュレーションしたいろいろな使用条件下で、システムの動作をモニタリングしたり、レポートしたりするツールである。 (*1)
–性能要求を確認するためにシステムに対して必要な負荷をかけて、要求を満たしていることを確認する。
*1:「STQBテスト技術者資格制度 Foundation Levelシラバス日本語版 Version 2011.J01」

38

ASTER ( Association of Software Testing Engineer)できるようになる 演習Ⅲ

ツールの使い方補足②

モニタリングツール–モニタリングツールは、特定のシステムリソースの使用状況を継続的に分析、検証、レポートし、システムが提供するサービスに問題が発生する可能性がある場合、警告を出す。(*1)–サーバのＣＰＵやメモリ、ネットワークトラフィ
ックetc の使用状況を計測し、検証することを支援するためのツール。
*1:「STQBテスト技術者資格制度 Foundation Levelシラバス日本語版 Version 2011.J01」
39

ASTER ( Association of Software Testing Engineer)できるようになる 演習Ⅲ

ツールの使い方補足③

インシデント管理ツール(欠陥追跡ツール)–インシデント(すなわち、欠陥、故障、変更要求、検出した問題、不具合)レポートを格納し、管理する。インシデントのライフサイクルの管理を支援する。また、統計的分析を支援するものもある。
–発見した障害（インシデント）を管理するために使用するツール。発見した欠陥が改修されるまで状況をトレースする。また、不具合の発生状況、傾向を分析することにも用いることが出来る。
*1:「STQBテスト技術者資格制度 Foundation Levelシラバス日本語版 Version 2011.J01」
40

ASTER ( Association of Software Testing Engineer)できるようになるツールの使い方 ツールの選定が完了しました！

41

ASTER ( Association of Software Testing Engineer)３できるようになる
演習/解説1
テストケース作成
演習/解説2
ツールの使い方演習/解説3
障害報告書の書き方
42

Association of Software Test Engineeringできるようになる障害報告書の書き方

あなたは、テスト実施の際にシステムに不具合を発見しました！
この情報をフィードバックするために障害報告書の作成 を行うことにしました。

43ASTER ( Association of Software Testing Engineer)できるようになる障害報告書の書き方

 演習Ⅲ
以下の不具合の障害報告書（インシデントレポート）を作成しなさい
ⅰ.障害報告書の障害概要を書きなさい。
ⅱ.上記の他に障害報告（書）に含めるべき項目を書き出しなさい。
 発見した不具合について（テスト手順は以下の通り）① 会議室予約システムにテストユーザ「テス太郎」でログインする② 「使用目的」フィールドに「うるう年のテスト太郎だよ3456789M」を入力③ 「開始日時」に2012年2月29日0時（うるう日）を指定※上記以外の項目は入力を省略する④ 会議室予約確定ボタンを押下する⑤ 予約完了画面へ遷移して、「予約が完了しました。」と表示されること– 想定（期待）結果との相違点：⑤確定ボタン押下後に、「エラー：使用開始日時の日付が正しくありません。 」と表示された。

44（制限時間５分）
ASTER ( Association of Software Testing Engineer)できるようになる 演習Ⅲ

障害報告書の書き方

解答例

以下の不具合に関して、障害報告書（インシデントレポート）の作成を行いなさい。
ⅰ.障害報告書の障害概要を書きなさい。
うるう年にもかかわらず予約日時にうるう日を指定して予約確定ボタンを押下するとエラーが発生する

ⅱ.上記の他に障害報告（書）に含めるべき項目を書き出しなさい。
障害報告書のID
機能やプログラムのIDや名称
重要度
障害の詳細情報、再現手順
再現性の有無システムのバージョン情報45

環境（サーバ，データベース等）
報告者
起票日時
テストケースの情報（ID等）
備考：テスト実施者の所管や、調査の為のネタ（サーバログ、画面キャプチャ等）を補足
ASTER ( Association of Software Testing Engineer)できるようになる障害報告書の書き方

 演習Ⅲ 解答例（記入例①）
障害報告書のID機能やプログラムのIDや名称
重要度
障害概要

：incident-RR001：会議室予約画面(FORM-RR02)：緊急・重要・高・中・低：うるう年にもかかわらず予約日時にうるう日を指定して予約確定ボタンを押下するとエラーが発生する障害の詳細情報、再現手順：
会議室予約画面から予約を行う際に、使用開始日時のフィールドにうるう日を指定して確定すると予約が完了せずにエラーメッセージ「エラー：会議開始日時の形式が正しくありません。 」が表示されます。
テスト実施手順は以下の通りです。
① 会議室予約システムにテストユーザ「テス太郎」でログインする② 「使用目的」フィールドに「うるう年のテスト太郎だよ3456789M」と入力する③ 「使用開始日時」に2012年2月29日0時を指定※上記以外の項目は入力を省略する④ 会議室予約確定ボタンを押下する
46

ASTER ( Association of Software Testing Engineer)できるようになる 演習Ⅲ

障害報告書の書き方

解答例（記入例②）

再現性の有無：有システムのバージョン情報：0.1.120125-2
環境（サーバ，データベース等）：Web Server(192.168.xxx.xxx)
AP Server(xxx.xxx.xxx.xxx)
DB Server(xxx.xxx.xxx.xxx)
報告者：テス 太郎起票日時：2012/01/25
テストケースの情報（ID等） ：SI-RoomReserve-03
備考：テスト実施時のサーバログとスクリーンショットは添付ファイル参照

47

ASTER ( Association of Software Testing Engineer)できるようになる障害報告書の書き方

 演習Ⅲ 補足
良い障害報告書（インシデントレポート）とは、どうのようなものか？
「有用な欠陥レポートは、次のようになる・完全・簡潔・正確・客観的 」（*1）
「１，２行で障害の概要をかくことは芸術（職人技）に近いが，体得しなくてはならない」(*2)

報告書に感情的にコメントをかかないこと！
※欠陥の改修が目的であることを意識しましょう。

48*1:「ISTQBテスト技術者資格制度 Advanced Level シラバス 日本語版 Version 2007.J02」*2:「”Testing Computer Software” Cem Karner,Jack Hung,Quoc Nguyen（翻訳「基本から学ぶソフトウェアテスト）」より
ASTER ( Association of Software Testing Engineer)できるようになる障害報告書の書き方

 障害報告書の作成が完了しました！

49

ASTER ( Association of Software Testing Engineer)できるようになる

総評

テストを効率よく行うためには・・・

テストの要求分析、設計方針に従い、キチンとテストケースの設計・作成を行う。
テストツールを活用する。
- 道具を上手く使っての効率をあげることを考える。
障害（インシデント）の報告はわかりやすく、丁寧に。
- 発見したら即座に起票、フィードバックする。
- 設計者，実装者を非難する様な感情的なことは書かない（高品質なソフトウェアを作る目的はメンバー全員一緒）

50

ASTER ( Association of Software Testing Engineer)