アート・オブ・アプリケーション パフォーマンステスト

[cover photo]
この商品は品切れ再入荷未定です

世の中に存在するシステムは、多かれ少なかれパフォーマンス上の問題を抱えています。問題の解決には、パフォーマンステストを適切に実施し、ボトルネックを浮き彫りにすることが有効です。本書は、精度の高いパフォーマンステストを求める人のための技術書です。パフォーマンステストの論理的根拠、効果的なテスト構成要素など基礎的なことから、パフォーマンステストのプロセス、結果の解釈、またトランザクション例など発展的な内容まで、パフォーマンステストを包括的に解説します。ミッションクリティカルなソフトウェア開発者、テスター、プロジェクトマネージャ必読の一冊です。

関連書籍

キャパシティプランニング

訳者まえがき
はじめに

1章 なぜパフォーマンステストをするのか?
    1.1 パフォーマンステストとはなにか:エンドユーザの視点
        1.1.1 パフォーマンス計測
        1.1.2 パフォーマンス標準
        1.1.3 インターネット効果
    1.2 劣悪なパフォーマンス:なぜ一般的なのか
        1.2.1 ITビジネス価値曲線
        1.2.2 パフォーマンステストの成熟度:アナリストが考えること
        1.2.3 アプリケーション設計におけるパフォーマンスの考慮の欠如
        1.2.4 パフォーマンステストは最後まで残される
        1.2.5 どれぐらいのユーザがいるのか
        1.2.6 人気を過小評価する
        1.2.7 パフォーマンステストは、いまだに非公式の分野
        1.2.8 自動テストツールを使用しないと
        1.2.9 アプリケーション技術の影響
    1.3 まとめ

2章 効果的なアプリケーションパフォーマンステストの基礎
    2.1 適切なパフォーマンステストツールを選択する
        2.1.1 テストツールのアーキテクチャ
        2.1.2 自動パフォーマンステストツールで何を探すか
        2.1.3 代替案
    2.2 適切なパフォーマンステスト環境の設計
        2.2.1 仮想化
        2.2.2 負荷の最大容量
        2.2.3 様々な展開モデルを扱う
        2.2.4 環境チェックリスト
        2.2.5 ソフトウェアインストールの制約
    2.3 現実的で適切なパフォーマンスターゲットを設定する
        2.3.1 意見の一致
        2.3.2 主要なパフォーマンスターゲット
        2.3.3 可用性、または起動時間
        2.3.4 同時接続数、スケーラビリティとスループット
        2.3.5 応答時間
        2.3.6 ネットワーク使用率
        2.3.7 サーバ使用率
    2.4 パフォーマンステストのためにアプリケーションが十分安定していることを確認する
    2.5 コードをフリーズさせる
    2.6 ビジネスクリティカルなトランザクションを特定し、スクリプトを書く
        2.6.1 トランザクションチェックリスト
        2.6.2 トランザクション再生の検証
        2.6.3 なにを計測するか?
        2.6.4 ログインするべきか否か
        2.6.5 平和な共存
    2.7 質の高いテストデータを提供する
        2.7.1 入力データ
        2.7.2 目標データ
        2.7.3 実行データ
        2.7.4 データセキュリティ
    2.8 正確なパフォーマンステスト設計を保証する
        2.8.1 トランザクションの実行間隔
        2.8.2 負荷挿入プロファイル
        2.8.3 トランザクションごとの仮想ユーザの数を決める
        2.8.4 パフォーマンステストの種類を決める
        2.8.5 負荷の挿入ポイント
        2.8.6 全て一緒に配置する
    2.9 サーバとネットワークの主要なパフォーマンス指標(KPIs)を特定する
        2.9.1 サーバKPIs
        2.9.2 ネットワークKPIs
    2.10 パフォーマンステストに十分な時間を効果的に割り当てる
    2.11 まとめ

3章 パフォーマンステストのプロセス
    3.1 コンセプトの証明(Proof of Concept, POC)
        3.1.1 コンセプトの証明(POC)のチェックリスト
    3.2 要件からパフォーマンステストへ
        3.2.1 実施期間のガイドライン
        3.2.2 ステップ1:契約前における要件の捕捉
        3.2.3 ステップ2:テスト環境の構築
        3.2.4 ステップ3:トランザクションスクリプトの作成
        3.2.5 ステップ4:パフォーマンステストの構築
        3.2.6 ステップ5:パフォーマンステストの実行
        3.2.7 ステップ6(テスト後のフェーズ):結果の分析、レポート、再テスト
    3.3 事例研究1:オンラインバンキング
        3.3.1 アプリケーション実行環境
        3.3.2 アプリケーションユーザ
        3.3.3 ステップ1:実施前の要件捕捉
        3.3.4 ステップ2:テスト環境の構築
        3.3.5 ステップ3:トランザクションのスクリプト作成
        3.3.6 ステップ4:パフォーマンステストの構築
        3.3.7 ステップ5:パフォーマンステストの実行
        3.3.8 オンラインバンキングの事例研究のレビュー
    3.4 事例研究2:コールセンター
        3.4.1 アプリケーションの実行環境
        3.4.2 アプリケーションユーザ
        3.4.3 ステップ1:実施前における要件の捕捉
        3.4.5 ステップ2:テスト環境の構築
        3.4.6 ステップ3:トランザクションのスクリプト作成
        3.4.7 ステップ4:パフォーマンステストの構築
        3.4.8 ステップ5:パフォーマンステストの実行
        3.4.9 コールセンター事例研究のレビュー
    3.5 まとめ

4章 結果の解釈:効果的な根本原因の分析
    4.1 分析手順
        4.1.1 リアルタイム分析
        4.1.2 テスト後の分析
    4.2 パフォーマンステストの出力の種類
        4.2.1 統計学入門
        4.2.2 応答時間の計測
        4.2.3 スループットと最大容量
        4.2.4 主要パフォーマンス指標(KPI)の計測
        4.2.5 サーバKPIパフォーマンス
        4.2.6 ネットワークKPIパフォーマンス
        4.2.7 負荷挿入パフォーマンス
    4.3 根本原因の分析
        4.3.1 スケーラビリティと応答時間
        4.3.2 さらに深掘りする
        4.3.3 アプリケーションサーバの内部
        4.3.4 「ひざ」を発見する
        4.3.5 エラーを扱う
        4.3.6 ベースラインデータ
    4.4 分析チェックリスト
        4.4.1 テスト前のタスク
        4.4.2 テスト実行中のタスク
        4.4.3 テスト後のタスク
    4.5 まとめ

5章 アプリケーション技術とそのパフォーマンステストへの影響
    5.1 非同期JavascriptとXML(AJAX)
        5.1.1 プッシュ型 対 プル型
    5.2 Citrix
        5.2.1 Citrixのチェックリスト
    5.3 HTTPプロトコル
        5.3.1 ウェブサービス
        5.3.2 .NET Remoting
        5.3.3 ブラウザのキャシュ
        5.3.4 Secure Sockets Layer(SSL)
    5.4 Java
    5.5 Oracle
        5.5.1 Oracle Two-Tier
        5.5.2 Oracle Forms Server(OFS)
        5.5.3 Oracleチェックリスト
    5.6 SAP
        5.6.1 SAPチェックリスト
    5.7 サービス指向アーキテクチャ(SOA)
    5.8 Web 2.0
        5.8.1 Windows Communication Foundation(WCF)と
 Windows Presentation Foundation(WPF)
    5.9 変わったアプリケーション技術:助けて! 負荷テストツールが記録してくれない
        5.9.1 失望して諦める前に
        5.9.2 ミドルウェア層で記録するための代替手法
        5.9.3 手動でのスクリプト作成

付録A トランザクション例

付録B POCとパフォーマンステストのクイックリファレンス
    B.1 コンセプトの証明
        B.1.1 コンセプトの証明のチェックリスト
    B.2 パフォーマンステスト実施のチェックリスト
        B.2.1 実施期間のガイドライン
        B.2.2 ステップ1:契約前における要件の捕捉
        B.2.3 ステップ2:テスト環境の構築
        B.2.4 ステップ3:トランザクションスクリプトの作成
        B.2.5 ステップ4:パフォーマンステストの構築
        B.2.6 ステップ5:パフォーマンステストの実行
        B.2.7 ステップ6(テスト後のフェーズ):結果の分析、レポート、再テスト
    B.3 分析チェックリスト
        B.3.1 テスト前のタスク
        B.3.2 テスト実行中のタスク
        B.3.3 テスト後のタスク

付録C 自動パフォーマンスツールベンダ
    C.1 アプリケーションパフォーマンスの最適化
    C.2 負荷テストとパフォーマンステスト
        C.2.1 無料ツール
        C.2.2 遠隔からのウェブのパフォーマンステストと監視
        C.2.3 機能テスト
    C.3 要件管理
        C.3.1 無料ツール
    C.4 サービス指向アーキテクチャ(SOA)テスト

付録D KPI監視のテンプレート例
    D.1 Windowsの汎用KPI:カウンター
        D.1.1 アプリケーション特有のKPIテンプレート

付録E プロジェクトプラン例

索引

Feedback

皆さんのご意見をお聞かせください。ご購入いただいた書籍やオライリー・ジャパンへのご感想やご意見、ご提案などをお聞かせください。より良い書籍づくりやサービス改良のための参考にさせていただきます。
[feedbackページへ]