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

オレオレになりがちなテスト計画を見直した話

 オレオレになりがちなテスト計画を見直した話

Scrum Fest Niigata 2023 RoomD 15:30-16:00 の登壇資料です

terahide

May 20, 2023
Tweet

More Decks by terahide

Other Decks in Technology

Transcript

  1. 良くないなーと思い見直すことに • ソフトウェアテストの国際規格「ISO/IEC/IEEE 29119」 • 2007年に作成が始まった。最初のPart1は2013年に公布され、最 後のPart5は、2016年に公布された • Part1~5で構成される •

    Part1 概念と定義 • Part2 テストプロセス • Part3 テストドキュメント • Part4 テスト技法 • Part5 キーワード駆動テスト ISBN-10:499113790X てらひではこちらの書籍で 学ばさせて頂きました 大変感謝しております
  2. ISO/IEC/IEEE 29119 における適用分野 • すべての産業分野 • セーフティクリティカルおよびそれ以外のシステム • 探索的テストおよびスクリプトテスト •

    伝統的なモデル(例えば、ウォーターフォール、V字モデル) やアジャイル(例えばスクラム、カンバン、ハイブリッド)を含 むすべてのライフサイクルモデル • 自動テスト ほぼ全てのプロジェクトで適用が可能
  3. テスト計画 • 状況の把握 • どのような機能が期待されているかを知ることが有効 • システムに何を期待しているかを各ステークホルダと会話する • リスクの特定 •

    ステークホルダによってすでに特定されているリスクを確認 • 更なるリスクを特定する • リスクの評価 • 相対的なリスクスコア(発生率x影響)に合意する • リスクの低減 • リスクを管理するためのオプションを特定する • リスク低減の措置としてなんのテスト(テストレベル・テスト技法)を行うかを決める • テスト戦略の設計 • 個別リスクに基づくテスト戦略 • どのテストレベルでどのテスト技法を用いてテストを行い、どこまでテストすれば完 了か(網羅性)を記載する
  4. 1次元:点と線とテスト技法 Part4 テスト技法より • 同値分割法 • 境界値分析 配送料 1kg未満 500円

    1kg以上 1000円 5kg以上 ※配送不可 1kg 5kg 同値パーテーション 同値パーテーション 同値パーテーション 200gでも500gで も500円 2kgでも3kgでも 1000円 5kgでも10kgでも 配送不可 境界値 境界値 値の正当性
  5. 2次元:面とテストターゲットとテストケース • テスト対象の網羅性 • テスト戦略設計の中で、どのテストターゲットをどれだけテストすればそのリ スクが低減できるかを考えると網羅を考える必要が出てくることもある。ま るで面で潰すかのように Part4 テスト技法より •

    状態遷移テスト • ディシジョンテーブル • 組み合わせテスト #1 #2 #3 #4 室温が21℃未満 T T F F 20℃に設定 T F T F 冷たい空気が出る F - T - 麺 タレ スープ #1 細麺 味噌 鶏がら #2 中太 塩 とんこつ #3 太麺 醤油 煮干しT 現状のス テータス イベント 期待す る結果 #1 A あ B #2 B い C #3 B う D #4 C え A A B C D イベント:あ い う え 麺 細麺 中太 太麺 タレ 味噌 塩 醤油 スープ 鶏がら とんこつ 煮干し 以下組み合わせが続く。。。 状態遷移テスト ディシジョンテーブル 組み合わせテスト 値の正当性 網羅性
  6. 3次元:立体とテストレベル • それぞれのリスクに対して、 • どのテストレベルで • どのテスト技法を用いてテストを行い • どこまでテストすれば完了か 値の正当性

    網羅性 テストレベル の妥当性 単体テスト 結合テスト 受入 テスト テストレベル ID プロダクトリスク スコア テストレベル テスト手法 R1 顧客が登録できない 6 単体テスト 状態遷移テスト 結合テスト シナリオテスト 受入テスト 探索的テスト R2 顧客が予約できない 6 単体テスト 状態遷移テスト デシジョンテーブルテスト 結合テスト シナリオテスト 受入テスト 探索的テスト R3 システム応答時間が遅すぎる 3 性能テスト ...省略 自動テスト • コードをビルドする前に静的解析を行って、不正を除去すること • 全てのコードにおいて100%のステートメントカバレッジを達成し、再利用 可能なテストケースと共にコミットすること 手動テスト • 単体テストのディシジョンテーブルに基にしたシナリオを作成し、正常系、異 常系とも網羅すること テスト計画書の例(テスト戦略部分の抜粋) テスト完了条件の抜粋 ある程度は「ルール」となる
  7. 4次元:時間軸とShift Left Testing • ※ ISO/IEC/IEEE 29119 から離れます 値の正当性 網羅性

    テストレベル の妥当性 time Shift Left Testingとは? この場では「思ったタイミングより早いタイミングでテストのことを考える・始める」 くらいの意 テストファースト テストコード プロダクション コード 先にテストを書く テストを成功させる プロダクションコードを書く テストを成功したら 次のテストを書く 受入テスト駆動開発 受 入 テ ス ト スプリント 受入テスト仕様 プランニング バックログリ ファインメント • そのバックログが開発され るスプリントが始まる前に 受入条件(受入テスト 仕様)を作成しておく • プランニングのインプットや 受入テストで使用する • それによりよりバックログの 理解が深まるとともに受入 テストを円滑に進めること ができる TF ATDD
  8. スクラムへの適応 • スクラムガイド 2020には 「完成の定義を満たさない限り、 作業をインクリメントの一部とみなすことはできない」 • 完成の定義に「ルール」を • 個別のリスクはスプリント単位でテスト計画を

    スプリント 出荷可能な インクリメント DoD テスト計画 実装 テスト ※実際のテストの作業は • テスト設計・実装 • テストの実行 • テストのモニタリング • インシデントの対応 など複数の作業となりますがここでは省略しています Part2 テストプロセス 参照
  9. 事例:受入テスト駆動開発 Given When Then 例: 一覧画面で アイテムを選ぶと 詳細画面が表示される 選択したアイテムが表示される (右のExcelを

    見せて) これ埋められま せんか? スプリント バックログ 受入 テスト仕様 受入 テスト 顧客 開発者 • 基本的には計画駆動(作るものが決まっている) • スプリントが始まるまでに、そのスプリントで消化予定の バックログの受入テスト仕様を作成(顧客) • 開発のスプリントでその仕様を元にGherkin形式に対 応したテストフレームワークで自動化 • 自動化できるものは自動化、そうでないものは手動で (TestRailを使って見える化) たぶんで きそう Excel