書籍概要

ソフトウェアテスト徹底指南書
〜開発の高品質と高スピードを両立させる実践アプローチ

著者
発売日
更新日

概要

本書を通して,ソフトウェアテストの知識・技術を体系的に学びます。そしてその中でテストによって次の課題にどのように対応していくか学び,現代的なソフトウェア開発に対応するため総合力・基礎力を強化します。

  • 開発成功や顧客満足実現をどう支えるか
  • 開発の高品質と高スピードの両立を支えるアプローチとは
  • アジャイルや継続的デリバリー,DevOpsの導入にどう対応するか
  • テスト自動化といったテスト技術導入を成功させるには
  • チーム全体でテストを推進していくためには
  • 定番のテスト失敗要因に対しマネジメントでどう対策すべきか

こんな方におすすめ

  • テストエンジニアやQAエンジニアにこれからなる人
  • テストに疎いが,テストに関わることになった開発者やマネージャ
  • 旧来のテストと,モダンな開発現場で求められるテスト技術のギャップに悩んでいる人
  • 個々の担当ごとのテストの遂行はできているが,それらを連携させた,チーム全体のテストの体制構築や戦略立てをどうすればよいか悩んでいる人

サンプル

目次

PartI ソフトウェアテストと品質マネジメント

第1章 ソフトウェアテストとは

  • 1.1 ソフトウェアテストの目的
  • 1.2 高スピードと高品質の両立を支えるソフトウェアテスト
  • 1.3 ソフトウェアテストの課題

第2章 品質マネジメントとソフトウェアテスト

  • 2.1 ソフトウェアテストの強みを活かし弱みを補う
  • 2.2 品質マネジメント
  • 2.3 品質マネジメントシステムの実現
  • 2.4 品質マネジメントの視座でソフトウェアテストを活用する
  • 2.5 ソフトウェア開発に求められる品質マネジメント
  • 2.6 品質マネジメントを担う部門の陳腐化
  • 2.7 品質とは

第3章 ソフトウェアテストの全体像

  • 3.1 テストに関わる概念と用語
  • 3.2 テストの構成要素

PartII テストの戦略とプロセス

第4章 テストの戦略立て

  • 4.1 テスト戦略とは
  • 4.2 テスト戦略の構築

第5章 定番のテスト戦略

  • 5.1 シフトレフトテストの戦略
  • 5.2 リグレッションテストの戦略
  • 5.3 Wモデルの戦略
  • 5.4 シフトライトテストの戦略

第6章 アジャイル開発でのテスト戦略

  • 6.1 アジャイル開発の価値・原則を支えるテスト戦略
  • 6.2 アジャイルテストの原則
  • 6.3 アジャイルテストの四象限
  • 6.4 アジャイル開発プロセスへの対応
  • 6.5 顧客満足やビジネス価値よりアジャイルの形式を優先しない
  • 6.6 リリーススプリントのリスクに対応する
  • 6.7 ゾンビスクラムとその対策

第7章 継続的デリバリーでのテスト戦略

  • 7.1 継続的デリバリーとは
  • 7.2 デプロイメントパイプラインとは
  • 7.3 継続的デリバリーを支えるテストアプローチ
  • 7.4 継続的デリバリーで活用できるテストアプローチ
  • 7.5 継続的デリバリーのテストを支える体制

第8章 DevOpsでのテスト戦略

  • 8.1 DevOpsとは
  • 8.2 継続的テストとは
  • 8.3 ホリスティックテストとは
  • 8.4 DORA Four Keysとテストでの対応
  • 8.5 DevOpsを支えるテストの体制
  • 8.6 DevOpsを支えるテストのアプローチ

第9章 ソフトウェアプロダクトライン開発でのテスト戦略

  • 9.1 ソフトウェアプロダクトライン開発とは
  • 9.2 ソフトウェアプロダクトライン開発のプロセス
  • 9.3 ソフトウェアプロダクトライン開発を支えるテスト体制
  • 9.4 ソフトウェアプロダクトライン開発を支えるテストアプローチ

第10章 テストを支えるプロセスの構築と運用

  • 10.1 開発プロセスとは
  • 10.2 テストを支える開発プロセス設計
  • 10.3 テストプロセス設計
  • 10.4 開発プロセス・テストプロセスの構築の流れ
  • 10.5 関連プロセスの整備
  • 10.6 テストプロセスの改善

PartIII テストの作成と実行

第11章 テストの分析・設計・実装の全体像

  • 11.1 テストの作成で求められる工夫
  • 11.2 テストを作成する全体の流れ

第12章 テスト基本分析

  • 12.1 テスト基本分析とは
  • 12.2 テスト要求・制約のステークホルダを特定する
  • 12.3 必要なテストベースを特定する
  • 12.4 テストの要求・制約を収集し分析する
  • 12.5 テスト対象を整理し理解する
  • 12.6 プロダクトリスクを分析する
  • 12.7 必要なテスト環境を分析する
  • 12.8 テストの責務を具体化する

第13章 テストアーキテクチャ設計

  • 13.1 テストアーキテクチャとは
  • 13.2 テストアーキテクチャ設計とは
  • 13.3 テストアーキテクチャ設計の進め方
  • 13.4 テストアーキテクチャの評価と改善
  • 13.5 高スピードと高品質を両立させるテストアーキテクチャ設計

第14章 テストアーキテクチャ設計手法:VSTeP

  • 14.1 VSTePとは
  • 14.2 VSTePの基本概念
  • 14.3 VSTePの進め方
  • 14.4 まとめ

第15章 テスト詳細分析とテスト設計

  • 15.1 テスト詳細分析・テスト設計とは
  • 15.2 テスト詳細分析・テスト設計
  • 15.3 テスト観点を識別・整理する
  • 15.4 テスト設計のアンチパターン:CPM 法
  • 15.5 テスト対象を項目分けする
  • 15.6 テスト条件を分析する
  • 15.7 テスト網羅基準を検討する
  • 15.8 テストケースを設計する
  • 15.9 テスト設計からフィードバックしてテストベースを改善する
  • 15.10 テスト設計を保守・改善する

第16章 テスト設計技法の活用

  • 16.1 テスト設計技法とは
  • 16.2 テスト設計技法のタイプ
  • 16.3 同値分割法
  • 16.4 境界値分析
  • 16.5 クラシフィケーションツリー法
  • 16.6 デシジョンテーブルテスト
  • 16.7 状態遷移テスト
  • 16.8 nワイズテスト
  • 16.9 エラー推測
  • 16.10 制御フローテスト
  • 16.11 テスト設計技法の使い分け

第17章 応用的なテスト設計のアプローチ

  • 17.1 ユニットテストのテスト設計
  • 17.2 性能テストのテスト設計アプローチ
  • 17.3 組み合わせに対するテスト設計アプローチ

第18章 テスト実装

  • 18.1 テスト実装とは
  • 18.2 テスト手順の作成
  • 18.3 テストの選択・絞り込み
  • 18.4 予測的テスト選択(Predictive Test Selection)
  • 18.5 テストの優先付け・順序設定

第19章 テスト環境の構築

  • 19.1 テスト環境構築の重要性
  • 19.2 テスト環境構築のプロセス
  • 19.3 テスト環境構築からテストへの逆提案
  • 19.4 テスト環境の品質を作りこむ
  • 19.5 テスト環境のテスト

第20章 テストの実行と結果判定

  • 20.1 テスト実行を準備する
  • 20.2 テストを実行する
  • 20.3 テスト実行の学習効果を活かす
  • 20.4 忍者式テスト
  • 20.5 バグを報告する
  • 20.6 テスト結果を評価しリリース判定する

第21章 リスクベースドテスト

  • 21.1 リスクベースドテストとは
  • 21.2 リスクとリスクマネジメント
  • 21.3 リスクマネジメントの活動
  • 21.4 リスクベースドテストの概要
  • 21.5 リスク事象に基づいてテストする
  • 21.6 機能や特性ごとのリスクレベルに基づいてテストする
  • 21.7 構成要素ごとのリスクレベルに基づいてテストする
  • 21.8 リスクベースドテストの恩恵

第22章 探索的テスト

  • 22.1 探索的テストとは
  • 22.2 探索的テストのスタイル
  • 22.3 探索的テストの効果を引き出す

第23章 ユーザーストーリーテスト

  • 23.1 ユーザーストーリーテストとは
  • 23.2 ユーザーストーリーの記述
  • 23.3 ユーザーストーリーテストの進め方

第24章 静的テスト

  • 24.1 静的テストとは
  • 24.2 レビュー
  • 24.3 静的解析
  • 24.4 静的テストで支えるコーディング規約
  • 24.5 デプロイメントパイプラインへの静的テストの統合
  • 24.6 静的テストで動的テストを削減する

PartIV 自動テストの活用

第25章 自動テストの活用

  • 25.1 自動テストとは
  • 25.2 自動テストの効果
  • 25.3 自動テストの注意点
  • 25.4 自動テストの成功とは
  • 25.5 テストレベルに応じた自動テストの構築
  • 25.6 自動テストの構築・運用の流れと要点
  • 25.7 自動テストの成功を支えるチームと仕組み

第26章 自動テストの品質の作りこみ

  • 26.1 自動テストの保守性の確保
  • 26.2 レガシーテスト / テストの技術的負債への対応
  • 26.3 脆いテスト(フラジャイルテスト)への対応
  • 26.4 自動テストの信頼性の確保
  • 26.5 フレーキーテストへの対応

第27章 自動テストの評価

  • 27.1 自動テストの目的達成と費用対効果を評価する
  • 27.2 自動テストの評価
  • 27.3 フォールトインジェクションの必要性
  • 27.4 ミューテーションテストによる評価

第28章 自動テストの設計・実装の原則

  • 28.1 プロダクトコードと同じように設計・実装を工夫する
  • 28.2 FIRSTの原則
  • 28.3 「 DRYではなくDAMP」の原則
  • 28.4 xUTPの原則

第29章 自動テストコードのパターンやイディオム

  • 29.1 パラメータ化テスト / データ駆動テスト
  • 29.2 ドメイン特化テスト言語 / Robotパターン / Page Objectパターン
  • 29.3 プロパティベーステスト / メタモルフィックテスト
  • 29.4 テスト設計自動化におけるテストオラクル問題への対応
  • 29.5 テストダブルのパターン

第30章 開発者テスト

  • 30.1 開発者テストとは
  • 30.2 保護して変更する(Cover & Modify)
  • 30.3 リファクタリングのためのリグレッションテスト
  • 30.4 仕様書としてのテスト(TaD)/ 仕様化テスト
  • 30.5 「テストがないコードはレガシーコードだ」
  • 30.6 デバッギングテスト
  • 30.7 責任をもって自分のコードに対する自動テストを書く

第31章 テスト駆動開発

  • 31.1 テスト駆動開発の概要
  • 31.2 テスト駆動開発の進め方
  • 31.3 テスト駆動開発の実際の例
  • 31.4 テスト駆動開発のメリット
  • 31.5 テスト駆動開発の適用先と前提条件
  • 31.6 テスト駆動開発を持続可能にするための活動
  • 31.7 テスト駆動開発を導入しやすくするための留意点
  • 31.8 テスト駆動開発のプラクティス

PartV テストの計画とマネジメント

第32章 テスト計画

  • 32.1 テスト計画とは
  • 32.2 アンチパターン:テンプレート穴埋め計画
  • 32.3 テスト計画のタイミングや順序
  • 32.4 テスト計画の作業
  • 32.5 テスト計画の不確実性をマネジメントする
  • 32.6 技術やツールの実現性と持続可能性をマネジメントする
  • 32.7 テスト計画のためにチームの能力をマネジメントする
  • 32.8 シフトレフトによる平準化でテスト計画をサポートする
  • 32.9 テストの見積もりアプローチ
  • 32.10 アジャイル開発でのテスト計画

第33章 テストのモニタリングとコントロール

  • 33.1 テストのモニタリング
  • 33.2 事前のモニタリング設計
  • 33.3 テストのモニタリングの要点
  • 33.4 テスト活動のモニタリング対象
  • 33.5 不適切なモニタリング指標
  • 33.6 テストコントロール
  • 33.7 テストのモニタリングとコントロールの仕組みの構築
  • 33.8 クライシスマネジメントとしてのテストコントロール
  • 33.9 クライシスにテストエンジニアとしてどう対応するか
  • 33.10 プロダクト品質のモニタリング手法:健診テスト

第34章 プロジェクトリスクのマネジメント

  • 34.1 テストコントロールとして実施するリスクマネジメント
  • 34.2 ネガティブなプロジェクトリスクはチャンス
  • 34.3 リスクマネジメントの活動
  • 34.4 プロジェクトリスクのマネジメントの要点

第35章 テストで求められる能力

  • 35.1 テストで求められる能力
  • 35.2 テストを支えるソフトスキル
  • 35.3 テストを支えるロール
  • 35.4 テストに関わるスキルモデル / ロールモデル
  • 35.5 個の力と組織の力の両方が求められるテスト活動

第36章 テストを担う組織の構築

  • 36.1 人材の採用
  • 36.2 ロール横断による人材獲得
  • 36.3 テストの適切なコミュニケーションを支える三本柱と心理的安全性
  • 36.4 テストに関わるチーム文化の形成
  • 36.5 テストを担う組織作りの方針
  • 36.6 チーム全体アプローチ

PartVI テストを支える技術

第37章 CI/CDの構築

  • 37.1 テストを支えるCI/CDの価値
  • 37.2 CI/CDとは
  • 37.3 CI/CDを支える開発インフラ
  • 37.4 CI/CDの導入
  • 37.5 CI/CDによるフェーズテスト方式の進化

第38章 バグ管理とバグチケット設計

  • 38.1 バグ管理とバグ管理システム
  • 38.2 バグチケットの運用やフロー,フィールドの設計
  • 38.3 バグの分析
  • 38.4 ODC 分析

第39章 テスト容易性の確保

  • 39.1 テスト容易性とは
  • 39.2 テスト容易性の重要性
  • 39.3 テスト容易性の確保
  • 39.4 テスト容易性を拡張可能にする実装例
  • 39.5 テスト容易性をいつ確保するか

第40章 テスト設計を支えるモデリング

  • 40.1 モデリングとは
  • 40.2 モデリングの立脚点となる観点分析
  • 40.3 テスト設計を支えるモデリング
  • 40.4 テスト設計におけるモデリングの活用例

第41章 テストを支える契約による設計

  • 41.1 契約による設計 / 責務設計とテスト
  • 41.2 契約による設計とは
  • 41.3 契約による設計で支えるテスト設計
  • 41.4 表明による契約遵守の確認

第42章 ソースコードのブランチ管理とテストの連携

  • 42.1 自動テストに影響するブランチ管理
  • 42.2 CI/CD方針,テスト方針と連動させたブランチ管理方針
  • 42.3 3分類ブランチの運用
  • 42.4 既存のブランチ戦略と3分類ブランチの関係性
  • 42.5 テスト活動をサポートするブランチ管理のプラクティス

第43章 システムエンジニアリングで支えるテスト

  • 43.1 システムとは
  • 43.2 ソフトウェアからシステムに視野を広げる
  • 43.3 システムエンジニアリングのプロセス
  • 43.4 システムエンジニアリングとして実施すべきテスト活動
  • 43.5 テストを支えるシステムエンジニアリング活動

サポート

現在サポート情報はありません。

商品一覧