システム開発の工程にはテストが含まれます。システムの品質・性能、利用ユーザーの満足度を向上させるためには重要な工程となります。
テストは大きく機能テストと非機能テストに分類されます。
-
機能テスト
ソフトウェアの各機能が仕様通りに動作するかを確認するテスト -
非機能テスト
ソフトウェアの性能や信頼性、使いやすさなど、機能以外の品質特性を確認するテスト
機能テストと非機能テストの概要ならびに目的を説明します。
機能テスト
単体テスト(Unit Test)
個々のモジュールや関数が正しく動作するかを確認するためのテストです。
開発者がコードの一部をテストし、バグを早期に発見・修正することを目的としています。
結合テスト(Integration Test)
複数のモジュールやコンポーネントが正しく連携して動作するかを確認するためのテストです。
システム全体の一部が統合された際に発生する問題を検出することが目的です。
システムテスト(System Test)
完成したシステム全体が仕様通りに動作するかを確認するためのテストです。
システム全体の機能や性能を検証し、リリース前の最終確認を行うことを目的としています。
受け入れテスト(Acceptance Test)
システムがユーザーの要求やビジネス要件を満たしているかを確認するためのテストです。
ユーザーやクライアントが実施し、システムの受け入れ基準を満たしているかを確認することを目的としています。
非機能テスト
性能テスト(Performance Test)
システムのパフォーマンスを評価するためのテストです。
システムがどのように動作するか、応答時間やスループットが要求を満たしているかを確認することを目的としています。
負荷テスト(Load Test)
システムが高負荷条件下でどのように動作するかを確認するためのテストです。
システムに予期される最大のユーザー数やトランザクション数に対する応答性を確認することを目的としています。
性能テストの一部としてまとめて実施される場合があります。
耐久テスト(Endurance Testing)
長時間にわたってシステムが安定して動作するかを確認するためのテストです。
システムの持続的なパフォーマンスを評価することを目的としています。
性能テストの一部としてまとめて実施される場合があります。
セキュリティテスト(Security Test)
システムのセキュリティ要件を満たしているかを確認するためのテストです。
脆弱性やセキュリティホールを発見し、システムの安全性を確保することを目的としています。
脆弱性診断会社に委託してテストを実施する場合があります。
以下の非機能テストはプロジェクトの要件・性質上、省略されることもあります。
操作性テスト(Usability Test)
システムのユーザビリティを評価するためのテストです。
ユーザーがシステムを使いやすいか、直感的に操作できるかを確認し、ユーザーエクスペリエンスを向上させることを目的としています。
内部システムやユーザーインターフェースがシンプルな場合は省略されることがあります。
コンフィグレーションテスト(Configuration Test)
システムが異なるハードウェアやソフトウェア環境で正しく動作するかを確認するためのテストです。
システムの互換性や設定の柔軟性を評価することを目的としています。
特定の環境でのみ動作するシステムや、環境が固定されている場合は省略されることがあります。
リカバリテスト(Recovery Test)
システムが障害からどのように回復するかを確認するためのテストです。
システムの回復能力やデータの整合性を評価し、障害発生時の対応策を確認することを目的としています。
障害が発生しても大きな影響がないシステムでは省略されることがあります。
アクセシビリティ テスト (Accessibility Testing)
障害のあるユーザー(視覚、聴覚、運動機能など)を含む全てのユーザーが問題なく利用できるかのテストです。
公共機関や広く一般に利用されるシステムでは省略できませんが、特定のユーザーグループのみが利用するシステムでは省略されることがあります。
ローカリゼーション テスト (Localization Testing)
特定の地域や言語設定に合わせてシステムが正しく機能し、表示されるかのテストです(例: 日付形式、通貨記号、翻訳の正確性)。
特定の地域や言語のみを対象とするシステムでは省略されることがあります。
最後に
各テストの目的を理解し、そして重要な事柄を見落とさないように、プロジェクトの特性を十分に理解し、適切なテスト計画を立てることが重要です。適切なテスト計画は、プロジェクトの品質を確保し、リスクを最小限に抑え、そしてテスト工程全体の透明性が高まり、関係者間の認識齟齬を防ぐことができます。

