Upgrade to Pro — share decks privately, control downloads, hide ads and more …

テスト観点を うまく議論し使い回すために できることを考える [公開用] / NagasakiQDG4th-Test-viewpoints

k.i.
October 25, 2019

テスト観点を うまく議論し使い回すために できることを考える [公開用] / NagasakiQDG4th-Test-viewpoints

4th Nagasaki Software Quality and Development Gathering (長崎QDG) のセッション資料です。

Special Thanks To: satomi-juku(智美塾で議論したことがヒントになりました), @goyoki

k.i.

October 25, 2019
Tweet

More Decks by k.i.

Other Decks in Technology

Transcript

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

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

  3. 背景:テスト分析・設計をうまくやりたい • ステークホルダーに説明でき合意できる合理的なテストケースを作りたい • 合理的なテストケースを作れるテスト分析・テスト設計を行うためには、 テストケースの主要なインプットの1つ「テスト観点」の活用が鍵になるのでは? • うまくテスト分析・テスト設計できるようテスト観点をうまく活用したい 4 テスト分析

    テスト設計 テスト実装 テスト実行 テストケース作成 テスト手順作成 テスト実行 テストケース作成 テスト実行 2019/10/25 4th 長崎QDG - Kumiko Iseri
  4. このプレゼンは… • 何? • テスト観点についての、個人的な考えをまとめたもの • うまくテスト分析・テスト設計できるよう テスト観点をうまく活用したい • 言いたかったこと(結論)

    • テスト観点の利用や議論にあたっては、イメージ合わせが必要 • テスト観点をうまく使い回すには作る/使う側ともスキルが必要 • 抽象化、モデリング、テスト技法 2019/10/25 4th 長崎QDG - Kumiko Iseri 5
  5. 本題 2019/10/25 4th 長崎QDG - Kumiko Iseri 6

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

    4th 長崎QDG - Kumiko Iseri
  7. 例題 テスト観点例 • 配送月日が入力通りに登録されること • 存在しない月日を入力 • メッセージ表示 • 確定直前に配送対象の商品が在庫切れ

    • 購入ボタンをダブルクリックする • 小さい端末での長い商品名の見切れ • 割引キャンペーンでアクセスが急増した場合の性能効率性 • … 9 2019/10/25 4th 長崎QDG - Kumiko Iseri
  8. テスト観点、よく聞く言葉だけれど… • イメージの違いによって議論が噛み合わないことも • 何が食い違いを生むのだろうか? 10 2019/10/25 4th 長崎QDG -

    Kumiko Iseri
  9. テスト観点と呼ばれるもののバリエーション • 対象 • 抽象度 • 表現方法 • スコープ •

    利用のタイミングや利用者 11 2019/10/25 4th 長崎QDG - Kumiko Iseri
  10. 対象いろいろ 対象 例 テストケースの構成要素 入力 存在しない月日を入力 期待結果 エラーになる 事前/事後条件 会員が退会済み

    操作 ダブルクリック 実現したいこと、品質特性や 備えるべき特徴 性能効率性 バグ、起きて欲しくないこと インジェクション攻撃 使い方 時差のある場所で利用 機能などテスト対象の構成 配送日時指定機能 システムの設計・実装上の特徴 キャッシュがあるとき テスト技法、テストのHow 境界値 2019/10/25 4th 長崎QDG - Kumiko Iseri 12
  11. 抽象度いろいろ 配送日指定機能 存在しない月日を入力 配送日に無効な日付を入力 配送日に「10/32」を入力 13 2019/10/25 4th 長崎QDG -

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

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

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

    長崎QDG - Kumiko Iseri
  15. テスト観点のバリエーションとイメージの違い • テスト観点のイメージは人それぞれ • 対象 • 抽象度 • 表現方法 •

    スコープ • 利用のタイミングや利用者 17 2019/10/25 4th 長崎QDG - Kumiko Iseri 利用や議論をする前に イメージ合わせが必要
  16. 参考:他の文献でのテスト観点 江﨑 和博,坂本 健一,安原 典子(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 製品のリリース前に,その故障を取り除くためにテストすべき項目(ここでは, テスト観点と呼ぶ)として,テスト業務の経験の浅い技術者にも理解できるよう な具体的なテスト観点を掲げた
  17. 参考:他の文献でのテスト観点 西 康晴 (2006) , テスト設計におけるモデリングのための記法の提案, JaSST‘06 in Tokyo 19

    • テストの「観点」とは何だろう? – テスト対象の持つ、テストすべき側面 – テスト対象が達成すべき性質 – テスト対象(及び含む世界)を、テストの立場からモデリングしたもの » テストする必要が無い側面は、モデリングする必要が無い » 達成する必要が無い性質は、モデリングする必要が無い – 抽象的で、階層構造を持つ 2019/10/25 4th 長崎QDG - Kumiko Iseri
  18. これ以降の本書でのテスト観点 テスト観点に含まれていそうなものをできるだけ包含するように考えると… • そのまま、あるいは、具体化すると、 テストケースの構成要素、構成要素を導出する要素、 それら要素同士の組合せのいずれかになるもの • テストケースの構成要素を導出する要素とは、 • 実現したいこと、品質特性や備えるべき特徴

    • バグ、起きて欲しくないこと • 使い方 • 機能などテスト対象の構成 • システムの設計・実装上の特徴 • テスト技法、テストのHow 20 2019/10/25 4th 長崎QDG - Kumiko Iseri
  19. ここからは、テスト観点を使い回す話 テストケース作成プロセスの一環として作成する 作成したプロジェクト内で利用、作成と利用が同時 作成者が自分たちで利用 過去に誰かが作ったテスト観点を使い回す 作成したプロジェクト以外でも利用、中長期に渡って利用 作成者とは別の人・チームも利用 21 2019/10/25 4th

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

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

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

    長崎QDG - Kumiko Iseri
  23. あらかじめ用意したテスト観点で漏れなく効率的? • 何を/どれだけテストするか は状況次第 • あらかじめ用意されたテスト観点を正とできるか? • 状況が変わっているかもしれない • あらかじめ用意されたテスト観点が

    思考停止を引き起こしたり、視野を狭めたりするかもしれない 25 2019/10/25 4th 長崎QDG - Kumiko Iseri • 仕様 • ステークホルダーと、それぞれの使い方 • 設計や実装 • 社会情勢 • リソース • 連携先システム • テスト環境 • …
  24. あらかじめ用意したテスト観点で漏れなく効率的? • 何を/どれだけテストするか、発想を広げるために テスト観点を使う • まず、あらかじめ用意されたテスト観点の内容を読み解く • 他との違いや存在理由が分かると役立つ • 発想を広げる手がかりとする

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

    • 思考過程が分かると役立つ 27 2019/10/25 4th 長崎QDG - Kumiko Iseri 存在理由や思考過程の表現に 抽象化やモデリングの スキルが役立つ
  26. 抽象化、モデリング • 抽象化 細谷 功 (2014), 具体と抽象 —世界が変わって見える知性のしくみ,dZERO • モデリング、モデル化

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

    4th 長崎QDG - Kumiko Iseri 34
  28. テスト観点ドキュメントが膨大になることへの対処 • 表現方法の工夫 • ツリー、マインドマップ • 分割 • テスト観点のスコープの限定 •

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

    にフォーカス 仕様として確認すべき ところも 2019/10/25 4th 長崎QDG - Kumiko Iseri
  30. テスト観点ドキュメントが膨大になることへの対処 • 表現方法の工夫 • ツリー、マインドマップ • 分割 • テスト観点のスコープの限定 •

    位置付けを見直しテスト観点を整理する • 抽象度を上げる • テストの方針やテスト技法で導き出せる部分は書かない 37 2019/10/25 4th 長崎QDG - Kumiko Iseri 抽象化や テスト技法の スキルがある前提
  31. テスト観点の使い回しに必要なこと ここまでのまとめ • 必要なスキル:抽象化、モデリング、テスト技法 • テスト観点を作る側も、使う側も必要 • あらかじめ用意したテスト観点さえあれば、 簡単に手間なく良いテスト設計ができるわけではない •

    テスト観点の利用目的の明確化 • 何でもテスト観点で解決しようとすると、膨大になる それでもテスト観点を使うか? 2019/10/25 4th 長崎QDG - Kumiko Iseri 39
  32. それでもテスト観点を使いたい理由① • テストできることを理解しやすい粒度に分割して 考えたい • テストできることは、ほとんど無限に存在する • 多機能、多数の外部連携、幅広い推奨環境、 多種のOSSやクラウドサービスの利用、… •

    具体的な値から抽象度の高い内容まで扱えるテスト観点を 使って少しずつ考える • 段階的に考えることで、大きな抜けを減らす • コミュニケーションに便利。モブ作業や説明がしやすい 40 2019/10/25 4th 長崎QDG - Kumiko Iseri
  33. それでもテスト観点を使いたい理由② • 抽象と具体を行き来してテスト観点を考えると… • 核心を考えやすくなる • 枝葉が取り払われ、個々のテスト観点の存在理由が見えてくる • 他の観点を探しやすくなる •

    抽象化すると、より一般的になる。 より一般的になると、同じ特徴を持つ他の観点を考えやすくなる 2019/10/25 4th 長崎QDG - Kumiko Iseri 41
  34. 他の観点を探すには • テスト観点同士の関係性 • 目的/手段 • 全体/部分や属性 • 汎化 2019/10/25

    4th 長崎QDG - Kumiko Iseri 45 前画面の入力値が 保持されることを確認 前画面に戻る ブラウザ 戻るボタン エラー システムエラー
  35. それでもテスト観点を使いたい理由 まとめ • テストを分割して考える手助けとなり、 説明し合意する際にも役に立つ • テスト内容のブラッシュアップに有効 2019/10/25 4th 長崎QDG

    - Kumiko Iseri 46
  36. ということで、このプレゼンは…(再掲) • 何? • テスト観点についての、個人的な考えをまとめたもの • うまくテスト分析・テスト設計できるよう テスト観点をうまく活用したい • 言いたかったこと(結論)

    • テスト観点の利用にあたっては、イメージ合わせが必要 • テスト観点をうまく使い回すには作る/使う側ともスキルが必要 • 抽象化、モデリング、テスト技法 2019/10/25 4th 長崎QDG - Kumiko Iseri 47
  37. 参考文献 • 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