$30 off During Our Annual Pro Sale. View Details »

テストプロセスを用いて、テストケース作成の思考を整理しよう / test process

nihonbuson
December 17, 2022

テストプロセスを用いて、テストケース作成の思考を整理しよう / test process

nihonbuson

December 17, 2022
Tweet

More Decks by nihonbuson

Other Decks in Technology

Transcript

  1. テストプロセスを用いて、
    テストケース作成の
    思考を整理しよう

    View Slide

  2. 自己紹介
    ● 風間裕也(ブロッコリー)
    ● @nihobuson
    ● 社外活動
    ○ WACATE 2019 夏からWACATE実行委員
    ○ JaSST Review 実行委員長
    ● 翻訳活動
    ○ 書籍『Agile Testing Condensed』
    ○ 書籍『Testing in DevOps』
    ○ 書籍『The BDD Books - Discovery』
    ● 猫派

    View Slide

  3. セッションの目的
    ● プロセスについて理解する
    ● テストプロセスについて理解する
    ● テストプロセスの定義を行うメリットを理解する

    View Slide

  4. プロセスとは何か

    View Slide

  5. プロセスとは何か
    プロセス(process)は、
    英語で「過程」「工程」を意味する外来語である。
    プロセッシング (processing) と言った場合は、
    「処理」を意味する。
    手続き(procedure)に着目し、対象を所定の手続きに
    よって別のものに変換する活動を表す場合もある。
    プロセス (曖昧さ回避) - Wikipedia

    View Slide

  6. プチワーク①
    以下の計算問題を解いてください(30秒)
    8×7ー32÷4

    View Slide

  7. プチワーク①
    以下の計算問題を解いてください(30秒)
    8×7ー32÷4
    答え…48
    どうやって計算しましたか?

    View Slide

  8. 解答を導き出すまでの過程=プロセス
    8×7ー32÷4
    を計算
    答えは
    48

    View Slide

  9. 解答を導き出すまでの過程=プロセス
    掛け算
    を計算
    答えは
    48
    引き算
    を計算
    割り算
    を計算
    8×7=56 32÷4=8 56ー8=48

    View Slide

  10. 解答を導き出すまでの過程=プロセス
    計算順序を
    確認
    答えは
    48
    引き算
    を計算
    割り算
    を計算
    掛け算
    を計算
    掛け算と割り算を
    計算してから
    引き算すれば良いな

    View Slide

  11. 解答を導き出すまでの過程=プロセス
    計算
    順序を
    確認
    答えは
    48
    繰り下がりの
    引き算を
    計算
    割り
    算を
    計算
    掛け
    算を
    計算
    10の位との
    合計を計算
    16ー8
    =10ー2
    =8
    40+8
    =48
     56
    ー 8
     48
    4 1

    View Slide

  12. 解答を導き出すまでの過程=プロセス
    8×7ー32÷4
    を計算
    答えは
    48
    計算
    順序を
    確認
    答えは
    48
    繰り下がりの
    引き算を
    計算
    割り
    算を
    計算
    掛け
    算を
    計算
    10の位との
    合計を計算

    View Slide

  13. 解答を導き出すまでの過程=プロセス
    8×7ー32÷4
    を計算
    答えは
    48
    計算
    順序を
    確認
    答えは
    48
    繰り下がりの
    引き算を
    計算
    割り
    算を
    計算
    掛け
    算を
    計算
    10の位との
    合計を計算
    人によってプロセスは違う
    プロセスを細かく分けることができる

    View Slide

  14. 細かいプロセスを示すとレビューしやすい
    8×7ー32÷4
    =64
    どこで
    間違えたん
    だろ…?

    View Slide

  15. 細かいプロセスを示すとレビューしやすい
    8×7ー32÷4
    =64
    8×7ー32÷4
    =72ー32÷4
    =72ー8
    =64
    掛け算が
    間違ってた

    View Slide

  16. テストプロセス

    View Slide

  17. 昔のテストプロセス
    テスト実行より前に行う内容
    (「テスト設計」「テスト準備」などの呼び方あり)
    テスト
    実行
    参考:http://aster.or.jp/business/contest/doc/2020_U-30_V1.0.0.pdf#page=65

    View Slide

  18. JSTQBで示しているテストプロセス
    テスト
    分析
    テスト
    設計
    テスト
    実装
    テスト
    実行
    何をテスト
    するか
    それをどう
    テストするか
    テストの実行に
    必要なものすべて
    を準備したか
    テストスイート
    を実行する
    参考:ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2018V3.1.J02

    View Slide

  19. JSTQBで示しているテストプロセス(全体)
    テスト
    計画
    テスト
    分析
    テスト
    設計
    テスト
    実装
    テスト
    実行 テスト
    完了
    テストのモニタリングとコントロール
    テストの目的と、
    制約内でテストの目的を
    達成するための
    アプローチを定義する
    計画した進捗と
    実際の進捗を
    継続的に比較する
    何をテスト
    するか
    を決定する
    どのように
    テストするか
    を決定する
    テストの実行に
    必要なもの
    すべてを準備する
    テストスイートを実
    行する
    完了したテストの
    データをまとめる
    ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2018V3.1.J03を参考に作成

    View Slide

  20. ログイン画面を題材にテストプロセスを考える

    View Slide

  21. テスト分析
    「何をテストするか」を考える。
    例えば…
    ● 正しい組み合わせでログインできるか
    ● ログイン失敗時、エラーメッセージが適切か
    ● パスワードの入力欄はマスクされているか
    ● 指定回数以上ログイン失敗した場合、ロックされるか
    箇条書きやマインドマップなどの記法を活用する
    テスト
    分析
    テスト
    設計
    テスト
    実装
    テスト
    実行

    View Slide

  22. テスト分析
    テスト設計の方針も考える
    例えば…
    ● 正しい組み合わせでログインできるか
    ● ログイン失敗時、エラーメッセージが適切か
    ● パスワードの入力欄はマスクされているか
    ● 指定回数以上ログイン失敗した場合、ロックされるか
    ○ →境界値分析が使えそう…?
    テスト
    分析
    テスト
    設計
    テスト
    実装
    テスト
    実行

    View Slide

  23. 「どのようにテストするか」を考える
    ● 指定回数以上ログイン失敗した場合、ロックされるか
    同値分割、境界値分析、デシジョンテーブル、
    状態遷移、ユースケースなどのテスト技法を活用する。
    テスト設計
    5 6
    ロックされない ロックされる
    テスト
    分析
    テスト
    設計
    テスト
    実装
    テスト
    実行

    View Slide

  24. テスト実装
    テストの実行に必要なもの
    すべてを準備する。
    ● 手動テストの場合…
    手順書作成
    ● 自動テストの場合…
    テストスクリプト作成
    テスト
    分析
    テスト
    設計
    テスト
    実装
    テスト
    実行

    View Slide

  25. テストプロセスを意識した成果物を作成する理由
    ● テスト分析として「何をテストするのか」を
    決めていることで、テスト設計に役立てられる
    ● テスト設計の成果物を見ることで、
    どんなパターンをテストしようとしているのか
    把握しやすい
    ● テスト実装の成果物を見ることで、
    具体的にどんな値を用いてテストするのか
    把握しやすい

    View Slide

  26. テストプロセスを用いて
    開発プロセスの
    早い段階で
    テストの考えを注入する

    View Slide

  27. 早い段階でのテストの考えの注入
    要件定義 設計 実装
    テスト分析 テスト設計 テスト実装 テスト実行
    こういう内容をテストしよう
    具体的な期待値までは定義できないが…

    View Slide

  28. 早い段階でのテストの考えの注入の具体例
    [要求定義、要件定義]
    ログイン失敗が続いた場合、
    アカウントをロックしたい
    [テスト分析]
    指定回数以上失敗した場合に
    アカウントロックされるか確認しよう
    (この段階では具体的な回数を定めていない)

    View Slide

  29. テストプロセスを
    意識した成果物作成の
    注意点

    View Slide

  30. 技術を使っている≠テストプロセスを行っている
    右は、
    デシジョンテーブルっぽい
    書き方を用いた
    テスト手順書の例
    これはテスト設計ではなく
    テスト実装である

    View Slide

  31. 技術を使っている≠テストプロセスを行っている
    右は、
    マインドマップの記法を用いた
    テスト実行結果の例
    これはテスト分析ではなく
    テスト実行である

    View Slide

  32. おわりに

    View Slide

  33. JSTQBで示しているテストプロセス(全体)
    テスト
    計画
    テスト
    分析
    テスト
    設計
    テスト
    実装
    テスト
    実行 テスト
    完了
    テストのモニタリングとコントロール
    テストの目的と、
    制約内でテストの目的を
    達成するための
    アプローチを定義する
    計画した進捗と
    実際の進捗を
    継続的に比較する
    何をテスト
    するか
    を決定する
    どのように
    テストするか
    を決定する
    テストの実行に
    必要なもの
    すべてを準備する
    テストスイートを実
    行する
    完了したテストの
    データをまとめる
    ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2018V3.1.J03を参考に作成

    View Slide

  34. まとめ
    ● プロセスを細かく分けることによって、
    どの段階で何を考えるべきなのか明確にできる
    ● テストプロセスを分けて定義し、
    成果物を作成することで、
    テストプロセスの目的に沿ったものを把握できる
    ○ 成果物作成のための技術を学習する必要あり
    ● テストプロセスを分けて定義することで、
    開発プロセスの早い段階でテストの考えを注入できる

    View Slide

  35. おしまい

    View Slide