はじめに
テスト自動化エンジニアのシラバスを再度読み直し、各章をDailyで読めるようにしてみた
2.2 Evaluation Process for Selecting the Right Tools and Strategies を今回は翻訳・解説する
テスト対象システムの分析と適切なテスト自動化ソリューションの決定
テスト対象システム(SUT)はそれぞれ異なりますが、成功するテスト自動化ソリューション(TAS)を作るためには、いくつかの重要なポイントを考える必要がある。
- 要件の収集
テスト自動化エンジニア(TAE)は、SUTの範囲や機能を理解し、それに基づいて必要な要件を収集 - アプリケーションの種類
ウェブサービス、モバイルアプリ、ウェブアプリなど、異なる種類のアプリケーションは、それぞれ異なるテスト自動化の方法が必要。 - ステークホルダーとの協力
手動テスターやビジネス関係者と協力して、リスクやその対策を特定します。これにより、将来に役立つテスト自動化ソリューションを作ることができます。
このように、SUTの特性を理解し、関係者と協力してリスクを管理することで、効果的なテスト自動化を実現できる。
テスト自動化アプローチとアーキテクチャの要件を考える際には、以下のポイントを考慮する必要がある
- 自動化すべきテストプロセスの活動
例:テスト管理、テスト設計、テスト生成、テスト実行など。 - サポートすべきテストレベル
単体テスト、統合テスト、システムテスト、受け入れテストなど。 - サポートすべきテストタイプ
機能テスト、性能テスト、セキュリティテスト、回帰テストなど。 - サポートすべきテストの役割とスキルセット
テストエンジニア、テストマネージャー、開発者などの役割と、それぞれのスキルセット。 - サポートすべきソフトウェア製品、製品ライン、ファミリー
実装されるTASの範囲と寿命を定義するために、どのソフトウェア製品や製品ライン、ファミリーをサポートするか。 - TASと互換性のあるSUTの種類
テスト自動化ソリューションが対応する必要があるSUTの種類。 - テストデータの利用可能性とその品質
テストデータがどの程度利用可能であり、その品質がどの程度か。 - 到達不可能なケースをエミュレートするための方法
例:サードパーティアプリケーションが関与する場合など。
これらの要件を考慮することで、効果的で持続可能なテスト自動化ソリューションを設計することができます。
ツール評価の技術的な所見
SUTを分析し、これらの要件を満たすテスト自動化ツールを検討する。
すべての要件を満たす単一のツールは存在しない可能性が高い。
可能なツールに関する所見を記録し、直接的および間接的な要件を比較表に反映させることが役立つ(星取表)
比較表の目的は、特定の要件に基づいてツール間の違いを関係者に見せることです。
ツールの評価基準
テスト自動化ツールの評価にあたっては、以下の基準を考慮する必要があります。
-
言語とテクノロジ
ツールがサポートする言語やテクノロジが、プロジェクトの既存の技術スタックに適合しているか。
テストスクリプトの開発とメンテナンスの容易さ。 -
構成可能性
ツールのカスタマイズ性: 異なるテスト環境や実行構成に対応できるか。
動的または静的な設定値の利用が可能か。 -
テストデータ管理
テストデータの生成、管理、保管機能が充実しているか。
バージョン管理システムとの連携が可能か。 -
テストタイプのサポート
さまざまなテストタイプ(機能テスト、性能テスト、セキュリティテストなど)に対応できるか。 -
レポート機能
テスト結果をわかりやすくレポートできるか。
レポートのカスタマイズが可能か。 -
統合性
CI/CDツール(Jenkins、GitLab CI/CDなど)との連携が可能か。
テスト管理ツール(TestRail、Jiraなど)との連携が可能か。
他のプロジェクトツールとの連携が可能か。 -
拡張性とメンテナンス性
将来的な拡張やメンテナンスが容易か。
スケーラビリティ、変更可能性、互換性、信頼性に優れているか。
比較表の例
機能/要件 | ツールA | ツールB | ツールC | 優先度 |
---|---|---|---|---|
スクリプト言語 | Python | Robotframework | 高 | |
オブジェクト識別 | ◎ | × | 中 | |
テストデータ管理 | ◎ | 高 | ||
CI/CD統合 | △ | ◎ | 中 |