WACATE流テスト分析のワークショップを体感してみよう
風間 裕也(WACATE実行委員) 角田 俊(WACATE実行委員) 常盤 香央里(WACATE実行委員) 中村 仰志(WACATE実行委員) 並木 正典(WACATE実行委員) 山口 寛子(WACATE実行委員)
in JaSST'21 Tokyo http://www.jasst.jp/symposium/jasst21tokyo/details.html
2021/03/15-16 WACATE1WACATE流テスト分析のワークショップを体感してみようJaSSTʼ21 Tokyo
View Slide
アジェンダ• 本セッションの⽬的・概要• テスト分析・設計について• 個⼈ワーク、グループワーク(上映)• まとめ• WACATE紹介2021/03/15-16 WACATE2
本セッションの⽬的・概要導⼊2021/03/15-16 WACATE3
本セッションの⽬的1. 実際に⼿を動かして体験する2. 体験することで机上学習とは違った理解度の上昇を体感してもらう3. グループワークを通して、⾃分と他⼈との違いを⾒つけてもらう2021/03/15-16 WACATE4本セッションはすごい知識を提供するものではありません参加する皆さんが手を動かして、自分で気づき学ぶ場です注意
突然ですが、個⼈ワーク︕• お題はシンプルな電卓• 仕様書とかないです︕• 右の画像の情報がすべてです︕• どんなテストをしますか︖• 突然電卓を渡されました︕どうしますか︖• ⾃由形式で紙に書いて︕• 時間は3分︕2021/03/15-16 WACATE5
突然ですが、個⼈ワーク︕• お題はシンプルな電卓• 仕様書とかないです︕• 右の画像の情報がすべてです︕• どんなテストをしますか︖• 突然電卓を渡されました︕どうしますか︖• ⾃由形式で紙に書いて︕• 時間は3分︕2021/03/15-16 WACATE6残り1分です
失礼しました• あまりに⾃由すぎて、逆に何したらいいか分からなくなりますよね︖• 本セッションではテストすることを導出するテスト分析というプロセスについて取り扱います2021/03/15-16 WACATE7
本セッションの概要• システムの振る舞いに基づくメタモデルを利⽤してテスト観点を抽出する1. テスト分析、テスト設計について簡単に解説する。2. お題に対して個⼈でテスト分析を⾏ってもらう。3. その後、グループワークで共有を⾏う。(今回は実⾏委員によるグループワークを⾒ていただきます)2021/03/15-16 WACATE8
テスト分析・設計について講義2021/03/15-16 WACATE9
テストプロセス• JSTQBにおけるテストプロセス2021/03/15-16 WACATE10テスト分析テスト設計テスト実装テスト実行テスト完了テスト計画テストのモニタリングとコントロールJSTQB-SyllabusFoundation_Version2018.J03
テストプロセス• JSTQBにおけるテストプロセス2021/03/15-16 WACATE11テスト分析テスト設計テスト実装テスト実行テスト完了テスト計画テストのモニタリングとコントロール本セッションで取り扱うのはこの範囲JSTQB-SyllabusFoundation_Version2018.J03ワークで実践するのはここ
⽤語• テスト分析– テスト分析では、テスト可能なフィーチャーを識別し、テスト条件を決めるためにテストベースを分析する。⾔い換えると、テスト分析では計測可能なカバレッジ基準から⾒た「何をテストするか」を決定する。• テスト設計– テスト設計では、テスト条件を⾼位レベルテストケース、⾼位レベルテストケースのセット、およびその他のテストウェアへ落とし込む。つまり、テスト分析は「何をテストするか」を決定し、テスト設計は「それをどうテストするか」を決定する。2021/03/15-16 WACATE12JSTQB-SyllabusFoundation_Version2018.J03 より
テスト分析・設計テスト分析︓何をテストするか(=テスト対象を理解し、テスト観点を出す)テスト設計︓それをどうテストするか(=テスト観点をテストケースに具体化できるようにする)• どうやって導き出せば良いでしょうか︖– 思い付き︖– 仕様書から⾒つける︖– やりながら考える︖– 技術や技法を活⽤する︖2021/03/15-16 WACATE13
テスト技法• テスト技法– テスト技法の⽬的は、テスト条件、テストケース、テストデータを決定することである– テストケースを作成したり選択したりするための技法2021/03/15-16 WACATE14JSTQB-SyllabusFoundation_Version2018.J03JSTQB-glossary-introduction.V3.2.J01 よりこういった確⽴した技術を使ってテスト分析、テスト設計で「何をテストするか」、「どうテストするか」を導出することが出来る。
テストプロセス• JSTQBにおけるテストプロセス2021/03/15-16 WACATE15テスト分析テスト設計テスト実装テスト実行テスト完了テスト計画テストのモニタリングとコントロールJSTQB-SyllabusFoundation_Version2018.J03
テスト設計• 例えば…• 何をテストするか– 何桁まで⼊⼒できるか• どうやってテストするか(どういう値でテストするか)• 同値分割• 境界値分析2021/03/15-16 WACATE16有効な桁数 無効な桁数無効な桁数 有効な桁数 無効な桁数下限境界値 上限境界値
テスト設計• 何をやっているかと⾔うと・・・2021/03/15-16 WACATE17有効 無効123「何桁まで入力できるか」に対して必要な情報を集める技法が前提としているモデルにあてはめて情報を整理する整合性や網羅性を担保するテスト方法を具体化同値分割境界値分析状態遷移デシジョンテーブル要件・仕様ユースケース要求リスクetc
テストプロセス• JSTQBにおけるテストプロセス2021/03/15-16 WACATE18テスト分析テスト設計テスト実装テスト実行テスト完了テスト計画テストのモニタリングとコントロールJSTQB-SyllabusFoundation_Version2018.J03
テスト分析• テスト分析も基本的な考え⽅は同じ2021/03/15-16 WACATE19要件・仕様ユースケース要求リスクetcテスト対象の必要な情報を集めるモデルにあてはめて情報を整理する整合性や網羅性を担保するテスト観点を抽出VSTePHAYST法ゆもつよメソッドNGTF V T6W2H機能カテゴリ機能モデル
モデルの活⽤メタモデルは分析したい事柄に応じて適切なものを使⽤する2021/03/15-16 WACATE20ゆもつよメソッド機能モデルHAYST法テスト対象の機能を俯瞰してテストしたいことを洗い出す6W2H6W2Hテスト対象の要求を理解するテスト対象の使⽤想定や要求等を洗い出す論理的機能構造
テストプロセス• JSTQBにおけるテストプロセス2021/03/15-16 WACATE21テスト分析テスト設計テスト実装テスト実行テスト完了テスト計画テストのモニタリングとコントロールJSTQB-SyllabusFoundation_Version2018.J03
個⼈ワーク、グループワーク実践2021/03/15-16 WACATE22
テストプロセス• JSTQBにおけるテストプロセス2021/03/15-16 WACATE23テスト分析テスト設計テスト実装テスト実行テスト完了テスト計画テストのモニタリングとコントロールJSTQB-SyllabusFoundation_Version2018.J03
• 各種⼿法をちゃんとやると⼤変なので・・・• 単純なモデルで「何をテストするか」を挙げてみよう︕処理ワークのお題2021/03/15-16 WACATE24入力 出力演算チェック
個⼈ワーク2021/03/15-16 WACATE25入力 出力演算チェック• 上記のメタモデルに合わせて、テストすることを考えてみよう• 時間 10分
個⼈ワーク2021/03/15-16 WACATE26入力 出力演算チェック• 上記のメタモデルに合わせて、テストすることを考えてみよう• 時間 10分 残り5分です
個⼈ワーク2021/03/15-16 WACATE27入力 出力演算チェック• 上記のメタモデルに合わせて、テストすることを考えてみよう• 時間 10分 残り1分です
グループワーク2021/03/15-16 WACATE28入力 出力演算チェック• 個⼈で出したものをグループで共有します。• 今回は実⾏委員でやったときの様⼦を上映します。• ⾃分でやったときに出せたもの、出せなかったものなど⾃分との違いを⾒つけてみてください。
2021/03/15-16 WACATE29
まとめ2021/03/15-16 WACATE30
まとめ• 最初に3分でやった時と⽐べてモデルを使うことでテストすることが出しやすくなかったですか︖• モデルが決まっているので、最初より広い範囲、網羅的なテスト観点を⾒つけられたのではないでしょうか︖• グループワークを通して、新しい発⾒はあったでしょうか︖モデルを使⽤することで違いを⾒つけられたのではないでしょうか︖2021/03/15-16 WACATE31
参考⽂献• 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.pdf2021/03/15-16 WACATE32
WACATE紹介2021/03/15-16 WACATE33
コミュニティ概要2021/03/15-16 WACATE341. WACATE ワカテと読みます2. 活動– ⾃主的なコミュニティ– 1年に夏・冬の2回– 1泊2⽇の合宿3. 内容– 主にソフトウェアテストの勉強会– ワークショップがメイン– 参加者間の交流も深める4. ターゲット– 若⼿でテストに興味がある⼈– 特に年齢制限はないhttps://wacate.jp
年2回のイベント2021/03/15-16 WACATE35多くのテーマに触れ、新しい発見を得る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夏
次回2021年6⽉12⽇(⼟)、19⽇(⼟)オンラインにて開催予定2021/03/15-16 WACATE36
Q&A2021/03/15-16 WACATE37
2021/03/15-16 WACATE38Q. フォーマットの使い⽅を事前にすり合わせずに個⼈ワークをされていたのは、各⼈の⾃由な発想を妨げないようにするためでしょうか︖A. ⾃由な発想を妨げないという⽬的もあります。ただし、今回はグループワークメンバ内でも使⽤したことがないメタモデルを使⽤しているので、モデルの認識合わせもディスカッション内で⾏いました。Q. 感想ですが、⼊⼒(キー、キーの順序、キーの組み合わせ(同時押し))、出⼒(画⾯、桁数)、ノウハウ(0割り算、演算順序)とかを整理してからやると網羅性あがるんじゃないかな︖と感じました。A. 最初に整理するという⽅法もあります。⼀⽅で、実際にテスト観点を出してからディスカッションして認識を合わせるという⽅法もあります。重複した観点が出ることはそれほど問題ではなく、⾊々な発想を出すことが⽬的になります。「キーを押す」という⼀⾒同じテスト観点でも、⼈によっては「キー⼊⼒内部に反映されること」、「押したキーが画⾯に反映されること」のように実は違う観点という場合があります。このような認識の違いはディスカッションで認識を合わせていくことになります。このような⽅法を取ると、最初は思い浮かばなかったテスト観点が出ることもあります。また、今回のワークはモデルを正しく使⽤するというより、モデルで認識を合わせながらテスト分析を⾏うということをテーマとしてセッションを実施したため、このような形になっています。Q. 今回のように各⾃の不具合がありそうなところ、テストしたいところ(不具合を⾒つけたいところ)ベースで分析すると、基本的な機能のテストが抜け落ちやすかったりしませんか︖A. ⼀つのモデルで出た観点のみがテスト観点すべてになるわけではありません。実際には仕様書から出てくるテスト観点など補⾜しながらすべてのテスト観点を出していく形になると思います。例えば今回のメタモデルですと、「バッテリー切れ」「経年劣化」というようなテスト観点は出しにくいです。
2021/03/15-16 WACATE39Q. 実務でもこういうワークショップとかってされた経験ありますか︖あれば少しシェアしていただけると嬉しいです︕A. 会社でも研修の時間としてこのようなワークショップを⾏うことはあります。また、研修ではなく実務でもこのようなやり⽅を使⽤することがあります。⼀⼈でテスト観点出しをやって出てこない観点も、複数⼈でテスト観点出しをやることによって新しい観点が出てくることがあります。Q. 分析の際、仕様不明がわかったら仕様問い合わせも良いのでは︖と勝⼿に思って、質問表も作りました。A. 質問票を作成するのは良い活動だと思います。実際、モデルに当てはめるときに不明点が出ることは多いと思います。Q. 最初の⽅のスライドで、テスト分析では、「テスト条件」を決めるために分析する、という記載がありました。テスト分析の説明のスライドでは、モデルを使って「テスト観点」を抽出、という説明でした。テスト観点とテスト条件はほぼ同じということでしょうか︖A. 同じという認識で問題ありません。今回のセッションではJSTQBをベースとしてテストプロセスをご紹介しました。JSTQBの「テスト条件」という⽤語はJSTQBを詳しくない⼈には分かりにくいと思い、セッション内では「テスト観点」という⽤語を使⽤しています。Q. 使うモデルを検討するのに、どれくらい時間をかけますか︖A. 今回のセッションではメタモデルを使⽤してテスト観点を出してみるということを⽬的にワークを⾏いましたので、メタモデルの検討に時間はかけていません。今回使⽤したものはゆもつよメソッドで使⽤されている論理的機能構造を簡易的にしたものを使⽤しました。実際に業務で使⽤される場合は、既存のテスト分析⽅法で使⽤されている⽅法を参考にして、整理したい観点に合致するモデルを選択するのが良いと思います。