Slide 1

Slide 1 text

JSTQB FL 最後の幻のテスト技法 「ユースケーステスト」 を学ぶ ブロッコリー

Slide 2

Slide 2 text

自己紹介 ● 風間裕也(ブロッコリー) ● 所属 ○ 株式会社10X ○ 株式会社iCARE フェロー(QAE技術顧問) ○ B-Testing(個人事業主) ● 社外活動 ○ JaSST Review実行委員長 ○ WACATE実行委員長 ● 執筆活動 ○ 『Agile Testing Condensed』(翻訳) ○ 『Testing in DevOps』(翻訳) ○ 『The BDD Books Discovery』(翻訳) ● 猫派 SNS上の アイコン

Slide 3

Slide 3 text

本セッションのゴール 設計技法の一つである「ユースケース」と、 それを用いたテスト技法「ユースケーステスト」について 理解を深める ● ユースケース図が何かが分かる ● ユースケース記述が何かが分かる ● ユースケーステストが何かが分かる ● ユースケーステストの使い所が分かる

Slide 4

Slide 4 text

ユースケーステストの 全体像

Slide 5

Slide 5 text

ユースケースとは ● ユースケースは,システム,サブシステム,又はクラスが 提供する一貫した機能単位を表現する分類子の一種とする。 JIS X 4170:2009より ● ユースケーステストは、通常、システムテストレベルおよび 受け入れテストレベルで適用する。 ISTQBテスト技術者資格制度 Advanced Level シラバス 日本語版 テストアナリスト Version 3.1.1.J03より ● 「どのように実現するか(設計・実装)」ではなく 「何を作るか(要求・仕様)」に焦点を当てて表現できる。 第97回: ユースケーステスト(前編) - Kouichi Akiyama - noteより

Slide 6

Slide 6 text

なぜ「JSTQB FL 幻のテスト技法」なのか ● 2018年版までのJSTQB FLでは ブラックボックステスト技法の1つに含まれていた ● WACATEでは1回も取り上げてこなかった ○ セッションの一部として取り上げたことはあった ● 2023年版のJSTQB FLからは削除されてしまった ○ JSTQB AL TAには記載あり

Slide 7

Slide 7 text

ユースケーステストの全体像と目的 ユースケース図 ユースケース記述 ユースケース テスト ざっくりとした 認識合わせ 詳細な工程を 表現 工程全体を行う テストを考える

Slide 8

Slide 8 text

ユースケース図 ユースケース図 ユースケース記述 ユースケース テスト

Slide 9

Slide 9 text

ユースケース図とは ● ユースケース図は,アクタ及びユースケースを その関係とともに示す図とする。 JIS X 4170:2009より ● 開発者とユーザーが対話しながらシステム境界や 必要なユースケースを表現し、 「ああ、こういうのを作ればよい」と開発者が理解し、 「こういうのが欲しいんだ」とユーザーが欲しいもののイメージ を固めるもの。 第97回: ユースケーステスト(前編) - Kouichi Akiyama - noteより

Slide 10

Slide 10 text

ユースケース図の目的 ● ざっくりと認識を合わせることが目的 ○ 詳細を網羅することは目的としない

Slide 11

Slide 11 text

例題:DVDレンタルのシステム

Slide 12

Slide 12 text

ユースケース図の例

Slide 13

Slide 13 text

ユースケース図の例 アクター サブジェクト ユースケース

Slide 14

Slide 14 text

ユースケース図の例 アクター サブジェクト ユースケース ポイント: システムを直接 操作する人を記載

Slide 15

Slide 15 text

ユースケース図を書くメリット

Slide 16

Slide 16 text

ユースケース図を書くメリット

Slide 17

Slide 17 text

ユースケース図を書くメリット 個々人が想像していた システムのユースケースを 具現化して比較できる

Slide 18

Slide 18 text

ユースケース図のワーク ※当日イベント参加者のみ公開

Slide 19

Slide 19 text

ユースケース記述 ユースケース図 ユースケース記述 ユースケース テスト

Slide 20

Slide 20 text

ユースケース記述とは ● ユースケースは、相互作用とアクティビティ、 さらには事前条件、事後条件で記述できる。 必要に応じて自然言語でも記述できる。 ISTQBテスト技術者資格制度Foundation Level シラバス 日本語版 Version 2018V3.1.J03より ● ユースケース図に描かれているユースケース(楕円形) について一つずつユースケース記述を書く 第97回: ユースケーステスト(前編) - Kouichi Akiyama - noteより

Slide 21

Slide 21 text

ユースケース記述の例 先ほど書いたユースケース図の 中の一つ「DVDを貸し出す」 についてのユースケース記述の例を 次ページに示す。 ユースケース図の 一部抜粋 参考: 第97回: ユースケーステスト(前編) - Kouichi Akiyama - note

Slide 22

Slide 22 text

ユースケース 説明 サンプル ユースケース名 機能名やサービス名 DVDを貸し出す アクター 使用ユーザー一覧 店員 事前条件 前提条件 お客が会員証を持っていること 基本フロー 正常系の動作 内部処理は書かない 目的達成フローのみを 記載する 1. 店員:会員証情報を入力する 2. システム:会員証の有効性と、  お客への貸出状況を確認する 3. 店員:DVDコードを入力する 4. システム:料金を示す 5. 店員:入金する 6. システム:レシートを発行する 代替フロー・ 例外フロー 基本フローから外れる 処理を記載 2A. 会員証の有効期限切れ 3A. 貸出中の商品がある 終了条件 期待する結果 お客にDVDを貸し出していること

Slide 23

Slide 23 text

ユースケース 説明 サンプル ユースケース名 機能名やサービス名 DVDを貸し出す アクター 使用ユーザー一覧 店員 事前条件 前提条件 お客が会員証を持っていること 基本フロー 正常系の動作 内部処理は書かない 目的達成フローのみを 記載する 1. 店員:会員証情報を入力する 2. システム:会員証の有効性と、  お客への貸出状況を確認する 3. 店員:DVDコードを入力する 4. システム:料金を示す 5. 店員:入金する 6. システム:レシートを発行する 代替フロー・ 例外フロー 基本フローから外れる 処理を記載 2A. 会員証の有効期限切れ 3A. 貸出中の商品がある 終了条件 期待する結果 お客にDVDを貸し出していること ポイント: アクターとシステムが 基本的には交互に登場

Slide 24

Slide 24 text

ユースケース記述を書くメリット ● ユースケース図では表現していない情報を表現できる ○ ユースケース図はシンプルさを目指しているため 表現していないものがある ○ ユースケース図の「DVDを貸し出す」というユースケースでは 表現し切れていない、会員証の有効期限確認 という工程を表現している ● 要件リストや仕様書の曖昧性や不備に気が付くことができる ○ 代替フローや例外フローが如何に出てくるかによって決まる

Slide 25

Slide 25 text

ユースケース記述を書くコツ ● 現実的なユーザトランザクション (分けることのできない一連の情報処理)の粒度で書く ○ Bad例) ■ 会員証番号入力ボタンを押す ■ 会員証の番号を入力する ■ 決定ボタンを押す ○ Good例) ■ 会員証情報を入力する ● アクターとシステムが基本的には交互に登場する

Slide 26

Slide 26 text

ユースケース記述のワーク ※当日イベント参加者のみ公開

Slide 27

Slide 27 text

ユースケーステスト ユースケース図 ユースケース記述 ユースケース テスト

Slide 28

Slide 28 text

ユースケーステストは、ユースケースで具体的にした、 コンポーネントまたはシステムの 意図される使われ方をエミュレートする トランザクションベースおよび シナリオベースのテストを可能にする。 ISTQBテスト技術者資格制度 Advanced Level シラバス 日本語版 テストアナリスト Version 3.1.1.J03より ユースケーステストとは

Slide 29

Slide 29 text

余談:シナリオテストとは ● ISTQB用語集の「ユースケーステスト」の項目では 以下のように説明がされている ○ ブラックボックステスト技法の一つ。 ユースケースの動作を実行するように テストケースを設計する。 ○ 同義語:ユーザシナリオテスト, シナリオテスト ● シナリオテストをテスト設計技法のように 捉えている人がいるが、 個人的には記載形式の1つという認識

Slide 30

Slide 30 text

余談:記載形式 ● 会員証情報の入力 ○ 会員証の有効性確認 ● DVDコードの入力 ○ DVD情報の提示 ● 料金提示 ● 入金 ● レシート発行 1. 会員証情報を入力する。 2. DVDコードを入力する。 3. 提示された料金を お客に伝える。 4. 入金する。 5. レシートを受け取る。 マインドマップ形式 箇条書き形式 シナリオ形式

Slide 31

Slide 31 text

ユースケーステストの作り方 ユースケース記述を元に、基本フローの1個のテストケースと、 代替・例外フローごとに1個のテストケースを含むように作成する。 ASTERセミナー標準テキスト[Ver3.1.1]より ユースケーステストは、 ● 基本フローを最後まで実施し、ユースケースの目的を達成する ● 基本フローの各ステップで代替フローや例外フローに寄り道する ○ 寄り道なので、基本フローに戻ってくる 第98回: ユースケーステスト(後編) - Kouichi Akiyama - noteより

Slide 32

Slide 32 text

ユースケーステストの作成手順 今回は、以下の順番でテストを作成する 1. ユースケース記述を元に、実装すべきフローを考える 2. 考えたそれぞれのフローを元に シナリオテストを作成する

Slide 33

Slide 33 text

実装するフロー を考える ● 一般的なパターン (正常系) ○ 1→2→3→ 4→5→6 ● 色々な寄り道 パターン (準正常系) ○ 1→2→3→ 3A→4→5→6 ユースケース サンプル ユースケース名 DVDを貸し出す アクター 店員 事前条件 お客が会員証を持っていること 基本フロー 1. 店員:会員証情報を入力する 2. システム:会員証の有効性と、  お客への貸出状況を確認する 3. 店員:DVDコードを入力する 4. システム:料金を示す 5. 店員:入金する 6. システム:レシートを発行する 代替フロー 例外フロー 2A. 会員証の有効期限切れ 3A. 貸出中の商品がある 終了条件 お客にDVDを貸し出していること

Slide 34

Slide 34 text

実装するフロー を考える ● 一般的なパターン (正常系) ○ 1→2→3→ 4→5→6 ● 色々な寄り道 パターン (準正常系) ○ 1→2→3→ 3A→4→5→6 ユースケース サンプル ユースケース名 DVDを貸し出す アクター 店員 事前条件 お客が会員証を持っていること 基本フロー 1. 店員:会員証情報を入力する 2. システム:会員証の有効性と、  お客への貸出状況を確認する 3. 店員:DVDコードを入力する 4. システム:料金を示す 5. 店員:入金する 6. システム:レシートを発行する 代替フロー 例外フロー 2A. 会員証の有効期限切れ 3A. 貸出中の商品がある 終了条件 お客にDVDを貸し出していること 次ページには 準正常系の シナリオ例 を記載

Slide 35

Slide 35 text

流れ 操作 期待結果 事前条件をセット お客は会員証を持っている ー 1 正しい操作 店員:会員証のバーコード    を入力する 画面に会員情報が 表示される 2 正しい操作 店員:DVDのバーコードを    入力する 画面にDVDタイトルと 料金が表示 3 エラー発生 貸出延滞中のDVDあり 延滞中あり画面に遷移する 4 リカバリ操作 店員:延滞中のDVDと    延長料金を受け取る 延滞解除され 支払画面に遷移する 5 正しい操作 店員:今回のレンタル料金を    お客に提示し入金する 金額受領済み画面 に遷移する 6 成し遂げたい 目的達成 レシートとともに、 レンタルDVDを貸し出す 目的達成

Slide 36

Slide 36 text

ユースケーステストを作成するメリット ● 「エラーにつながる失敗操作によって 上手くリカバリーできたようで 実は完全にはリカバリーできていなかった」 という不具合を発見できる ○ 正しい操作であれ、 エラーにつながる失敗操作であれ、 単体テストが実施済みであることが前提 ○ ユースケーステストは 一つの画面の中の単純な不具合を 見つけることが目的ではない

Slide 37

Slide 37 text

流れ 操作 期待結果 事前条件をセット お客は会員証を持っている ー 1 正しい操作 店員:会員証のバーコード    を入力する 画面に会員情報が 表示される 2 正しい操作 店員:DVDのバーコードを    入力する 画面にDVDタイトルと 料金が表示 3 エラー発生 貸出延滞中のDVDあり 延滞中あり画面に遷移する 4 リカバリ操作 店員:延滞中のDVDと    延長料金を受け取る 延滞解除され 支払画面に遷移する 5 正しい操作 店員:今回のレンタル料金を    お客に提示し入金する 金額受領済み画面 に遷移する 6 成し遂げたい 目的達成 レシートとともに、 レンタルDVDを貸し出す 目的達成 今回の場合、リカバリ操作の後、 今回のレンタル料金に延長料金が加算された金額が 提示される不具合が見つかるかもしれない

Slide 38

Slide 38 text

流れ 操作 期待結果 事前条件をセット お客は会員証を持っている ー 1 正しい操作 店員:会員証のバーコード    を入力する 画面に会員情報が 表示される 2 正しい操作 店員:DVDのバーコードを    入力する 画面にDVDタイトルと 料金が表示 3 エラー発生 貸出延滞中のDVDあり 延滞中あり画面に遷移する 4 リカバリ操作 店員:延滞中のDVDと    延長料金を受け取る 延滞解除され 開始画面に遷移する 5 例外終了 延長料金を受け取った段階で、 一旦終了して、初めからやり直させる シナリオにするかもしれない

Slide 39

Slide 39 text

ユースケーステストのワーク ※当日イベント参加者のみ公開

Slide 40

Slide 40 text

おわりに

Slide 41

Slide 41 text

まとめ ユースケース図 ユースケース記述 ユースケース テスト ● ユースケース図で、ざっくりと認識を合わせる ● ユースケース図では表現できていない詳細な工程は、 ユースケース記述で表現する ● ユースケース記述を元にユースケーステストを 書くことで、期待値が明確になり、 うまくリカバリーできたようで 実は完全にリカバリーできてない不具合を見つけ出す

Slide 42

Slide 42 text

注意:実際の業務で活用する際のポイント ● ユースケースはUMLの1つであり、ユースケースのみで 完結できるわけではありません。 ● 実際の業務では、ユースケースを書く前後に、 以下の2つの作成を検討してください。 ○ ユビキタス言語をまとめた辞書(ドメイン辞書) ○ 概念を抽象化したもの(ドメインモデル) ● 詳しくは書籍『ユースケース駆動開発実践ガイド』を 読んでください。

Slide 43

Slide 43 text

参考文献 ● ユースケース駆動開発実践ガイド . 翔泳社 , 2007 . ● ISTQBテスト技術者資格制度 Advanced Level シラバス 日本語版 テストアナリスト Version 3.1.1.J03 ● 第97回: ユースケーステスト(前編) - Kouichi Akiyama - note ● 第98回: ユースケーステスト(後編) - Kouichi Akiyama - note ● ASTERセミナー標準テキスト[Ver3.1.1] ● シナリオテストについて考えてみる