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

WACATE流テスト分析のワークショップを体感してみよう

Add1036688abcb2e3dbff7c3090f7e35?s=47 imtnd
July 08, 2021

 WACATE流テスト分析のワークショップを体感してみよう

WACATE流テスト分析のワークショップを体感してみよう

風間 裕也(WACATE実行委員)
角田 俊(WACATE実行委員)
常盤 香央里(WACATE実行委員)
中村 仰志(WACATE実行委員)
並木 正典(WACATE実行委員)
山口 寛子(WACATE実行委員)

in JaSST'21 Tokyo
http://www.jasst.jp/symposium/jasst21tokyo/details.html

Add1036688abcb2e3dbff7c3090f7e35?s=128

imtnd

July 08, 2021
Tweet

Transcript

  1. 2021/03/15-16 WACATE 1 WACATE流テスト分析の ワークショップを体感してみよう JaSSTʼ21 Tokyo

  2. アジェンダ • 本セッションの⽬的・概要 • テスト分析・設計について • 個⼈ワーク、グループワーク(上映) • まとめ •

    WACATE紹介 2021/03/15-16 WACATE 2
  3. 本セッションの⽬的・概要 導⼊ 2021/03/15-16 WACATE 3

  4. 本セッションの⽬的 1. 実際に⼿を動かして体験する 2. 体験することで机上学習とは違った 理解度の上昇を体感してもらう 3. グループワークを通して、⾃分と他⼈との 違いを⾒つけてもらう 2021/03/15-16

    WACATE 4 本セッションはすごい知識を提供するものではありません 参加する皆さんが手を動かして、自分で気づき学ぶ場です 注意
  5. 突然ですが、個⼈ワーク︕ • お題はシンプルな電卓 • 仕様書とかないです︕ • 右の画像の情報がすべてです︕ • どんなテストをしますか︖ •

    突然電卓を渡されました︕ どうしますか︖ • ⾃由形式で紙に書いて︕ • 時間は3分︕ 2021/03/15-16 WACATE 5
  6. 突然ですが、個⼈ワーク︕ • お題はシンプルな電卓 • 仕様書とかないです︕ • 右の画像の情報がすべてです︕ • どんなテストをしますか︖ •

    突然電卓を渡されました︕ どうしますか︖ • ⾃由形式で紙に書いて︕ • 時間は3分︕ 2021/03/15-16 WACATE 6 残り1分です
  7. 失礼しました • あまりに⾃由すぎて、逆に何したらいいか 分からなくなりますよね︖ • 本セッションではテストすることを導出する テスト分析というプロセスについて取り扱いま す 2021/03/15-16 WACATE

    7
  8. 本セッションの概要 • システムの振る舞いに基づくメタモデルを利⽤ してテスト観点を抽出する 1. テスト分析、テスト設計について簡単に解説する。 2. お題に対して個⼈でテスト分析を⾏ってもらう。 3. その後、グループワークで共有を⾏う。

    (今回は実⾏委員によるグループワークを⾒ていた だきます) 2021/03/15-16 WACATE 8
  9. テスト分析・設計について 講義 2021/03/15-16 WACATE 9

  10. テストプロセス • JSTQBにおけるテストプロセス 2021/03/15-16 WACATE 10 テスト 分析 テスト 設計

    テスト 実装 テスト 実行 テスト 完了 テスト計画 テストのモニタリングとコントロール JSTQB-SyllabusFoundation_Version2018.J03
  11. テストプロセス • JSTQBにおけるテストプロセス 2021/03/15-16 WACATE 11 テスト 分析 テスト 設計

    テスト 実装 テスト 実行 テスト 完了 テスト計画 テストのモニタリングとコントロール 本セッションで取り扱うのはこの範囲 JSTQB-SyllabusFoundation_Version2018.J03 ワークで実践するのはここ
  12. ⽤語 • テスト分析 – テスト分析では、テスト可能なフィーチャーを識別し、 テスト条件を決めるためにテストベースを分析する。 ⾔い換えると、テスト分析では計測可能なカバレッジ 基準から⾒た「何をテストするか」を決定する。 • テスト設計

    – テスト設計では、テスト条件を⾼位レベルテストケー ス、⾼位レベルテストケースのセット、およびその他 のテストウェアへ落とし込む。 つまり、テスト分析は「何をテストするか」を決定し、 テスト設計は「それをどうテストするか」を決定する。 2021/03/15-16 WACATE 12 JSTQB-SyllabusFoundation_Version2018.J03 より
  13. テスト分析・設計 テスト分析︓何をテストするか (=テスト対象を理解し、テスト観点を出す) テスト設計︓それをどうテストするか (=テスト観点をテストケースに具体化できるようにする) • どうやって導き出せば良いでしょうか︖ – 思い付き︖ –

    仕様書から⾒つける︖ – やりながら考える︖ – 技術や技法を活⽤する︖ 2021/03/15-16 WACATE 13
  14. テスト技法 • テスト技法 – テスト技法の⽬的は、テスト条件、テストケース、 テストデータを決定することである – テストケースを作成したり選択したりするための 技法 2021/03/15-16

    WACATE 14 JSTQB-SyllabusFoundation_Version2018.J03 JSTQB-glossary-introduction.V3.2.J01 より こういった確⽴した技術を使ってテスト分析、テスト 設計で 「何をテストするか」、「どうテストするか」 を導出することが出来る。
  15. テストプロセス • JSTQBにおけるテストプロセス 2021/03/15-16 WACATE 15 テスト 分析 テスト 設計

    テスト 実装 テスト 実行 テスト 完了 テスト計画 テストのモニタリングとコントロール JSTQB-SyllabusFoundation_Version2018.J03
  16. テスト設計 • 例えば… • 何をテストするか – 何桁まで⼊⼒できるか • どうやってテストするか (どういう値でテストするか)

    • 同値分割 • 境界値分析 2021/03/15-16 WACATE 16 有効な桁数 無効な桁数 無効な桁数 有効な桁数 無効な桁数 下限境界値 上限境界値
  17. テスト設計 • 何をやっているかと⾔うと・・・ 2021/03/15-16 WACATE 17 有効 無効 1 2

    3 「何桁まで入力できる か」に対して必要な情報 を集める 技法が前提としている モデルにあてはめて 情報を整理する 整合性や網羅性を担保す るテスト方法を具体化 同値分割 境界値分析 状態遷移 デシジョンテーブル 要件・仕様 ユースケース 要求 リスク etc
  18. テストプロセス • JSTQBにおけるテストプロセス 2021/03/15-16 WACATE 18 テスト 分析 テスト 設計

    テスト 実装 テスト 実行 テスト 完了 テスト計画 テストのモニタリングとコントロール JSTQB-SyllabusFoundation_Version2018.J03
  19. テスト分析 • テスト分析も基本的な考え⽅は同じ 2021/03/15-16 WACATE 19 要件・仕様 ユースケース 要求 リスク

    etc テスト対象の 必要な情報を集める モデルにあてはめて 情報を整理する 整合性や網羅性を担保す るテスト観点を抽出 VSTeP HAYST法 ゆもつよメソッド NGT F V T 6W2H 機 能 カテゴリ 機能モデル
  20. モデルの活⽤ メタモデルは分析したい事柄に応じて 適切なものを使⽤する 2021/03/15-16 WACATE 20 ゆもつよメソッド 機能モデル HAYST法 テスト対象の機能を俯瞰して

    テストしたいことを洗い出す 6W2H 6W2H テスト対象の要求を理解する テスト対象の使⽤想定や要求等を 洗い出す 論理的機能構造
  21. テストプロセス • JSTQBにおけるテストプロセス 2021/03/15-16 WACATE 21 テスト 分析 テスト 設計

    テスト 実装 テスト 実行 テスト 完了 テスト計画 テストのモニタリングとコントロール JSTQB-SyllabusFoundation_Version2018.J03
  22. 個⼈ワーク、グループワーク 実践 2021/03/15-16 WACATE 22

  23. テストプロセス • JSTQBにおけるテストプロセス 2021/03/15-16 WACATE 23 テスト 分析 テスト 設計

    テスト 実装 テスト 実行 テスト 完了 テスト計画 テストのモニタリングとコントロール JSTQB-SyllabusFoundation_Version2018.J03
  24. • 各種⼿法をちゃんとやると⼤変なので・・・ • 単純なモデルで「何をテストするか」 を挙げてみよう︕ 処理 ワークのお題 2021/03/15-16 WACATE 24

    入力 出力 演算 チェック
  25. 個⼈ワーク 2021/03/15-16 WACATE 25 入力 出力 演算 チェック • 上記のメタモデルに合わせて、テストすることを

    考えてみよう • 時間 10分
  26. 個⼈ワーク 2021/03/15-16 WACATE 26 入力 出力 演算 チェック • 上記のメタモデルに合わせて、テストすることを

    考えてみよう • 時間 10分 残り5分です
  27. 個⼈ワーク 2021/03/15-16 WACATE 27 入力 出力 演算 チェック • 上記のメタモデルに合わせて、テストすることを

    考えてみよう • 時間 10分 残り1分です
  28. グループワーク 2021/03/15-16 WACATE 28 入力 出力 演算 チェック • 個⼈で出したものをグループで共有します。

    • 今回は実⾏委員でやったときの様⼦を上映します。 • ⾃分でやったときに出せたもの、出せなかったものな ど⾃分との違いを⾒つけてみてください。
  29. 2021/03/15-16 WACATE 29

  30. まとめ 2021/03/15-16 WACATE 30

  31. まとめ • 最初に3分でやった時と⽐べてモデルを使うことで テストすることが出しやすくなかったですか︖ • モデルが決まっているので、最初より広い範囲、網 羅的なテスト観点を⾒つけられたのではないでしょ うか︖ • グループワークを通して、新しい発⾒はあったでし

    ょうか︖ モデルを使⽤することで違いを⾒つけられたのでは ないでしょうか︖ 2021/03/15-16 WACATE 31
  32. 参考⽂献 • ISTQBテスト技術者資格制度 Foundation Level シラバス ⽇本語版 Version 2018.J03 –

    http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018.J03.pdf • ISTQBテスト技術者資格制度 ソフトウェアテスト標準⽤語集(⽇本語版)イントロダクション Ver3.2.J01 – http://jstqb.jp/dl/JSTQB-glossary-introduction.V3.2.J01.pdf 2021/03/15-16 WACATE 32
  33. WACATE紹介 2021/03/15-16 WACATE 33

  34. コミュニティ概要 2021/03/15-16 WACATE 34 1. WACATE ワカテと読みます 2. 活動 –

    ⾃主的なコミュニティ – 1年に夏・冬の2回 – 1泊2⽇の合宿 3. 内容 – 主にソフトウェアテストの勉強会 – ワークショップがメイン – 参加者間の交流も深める 4. ターゲット – 若⼿でテストに興味がある⼈ – 特に年齢制限はない https://wacate.jp
  35. 年2回のイベント 2021/03/15-16 WACATE 35 多くのテーマに触れ、 新しい発見を得る 1つのテーマを掘り下げ どっぷり漬かる 夏 冬

    WACATE2007 WACATE2008冬 WACATE2009冬 WACATE2010冬 WACATE2011冬 WACATE2012冬 WACATE2013冬 WACATE2014冬 WACATE2015冬 WACATE2016冬 WACATE2017冬 WACATE2018冬 WACATE2019冬 WACATE2020冬 WACATE2008夏 WACATE2009夏 WACATE2010夏 WACATE2011夏 WACATE2012夏 WACATE2013夏 WACATE2014夏 WACATE2015夏 WACATE2016夏 WACATE2017夏 WACATE2018夏 WACATE2019夏
  36. 次回 2021年 6⽉12⽇(⼟)、19⽇(⼟) オンラインにて開催予定 2021/03/15-16 WACATE 36

  37. Q&A 2021/03/15-16 WACATE 37

  38. 2021/03/15-16 WACATE 38 Q. フォーマットの使い⽅を事前にすり合わせずに個⼈ワークをされていたのは、各⼈の⾃由な発想を妨げない ようにするためでしょうか︖ A. ⾃由な発想を妨げないという⽬的もあります。 ただし、今回はグループワークメンバ内でも使⽤したことがないメタモデルを使⽤しているので、モデルの 認識合わせもディスカッション内で⾏いました。

    Q. 感想ですが、⼊⼒(キー、キーの順序、キーの組み合わせ(同時押し))、出⼒(画⾯、桁数)、ノウハウ (0割り算、演算順序)とかを整理してからやると網羅性あがるんじゃないかな︖と感じました。 A. 最初に整理するという⽅法もあります。 ⼀⽅で、実際にテスト観点を出してからディスカッションして認識を合わせるという⽅法もあります。 重複した観点が出ることはそれほど問題ではなく、⾊々な発想を出すことが⽬的になります。 「キーを押す」という⼀⾒同じテスト観点でも、⼈によっては「キー⼊⼒内部に反映されること」、「押し たキーが画⾯に反映されること」のように実は違う観点という場合があります。 このような認識の違いはディスカッションで認識を合わせていくことになります。このような⽅法を取ると、 最初は思い浮かばなかったテスト観点が出ることもあります。 また、今回のワークはモデルを正しく使⽤するというより、モデルで認識を合わせながらテスト分析を⾏う ということをテーマとしてセッションを実施したため、このような形になっています。 Q. 今回のように各⾃の不具合がありそうなところ、テストしたいところ(不具合を⾒つけたいところ)ベース で分析すると、基本的な機能のテストが抜け落ちやすかったりしませんか︖ A. ⼀つのモデルで出た観点のみがテスト観点すべてになるわけではありません。 実際には仕様書から出てくるテスト観点など補⾜しながらすべてのテスト観点を出していく形になると思い ます。 例えば今回のメタモデルですと、「バッテリー切れ」「経年劣化」というようなテスト観点は出しにくいで す。
  39. 2021/03/15-16 WACATE 39 Q. 実務でもこういうワークショップとかってされた経験ありますか︖あれば少しシェアしていただけると嬉し いです︕ A. 会社でも研修の時間としてこのようなワークショップを⾏うことはあります。また、研修ではなく実務でも このようなやり⽅を使⽤することがあります。 ⼀⼈でテスト観点出しをやって出てこない観点も、複数⼈でテスト観点出しをやることによって新しい観点

    が出てくることがあります。 Q. 分析の際、仕様不明がわかったら仕様問い合わせも良いのでは︖と勝⼿に思って、質問表も作りました。 A. 質問票を作成するのは良い活動だと思います。実際、モデルに当てはめるときに不明点が出ることは多いと 思います。 Q. 最初の⽅のスライドで、テスト分析では、「テスト条件」を決めるために分析する、という記載がありまし た。 テスト分析の説明のスライドでは、モデルを使って「テスト観点」を抽出、という説明でした。 テスト観点とテスト条件はほぼ同じということでしょうか︖ A. 同じという認識で問題ありません。今回のセッションではJSTQBをベースとしてテストプロセスをご紹介し ました。JSTQBの「テスト条件」という⽤語はJSTQBを詳しくない⼈には分かりにくいと思い、セッション 内では「テスト観点」という⽤語を使⽤しています。 Q. 使うモデルを検討するのに、どれくらい時間をかけますか︖ A. 今回のセッションではメタモデルを使⽤してテスト観点を出してみるということを⽬的にワークを⾏いまし たので、メタモデルの検討に時間はかけていません。 今回使⽤したものはゆもつよメソッドで使⽤されている論理的機能構造を簡易的にしたものを使⽤しました。 実際に業務で使⽤される場合は、既存のテスト分析⽅法で使⽤されている⽅法を参考にして、整理したい観 点に合致するモデルを選択するのが良いと思います。