Jの衝動書き日記

さらりーまんSEの日記でございます。

ソフトウエアテスト実践ガイドの読書メモ

ソフトウエア開発におけるテストは日陰者になりがちな分野である。プロジェクトが佳境に入るとまずはじめに削られるのはテストだし、訳の分からない並行線表が組まれたり(単体試験と結合試験の期間が半分以上被っている等)する。また、そこに従事するエンジニアもテスターなどと蔑まれたり、自分でも蔑んで(テストしかしたこと無い……などと言う)いたりする。重要度のわりには軽視されているところなのだ。

だが、この本を読めばそんな考えは一蹴される。優秀なテストエンジニアは下手な開発エンジニアよりも重要だし、また、そうなるには幅広いスキルが必要だと気づくのだ。少なくとも、プロジェクトが佳境に入ったからといって新人を大量投入すればよいものではないと気づく。……気づいて欲しいなぁ。

というわけで、要点をメモ書きしておく。テストばかり……と腐っている人にこそ読んでほしい本である。

テスト計画で大切なこと

  • テスト戦略:テストの目的設定が一番大事
    • テスト結果で何を証明しなければいけないか?
      • 実際にユーザが利用する構成のさまざまなバリエーションで問題が起きないこと
    • 品質特性はどれを重視するのか?
      • 機能性:合目的性、正確性、相互運用性、セキュリティ、適合性
      • 信頼性:成熟性、障害許容性、回復性、信頼性標準適合性
      • 使用性:理解性、修得性、運用性、魅力性、適合性
      • 効率性:時間効率性、資源効率性、効率性標準適合性
      • 保守性:解析性、変更性、安定性、試験性、適合性
      • 移植性:環境適応性、設置性、共存性、置換性、適合性
  • テスト設計の前に、開発プロジェクトのアウトプットを把握せよ
    • 仕様書ないとテスト出来ない

計画倒れパターン

  • 作業項目が足りない
  • 詳細すぎる計画を立ててしまう
    • WBSが細かすぎてタスクの自由度がない
  • テスト計画にバッファが全くない
  • 材料が不足している
    • 仕様のボリューム、納期、割り当て可能なリソースが不明確など
  • テスト担当のスキルがアンマッチ
  • テストをすべて自動化するプランを立てる
  • 経験不足

テスト設計で大切なこと

  • テスト設計はタイミングも大事
    • テスト対象が明確になり次第、随時テスト計画を詳細化する
    • 機能間の抽象度や粒度がそろっているか確認する
  • まずは目的設定からはじめる
    • テストで「何」を「どのように」検証するのか戦略を立てる → テスト設計のインプットになる
  • テストで確認すべきこと
    • 本当は何をテストすべきなのか?
    • テスト対象の仕様は何に基づいて策定されたのか
    • どういったシステム構成でテストをすべきなのか
    • テストの合否判定基準は何に基づいて決めればよいか
    • どこまでつっこんだテストをすべきなのか
    • どういった観点でテストをすべきか
  • テスト設計のアウトプット
    • テスト設計仕様
      • テスト項目の設計方針やテスト環境などを定義
    • テスト項目
      • テストで実施すべき項目を機能ごとに大別したもの
    • テストケース一覧
      • テストで実施する詳細内容をテストケース事に記載したもの
  • テストの構成管理
    • テスト対象システムの版管理は、テスト側がコントロール出来るようにしておく方がうまくいく
      • 変更が多い場合は、何度もビルドするのではなく、まとめて行う
    • 構成管理対象
      • テストケース
      • テストツール
      • テストドキュメント
  • テスト計画書に書く内容
    1. 目的
    2. テスト開始/終了条件
    3. テスト体制
    4. テストスケジュール
    5. テスト環境およびその他条件
    6. 実施対象となるテストの種類
      • 行うテストの内容 リグレッションテスト、パフォーマンステストなど
    7. 工程管理
      • テスト設計フェーズ、テスト実施フェーズ、クライアントへのリリース後など
    8. 問題処理方法
    9. テスト対象ファイル管理方法
    10. トレーニング計画
    11. リスクと対策

参考文献

ステップアップのためのソフトウエアテスト実践ガイド[改訂版]

ステップアップのためのソフトウエアテスト実践ガイド[改訂版]