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

明日から使えるテスト技法勉強会_1_デシジョンテーブル

 明日から使えるテスト技法勉強会_1_デシジョンテーブル

こちらはConnpassで開催した「明日から使えるテスト技法勉強会」シーズン1で使用された資料となります。合計7部ありますので、テスト技法にご興味を持つ方は、ぜひご活用いただければ幸いです。

また、本資料中使用されたツールGIHOZ(ギホーズ)は、各種テスト技法を手軽に利用できるクラウド型ツールです。
GIHOZはアカウント登録のみで、すぐに利用が可能です。高品質なテストを効率よく作成するために、熟練のテストエンジニアが利用しているさまざまなテスト技法を手軽に体感してください。

GIHOZに登録されたテスト技法はすべて無償でご利用いただけます。
詳細はこちらまでご確認ください。👉https://www.veriserve.co.jp/gihoz/

GIHOZ SUPPORT TEAM

September 01, 2022
Tweet

More Decks by GIHOZ SUPPORT TEAM

Other Decks in Education

Transcript

  1. 明日から使える 勉強会 #1 ルール 1 2 3 4 5 6

    条件 Y Y Y N N N Y N N Y N N N Y N N Y N N N Y N N Y 動作 × × × × - - - - - - × - - - - - - × テスト技法 2021.11.24 19:00~20:00@Zoom 木 Decision Table
  2. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  名前  谷﨑 浩一(たにざき

    こういち)  所属  株式会社ベリサーブ 研究企画開発部  経歴  テスター歴:約12年  プリンタ、デジカメ、PCアプリ、クラウドサービス  統合テスト・システムテストのテスト設計・実行・管理  プロダクトオーナー歴:約4年半  ソフトウェアテストの設計をサポートするツール  博士(工学) 自己紹介 1
  3. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 GIHOZのコンセプト 4  『GIHOZ』は、ベリサーブが開発したテスト技法ツールです ▪アカウント登録のみで、すぐに利用が可能です

    ソフトウェア開発に関わる全ての人の テスト設計の「作業」をゼロにする 手軽にテストケースを 作成・利用 目的に応じて テスト技法を選択 ソフトウェア開発の 効率化に貢献
  4. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 基本的な使い方の流れ 6 ログインする リポジトリを 選ぶ/作る

    テスト技法を選んで テストケースを 作成する/保存する 他のユーザを リポジトリに招待する テストケースを ダウンロードする/ Excel等へコピーする アカウントを 登録する
  5. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 リポジトリを選ぶ/作る 7 ①初期状態では 「MyRepository」のみ 自動で作成されている

    ②「リポジトリ作成」を押す ③アルファベット・数字・アンダーバーで入力 ④説明は任意で入力 ⑤実際の業務で使う場合は、基本的には「非公開」を選択。 「公開」を選ぶと、URLを知っている人は テストケースを閲覧できるようになるので、選ぶときは注意
  6. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  入力データや入力条件の組み合わせに対する処理や出力結果をテーブルにまとめるもの  1958年頃にGeneral Electric社やSutherland社で考案され、1960年代にはテスト設計への応用事例が発表されている

     日本では、JIS X 0125:1986で「決定表」という名前で規格化されている  自然言語で書かれた仕様を論理的に整理する場合に利用できる  デシジョンテーブルに基づいてテストケースを作成する技法を「デシジョンテーブルテスト」と呼ぶ デシジョンテーブルとは 11 デシジョンテーブルのイメージ 参考:デシジョンテーブルテストの歴史 http://a-lifelong-tester.cocolog-nifty.com/blog/2011/10/post-398b.html
  7. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 デシジョンテーブルの形式 12 割引率の決定 1 2

    3 4 タイムサービス時間内 Y Y Y N 対象商品 Y N N - 会員 - Y N - 15%値下げ X - - - 5%値下げ - X - - 値下げ無し - - X X 表見出し部 条件記述部 条件指定部 動作記述部 動作指定部 記述部 指定部 条 件 部 動 作 部
  8. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  メリット  入力データや入力条件の組み合わせを網羅的に整理できる 

    組み合わせに応じた動作結果を指定することで、仕様を論理的に整理できる  上手に圧縮するとテストの件数を減らすことができる  デメリット  入力データや入力条件が多いと表が大きくなりがち  下手に圧縮するとテスト漏れに繋がる デシジョンテーブルのメリット・デメリット 14
  9. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  仕様  あるショップでタイムサービスによる割引を実施している 

    18時から20時までをイブニングサービスタイム、20時から22時までをナイトサービスタイムとし、サービ スタイムの対象商品は、イブニングサービスタイムには10%の割引価格、ナイトサービスタイムには 15%の割引価格となる  対象商品の割引価格は、ショップの会員・非会員ともに上記の通りとなる  ショップの会員に限り、サービスタイム時間内であれば、会員特典として対象商品以外の商品も、 5%の割引価格となる ※判定処理はこの仕様記載順に行われる。  上記の仕様もとに、デシジョンテーブルを作成してください デシジョンテーブルの例題 17
  10. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ↓仕様をよく読むと、黄色の部分が条件、水色の部分が動作に該当することが分かる  仕様  あるショップでタイムサービスによる割引を実施している

     18時から20時までをイブニングサービスタイム、20時から22時までをナイトサービスタイムとし、サービ スタイムの対象商品は、イブニングサービスタイムには10%の割引価格、ナイトサービスタイムには 15%の割引価格となる  対象商品の割引価格は、ショップの会員・非会員ともに上記の通りとなる  ショップの会員に限り、サービスタイム時間内であれば、会員特典として対象商品以外の商品も、 5%の割引価格となる ※判定処理はこの仕様記載順に行われる。 条件と動作を識別する 18
  11. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。 ↓圧縮できるかどうか判断するには、判定処理がどのような順番で実施されているかが重要  仕様  あるショップでタイムサービスによる割引を実施している

     18時から20時までをイブニングサービスタイム、20時から22時までをナイトサービスタイムとし、サービ スタイムの対象商品は、イブニングサービスタイムには10%の割引価格、ナイトサービスタイムには 15%の割引価格となる  対象商品の割引価格は、ショップの会員・非会員ともに上記の通りとなる  ショップの会員に限り、サービスタイム時間内であれば、会員特典として対象商品以外の商品も、 5%の割引価格となる ※判定処理はこの仕様記載順に行われる。 テーブルを整理する(テーブルを圧縮する) 25
  12. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  例えば下図のような判定処理(仕様記載順での判定処理)になっていれば、前ページのように圧縮してもテス トは漏れない テーブルを整理する(テーブルを圧縮する) 27

    イブニングサービス タイム? ナイトサービス タイム? 対象商品? 会員? 10% 5% 15% 5% 対象商品? 会員? 0% No Yes Yes No No Yes Yes No No No Yes Yes 「イブニングサービスタイム」と 「対象商品」がYesなら、 「会員」の判定処理は無視できる
  13. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  判定処理の順序が分かっている場合、テーブルを圧縮できる可能性がある  処理順が分からない場合にむやみに圧縮するとテスト漏れに繋がる可能性があるので注意 

    今回の例では、デシジョンテーブルを圧縮して最後に残った7件の組み合わせで、判定処理を網羅できる テーブルを圧縮する際の注意点 30 イブニングサービス タイム? ナイトサービス タイム? 対象商品? 会員? 10% 5% 15% 5% 対象商品? 会員? 0% No Yes Yes No No Yes Yes No No No Yes Yes
  14. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  階層での条件の入力をうまく活用すれば、ありえない( 動作が「-」 のみの)列が生成されないようにできる 

    この例では、階層を使わない場合に生成されていた以下の組み合わせを、生成されないようにできた  ありえない組み合わせ:「イブニングサービスタイム内がY」かつ「ナイトサービスタイム内がY」 条件の組み合わせを指定する(条件を階層を作って入力した場合) 32 子階層の1つがYになるように 組み合わせが生成される
  15. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  デシジョンテーブルの動作指定部の下に結果入力欄を設けて直接結果を記入  デシジョンテーブルだけだと手順の記載がないので、手順は別に用意 ※集計しづらかったのでおすすめはしません

     デシジョンテーブルの1列を、1行1件のテストケースに変換して利用  Excelのマクロや任意のプログラミング言語で実施 ※GIHOZで作成したデシジョンテーブルは、以下で公開しているPythonのスクリプト で1行1件の形式に変換できます  https://github.com/ktanizaki/gihoz-utilities デシジョンテーブルを作成した後の活用方法 33
  16. © 2022 VeriServe Corporation 会社名・製品名・サービス名は、各社の登録商標または商標です。  デシジョンテーブルについて解説&ハンズオンを行った  入力条件とその組み合わせを網羅的に整理できる 

    入力条件の組み合わせに応じた動作結果を整理できる  判定処理順が分かっていれば、デシジョンテーブルを圧縮できる可能性がある  GIHOZを使って効率的にデシジョンテーブルを作成していただきたい  階層構造での整理や、組み合わせの自動生成をぜひ活用してください まとめ 36