SlideShare une entreprise Scribd logo
1  sur  71
Télécharger pour lire hors ligne
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
JaSST'21 Tokyo 再演 「テスト設計⼊⾨」ワークショップ
仕様整理のためのテスト設計入門
株式会社 ディー・エヌ・エー
システム本部 品質統括部 品質管理部
河野哲也(FB: Tetsuya Kouno)
1
本セッションではワークを⾏いますので、
筆記⽤具・メモ⽤紙のご⽤意をお願いします
JaSSTでの発表から少し資料を改良してます︕
SNSへの投稿OKです。
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
本セッションの⽬的と対象者
n⽬的
⁃ テスト設計技法が仕様整理にどう役に⽴つのかを理解する
⁃ 仕様の整理に使えるテスト設計技法を把握する
(覚えなくても良い)
⁃ テスト設計技法が感覚的に理解する(演習やります)
n対象者
⁃ 仕様を書いたり整理したりする開発関係者
⁃ (テスト)コードを書いたりするエンジニア
⁃ 上流⼯程の改善に関⼼のあるQA関係者
⁃ 単純にテスト設計技法に興味のある⽅
2
筆記⽤具・メモ⽤紙のご⽤意をお願いします
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
本セッションのスコープ
n本セッションで解説するテスト設計
⁃ テスト観点を⼤中⼩項⽬で整理することではなく
⁃ テスト観点をマインドマップや表で整理することでもなく
⁃ テスト設計技法を使ってハイレベルテストケースを
設計することを指しています
nテスト設計の詳細は後ほど説明します
n参考書
⁃ ソフトウェアテスト技法ドリル
⁃ ソフトウェアテスト技法練習帳
3
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
本セッションの流れ
n背景・モチベーション
nテスト設計技法演習
⁃ 同値分割(図)
⁃ 全組合せテスト
⁃ デシジョンテーブル
⁃ CFD法
⁃ 状態遷移テスト
nまとめ
4
本セッションではワークを⾏いますので、
筆記⽤具・メモ⽤紙のご⽤意をお願いします
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
⾃⼰紹介︓河野 哲也
n所属︓DeNA 品質管理部
⁃ 新規サービス・プロダクトのQA⽴ち上げ⽀援
⁃ テスト⾃動化の推進・改善活動の推進
n経歴
⁃ 通信機器メーカでハードウェアQA(10年弱)
⁃ 電気通信⼤学で社会⼈⼤学、⼤学院前期・後期課程+フリーのコンサル
⁃ ⽇⽴製作所でソフトウェアQA・部⾨横断のプロセス改善(6年弱)
⁃ DeNAでWeb・モバイルのQA(3年半)
n 得意技︓テスト分析・テスト設計
⁃ テスト設計コンテスト 2年連続優勝(2012年/2013年)
5
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
Web系企業によくあるQAの⽴ち位置
nQA組織におけるテストの限界
⁃ 現状のQA組織は概ね出来上がったプロダクトに対して
テストを実施してバグを⾒つけている
• バグを⾒つけても、修正に時間もかかるし、
再テストで更に時間がかかる、もちろんバグ起票も時間がかかる
• プロダクト品質に⼀定の貢献はあるが、改善の伸びしろが少ない
6
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
⼀般的なアプローチ
n不具合を早く検出する
⁃ QA以前で不具合を検出しておく
ことが重要
→エンジニアのテストの充実
• 書籍では、ユニットテスト・
ペアプロ・静的解析・
コードレビュー・CI
を推奨している
7
「 More Effective Agile
~“ソフトウェアリーダー”になるための28の道標」
Steve McConnell (著), ⻑沢 智治(監訳)
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
⼀般的なアプローチ
n不具合の作り込みを減らす
⁃ 開発成果物をきちんと書く、
書いたものレビューする
→まずは書くことが重要、
書かないとレビューできない
n不具合を早く⾒つける
⁃ ユニットテスト・結合テストで
⾒つけるべき不具合を検出する
→エンジニアによるテストの充実
8
「ソフトウェア品質保証⼊⾨―⾼品質を実現する考え⽅
とマネジメントの要点」 保⽥ 勝通 (著), 奈良 隆正 (著)
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
テスト設計技法の活⽤の提案
n 不具合を早く⾒つける
テストケースの作り⽅(テスト設計技法)を知っておく
n 不具合の作り込みを減らす
仕様を整理するために活⽤可能なテスト設計技法を知っておく
n もちろんテスト設計技法にこだわる必要はない
⁃ 要求や仕様の表現に特化したUMLやUSDMなどを活⽤するほうが望ましい
⁃ とはいえ、テスト設計技法の活⽤は導⼊のハードルが低い
• QA組織のメンバと協業もしやすし、QAでのテストにとってもメリットが多い
⁃ 先⾏事例「アジャイルプラクティスを活⽤したチームとしての品質確保の取り組み」
• 原因結果グラフというテスト設計技法を使って、コーディング前にペア設計を実施
→仕様のロジックをテスト設計技法を使って整理している
9
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
事例︓エントリー機能
nCFD法によるテスト設計
10
1. エントリー画面の「規約同意」チェックボックスが
チェック済みになると、
「エントリー」ボタンが活性状態になる
2. エントリー画面でエントリーコードを入力し、
「エントリー」ボタンを押下する
エントリーコードが無効だった場合は
エラーメッセージを表示する
3. エントリーコードが有効だった場合、
エントリーに成功し
パスワード登録URLが記載されたメールが
当該ユーザーのメールアドレスに送付される
URLには有効期限があり、10分で期限切れとなる
4. パスワード登録画面で「パスワード入力」と
「パスワード(確認用)入力」が一致していれば
パスワードを登録する
パスワードは6文字以上8文字以内とし、
文字種別は「小文字、大文字、数字、記号」とし、
その範囲以外の場合は
エラーメッセージを表示する
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
事例︓プッシュ通知時の状態の整理
n状態遷移図によるテスト設計
11
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
テスト設計技法ってどれくらいあるの︖
12
-
Black Box
White Box
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
全部理解する必要があるのか︖
n今回の⽬的に即した仕様を表現・整理するのに
役に⽴つ技法を理解する
⁃ 同値分割
(境界値分析)
⁃ デシジョンテーブル
⁃ CFD法
⁃ 状態遷移テスト
13
-
Black Box
White Box
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
テスト設計技法の分類︓有則・無則・禁則
n 有則︓仕様で定義されている則(規則)
⁃ 「これこれ」の条件で「これこれ」の処理が⾏われる
⁃ 仕様に基づくテストは有則を対象としている
n 無則︓仕様で定義されていない則(規則)
⁃ 仕様で定義された則の補集合
⁃ 無則のテストは悪影響がないことをテストする
n 禁則︓禁じられている則(規則)
⁃ 例えば、「これこれ」の条件で「これこれ」の処理は⾏わない、
「これこれ」の条件と「これこれ」の条件は⼀⽅しか成⽴しない、など
• 仕様には書かれている場合もあれば、書かれていない場合もある
⁃ 禁則でも悪影響がないか、禁則がきちんと実装されているかを確認にする必要がある
⁃ 無則の組合わせテストでは、項⽬⽣成前にきちんと検討しておく必要がある⇒禁則マトリクス
14
松尾⾕︓「 ソフトウェアテストの展望︓
SW機能テストから、システム挙動の評価へ」,
JaSST‘07 Tokyoを参考にした
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
テスト設計技法の分類︓有則・無則・禁則
15
組合せテスト設計技法
全組合
せテス
ト
HAYST法
/直交表
ペアワイズ
法
シーケンス
網羅⾏列
CFD
法
原因結果
グラフ
デシジョン
テーブル
状態遷移
テスト
有則のテスト
無則のテスト
有則/無則
のテスト
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
テスト設計とは
n テスト設計ではどういう成果物が作成されるのか︖
⁃ テスト設計(JSTQB (Japan Software Testing Qualifications Board) ⽤語集 Version 2.3.J02 )︓
(1) test design specificationを参照のこと (2) 概略的なテスト⽬的を
具体的なテスト条件とテストケースに変換するプロセス
⁃ テスト設計仕様(test design specification)︓
テストアイテムのテスト条件、詳細なテストアプローチ、及び、
関連する⾼位レベルテストケースを記述したドキュメント
⁃ ⾼位(ハイ)レベルテストケース︓
具体的な(実⾏レベルの)⼊⼒値や予測結果を使わないテストケース
論理演算⼦は使⽤するが、値のインスタンスは未定義や
使⽤不可であるといった状態にある
n テスト設計技法とは︖
⁃ ハイレベルテストケースの設計⽅法を定義したもの
16
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
具体的に考える
n うるう年の計算︓うるう年は以下で決まる
(引⽤︓ソフトウェアテスト技法ドリル)
1)⻄暦年が4で割切れる年はうるう年
2)ただし、⻄暦年が100で割切れる年は平年
3)ただし、⻄暦年が400で割切れる年はうるう年
例︓2012年と2000年はうるう年、2013年と2100年は平年
17
項番 入力データ 出力
1 2000 う
るう
年
2 2100 平年
3 2012 う
るう
年
4 1999 平年
0
1
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
テスト設計技法の活⽤の提案
n 不具合を早く⾒つける
テストケースの作り⽅(テスト設計技法)を知っておく
n 不具合の作り込みを減らす
仕様を整理するために活⽤可能なテスト設計技法を知っておく
n もちろんテスト設計技法にこだわる必要はない
⁃ 要求や仕様の表現に特化したUMLやUSDMなどを活⽤するほうが望ましい
⁃ とはいえ、テスト設計技法の活⽤は導⼊のハードルが低い
• QA組織のメンバと協業もしやすし、QAでのテストにとってもメリットが多い
18
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
本セッションの流れ
n背景・モチベーション
nテスト設計技法演習
⁃ 同値分割(図)
⁃ 全組合せテスト
⁃ デシジョンテーブル
⁃ CFD法
⁃ 状態遷移テスト
nまとめ
19
本セッションではワークを⾏いますので、
筆記⽤具・メモ⽤紙のご⽤意をお願いします
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
演習の流れ
n各テスト設計技法の演習は以下の流れで進める
⁃ 技法の簡単な解説
⁃ 具体例を2つ説明(状態遷移テストは1つ)
⁃ 演習問題を出題︓ここからワーク開始︕
• 出題後、1分後にヒントを提⽰
⁃ 3分後に解答例を説明
20
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
同値分割(図)
n⼀つ⼀つの値をテストしようとすると
⼤変なので代表値を選んでテストするための技法
⁃ 代表値を選ぶために値の集まりを定義する
⁃ 本セッションでは同値分割図という表現形式を使う
• 他の技法のための前準備
21
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
簡単な例︓同値分割図
n無料配送の条件
⁃ 仕様︓次の条件で配送料が無料になる
(引⽤︓ソフトウェアテスト技法ドリル)
・条件1︓注⽂商品に書籍を含む
・条件2︓注⽂商品の合計⾦額が1500円以上
• 同値分割図
22
書籍を含む
書籍を含まない
0〜1499円
1500円〜
上限値
それ以外
条件1 条件2
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
簡単な例︓同値分割図
23
○1杯目のビールの価格
以下の条件によって変わります
・通常、1杯490円で提供されます
・16:00〜17:59まではハッピーアワーで1杯290円で提供されます
・クーポンを使うと、利用時間に関わらず
はじめの1杯のみ100円で提供されます
・ハッピーアワーでもクーポンは利用できます
・その時点で最も安い価格で提供されます
引用:ソフトウェアテスト技法練習帳
16:00〜17:59
クーポン有
クーポン無 それ以外
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
演習問題︓同値分割図
nカレンダーの⽂字⾊の仕様
24
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
引用:ソフトウェアテスト技法練習帳
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
ヒント︓同値分割図
nカレンダーの⽂字⾊の仕様
25
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
祝日
日曜日
土曜日
平日
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
解答例︓同値分割図
nカレンダーの⽂字⾊の仕様
26
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
祝日
日曜日
土曜日
平日
祝日
日曜日
土曜日
平日
祝日以外
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
本セッションの流れ
n背景・モチベーション
nテスト設計技法演習
⁃ 同値分割(図)
⁃ 全組合せテスト
⁃ デシジョンテーブル
⁃ CFD法
⁃ 状態遷移テスト
nまとめ
27
本セッションではワークを⾏いますので、
筆記⽤具・メモ⽤紙のご⽤意をお願いします
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
全組合せテスト
n条件や⼊⼒の組合せとその結果を表で整理する⽅法
⁃ 条件とその組合せ、結果を網羅する︓漏れ防⽌に注⼒
• JSTQB AL テストアナリストの組み合わせテストは無則のテスト、
ここの全組合せテストは有即のテスト
n 簡単な例)無料配送の仕様︓次の条件で配送料が無料になる
⁃ 条件1︓注⽂商品に書籍を含む
⁃ 条件2︓注⽂商品の合計⾦額が1500円以上
28
書籍を含む
書籍を含まない
0〜1499円
1500円〜
上限値
それ以外
条件1 条件2
0〜1499円 1500円〜
書籍を含む 無料 無料
書籍を
含まない
有料 無料
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
簡単な例︓全組合せテスト
29
○1杯目のビールの価格
以下の条件によって変わります
・通常、1杯490円で提供されます
・16:00〜17:59まではハッピーアワーで1杯290円で提供されます
・クーポンを使うと、利用時間に関わらず
はじめの1杯のみ100円で提供されます
・ハッピーアワーでもクーポンは利用できます
・その時点で最も安い価格で提供されます
引用:ソフトウェアテスト技法練習帳
16:00〜17:59
クーポン有
クーポン無 それ以外
16:00-17:59 それ以外
クーポン有 100円 100円
クーポン無 290円 490円
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
演習問題︓全組合せテスト
n次の仕様の全組合せテストを作成する
祝⽇の詳細は無視して下さい
30
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
ヒント︓全組合せテスト
31
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
祝日
日曜日
土曜日
平日
祝日以外
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
解答例︓組合せテスト
32
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
祝日
日曜日
土曜日
平日
祝日以外
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
全部の組合せのテストが必要︖
33
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
本セッションの流れ
n背景・モチベーション
nテスト設計技法演習
⁃ 同値分割(図)
⁃ 全組合せテスト
⁃ デシジョンテーブル
⁃ CFD法
⁃ 状態遷移テスト
nまとめ
34
本セッションではワークを⾏いますので、
筆記⽤具・メモ⽤紙のご⽤意をお願いします
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
デシジョンテーブル
n仕様に記述された論理を⼊⼒(原因・条件)と出⼒(結果・動作)
に分けて、⼊⼒と出⼒の対応関係を表で整理する⽅法
n 簡単な例
⁃ 無料配送の仕様︓次の条件で配送料が無料になる
• 条件1︓注⽂商品に書籍を含む
• 条件2︓注⽂商品の合計⾦額が1500円以上
35
書籍を含む
書籍を含まない
0〜1499円
1500円〜
上限値
それ以外
条件1 条件2
0〜1499円 1500円〜
書籍を含む 無料 無料
書籍を
含まない
有料 無料
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
簡単な例︓デシジョンテーブル
36
36
16:00〜16:59
クーポン有
クーポン無
16:00-
16:59
17:00-
17:59
それ以外
クーポン有 100円 100円 100円
クーポン無 150円 290円 490円
○1杯目のビールの価格
以下の条件によって変わります
(クーポン有無の判定を先に実装すること)
・通常、1杯490円で提供されます
・ハッピーアワーで16:00〜16:59までは1杯150円
17:00〜17:59までは1杯290円で提供されます
・クーポンを使うと、利用時間に関わらず
はじめの1杯のみ100円で提供されます
・ハッピーアワーでもクーポンは利用できます
・その時点で最も安い価格で提供されます
引用:ソフトウェアテスト技法練習帳を一部修正
17:00〜17:59
それ以外
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
デシジョンテーブルの圧縮
n 圧縮という考え⽅
⁃ 同じ動作(結果)を持つルールの中で、結果に影響を及ぼす条件が⼀つしかなかった場合、
その列をまとめ、結果に影響を及ぼす条件をどちらでもよいという意味で「-」に変更する⽅法
• ただし、条件と処理とが同じ順序であるというのが前提となる
n 例︓無料配送の仕様
品物の条件判定が先に実装されていることが分かれば次のように圧縮できる
37
圧縮する
結果に影響を及ぼしていない
すべての組合せを洗い出す 結果に影響を及ぼしていない条件を探して圧縮する
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
デシジョンテーブルの圧縮の例
38
38
すべての組合せを洗い出す
16:00〜16:59
クーポン有
クーポン無
16:00-
16:59
17:00-
17:59
それ以外
クーポン有 100円 100円 100円
クーポン無 150円 290円 490円
○1杯目のビールの価格
以下の条件によって変わります(クーポン有無の判定を先に実装すること)
・通常、1杯490円で提供されます
・ハッピーアワーで16:00〜16:59までは1杯150円
17:00〜17:59までは1杯290円で提供されます
・クーポンを使うと、利用時間に関わらず
はじめの1杯のみ100円で提供されます
・ハッピーアワーでもクーポンは利用できます
・その時点で最も安い価格で提供されます
引用:ソフトウェアテスト技法練習帳を一部修正
17:00〜17:59
それ以外
圧縮する
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
圧縮の際の書き⽅
39
選択されていない
条件はどれかを選ぶ
“-”は“-”の
どれかを選ぶ
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
演習問題︓デシジョンテーブル
n仕様の順序に従って処理が実装されているとして
デシジョンテーブルを作成する
40
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
ヒント︓デシジョンテーブル
n仕様の順序に従って処理が実装されているとして
デシジョンテーブルを作成する
41
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
解答例︓デシジョンテーブル
n祝⽇の判定の実装が先であれば
次のようなデシジョンテーブルが作成される
42
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
番外編︓カレンダーの⽂字⾊
nもう少しきちんと仕様を整理してみる
43
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
祝日
祝日以外
国民の祝日
祝日以外
振替休日
国民の休日
振替休日:「国民の祝日」が日曜日に
当たるときは、その日後においてその
日に最も近い「国民の祝日」でない日
を休日とする
→土曜日と日曜日に重なることはない
国民の休日:前後が祝日である平日は、
国民の休日となり休日となる
→日曜日と重なったら振替休日?
祝日は可変なパラーメータである
(例:2019年5月1日の即位の日)
祝日の判定ロジックと色変更の処理が
分離できないときは、上記のような点
を気にしながら仕様を整理する
国によって祝⽇は異なる→どこの国なのか︖
祝⽇は可変→つまり祝⽇が設定できるテスト⽤の機能が必要
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
本セッションの流れ
n背景・モチベーション
nテスト設計技法演習
⁃ 同値分割(図)
⁃ 全組合せテスト
⁃ デシジョンテーブル
⁃ CFD法
⁃ 状態遷移テスト
nまとめ
44
本セッションではワークを⾏いますので、
筆記⽤具・メモ⽤紙のご⽤意をお願いします
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
おさらい︓全部の組合せのテストが必要︖
45
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
おさらい︓解答例
46
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
CFD(Cause Flow Diagram)法
n 原因の集合(同値分割)と原因どうしのつながりをモデルで表現し、
それに基づきデシジョンテーブルを作成する⽅法
⁃ 暗黙的にテストの組み合わせを設計するのではなく
実装や仕様の制約に従いモデルを表現し、デシジョンテーブルを作成する
n 簡単な例︓無料配送の仕様次の条件で配送料が無料になる
(条件の順序に従って実装されていること)
⁃ 条件1︓注⽂商品に書籍を含む
⁃ 条件2︓注⽂商品の合計⾦額が1500円以上
47
原因流れ図
デシジョンテーブル
書籍を含む
書籍を含まない
0〜1499円
1500円〜
上限値
それ以外
品物 合計金額
エラー
無料
有料
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
簡単な例︓CFD法
48
16:00〜16:59
クーポン有
クーポン無
○1杯目のビールの価格
以下の条件によって変わります(クーポン有無の判定を先に実装すること)
・通常、1杯490円で提供されます
・ハッピーアワーで16:00〜16:59までは1杯150円
17:00〜17:59までは1杯290円で提供されます
・クーポンを使うと、利用時間に関わらず
はじめの1杯のみ100円で提供されます
・ハッピーアワーでもクーポンは利用できます
・その時点で最も安い価格で提供されます
引用:ソフトウェアテスト技法練習帳を一部修正
17:00〜17:59
それ以外
クーポン 来店時間
100円 490円
150円
290円
原因流れ図
デシジョンテーブル
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
n メール・メッセージ機能
他の例︓CFD法
49
あり
なし
メール
アドレス
入力
OK
NG
メール
それ以外
種別
メセ
メール
送信
メセ
送信
無効
メール
アドレス
文法
エリア
圏内
圏外
1 2 3 4 5 6
有 Y Y Y Y Y
無 Y
OK Y Y Y Y
N
G Y
メ
ール Y -
メ
ッ
セージ Y -
圏内 Y Y
圏外 Y
メ
ール送信 Y
メ
セ送信 Y
Y
結果(
処理・
出力)
それ以外 Y
無効 Y Y Y
原因
(
入力)
アド
レス
アド
レス文法
種別
エリ
ア
原因流れ図
デシジョンテーブル
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
演習問題︓CFD法
n仕様の順序に従って処理が実装されているとして
デシジョンテーブルを作成する
50
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
ヒント︓CFD法
n仕様の順序に従って処理が実装されているとして
デシジョンテーブルを作成する
51
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
祝日 日曜日
土曜日
平日
祝日以外
祝日条件 曜日
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
解答例︓CFD法
n 祝⽇の判定の実装が先であれば
次のような原因流れ図とデシジョンテーブルが作成される
52
○カレンダの文字色
カレンダーの日付は、以下の仕様で色をつけます
・祝日は赤
・日曜日は赤
・土曜日は青
・祝日でない平日は黒
* 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする
* 平日とは、月曜日から金曜日を指すこととする
祝日 日曜日
土曜日
平日
祝日以外
赤
青
黒
祝日条件 曜日
原因流れ図
デシジョンテーブル
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
本セッションの流れ
n背景・モチベーション
nテスト設計技法演習
⁃ 同値分割(図)
⁃ 全組合せテスト
⁃ デシジョンテーブル
⁃ CFD法
⁃ 状態遷移テスト
nまとめ
53
本セッションではワークを⾏いますので、
筆記⽤具・メモ⽤紙のご⽤意をお願いします
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
状態遷移テスト
n ある状態からある状態への遷移を確認するテスト
⁃ 上記の定義だと、アドホックに状態の遷移を確認することも状態遷移テストに含まれる
• 状態遷移テストという観点⇔状態遷移テストというテスト設計技法
n 1)状態遷移図
⁃ 状態と遷移をモデルで表現︓状態を○で表し、遷移を⽮印で表す
⁃ ○には状態名を記載(状態名はよく考えること)
⁃ ⽮印には遷移の元となるイベント名を記載(イベント名はよく考えること)
⁃ パスカバレッジの考え⽅で状態と遷移を網羅する
n 2)状態遷移表(状態遷移マトリクス)
⁃ 状態とイベントの関係を表で表現︓セルには遷移先の状態を記⼊
⁃ 状態遷移図で不明な遷移を確認する
n 3)Nスイッチカバレッジ
⁃ ある状態遷移の影響がN回先の状態遷移に影響を及ぼすかを確認するための⽅法 54
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
状態遷移テスト
n ある状態からある状態への遷移を確認するテスト
⁃ 上記の定義だと、アドホックに状態の遷移を確認することも状態遷移テストに含まれる
• 状態遷移テストという観点⇔状態遷移テストというテスト設計技法
n 1)状態遷移図
⁃ 状態と遷移をモデルで表現︓状態を○で表し、遷移を⽮印で表す
⁃ ○には状態名を記載(状態名はよく考えること)
⁃ ⽮印には遷移の元となるイベント名を記載(イベント名はよく考えること)
⁃ パスカバレッジの考え⽅で状態と遷移を網羅する
n 2)状態遷移表(状態遷移マトリクス)
⁃ 状態とイベントの関係を表で表現︓セルには遷移先の状態を記⼊
⁃ 状態遷移図で不明な遷移を確認する
n 3)Nスイッチカバレッジ
⁃ ある状態遷移の影響がN回先の状態遷移に影響を及ぼすかを確認するための⽅法 55
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
仕様→同値分割図
56
1. デフォルト状態でスタートボタンを押すと
ストップウォッチが動き出す
2. 動いている最中にスタートボタンを押すと
停止する
3. 停止状態でスタートボタンを押すと
そこから再スタートする
4. 停止状態でラップボタンを押すと
リセットされデフォルト状態に戻る
5. 動いている最中にラップボタンを押すと
表示は停止するが内部は動いているラップ
表示状態になる
6. ラップ表示状態でラップボタンを押すと
計測開始からのトータル時間から再開する
スタート デフォルト
動作中
イベント 状態
ラップ
ラップ
表示中
停止中
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
同値分割図→状態遷移図
57
1. デフォルト状態でスタートボタンを押すと
ストップウォッチが動き出す
2. 動いている最中にスタートボタンを押すと
停止する
3. 停止状態でスタートボタンを押すと
そこから再スタートする
4. 停止状態でラップボタンを押すと
リセットされデフォルト状態に戻る
5. 動いている最中にラップボタンを押すと
表示は停止するが内部は動いているラップ
表示状態になる
6. ラップ表示状態でラップボタンを押すと
計測開始からのトータル時間から再開する
動作中
停止中
ラップ
表示中
初期状態
スタート
スタート
ラップ
ラップ
ラップ
スタート
デフォ
ルト
スタート デフォルト
動作中
イベント 状態
ラップ
ラップ
表示中
停止中
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
演習問題︓仕様→状態遷移図
n次の仕様に対して状態遷移図を作成してみて下さい
58
1. 電源OFFの状態で
電源ボタンを⼊れると
電源がONになり、
PC1⼊⼒から投影される
2. 切替ボタンを押すと、
PC1⼊⼒からPC2⼊⼒に切り替わり、
再度、切替ボタンを押すと、
VIDEO⼊⼒に切り替わる。
3. その次はPC1⼊⼒に戻る。
4. 各⼊⼒状態において、
電源ボタンを押すと、
電源OFFの状態になる。
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
ヒント︓仕様→同値分割図
n次の仕様に対して状態遷移図を作成してみて下さい
59
1. 電源OFFの状態で
電源ボタンを⼊れると
電源がONになり、
PC1⼊⼒から投影される
2. 切替ボタンを押すと、
PC1⼊⼒からPC2⼊⼒に切り替わり、
再度、切替ボタンを押すと、
VIDEO⼊⼒に切り替わる。
3. その次はPC1⼊⼒に戻る。
4. 各⼊⼒状態において、
電源ボタンを押すと、
電源OFFの状態になる。
電源 電源OFF
PC1入力
イベント 状態
切替
PC2入力
VIDEO
入力
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
解答例︓同値分割図→状態遷移図
n次の仕様に対して状態遷移図を作成してみて下さい
60
1. 電源OFFの状態で
電源ボタンを⼊れると
電源がONになり、
PC1⼊⼒から投影される
2. 切替ボタンを押すと、
PC1⼊⼒からPC2⼊⼒に切り替わり
再度、切替ボタンを押すと、
VIDEO⼊⼒に切り替わる。
3. その次はPC1⼊⼒に戻る。
4. 各⼊⼒状態において、
電源ボタンを押すと、
電源OFFの状態になる。 VIDEO
入力
PC1
入力
PC2
入力
初期状態
切替
電源
電源
OFF
電源
電源
切替
切替
電源
電源 電源OFF
PC1入力
イベント 状態
切替
PC2入力
VIDEO
入力
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
状態遷移テスト
n ある状態からある状態への遷移を確認するテスト
⁃ 上記の定義だと、アドホックに状態の遷移を確認することも状態遷移テストに含まれる
• 状態遷移テストという観点⇔状態遷移テストというテスト設計技法
n 1)状態遷移図
⁃ 状態と遷移をモデルで表現︓状態を○で表し、遷移を⽮印で表す
⁃ ○には状態名を記載(状態名はよく考えること)
⁃ ⽮印には遷移の元となるイベント名を記載(イベント名はよく考えること)
⁃ パスカバレッジの考え⽅で状態と遷移を網羅する
n 2)状態遷移表(状態遷移マトリクス)
⁃ 状態とイベントの関係を表で表現︓セルには遷移先の状態を記⼊
⁃ 状態遷移図で不明な遷移を確認する
n 3)Nスイッチカバレッジ
⁃ ある状態遷移の影響がN回先の状態遷移に影響を及ぼすかを確認するための⽅法 61
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
同値分割図・状態遷移図→状態遷移表
nストップウォッチの例
62
表で遷移の抜けを確認する
全てのセルは最低限テストする
動作中
停⽌中
ラップ
表⽰中
初期状態
スタート
スタート
ラップ
ラップ
ラップ
スタート
デフォ
ルト
状態
デフォルト 動作中 停⽌中
ラップ
表⽰中
イ
ベ
ン
ト
スタート 動作中 停⽌中 動作中 無効
ラップ 無効
ラップ
表⽰中
デフォルト 動作中
スタート デフォルト
動作中
イベント 状態
ラップ
ラップ
表示中
停止中
ここで状態×状態の表ではなく、状態×イベント
の表を作るのは遷移の抜けを確認したいから
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
演習問題︓同値分割図・状態遷移図→状態遷移表
nプロジェクタの状態遷移図に対して
2種類の状態遷移表を作成してみて下さい
63
VIDEO
入力
PC1
入力
PC2
入力
初期状態
切替
電源
電源
OFF
電源
電源
切替
切替
電源
電源 電源OFF
PC1入力
イベント 状態
切替
PC2入力
VIDEO
入力
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
ヒント︓同値分割図・状態遷移図→状態遷移表
nプロジェクタの状態遷移図に対して
2種類の状態遷移表を作成してみて下さい
64
VIDEO
入力
PC1
入力
PC2
入力
初期状態
切替
電源
電源
OFF
電源
電源
切替
切替
電源
電源 電源OFF
PC1入力
イベント 状態
切替
PC2入力
VIDEO
入力
状態
電源
OFF
PC1
⼊⼒
PC2
⼊⼒
VIDEO
⼊⼒
イ
ベ
ン
ト
電源
切替
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
解答例︓同値分割図・状態遷移図→状態遷移表
65
VIDEO
入力
PC1
入力
PC2
入力
初期状態
切替
電源
電源
OFF
電源
電源
切替
切替
電源
状態
電源
OFF
PC1
⼊⼒
PC2
⼊⼒
VIDEO
⼊⼒
イ
ベ
ン
ト
電源
PC1
⼊⼒ OFF OFF OFF
切替 無効
PC2
⼊⼒
VIDEO
⼊⼒
PC1
⼊⼒
電源
電源OFF
PC1入力
イベント
状態
切替
PC2入力
VIDEO
入力
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
状態遷移テスト
n ある状態からある状態への遷移を確認するテスト
⁃ 上記の定義だと、アドホックに状態の遷移を確認することも状態遷移テストに含まれる
• 状態遷移テストという観点⇔状態遷移テストというテスト設計技法
n 1)状態遷移図
⁃ 状態と遷移をモデルで表現︓状態を○で表し、遷移を⽮印で表す
⁃ ○には状態名を記載(状態名はよく考えること)
⁃ ⽮印には遷移の元となるイベント名を記載(イベント名はよく考えること)
⁃ パスカバレッジの考え⽅で状態と遷移を網羅する
n 2)状態遷移表(状態遷移マトリクス)
⁃ 状態とイベントの関係を表で表現︓セルには遷移先の状態を記⼊
⁃ 状態遷移図で不明な遷移を確認する
n 3)Nスイッチカバレッジ
⁃ ある状態遷移の影響がN回先の状態遷移に影響を及ぼすかを確認するための⽅法 66
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
本セッションの流れ
n背景・モチベーション
nテスト設計技法演習
⁃ 同値分割(図)
⁃ 全組合せテスト
⁃ デシジョンテーブル
⁃ CFD法
⁃ 状態遷移テスト
nまとめ
67
本セッションではワークを⾏いますので、
筆記⽤具・メモ⽤紙のご⽤意をお願いします
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
今後の進め⽅
n テスト設計技法を理解する
⁃ 参考書(ソフトウェアテスト技法ドリル/ソフトウェアテスト技法練習帳)を読む
• 本セミナーで取り上げたテスト設計技法だけでも良い
⁃ できればチームや仲間で勉強する
n 実際の仕様の⼩さい範囲でトライアルし広げていく
⁃ 部分的に仕様の表現に活⽤する
ただしテスト設計技法で表現する部分を定めるのに苦労する可能性有
⁃ ユニットテストを書く前の仕様の整理に活⽤する
• 上記活⽤でQAエンジニアの助けを借りる
何かありましたら、気軽に河野までご連絡下さい︕
tetuyakouno@gmail.com / FB: Tetsuya Kouno
68
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
まとめ︓仕様整理のためのテスト設計⼊⾨
n背景・モチベーション
nテスト設計技法演習
⁃ 同値分割(図)
⁃ 全組合せテスト
⁃ デシジョンテーブル
⁃ CFD法
⁃ 状態遷移テスト
n今後の進め⽅
69
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
おまけ︓状態遷移図と状態遷移表の作成ツール
n状態遷移図︓Pyagram(ぱいあぐらむ)
https://qiita.com/hideshi/items/c61cee1d7dfc1754e075
⁃ Pythonのライブラリ、状態遷移より広範な使い⽅ができそう
⁃ 使い⽅
• 特定の記法に従ってテキストベースで状態遷移を記述
• Pyagramにそのテキスト⾷わせると、状態遷移図の画像ファイルが
出⼒される( gif / png / svg を指定できる)
n状態遷移表︓⾃作
⁃ Pythonで実装、150⾏程度
⁃ 上の記法に従って書いた状態遷移から状態遷移表(+0スイッチ、
1スイッチとかの表)を .csv形式で⽣成
70
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved.
JaSST'21 Tokyo 再演 「テスト設計⼊⾨」ワークショップ
仕様整理のためのテスト設計入門
株式会社 ディー・エヌ・エー
システム本部 品質統括部 品質管理部
河野哲也(FB: Tetsuya Kouno)
71
ご清聴ありがとうございました

Contenu connexe

Tendances

今さら聞けないプロダクトオーナー アンチパターン入門 - XP祭り2015 #xpjug
今さら聞けないプロダクトオーナー アンチパターン入門 - XP祭り2015 #xpjug今さら聞けないプロダクトオーナー アンチパターン入門 - XP祭り2015 #xpjug
今さら聞けないプロダクトオーナー アンチパターン入門 - XP祭り2015 #xpjug
満徳 関
 
CTFはとんでもないものを 盗んでいきました。私の時間です…
CTFはとんでもないものを 盗んでいきました。私の時間です…CTFはとんでもないものを 盗んでいきました。私の時間です…
CTFはとんでもないものを 盗んでいきました。私の時間です…
Hiromu Yakura
 

Tendances (20)

品質基礎知識
品質基礎知識品質基礎知識
品質基礎知識
 
DeNA QA Night #1 DeNA part
DeNA QA Night #1 DeNA partDeNA QA Night #1 DeNA part
DeNA QA Night #1 DeNA part
 
Management 3.0 デレゲーションと エンパワーメント
Management 3.0 デレゲーションと エンパワーメントManagement 3.0 デレゲーションと エンパワーメント
Management 3.0 デレゲーションと エンパワーメント
 
設計品質とアーキテクチャ
設計品質とアーキテクチャ設計品質とアーキテクチャ
設計品質とアーキテクチャ
 
データエンジニアとデータアナリストを兼任して良かったこと
データエンジニアとデータアナリストを兼任して良かったことデータエンジニアとデータアナリストを兼任して良かったこと
データエンジニアとデータアナリストを兼任して良かったこと
 
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
 
Humble Object Patternな話
Humble Object Patternな話Humble Object Patternな話
Humble Object Patternな話
 
SSII2021 [TS3] 機械学習のアノテーションにおける データ収集​ 〜 精度向上のための仕組み・倫理や社会性バイアス 〜
SSII2021 [TS3] 機械学習のアノテーションにおける データ収集​ 〜 精度向上のための仕組み・倫理や社会性バイアス 〜SSII2021 [TS3] 機械学習のアノテーションにおける データ収集​ 〜 精度向上のための仕組み・倫理や社会性バイアス 〜
SSII2021 [TS3] 機械学習のアノテーションにおける データ収集​ 〜 精度向上のための仕組み・倫理や社会性バイアス 〜
 
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しようテスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
 
今さら聞けないプロダクトオーナー アンチパターン入門 - XP祭り2015 #xpjug
今さら聞けないプロダクトオーナー アンチパターン入門 - XP祭り2015 #xpjug今さら聞けないプロダクトオーナー アンチパターン入門 - XP祭り2015 #xpjug
今さら聞けないプロダクトオーナー アンチパターン入門 - XP祭り2015 #xpjug
 
データベース設計徹底指南
データベース設計徹底指南データベース設計徹底指南
データベース設計徹底指南
 
工学系研究者のための 心理学的研究手法ガイド: 研究計画から実施,成果公表まで
工学系研究者のための 心理学的研究手法ガイド: 研究計画から実施,成果公表まで工学系研究者のための 心理学的研究手法ガイド: 研究計画から実施,成果公表まで
工学系研究者のための 心理学的研究手法ガイド: 研究計画から実施,成果公表まで
 
機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み機械学習品質管理・保証の動向と取り組み
機械学習品質管理・保証の動向と取り組み
 
【de:code 2020】 Microsoft Teams アプリケーション開発入門
【de:code 2020】 Microsoft Teams アプリケーション開発入門【de:code 2020】 Microsoft Teams アプリケーション開発入門
【de:code 2020】 Microsoft Teams アプリケーション開発入門
 
テスト観点に関する取り組み事例
テスト観点に関する取り組み事例テスト観点に関する取り組み事例
テスト観点に関する取り組み事例
 
CTFはとんでもないものを 盗んでいきました。私の時間です…
CTFはとんでもないものを 盗んでいきました。私の時間です…CTFはとんでもないものを 盗んでいきました。私の時間です…
CTFはとんでもないものを 盗んでいきました。私の時間です…
 
基幹システム RDRAモデル
基幹システム RDRAモデル基幹システム RDRAモデル
基幹システム RDRAモデル
 
はじめてのソフトウェアテスト2019
はじめてのソフトウェアテスト2019はじめてのソフトウェアテスト2019
はじめてのソフトウェアテスト2019
 
Pbijp758 #02 Power BI で Twitter分析する
Pbijp758 #02 Power BI で Twitter分析するPbijp758 #02 Power BI で Twitter分析する
Pbijp758 #02 Power BI で Twitter分析する
 
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
Yahoo!ニュースにおけるBFFパフォーマンスチューニング事例
 

Similaire à After jasst the use of test design for organizing specifications(fullslide)

Agile japan2010 rakuten様プレゼン資料
Agile japan2010 rakuten様プレゼン資料Agile japan2010 rakuten様プレゼン資料
Agile japan2010 rakuten様プレゼン資料
Akiko Kosaka
 
Information20120312
Information20120312Information20120312
Information20120312
b-slash
 
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
Developers Summit
 
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
Tomomi Kajita
 
#NagoyaTesting アジャイルなテストの見積りと計画づくり
#NagoyaTesting アジャイルなテストの見積りと計画づくり #NagoyaTesting アジャイルなテストの見積りと計画づくり
#NagoyaTesting アジャイルなテストの見積りと計画づくり
kyon mm
 

Similaire à After jasst the use of test design for organizing specifications(fullslide) (20)

アジャイルソフトウェア開発における テスティングの課題およびその解決アプローチ
アジャイルソフトウェア開発におけるテスティングの課題およびその解決アプローチアジャイルソフトウェア開発におけるテスティングの課題およびその解決アプローチ
アジャイルソフトウェア開発における テスティングの課題およびその解決アプローチ
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!
 
Itプロジェクトにおけるuxデザインの実践的適用方法
Itプロジェクトにおけるuxデザインの実践的適用方法Itプロジェクトにおけるuxデザインの実践的適用方法
Itプロジェクトにおけるuxデザインの実践的適用方法
 
20211023 良いテストを作るためのテスト設計チュートリアルを考える
20211023 良いテストを作るためのテスト設計チュートリアルを考える20211023 良いテストを作るためのテスト設計チュートリアルを考える
20211023 良いテストを作るためのテスト設計チュートリアルを考える
 
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
 
13_B_5 Who is a architect?
13_B_5 Who is a architect?13_B_5 Who is a architect?
13_B_5 Who is a architect?
 
Vantan shinsuke miyaki_upload
Vantan shinsuke miyaki_uploadVantan shinsuke miyaki_upload
Vantan shinsuke miyaki_upload
 
Agile japan2010 rakuten様プレゼン資料
Agile japan2010 rakuten様プレゼン資料Agile japan2010 rakuten様プレゼン資料
Agile japan2010 rakuten様プレゼン資料
 
Offshore Agile Development in XP
Offshore Agile Development in XPOffshore Agile Development in XP
Offshore Agile Development in XP
 
Information20120312
Information20120312Information20120312
Information20120312
 
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
【17-C-4】「Axure RPによる画面プロトタイプを活用した要件定義の改善:野村総合研究所、NTTデータの事例紹介」松永充弘氏
 
DMMアカウントサービス フロントエンド改善支援のためのTestcafeを用いた自動e2eテストの刷新
DMMアカウントサービス フロントエンド改善支援のためのTestcafeを用いた自動e2eテストの刷新DMMアカウントサービス フロントエンド改善支援のためのTestcafeを用いた自動e2eテストの刷新
DMMアカウントサービス フロントエンド改善支援のためのTestcafeを用いた自動e2eテストの刷新
 
STAC2022 ローコード開発におけるテストピラミッド考察
STAC2022 ローコード開発におけるテストピラミッド考察STAC2022 ローコード開発におけるテストピラミッド考察
STAC2022 ローコード開発におけるテストピラミッド考察
 
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
TDDを一年やってみました ~シロート集団がTDDをやってはまったこと~
 
XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~
XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~
XDDPプラクティス路線図とパターン・ランゲージ ~時を超えた派生開発の道~
 
#NagoyaTesting アジャイルなテストの見積りと計画づくり
#NagoyaTesting アジャイルなテストの見積りと計画づくり #NagoyaTesting アジャイルなテストの見積りと計画づくり
#NagoyaTesting アジャイルなテストの見積りと計画づくり
 
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
分かりやすく、使いやすいデザインを生み出す工夫 先生:池田 拓司
 
アジャイルなテストの見積もりと計画作り
アジャイルなテストの見積もりと計画作りアジャイルなテストの見積もりと計画作り
アジャイルなテストの見積もりと計画作り
 
ソフトウェア開発の現場風景
ソフトウェア開発の現場風景ソフトウェア開発の現場風景
ソフトウェア開発の現場風景
 
今さら聞けないソフトウエアエンジアニアリング(要求編)
今さら聞けないソフトウエアエンジアニアリング(要求編) 今さら聞けないソフトウエアエンジアニアリング(要求編)
今さら聞けないソフトウエアエンジアニアリング(要求編)
 

After jasst the use of test design for organizing specifications(fullslide)

  • 1. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. JaSST'21 Tokyo 再演 「テスト設計⼊⾨」ワークショップ 仕様整理のためのテスト設計入門 株式会社 ディー・エヌ・エー システム本部 品質統括部 品質管理部 河野哲也(FB: Tetsuya Kouno) 1 本セッションではワークを⾏いますので、 筆記⽤具・メモ⽤紙のご⽤意をお願いします JaSSTでの発表から少し資料を改良してます︕ SNSへの投稿OKです。
  • 2. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 本セッションの⽬的と対象者 n⽬的 ⁃ テスト設計技法が仕様整理にどう役に⽴つのかを理解する ⁃ 仕様の整理に使えるテスト設計技法を把握する (覚えなくても良い) ⁃ テスト設計技法が感覚的に理解する(演習やります) n対象者 ⁃ 仕様を書いたり整理したりする開発関係者 ⁃ (テスト)コードを書いたりするエンジニア ⁃ 上流⼯程の改善に関⼼のあるQA関係者 ⁃ 単純にテスト設計技法に興味のある⽅ 2 筆記⽤具・メモ⽤紙のご⽤意をお願いします
  • 3. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 本セッションのスコープ n本セッションで解説するテスト設計 ⁃ テスト観点を⼤中⼩項⽬で整理することではなく ⁃ テスト観点をマインドマップや表で整理することでもなく ⁃ テスト設計技法を使ってハイレベルテストケースを 設計することを指しています nテスト設計の詳細は後ほど説明します n参考書 ⁃ ソフトウェアテスト技法ドリル ⁃ ソフトウェアテスト技法練習帳 3
  • 4. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 本セッションの流れ n背景・モチベーション nテスト設計技法演習 ⁃ 同値分割(図) ⁃ 全組合せテスト ⁃ デシジョンテーブル ⁃ CFD法 ⁃ 状態遷移テスト nまとめ 4 本セッションではワークを⾏いますので、 筆記⽤具・メモ⽤紙のご⽤意をお願いします
  • 5. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. ⾃⼰紹介︓河野 哲也 n所属︓DeNA 品質管理部 ⁃ 新規サービス・プロダクトのQA⽴ち上げ⽀援 ⁃ テスト⾃動化の推進・改善活動の推進 n経歴 ⁃ 通信機器メーカでハードウェアQA(10年弱) ⁃ 電気通信⼤学で社会⼈⼤学、⼤学院前期・後期課程+フリーのコンサル ⁃ ⽇⽴製作所でソフトウェアQA・部⾨横断のプロセス改善(6年弱) ⁃ DeNAでWeb・モバイルのQA(3年半) n 得意技︓テスト分析・テスト設計 ⁃ テスト設計コンテスト 2年連続優勝(2012年/2013年) 5
  • 6. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. Web系企業によくあるQAの⽴ち位置 nQA組織におけるテストの限界 ⁃ 現状のQA組織は概ね出来上がったプロダクトに対して テストを実施してバグを⾒つけている • バグを⾒つけても、修正に時間もかかるし、 再テストで更に時間がかかる、もちろんバグ起票も時間がかかる • プロダクト品質に⼀定の貢献はあるが、改善の伸びしろが少ない 6
  • 7. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. ⼀般的なアプローチ n不具合を早く検出する ⁃ QA以前で不具合を検出しておく ことが重要 →エンジニアのテストの充実 • 書籍では、ユニットテスト・ ペアプロ・静的解析・ コードレビュー・CI を推奨している 7 「 More Effective Agile ~“ソフトウェアリーダー”になるための28の道標」 Steve McConnell (著), ⻑沢 智治(監訳)
  • 8. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. ⼀般的なアプローチ n不具合の作り込みを減らす ⁃ 開発成果物をきちんと書く、 書いたものレビューする →まずは書くことが重要、 書かないとレビューできない n不具合を早く⾒つける ⁃ ユニットテスト・結合テストで ⾒つけるべき不具合を検出する →エンジニアによるテストの充実 8 「ソフトウェア品質保証⼊⾨―⾼品質を実現する考え⽅ とマネジメントの要点」 保⽥ 勝通 (著), 奈良 隆正 (著)
  • 9. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. テスト設計技法の活⽤の提案 n 不具合を早く⾒つける テストケースの作り⽅(テスト設計技法)を知っておく n 不具合の作り込みを減らす 仕様を整理するために活⽤可能なテスト設計技法を知っておく n もちろんテスト設計技法にこだわる必要はない ⁃ 要求や仕様の表現に特化したUMLやUSDMなどを活⽤するほうが望ましい ⁃ とはいえ、テスト設計技法の活⽤は導⼊のハードルが低い • QA組織のメンバと協業もしやすし、QAでのテストにとってもメリットが多い ⁃ 先⾏事例「アジャイルプラクティスを活⽤したチームとしての品質確保の取り組み」 • 原因結果グラフというテスト設計技法を使って、コーディング前にペア設計を実施 →仕様のロジックをテスト設計技法を使って整理している 9
  • 10. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 事例︓エントリー機能 nCFD法によるテスト設計 10 1. エントリー画面の「規約同意」チェックボックスが チェック済みになると、 「エントリー」ボタンが活性状態になる 2. エントリー画面でエントリーコードを入力し、 「エントリー」ボタンを押下する エントリーコードが無効だった場合は エラーメッセージを表示する 3. エントリーコードが有効だった場合、 エントリーに成功し パスワード登録URLが記載されたメールが 当該ユーザーのメールアドレスに送付される URLには有効期限があり、10分で期限切れとなる 4. パスワード登録画面で「パスワード入力」と 「パスワード(確認用)入力」が一致していれば パスワードを登録する パスワードは6文字以上8文字以内とし、 文字種別は「小文字、大文字、数字、記号」とし、 その範囲以外の場合は エラーメッセージを表示する
  • 11. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 事例︓プッシュ通知時の状態の整理 n状態遷移図によるテスト設計 11
  • 12. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. テスト設計技法ってどれくらいあるの︖ 12 - Black Box White Box
  • 13. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 全部理解する必要があるのか︖ n今回の⽬的に即した仕様を表現・整理するのに 役に⽴つ技法を理解する ⁃ 同値分割 (境界値分析) ⁃ デシジョンテーブル ⁃ CFD法 ⁃ 状態遷移テスト 13 - Black Box White Box
  • 14. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. テスト設計技法の分類︓有則・無則・禁則 n 有則︓仕様で定義されている則(規則) ⁃ 「これこれ」の条件で「これこれ」の処理が⾏われる ⁃ 仕様に基づくテストは有則を対象としている n 無則︓仕様で定義されていない則(規則) ⁃ 仕様で定義された則の補集合 ⁃ 無則のテストは悪影響がないことをテストする n 禁則︓禁じられている則(規則) ⁃ 例えば、「これこれ」の条件で「これこれ」の処理は⾏わない、 「これこれ」の条件と「これこれ」の条件は⼀⽅しか成⽴しない、など • 仕様には書かれている場合もあれば、書かれていない場合もある ⁃ 禁則でも悪影響がないか、禁則がきちんと実装されているかを確認にする必要がある ⁃ 無則の組合わせテストでは、項⽬⽣成前にきちんと検討しておく必要がある⇒禁則マトリクス 14 松尾⾕︓「 ソフトウェアテストの展望︓ SW機能テストから、システム挙動の評価へ」, JaSST‘07 Tokyoを参考にした
  • 15. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. テスト設計技法の分類︓有則・無則・禁則 15 組合せテスト設計技法 全組合 せテス ト HAYST法 /直交表 ペアワイズ 法 シーケンス 網羅⾏列 CFD 法 原因結果 グラフ デシジョン テーブル 状態遷移 テスト 有則のテスト 無則のテスト 有則/無則 のテスト
  • 16. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. テスト設計とは n テスト設計ではどういう成果物が作成されるのか︖ ⁃ テスト設計(JSTQB (Japan Software Testing Qualifications Board) ⽤語集 Version 2.3.J02 )︓ (1) test design specificationを参照のこと (2) 概略的なテスト⽬的を 具体的なテスト条件とテストケースに変換するプロセス ⁃ テスト設計仕様(test design specification)︓ テストアイテムのテスト条件、詳細なテストアプローチ、及び、 関連する⾼位レベルテストケースを記述したドキュメント ⁃ ⾼位(ハイ)レベルテストケース︓ 具体的な(実⾏レベルの)⼊⼒値や予測結果を使わないテストケース 論理演算⼦は使⽤するが、値のインスタンスは未定義や 使⽤不可であるといった状態にある n テスト設計技法とは︖ ⁃ ハイレベルテストケースの設計⽅法を定義したもの 16
  • 17. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 具体的に考える n うるう年の計算︓うるう年は以下で決まる (引⽤︓ソフトウェアテスト技法ドリル) 1)⻄暦年が4で割切れる年はうるう年 2)ただし、⻄暦年が100で割切れる年は平年 3)ただし、⻄暦年が400で割切れる年はうるう年 例︓2012年と2000年はうるう年、2013年と2100年は平年 17 項番 入力データ 出力 1 2000 う るう 年 2 2100 平年 3 2012 う るう 年 4 1999 平年 0 1
  • 18. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. テスト設計技法の活⽤の提案 n 不具合を早く⾒つける テストケースの作り⽅(テスト設計技法)を知っておく n 不具合の作り込みを減らす 仕様を整理するために活⽤可能なテスト設計技法を知っておく n もちろんテスト設計技法にこだわる必要はない ⁃ 要求や仕様の表現に特化したUMLやUSDMなどを活⽤するほうが望ましい ⁃ とはいえ、テスト設計技法の活⽤は導⼊のハードルが低い • QA組織のメンバと協業もしやすし、QAでのテストにとってもメリットが多い 18
  • 19. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 本セッションの流れ n背景・モチベーション nテスト設計技法演習 ⁃ 同値分割(図) ⁃ 全組合せテスト ⁃ デシジョンテーブル ⁃ CFD法 ⁃ 状態遷移テスト nまとめ 19 本セッションではワークを⾏いますので、 筆記⽤具・メモ⽤紙のご⽤意をお願いします
  • 20. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 演習の流れ n各テスト設計技法の演習は以下の流れで進める ⁃ 技法の簡単な解説 ⁃ 具体例を2つ説明(状態遷移テストは1つ) ⁃ 演習問題を出題︓ここからワーク開始︕ • 出題後、1分後にヒントを提⽰ ⁃ 3分後に解答例を説明 20
  • 21. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 同値分割(図) n⼀つ⼀つの値をテストしようとすると ⼤変なので代表値を選んでテストするための技法 ⁃ 代表値を選ぶために値の集まりを定義する ⁃ 本セッションでは同値分割図という表現形式を使う • 他の技法のための前準備 21
  • 22. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 簡単な例︓同値分割図 n無料配送の条件 ⁃ 仕様︓次の条件で配送料が無料になる (引⽤︓ソフトウェアテスト技法ドリル) ・条件1︓注⽂商品に書籍を含む ・条件2︓注⽂商品の合計⾦額が1500円以上 • 同値分割図 22 書籍を含む 書籍を含まない 0〜1499円 1500円〜 上限値 それ以外 条件1 条件2
  • 23. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 簡単な例︓同値分割図 23 ○1杯目のビールの価格 以下の条件によって変わります ・通常、1杯490円で提供されます ・16:00〜17:59まではハッピーアワーで1杯290円で提供されます ・クーポンを使うと、利用時間に関わらず はじめの1杯のみ100円で提供されます ・ハッピーアワーでもクーポンは利用できます ・その時点で最も安い価格で提供されます 引用:ソフトウェアテスト技法練習帳 16:00〜17:59 クーポン有 クーポン無 それ以外
  • 24. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 演習問題︓同値分割図 nカレンダーの⽂字⾊の仕様 24 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする 引用:ソフトウェアテスト技法練習帳
  • 25. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. ヒント︓同値分割図 nカレンダーの⽂字⾊の仕様 25 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする 祝日 日曜日 土曜日 平日
  • 26. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 解答例︓同値分割図 nカレンダーの⽂字⾊の仕様 26 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする 祝日 日曜日 土曜日 平日 祝日 日曜日 土曜日 平日 祝日以外
  • 27. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 本セッションの流れ n背景・モチベーション nテスト設計技法演習 ⁃ 同値分割(図) ⁃ 全組合せテスト ⁃ デシジョンテーブル ⁃ CFD法 ⁃ 状態遷移テスト nまとめ 27 本セッションではワークを⾏いますので、 筆記⽤具・メモ⽤紙のご⽤意をお願いします
  • 28. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 全組合せテスト n条件や⼊⼒の組合せとその結果を表で整理する⽅法 ⁃ 条件とその組合せ、結果を網羅する︓漏れ防⽌に注⼒ • JSTQB AL テストアナリストの組み合わせテストは無則のテスト、 ここの全組合せテストは有即のテスト n 簡単な例)無料配送の仕様︓次の条件で配送料が無料になる ⁃ 条件1︓注⽂商品に書籍を含む ⁃ 条件2︓注⽂商品の合計⾦額が1500円以上 28 書籍を含む 書籍を含まない 0〜1499円 1500円〜 上限値 それ以外 条件1 条件2 0〜1499円 1500円〜 書籍を含む 無料 無料 書籍を 含まない 有料 無料
  • 29. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 簡単な例︓全組合せテスト 29 ○1杯目のビールの価格 以下の条件によって変わります ・通常、1杯490円で提供されます ・16:00〜17:59まではハッピーアワーで1杯290円で提供されます ・クーポンを使うと、利用時間に関わらず はじめの1杯のみ100円で提供されます ・ハッピーアワーでもクーポンは利用できます ・その時点で最も安い価格で提供されます 引用:ソフトウェアテスト技法練習帳 16:00〜17:59 クーポン有 クーポン無 それ以外 16:00-17:59 それ以外 クーポン有 100円 100円 クーポン無 290円 490円
  • 30. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 演習問題︓全組合せテスト n次の仕様の全組合せテストを作成する 祝⽇の詳細は無視して下さい 30 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする
  • 31. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. ヒント︓全組合せテスト 31 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする 祝日 日曜日 土曜日 平日 祝日以外
  • 32. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 解答例︓組合せテスト 32 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする 祝日 日曜日 土曜日 平日 祝日以外
  • 33. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 全部の組合せのテストが必要︖ 33 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする
  • 34. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 本セッションの流れ n背景・モチベーション nテスト設計技法演習 ⁃ 同値分割(図) ⁃ 全組合せテスト ⁃ デシジョンテーブル ⁃ CFD法 ⁃ 状態遷移テスト nまとめ 34 本セッションではワークを⾏いますので、 筆記⽤具・メモ⽤紙のご⽤意をお願いします
  • 35. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. デシジョンテーブル n仕様に記述された論理を⼊⼒(原因・条件)と出⼒(結果・動作) に分けて、⼊⼒と出⼒の対応関係を表で整理する⽅法 n 簡単な例 ⁃ 無料配送の仕様︓次の条件で配送料が無料になる • 条件1︓注⽂商品に書籍を含む • 条件2︓注⽂商品の合計⾦額が1500円以上 35 書籍を含む 書籍を含まない 0〜1499円 1500円〜 上限値 それ以外 条件1 条件2 0〜1499円 1500円〜 書籍を含む 無料 無料 書籍を 含まない 有料 無料
  • 36. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 簡単な例︓デシジョンテーブル 36 36 16:00〜16:59 クーポン有 クーポン無 16:00- 16:59 17:00- 17:59 それ以外 クーポン有 100円 100円 100円 クーポン無 150円 290円 490円 ○1杯目のビールの価格 以下の条件によって変わります (クーポン有無の判定を先に実装すること) ・通常、1杯490円で提供されます ・ハッピーアワーで16:00〜16:59までは1杯150円 17:00〜17:59までは1杯290円で提供されます ・クーポンを使うと、利用時間に関わらず はじめの1杯のみ100円で提供されます ・ハッピーアワーでもクーポンは利用できます ・その時点で最も安い価格で提供されます 引用:ソフトウェアテスト技法練習帳を一部修正 17:00〜17:59 それ以外
  • 37. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. デシジョンテーブルの圧縮 n 圧縮という考え⽅ ⁃ 同じ動作(結果)を持つルールの中で、結果に影響を及ぼす条件が⼀つしかなかった場合、 その列をまとめ、結果に影響を及ぼす条件をどちらでもよいという意味で「-」に変更する⽅法 • ただし、条件と処理とが同じ順序であるというのが前提となる n 例︓無料配送の仕様 品物の条件判定が先に実装されていることが分かれば次のように圧縮できる 37 圧縮する 結果に影響を及ぼしていない すべての組合せを洗い出す 結果に影響を及ぼしていない条件を探して圧縮する
  • 38. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. デシジョンテーブルの圧縮の例 38 38 すべての組合せを洗い出す 16:00〜16:59 クーポン有 クーポン無 16:00- 16:59 17:00- 17:59 それ以外 クーポン有 100円 100円 100円 クーポン無 150円 290円 490円 ○1杯目のビールの価格 以下の条件によって変わります(クーポン有無の判定を先に実装すること) ・通常、1杯490円で提供されます ・ハッピーアワーで16:00〜16:59までは1杯150円 17:00〜17:59までは1杯290円で提供されます ・クーポンを使うと、利用時間に関わらず はじめの1杯のみ100円で提供されます ・ハッピーアワーでもクーポンは利用できます ・その時点で最も安い価格で提供されます 引用:ソフトウェアテスト技法練習帳を一部修正 17:00〜17:59 それ以外 圧縮する
  • 39. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 圧縮の際の書き⽅ 39 選択されていない 条件はどれかを選ぶ “-”は“-”の どれかを選ぶ
  • 40. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 演習問題︓デシジョンテーブル n仕様の順序に従って処理が実装されているとして デシジョンテーブルを作成する 40 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする
  • 41. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. ヒント︓デシジョンテーブル n仕様の順序に従って処理が実装されているとして デシジョンテーブルを作成する 41 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする
  • 42. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 解答例︓デシジョンテーブル n祝⽇の判定の実装が先であれば 次のようなデシジョンテーブルが作成される 42 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする
  • 43. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 番外編︓カレンダーの⽂字⾊ nもう少しきちんと仕様を整理してみる 43 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする 祝日 祝日以外 国民の祝日 祝日以外 振替休日 国民の休日 振替休日:「国民の祝日」が日曜日に 当たるときは、その日後においてその 日に最も近い「国民の祝日」でない日 を休日とする →土曜日と日曜日に重なることはない 国民の休日:前後が祝日である平日は、 国民の休日となり休日となる →日曜日と重なったら振替休日? 祝日は可変なパラーメータである (例:2019年5月1日の即位の日) 祝日の判定ロジックと色変更の処理が 分離できないときは、上記のような点 を気にしながら仕様を整理する 国によって祝⽇は異なる→どこの国なのか︖ 祝⽇は可変→つまり祝⽇が設定できるテスト⽤の機能が必要
  • 44. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 本セッションの流れ n背景・モチベーション nテスト設計技法演習 ⁃ 同値分割(図) ⁃ 全組合せテスト ⁃ デシジョンテーブル ⁃ CFD法 ⁃ 状態遷移テスト nまとめ 44 本セッションではワークを⾏いますので、 筆記⽤具・メモ⽤紙のご⽤意をお願いします
  • 45. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. おさらい︓全部の組合せのテストが必要︖ 45 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする
  • 46. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. おさらい︓解答例 46 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする
  • 47. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. CFD(Cause Flow Diagram)法 n 原因の集合(同値分割)と原因どうしのつながりをモデルで表現し、 それに基づきデシジョンテーブルを作成する⽅法 ⁃ 暗黙的にテストの組み合わせを設計するのではなく 実装や仕様の制約に従いモデルを表現し、デシジョンテーブルを作成する n 簡単な例︓無料配送の仕様次の条件で配送料が無料になる (条件の順序に従って実装されていること) ⁃ 条件1︓注⽂商品に書籍を含む ⁃ 条件2︓注⽂商品の合計⾦額が1500円以上 47 原因流れ図 デシジョンテーブル 書籍を含む 書籍を含まない 0〜1499円 1500円〜 上限値 それ以外 品物 合計金額 エラー 無料 有料
  • 48. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 簡単な例︓CFD法 48 16:00〜16:59 クーポン有 クーポン無 ○1杯目のビールの価格 以下の条件によって変わります(クーポン有無の判定を先に実装すること) ・通常、1杯490円で提供されます ・ハッピーアワーで16:00〜16:59までは1杯150円 17:00〜17:59までは1杯290円で提供されます ・クーポンを使うと、利用時間に関わらず はじめの1杯のみ100円で提供されます ・ハッピーアワーでもクーポンは利用できます ・その時点で最も安い価格で提供されます 引用:ソフトウェアテスト技法練習帳を一部修正 17:00〜17:59 それ以外 クーポン 来店時間 100円 490円 150円 290円 原因流れ図 デシジョンテーブル
  • 49. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. n メール・メッセージ機能 他の例︓CFD法 49 あり なし メール アドレス 入力 OK NG メール それ以外 種別 メセ メール 送信 メセ 送信 無効 メール アドレス 文法 エリア 圏内 圏外 1 2 3 4 5 6 有 Y Y Y Y Y 無 Y OK Y Y Y Y N G Y メ ール Y - メ ッ セージ Y - 圏内 Y Y 圏外 Y メ ール送信 Y メ セ送信 Y Y 結果( 処理・ 出力) それ以外 Y 無効 Y Y Y 原因 ( 入力) アド レス アド レス文法 種別 エリ ア 原因流れ図 デシジョンテーブル
  • 50. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 演習問題︓CFD法 n仕様の順序に従って処理が実装されているとして デシジョンテーブルを作成する 50 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする
  • 51. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. ヒント︓CFD法 n仕様の順序に従って処理が実装されているとして デシジョンテーブルを作成する 51 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする 祝日 日曜日 土曜日 平日 祝日以外 祝日条件 曜日
  • 52. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 解答例︓CFD法 n 祝⽇の判定の実装が先であれば 次のような原因流れ図とデシジョンテーブルが作成される 52 ○カレンダの文字色 カレンダーの日付は、以下の仕様で色をつけます ・祝日は赤 ・日曜日は赤 ・土曜日は青 ・祝日でない平日は黒 * 祝日は日本の国民の祝日・休日(振替休日や国民の休日)を指すこととする * 平日とは、月曜日から金曜日を指すこととする 祝日 日曜日 土曜日 平日 祝日以外 赤 青 黒 祝日条件 曜日 原因流れ図 デシジョンテーブル
  • 53. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 本セッションの流れ n背景・モチベーション nテスト設計技法演習 ⁃ 同値分割(図) ⁃ 全組合せテスト ⁃ デシジョンテーブル ⁃ CFD法 ⁃ 状態遷移テスト nまとめ 53 本セッションではワークを⾏いますので、 筆記⽤具・メモ⽤紙のご⽤意をお願いします
  • 54. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 状態遷移テスト n ある状態からある状態への遷移を確認するテスト ⁃ 上記の定義だと、アドホックに状態の遷移を確認することも状態遷移テストに含まれる • 状態遷移テストという観点⇔状態遷移テストというテスト設計技法 n 1)状態遷移図 ⁃ 状態と遷移をモデルで表現︓状態を○で表し、遷移を⽮印で表す ⁃ ○には状態名を記載(状態名はよく考えること) ⁃ ⽮印には遷移の元となるイベント名を記載(イベント名はよく考えること) ⁃ パスカバレッジの考え⽅で状態と遷移を網羅する n 2)状態遷移表(状態遷移マトリクス) ⁃ 状態とイベントの関係を表で表現︓セルには遷移先の状態を記⼊ ⁃ 状態遷移図で不明な遷移を確認する n 3)Nスイッチカバレッジ ⁃ ある状態遷移の影響がN回先の状態遷移に影響を及ぼすかを確認するための⽅法 54
  • 55. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 状態遷移テスト n ある状態からある状態への遷移を確認するテスト ⁃ 上記の定義だと、アドホックに状態の遷移を確認することも状態遷移テストに含まれる • 状態遷移テストという観点⇔状態遷移テストというテスト設計技法 n 1)状態遷移図 ⁃ 状態と遷移をモデルで表現︓状態を○で表し、遷移を⽮印で表す ⁃ ○には状態名を記載(状態名はよく考えること) ⁃ ⽮印には遷移の元となるイベント名を記載(イベント名はよく考えること) ⁃ パスカバレッジの考え⽅で状態と遷移を網羅する n 2)状態遷移表(状態遷移マトリクス) ⁃ 状態とイベントの関係を表で表現︓セルには遷移先の状態を記⼊ ⁃ 状態遷移図で不明な遷移を確認する n 3)Nスイッチカバレッジ ⁃ ある状態遷移の影響がN回先の状態遷移に影響を及ぼすかを確認するための⽅法 55
  • 56. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 仕様→同値分割図 56 1. デフォルト状態でスタートボタンを押すと ストップウォッチが動き出す 2. 動いている最中にスタートボタンを押すと 停止する 3. 停止状態でスタートボタンを押すと そこから再スタートする 4. 停止状態でラップボタンを押すと リセットされデフォルト状態に戻る 5. 動いている最中にラップボタンを押すと 表示は停止するが内部は動いているラップ 表示状態になる 6. ラップ表示状態でラップボタンを押すと 計測開始からのトータル時間から再開する スタート デフォルト 動作中 イベント 状態 ラップ ラップ 表示中 停止中
  • 57. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 同値分割図→状態遷移図 57 1. デフォルト状態でスタートボタンを押すと ストップウォッチが動き出す 2. 動いている最中にスタートボタンを押すと 停止する 3. 停止状態でスタートボタンを押すと そこから再スタートする 4. 停止状態でラップボタンを押すと リセットされデフォルト状態に戻る 5. 動いている最中にラップボタンを押すと 表示は停止するが内部は動いているラップ 表示状態になる 6. ラップ表示状態でラップボタンを押すと 計測開始からのトータル時間から再開する 動作中 停止中 ラップ 表示中 初期状態 スタート スタート ラップ ラップ ラップ スタート デフォ ルト スタート デフォルト 動作中 イベント 状態 ラップ ラップ 表示中 停止中
  • 58. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 演習問題︓仕様→状態遷移図 n次の仕様に対して状態遷移図を作成してみて下さい 58 1. 電源OFFの状態で 電源ボタンを⼊れると 電源がONになり、 PC1⼊⼒から投影される 2. 切替ボタンを押すと、 PC1⼊⼒からPC2⼊⼒に切り替わり、 再度、切替ボタンを押すと、 VIDEO⼊⼒に切り替わる。 3. その次はPC1⼊⼒に戻る。 4. 各⼊⼒状態において、 電源ボタンを押すと、 電源OFFの状態になる。
  • 59. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. ヒント︓仕様→同値分割図 n次の仕様に対して状態遷移図を作成してみて下さい 59 1. 電源OFFの状態で 電源ボタンを⼊れると 電源がONになり、 PC1⼊⼒から投影される 2. 切替ボタンを押すと、 PC1⼊⼒からPC2⼊⼒に切り替わり、 再度、切替ボタンを押すと、 VIDEO⼊⼒に切り替わる。 3. その次はPC1⼊⼒に戻る。 4. 各⼊⼒状態において、 電源ボタンを押すと、 電源OFFの状態になる。 電源 電源OFF PC1入力 イベント 状態 切替 PC2入力 VIDEO 入力
  • 60. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 解答例︓同値分割図→状態遷移図 n次の仕様に対して状態遷移図を作成してみて下さい 60 1. 電源OFFの状態で 電源ボタンを⼊れると 電源がONになり、 PC1⼊⼒から投影される 2. 切替ボタンを押すと、 PC1⼊⼒からPC2⼊⼒に切り替わり 再度、切替ボタンを押すと、 VIDEO⼊⼒に切り替わる。 3. その次はPC1⼊⼒に戻る。 4. 各⼊⼒状態において、 電源ボタンを押すと、 電源OFFの状態になる。 VIDEO 入力 PC1 入力 PC2 入力 初期状態 切替 電源 電源 OFF 電源 電源 切替 切替 電源 電源 電源OFF PC1入力 イベント 状態 切替 PC2入力 VIDEO 入力
  • 61. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 状態遷移テスト n ある状態からある状態への遷移を確認するテスト ⁃ 上記の定義だと、アドホックに状態の遷移を確認することも状態遷移テストに含まれる • 状態遷移テストという観点⇔状態遷移テストというテスト設計技法 n 1)状態遷移図 ⁃ 状態と遷移をモデルで表現︓状態を○で表し、遷移を⽮印で表す ⁃ ○には状態名を記載(状態名はよく考えること) ⁃ ⽮印には遷移の元となるイベント名を記載(イベント名はよく考えること) ⁃ パスカバレッジの考え⽅で状態と遷移を網羅する n 2)状態遷移表(状態遷移マトリクス) ⁃ 状態とイベントの関係を表で表現︓セルには遷移先の状態を記⼊ ⁃ 状態遷移図で不明な遷移を確認する n 3)Nスイッチカバレッジ ⁃ ある状態遷移の影響がN回先の状態遷移に影響を及ぼすかを確認するための⽅法 61
  • 62. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 同値分割図・状態遷移図→状態遷移表 nストップウォッチの例 62 表で遷移の抜けを確認する 全てのセルは最低限テストする 動作中 停⽌中 ラップ 表⽰中 初期状態 スタート スタート ラップ ラップ ラップ スタート デフォ ルト 状態 デフォルト 動作中 停⽌中 ラップ 表⽰中 イ ベ ン ト スタート 動作中 停⽌中 動作中 無効 ラップ 無効 ラップ 表⽰中 デフォルト 動作中 スタート デフォルト 動作中 イベント 状態 ラップ ラップ 表示中 停止中 ここで状態×状態の表ではなく、状態×イベント の表を作るのは遷移の抜けを確認したいから
  • 63. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 演習問題︓同値分割図・状態遷移図→状態遷移表 nプロジェクタの状態遷移図に対して 2種類の状態遷移表を作成してみて下さい 63 VIDEO 入力 PC1 入力 PC2 入力 初期状態 切替 電源 電源 OFF 電源 電源 切替 切替 電源 電源 電源OFF PC1入力 イベント 状態 切替 PC2入力 VIDEO 入力
  • 64. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. ヒント︓同値分割図・状態遷移図→状態遷移表 nプロジェクタの状態遷移図に対して 2種類の状態遷移表を作成してみて下さい 64 VIDEO 入力 PC1 入力 PC2 入力 初期状態 切替 電源 電源 OFF 電源 電源 切替 切替 電源 電源 電源OFF PC1入力 イベント 状態 切替 PC2入力 VIDEO 入力 状態 電源 OFF PC1 ⼊⼒ PC2 ⼊⼒ VIDEO ⼊⼒ イ ベ ン ト 電源 切替
  • 65. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 解答例︓同値分割図・状態遷移図→状態遷移表 65 VIDEO 入力 PC1 入力 PC2 入力 初期状態 切替 電源 電源 OFF 電源 電源 切替 切替 電源 状態 電源 OFF PC1 ⼊⼒ PC2 ⼊⼒ VIDEO ⼊⼒ イ ベ ン ト 電源 PC1 ⼊⼒ OFF OFF OFF 切替 無効 PC2 ⼊⼒ VIDEO ⼊⼒ PC1 ⼊⼒ 電源 電源OFF PC1入力 イベント 状態 切替 PC2入力 VIDEO 入力
  • 66. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 状態遷移テスト n ある状態からある状態への遷移を確認するテスト ⁃ 上記の定義だと、アドホックに状態の遷移を確認することも状態遷移テストに含まれる • 状態遷移テストという観点⇔状態遷移テストというテスト設計技法 n 1)状態遷移図 ⁃ 状態と遷移をモデルで表現︓状態を○で表し、遷移を⽮印で表す ⁃ ○には状態名を記載(状態名はよく考えること) ⁃ ⽮印には遷移の元となるイベント名を記載(イベント名はよく考えること) ⁃ パスカバレッジの考え⽅で状態と遷移を網羅する n 2)状態遷移表(状態遷移マトリクス) ⁃ 状態とイベントの関係を表で表現︓セルには遷移先の状態を記⼊ ⁃ 状態遷移図で不明な遷移を確認する n 3)Nスイッチカバレッジ ⁃ ある状態遷移の影響がN回先の状態遷移に影響を及ぼすかを確認するための⽅法 66
  • 67. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 本セッションの流れ n背景・モチベーション nテスト設計技法演習 ⁃ 同値分割(図) ⁃ 全組合せテスト ⁃ デシジョンテーブル ⁃ CFD法 ⁃ 状態遷移テスト nまとめ 67 本セッションではワークを⾏いますので、 筆記⽤具・メモ⽤紙のご⽤意をお願いします
  • 68. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. 今後の進め⽅ n テスト設計技法を理解する ⁃ 参考書(ソフトウェアテスト技法ドリル/ソフトウェアテスト技法練習帳)を読む • 本セミナーで取り上げたテスト設計技法だけでも良い ⁃ できればチームや仲間で勉強する n 実際の仕様の⼩さい範囲でトライアルし広げていく ⁃ 部分的に仕様の表現に活⽤する ただしテスト設計技法で表現する部分を定めるのに苦労する可能性有 ⁃ ユニットテストを書く前の仕様の整理に活⽤する • 上記活⽤でQAエンジニアの助けを借りる 何かありましたら、気軽に河野までご連絡下さい︕ tetuyakouno@gmail.com / FB: Tetsuya Kouno 68
  • 69. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. まとめ︓仕様整理のためのテスト設計⼊⾨ n背景・モチベーション nテスト設計技法演習 ⁃ 同値分割(図) ⁃ 全組合せテスト ⁃ デシジョンテーブル ⁃ CFD法 ⁃ 状態遷移テスト n今後の進め⽅ 69
  • 70. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. おまけ︓状態遷移図と状態遷移表の作成ツール n状態遷移図︓Pyagram(ぱいあぐらむ) https://qiita.com/hideshi/items/c61cee1d7dfc1754e075 ⁃ Pythonのライブラリ、状態遷移より広範な使い⽅ができそう ⁃ 使い⽅ • 特定の記法に従ってテキストベースで状態遷移を記述 • Pyagramにそのテキスト⾷わせると、状態遷移図の画像ファイルが 出⼒される( gif / png / svg を指定できる) n状態遷移表︓⾃作 ⁃ Pythonで実装、150⾏程度 ⁃ 上の記法に従って書いた状態遷移から状態遷移表(+0スイッチ、 1スイッチとかの表)を .csv形式で⽣成 70
  • 71. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. Copyright (C) 2021 DeNA Co.,Ltd. All Rights Reserved. JaSST'21 Tokyo 再演 「テスト設計⼊⾨」ワークショップ 仕様整理のためのテスト設計入門 株式会社 ディー・エヌ・エー システム本部 品質統括部 品質管理部 河野哲也(FB: Tetsuya Kouno) 71 ご清聴ありがとうございました