Slide 1

Slide 1 text

テスト観点を うまく議論し使い回すために できることを考える [公開用] Kumiko Iseri 1 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 2

Slide 2 text

まえがき 2019/10/25 4th 長崎QDG - Kumiko Iseri 3

Slide 3

Slide 3 text

背景:テスト分析・設計をうまくやりたい • ステークホルダーに説明でき合意できる合理的なテストケースを作りたい • 合理的なテストケースを作れるテスト分析・テスト設計を行うためには、 テストケースの主要なインプットの1つ「テスト観点」の活用が鍵になるのでは? • うまくテスト分析・テスト設計できるようテスト観点をうまく活用したい 4 テスト分析 テスト設計 テスト実装 テスト実行 テストケース作成 テスト手順作成 テスト実行 テストケース作成 テスト実行 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 4

Slide 4 text

このプレゼンは… • 何? • テスト観点についての、個人的な考えをまとめたもの • うまくテスト分析・テスト設計できるよう テスト観点をうまく活用したい • 言いたかったこと(結論) • テスト観点の利用や議論にあたっては、イメージ合わせが必要 • テスト観点をうまく使い回すには作る/使う側ともスキルが必要 • 抽象化、モデリング、テスト技法 2019/10/25 4th 長崎QDG - Kumiko Iseri 5

Slide 5

Slide 5 text

本題 2019/10/25 4th 長崎QDG - Kumiko Iseri 6

Slide 6

Slide 6 text

何気なく使われる、テスト観点 7 テストケースのレビューしてみて、 どうでした? エラー系のテスト観点が 足りていないんじゃない? 昨日のシステムテストバグ、 前のテストで見つけるべきでしたね… あれは境界値の観点漏れだな 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 7

Slide 7 text

例題 テスト観点例 • 配送月日が入力通りに登録されること • 存在しない月日を入力 • メッセージ表示 • 確定直前に配送対象の商品が在庫切れ • 購入ボタンをダブルクリックする • 小さい端末での長い商品名の見切れ • 割引キャンペーンでアクセスが急増した場合の性能効率性 • … 9 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 8

Slide 8 text

テスト観点、よく聞く言葉だけれど… • イメージの違いによって議論が噛み合わないことも • 何が食い違いを生むのだろうか? 10 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 9

Slide 9 text

テスト観点と呼ばれるもののバリエーション • 対象 • 抽象度 • 表現方法 • スコープ • 利用のタイミングや利用者 11 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 10

Slide 10 text

対象いろいろ 対象 例 テストケースの構成要素 入力 存在しない月日を入力 期待結果 エラーになる 事前/事後条件 会員が退会済み 操作 ダブルクリック 実現したいこと、品質特性や 備えるべき特徴 性能効率性 バグ、起きて欲しくないこと インジェクション攻撃 使い方 時差のある場所で利用 機能などテスト対象の構成 配送日時指定機能 システムの設計・実装上の特徴 キャッシュがあるとき テスト技法、テストのHow 境界値 2019/10/25 4th 長崎QDG - Kumiko Iseri 12

Slide 11

Slide 11 text

抽象度いろいろ 配送日指定機能 存在しない月日を入力 配送日に無効な日付を入力 配送日に「10/32」を入力 13 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 12

Slide 12 text

表現方法いろいろ 箇条書き、文章 表 フォーマット次第では観点間の関連を表現可能 関連情報もまとめて管理しやすい ツリー、マインドマップ 観点間の関連を表現しやすい 表に比べると肥大化しにくい傾向 14 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 13

Slide 13 text

スコープいろいろ 使い回せそうなところだけ 他のプロジェクトでも必要そうなもののみ 全部 危ないところだけ バグがありそうなところ、気をつけたいところのみ 仕様として確認すべきところも含む 15 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 14

Slide 14 text

利用のタイミングや利用者いろいろ テストケース作成プロセスの一環として作成する 作成したプロジェクト内で利用、作成と利用が同時 作成者が自分たちで利用 過去に誰かが作ったテスト観点を使い回す 作成したプロジェクト以外でも利用、中長期に渡って利用 作成者とは別の人・チームも利用 16 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 15

Slide 15 text

テスト観点のバリエーションとイメージの違い • テスト観点のイメージは人それぞれ • 対象 • 抽象度 • 表現方法 • スコープ • 利用のタイミングや利用者 17 2019/10/25 4th 長崎QDG - Kumiko Iseri 利用や議論をする前に イメージ合わせが必要

Slide 16

Slide 16 text

参考:他の文献でのテスト観点 江﨑 和博,坂本 健一,安原 典子(2013),システムとソフトウェアの品質:4.システムおよびソフト ウェアの品質評価 -SQuaRE適用の実際と今後の展開-, 情報処理 55巻1号 ソフトウェアテスト技術振興協会(ASTER)(2019),テスト設計チュートリアル U-30クラス向け 2019 年度版”,テスト設計コンテスト‘19 – U-30クラス チュートリアル http://aster.or.jp/business/contest/doc/2019_U-30_V1.0.0%20.pdf 18 本講では「テストすべきこと」を「テスト観点」と呼ぶこととします 2019/10/25 4th 長崎QDG - Kumiko Iseri 製品のリリース前に,その故障を取り除くためにテストすべき項目(ここでは, テスト観点と呼ぶ)として,テスト業務の経験の浅い技術者にも理解できるよう な具体的なテスト観点を掲げた

Slide 17

Slide 17 text

参考:他の文献でのテスト観点 西 康晴 (2006) , テスト設計におけるモデリングのための記法の提案, JaSST‘06 in Tokyo 19 • テストの「観点」とは何だろう? – テスト対象の持つ、テストすべき側面 – テスト対象が達成すべき性質 – テスト対象(及び含む世界)を、テストの立場からモデリングしたもの » テストする必要が無い側面は、モデリングする必要が無い » 達成する必要が無い性質は、モデリングする必要が無い – 抽象的で、階層構造を持つ 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 18

Slide 18 text

これ以降の本書でのテスト観点 テスト観点に含まれていそうなものをできるだけ包含するように考えると… • そのまま、あるいは、具体化すると、 テストケースの構成要素、構成要素を導出する要素、 それら要素同士の組合せのいずれかになるもの • テストケースの構成要素を導出する要素とは、 • 実現したいこと、品質特性や備えるべき特徴 • バグ、起きて欲しくないこと • 使い方 • 機能などテスト対象の構成 • システムの設計・実装上の特徴 • テスト技法、テストのHow 20 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 19

Slide 19 text

ここからは、テスト観点を使い回す話 テストケース作成プロセスの一環として作成する 作成したプロジェクト内で利用、作成と利用が同時 作成者が自分たちで利用 過去に誰かが作ったテスト観点を使い回す 作成したプロジェクト以外でも利用、中長期に渡って利用 作成者とは別の人・チームも利用 21 2019/10/25 4th 長崎QDG - Kumiko Iseri 以降は こちらの話

Slide 20

Slide 20 text

テスト観点の使い回しについて、よくある?話 • あらかじめテスト観点をまとめておくことで、 誰でも漏れなく効率的なテスト設計ができると期待 • テスト観点のドキュメントが膨大な量に 22 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 21

Slide 21 text

あらかじめ用意したテスト観点で漏れなく効率的? • 言い換えると… • 蓄積したテスト観点を使えば、 何を/どれだけテストするか過不足なく決められる? • テスト観点があれば簡単に、 何を/どれだけテストするか決められる? 2019/10/25 4th 長崎QDG - Kumiko Iseri 23

Slide 22

Slide 22 text

あらかじめ用意したテスト観点で漏れなく効率的? • 何を/どれだけテストするか は状況次第 • 仕様 だけじゃない 24 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 23

Slide 23 text

あらかじめ用意したテスト観点で漏れなく効率的? • 何を/どれだけテストするか は状況次第 • あらかじめ用意されたテスト観点を正とできるか? • 状況が変わっているかもしれない • あらかじめ用意されたテスト観点が 思考停止を引き起こしたり、視野を狭めたりするかもしれない 25 2019/10/25 4th 長崎QDG - Kumiko Iseri • 仕様 • ステークホルダーと、それぞれの使い方 • 設計や実装 • 社会情勢 • リソース • 連携先システム • テスト環境 • …

Slide 24

Slide 24 text

あらかじめ用意したテスト観点で漏れなく効率的? • 何を/どれだけテストするか、発想を広げるために テスト観点を使う • まず、あらかじめ用意されたテスト観点の内容を読み解く • 他との違いや存在理由が分かると役立つ • 発想を広げる手がかりとする • 思考過程が分かると役立つ 26 2019/10/25 4th 長崎QDG - Kumiko Iseri 具体的な値しかなく 作者も不在では読み解けない

Slide 25

Slide 25 text

あらかじめ用意したテスト観点で漏れなく効率的? • 何を/どれだけテストするか、発想を広げるために テスト観点を使う • まず、あらかじめ用意されたテスト観点の内容を読み解く • 他との違いや存在理由が分かると役立つ • 発想を広げる手がかりとする • 思考過程が分かると役立つ 27 2019/10/25 4th 長崎QDG - Kumiko Iseri 存在理由や思考過程の表現に 抽象化やモデリングの スキルが役立つ

Slide 26

Slide 26 text

抽象化、モデリング • 抽象化 細谷 功 (2014), 具体と抽象 —世界が変わって見える知性のしくみ,dZERO • モデリング、モデル化 SQuBOK策定部会 (編集) (2014), ソフトウェア品質知識体系ガイド -SQuBOK Guide-(第2版),オーム社 Tom DeMarco (著), 渡辺 純一 (翻訳) (1987年), 品質と生産性を重視したソフトウェア開発 プロジェクト技法—見積り・設計・テストの効果的な構造化,近代科学社 28 抽象化とは一言で表現すれば、「枝葉を切り捨てて幹を見ること」といえます。文字どお り、「特徴を抽出する」ということです。 モデル化とは,認知したいと考えている構造,振る舞い,現象などについて,別の効率的 な形式や方法による表現を用いることである〔Rothenberg 1989〕。一般に,複雑さ,不 可逆性を回避するよう単純化し,もとの現象などを扱いやすくすることが多い。 モデル化は,大きな問題を扱うための手段の一つである。 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 27

Slide 27 text

テスト観点の使い回しに必要なこと ここまでのまとめ • 必要なスキル:抽象化、モデリング • テスト観点を作る側も、使う側も必要 • あらかじめ用意したテスト観点さえあれば、 簡単に手間なく良いテスト設計ができるわけではない 2019/10/25 4th 長崎QDG - Kumiko Iseri 34

Slide 28

Slide 28 text

テスト観点ドキュメントが膨大になることへの対処 • 表現方法の工夫 • ツリー、マインドマップ • 分割 • テスト観点のスコープの限定 • 位置付けを見直しテスト観点を整理する 35 テスト観点の利用目的を 明確にする必要あり 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 29

Slide 29 text

テスト目的とスコープ ①〜④はASTERセミナー標準テキスト[Ver3.1]より http://aster.or.jp/business/seminar_text.html 36 ①欠陥を摘出すること ②対象ソフトウェアの品質レベルが十分で あることを確認し、その情報を示すこと ③意思決定のための情報を示すこと ④欠陥の作りこみを防ぐこと バグがありそうなところ にフォーカス 仕様として確認すべき ところも 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 30

Slide 30 text

テスト観点ドキュメントが膨大になることへの対処 • 表現方法の工夫 • ツリー、マインドマップ • 分割 • テスト観点のスコープの限定 • 位置付けを見直しテスト観点を整理する • 抽象度を上げる • テストの方針やテスト技法で導き出せる部分は書かない 37 2019/10/25 4th 長崎QDG - Kumiko Iseri 抽象化や テスト技法の スキルがある前提

Slide 31

Slide 31 text

テスト観点の使い回しに必要なこと ここまでのまとめ • 必要なスキル:抽象化、モデリング、テスト技法 • テスト観点を作る側も、使う側も必要 • あらかじめ用意したテスト観点さえあれば、 簡単に手間なく良いテスト設計ができるわけではない • テスト観点の利用目的の明確化 • 何でもテスト観点で解決しようとすると、膨大になる それでもテスト観点を使うか? 2019/10/25 4th 長崎QDG - Kumiko Iseri 39

Slide 32

Slide 32 text

それでもテスト観点を使いたい理由① • テストできることを理解しやすい粒度に分割して 考えたい • テストできることは、ほとんど無限に存在する • 多機能、多数の外部連携、幅広い推奨環境、 多種のOSSやクラウドサービスの利用、… • 具体的な値から抽象度の高い内容まで扱えるテスト観点を 使って少しずつ考える • 段階的に考えることで、大きな抜けを減らす • コミュニケーションに便利。モブ作業や説明がしやすい 40 2019/10/25 4th 長崎QDG - Kumiko Iseri

Slide 33

Slide 33 text

それでもテスト観点を使いたい理由② • 抽象と具体を行き来してテスト観点を考えると… • 核心を考えやすくなる • 枝葉が取り払われ、個々のテスト観点の存在理由が見えてくる • 他の観点を探しやすくなる • 抽象化すると、より一般的になる。 より一般的になると、同じ特徴を持つ他の観点を考えやすくなる 2019/10/25 4th 長崎QDG - Kumiko Iseri 41

Slide 34

Slide 34 text

他の観点を探すには • テスト観点同士の関係性 • 目的/手段 • 全体/部分や属性 • 汎化 2019/10/25 4th 長崎QDG - Kumiko Iseri 45 前画面の入力値が 保持されることを確認 前画面に戻る ブラウザ 戻るボタン エラー システムエラー

Slide 35

Slide 35 text

それでもテスト観点を使いたい理由 まとめ • テストを分割して考える手助けとなり、 説明し合意する際にも役に立つ • テスト内容のブラッシュアップに有効 2019/10/25 4th 長崎QDG - Kumiko Iseri 46

Slide 36

Slide 36 text

ということで、このプレゼンは…(再掲) • 何? • テスト観点についての、個人的な考えをまとめたもの • うまくテスト分析・テスト設計できるよう テスト観点をうまく活用したい • 言いたかったこと(結論) • テスト観点の利用にあたっては、イメージ合わせが必要 • テスト観点をうまく使い回すには作る/使う側ともスキルが必要 • 抽象化、モデリング、テスト技法 2019/10/25 4th 長崎QDG - Kumiko Iseri 47

Slide 37

Slide 37 text

参考文献 • ASTERセミナー標準テキスト[Ver3.1] http://aster.or.jp/business/seminar_text.html • http://goyoki.hatenablog.com/entry/2019/10/02/221408 • SQuBOK策定部会 (編集) (2014), ソフトウェア品質知識体系ガイド -SQuBOK Guide-(第2版),オーム社 • Tom DeMarco (著), 渡辺 純一 (翻訳) (1987年), 品質と生産性を重視したソフトウェア開発プロジェクト技法—見積り・設計・テストの効果的な構造化,近代科学社 • 石井 俊直,細谷 泰夫,吉岡 克浩,前田 融磁,石原 鑑 著(2010年)、テスト観点分析によるソフトウェア要求仕様の品質向上, 情報科学技術フォーラム講演論文集 • 江﨑 和博,坂本 健一,安原 典子(2013), システムとソフトウェアの品質:4.システムおよびソフトウェアの品質評価 -SQuaRE適用の実際と今後の展開-, 情報処理 55巻1号 • ソフトウェアテスト技術振興協会(ASTER)(2019),“テスト設計チュートリアル U-30クラス向け 2019年度版”, テスト設計コンテスト‘19 – U-30クラス チュートリアル http://aster.or.jp/business/contest/doc/2019_U-30_V1.0.0%20.pdf • 羽田裕,石山康介,青木教之(2013),テスト視点からのレビューアの欠陥発見の容易性向上の試み, 研究報告組込みシステム(EMB),2013-EMB-28巻12号 • 細谷 功 (2014), 具体と抽象 —世界が変わって見える知性のしくみ,dZERO • 吉澤 圭介(2007),“テスト観点に着目したテスト設計の実践事例”, JaSST‘07 Kansai http://jasst.jp/archives/jasst07w/pdf/E2-2.pdf • 吉澤 智美, 西 康晴(2012) ,ソフトウェアテストの最新動向とフロントローディング, 品質42巻4号 2019/10/25 4th 長崎QDG - Kumiko Iseri 48