ソフトウェアテストには、対象とする品質要件に応じて様々な「手法」が存在します。しかし、個別のテスト手法を断片的に学ぶだけでは、プロダクトの品質を総合的に高めることはできません。本書は、複数のテストを補完的に組み合わせて、あらゆる側面から品質を検証するための技術・戦略を、体系的に学べる骨太なガイドブックです。
取り上げるのは、以下10種のテスト手法。それぞれについて、テストの原理原則・導入戦略・実践方法を、具体的なWeb/モバイルアプリケーションでの適用例を交えながら詳しく解説します。
□手動探索的テスト
□自動テスト
□継続的テスト
□データテスト
□ビジュアルテスト
□パフォーマンステスト
□セキュリティテスト
□アクセシビリティテスト
□モバイルテスト
□機能横断要件テスト
本書は、各領域のテストを一貫した視点で解説するため、それぞれのテストの「役割」と「つながり」がよく理解できます。本書を通じて、広大なテスト分野を迷わず歩くための「体系的な知識地図」をインストールしてください。
■対象読者
・Web/モバイルアプリケーション開発に携わるエンジニア
・幅広いテスト領域を体系的に押さえたい品質保証/QAエンジニア
・テスト設計・戦略立案に必要な基盤知識を身につけたい人
・開発と品質保証を横断する視点を養いたい人
■第1章 フルスタックテスティングの概要
1.1 高品質のためのフルスタックテスティング
1.2 シフトレフトテスト
1.3 10個のフルスタックテスティングスキル
1.3.1 手動探索的テスト
1.3.2 自動機能テスト
1.3.3 継続的テスト
1.3.4 データテスト
1.3.5 ビジュアルテスト
1.3.6 セキュリティテスト
1.3.7 パフォーマンステスト
1.3.8 アクセシビリティテスト
1.3.9 機能横断要件テスト
1.3.10 モバイルテスト
■第2章 手動探索的テスト
2.1 構成要素
2.1.1 探索的テストフレームワーク
2.1.2 機能の探索
2.2 手動探索的テスト戦略
2.2.1 アプリケーションを理解する
2.2.2 部分的に探索する
2.2.3 フェーズごとに探索的テストを繰り返す
2.3 演習
2.3.1 API テスト
2.3.2 Web UI テスト
2.4 視点:テスト環境の「衛生管理」について
■第3章 自動機能テスト
3.1 構成要素
3.1.1 ミクロレベルとマクロレベルのテストタイプについて
3.2 自動機能テスト戦略
3.3 演習
3.3.1 UI 機能テスト
3.3.2 サービステスト
3.3.3 単体テスト
3.4 その他のテストツール
3.4.1 Pact
3.4.2 Karate
3.4.3 機能テスト自動化におけるAI/MLツール
3.5 視点
3.5.1 克服すべきアンチパターン
3.5.2 自動化カバレッジ100%!
■第4章 継続的テスト
4.1 構成要素
4.1.1 継続的インテグレーション入門
4.1.2 CI/CT/CDプロセス
4.1.3 原則と決まりごと
4.2 継続的テスト戦略
4.2.1 利点
4.3 演習
4.3.1 Git
4.3.2 Jenkins
4.4 Four keys
■第5章 データテスト
5.1 構成要素
5.1.1 データベース
5.1.2 キャッシュ
5.1.3 バッチ処理システム
5.1.4 イベントストリーム
5.2 データテスト戦略
5.3 演習
5.3.1 SQL
5.3.2 JDBC
5.3.3 Apache KafkaとZerocode
5.4 その他のテストツール
5.4.1 Testcontainers
5.4.2 Deequ
■第6章 ビジュアルテスト
6.1 構成要素
6.1.1 ビジュアルテストの概要
6.1.2 プロジェクト/ビジネスにとって重要なユースケース
6.2 フロントエンドテスト戦略
6.2.1 単体テスト
6.2.2 統合/コンポーネントテスト
6.2.3 スナップショットテスト
6.2.4 E2E 機能テスト
6.2.5 ビジュアルテスト
6.2.6 クロスブラウザテスト
6.2.7 フロントエンドパフォーマンステスト
6.2.8 アクセシビリティテスト
6.3 演習
6.3.1 BackstopJS
6.3.2 Cypress
6.4 その他のテストツール
6.4.1 AI 駆動のツール、Applitools Eyes
6.4.2 Storybook
6.5 視点:ビジュアルテストの課題
■第7章 セキュリティテスト
7.1 構成要素
7.1.1 よくあるサイバー攻撃
7.1.2 STRIDE脅威モデル
7.1.3 アプリケーションの脆弱性
7.1.4 脅威モデリング
7.2 セキュリティテスト戦略
7.3 演習
7.3.1 OWASP Dependency-Check
7.3.2 OWASP ZAP
7.4 その他のテストツールについて
7.4.1 Snyk IDEプラグイン
7.4.2 Talisman Pre-Commitフック
7.4.3 Chrome DevToolsとPostman
7.5 視点:セキュリティとは習慣である
■第8章 パフォーマンステスト
8.1 バックエンドパフォーマンステストの構成要素
8.1.1 パフォーマンス×売り上げ×週末セール
8.1.2 シンプルなパフォーマンス目標
8.1.3 アプリケーションのパフォーマンスを左右する要素
8.1.4 パフォーマンステストのKPI
8.1.5 パフォーマンステストのタイプ
8.1.6 負荷パターンのタイプ
8.1.7 パフォーマンステストを行うステップ
8.2 演習
8.2.1 目標とするKPIを設定する
8.2.2 テストケースを定義する
8.2.3 テストデータ・環境・ツールを準備する
8.2.4 JMeterを使ったテストケースのスクリプト化と実行
8.2.5 その他のテストツール
8.3 フロントエンドパフォーマンステストの構成要素
8.3.1 フロントエンドパフォーマンスに影響を与える要因
8.3.2 RAILモデル
8.3.3 フロントエンドパフォーマンスの指標
8.4 演習
8.4.1 WebPageTest
8.4.2 Lighthouse
8.4.3 その他のテストツール
8.5 パフォーマンステスト戦略
■第9章 アクセシビリティテスト
9.1 構成要素
9.1.1 アクセシビリティに関するユーザーのペルソナ
9.1.2 アクセシビリティのエコシステム
9.1.3 例:スクリーンリーダー
9.1.4 WCAG2.0:ガイドの原則とレベル
9.1.5 レベルAの達成標準
9.1.6 アクセシビリティの考慮された開発フレームワーク
9.2 アクセシビリティテスト戦略
9.2.1 ユーザーストーリーにおけるアクセシビリティチェックリスト
9.2.2 自動アクセシビリティ診断ツール
9.2.3 手動テスト
9.3 演習
9.3.1 WAVE
9.3.2 Lighthouse
9.3.3 Lighthouse Nodeモジュール
9.4 その他のテストツール
9.4.1 Pa11y CI Nodeモジュール
9.4.2 Axe-core
9.5 視点:文化としてのアクセシビリティ
■第10章 機能横断要件テスト
10.1 構成要素
10.2 機能横断要件テスト戦略
10.2.1 機能性
10.2.2 ユーザービリティ
10.2.3 信頼性
10.2.4 パフォーマンス
10.2.5 サポータビリティー
10.3 その他の機能横断要件テスト手法
10.3.1 カオスエンジニアリング
10.3.2 アーキテクチャーテスト
10.3.3 インフラテスト
10.3.4 コンプライアンステスト
10.4 視点:進化の可能性と時の試練!
■第11章 モバイルテスト
11.1 構成要素
11.1.1 モバイルの全体像
11.1.2 モバイルアプリのアーキテクチャー
11.2 モバイルテスト戦略
11.2.1 手動探索的テスト
11.2.2 自動機能テスト
11.2.3 データテスト
11.2.4 ビジュアルテスト
11.2.5 セキュリティテスト
11.2.6 パフォーマンステスト
11.2.7 アクセシビリティテスト
11.2.8 機能横断要件テスト
11.3 演習
11.3.1 Appium
11.3.2 Appiumビジュアルテストプラグイン
11.4 その他のテストツール
11.4.1 Android Studio のDatabase Inspector
11.4.2 パフォーマンステストツール
11.4.3 セキュリティテストツール
11.4.4 Accessibility Scanner
11.5 視点:モバイルテストピラミッド
■第12章 一歩先のテストへ
12.1 テストにおける本質的原則
12.1.1 欠陥の検知よりも欠陥の防止
12.1.2 共感的テスト
12.1.3 ミクロレベルとマクロレベルのテスト
12.1.4 高速なフィードバック
12.1.5 継続的なフィードバック
12.1.6 品質指標の計測
12.1.7 品質の鍵はコミュニケーションとコラボレーション
12.2 品質第一のマインドセットを作るのに役立つソフトスキル
■第13章 新しいテクノロジーにおけるテスト入門
13.1 人工知能(AI)と機械学習(ML)
13.1.1 機械学習入門
13.1.2 機械学習アプリケーションのテスト
13.2 ブロックチェーン
13.2.1 ブロックチェーンの考え方入門
13.2.2 ブロックチェーンアプリケーションのテスト
13.3 モノのインターネット(IoT)
13.3.1 IoT の5 層アーキテクチャー入門
13.3.2 IoT アプリケーションのテスト
13.4 拡張現実(AR)と仮想現実(VR)
13.4.1 AR/VR アプリケーションのテスト
■日本語版特別付録 2025年のフルスタックテスティング
A.1 探索的テスト
A.2 プロパティベーステスト
A.3 ミューテーションテスト
A.4 WebアプリケーションのUIを用いたテスト
A.4.1 Playwright
A.4.2 Selenium
A.4.3 ベストプラクティスの変化
A.5 ビジュアルテスト
A.6 AI・機械学習
A.7 ブロックチェーン
A.8 AIを用いたテスト