はじめに
テスト自動化エンジニアのシラバスを再度読み直し、各章をDailyで読めるようにしてみた
8 Continuous Improvement の中で「 Restructure the automated testware to align with SUT updates」と「Summarize opportunities for use of test automation tools」を今回は翻訳・解説する
ここでは引き続き、テスト自動化自身の改善を行なっていくことに関して書かれている
SUTの仕様変更に伴うテストウェアの再構築
SUTに仕様変更発生すると、TAS(Test Automation System)のTAFやコンポーネントライブラリにも対応する更新が必要になります。
些細な変更であっても、TASの信頼性やパフォーマンスに広範囲な悪影響を与える可能性があります。
テスト環境の変更を特定
まず、テスト環境のどの部分が変更されたのかを特定する。
そして、テストウェア、カスタマイズされた関数ライブラリ、オペレーティングシステムのどの部分に修正が必要かを評価します。
これらの変更は、TASのパフォーマンスに影響を与える可能性があります。
TASの変更と検証
TASの変更は、最小限の機能を段階的に追加するアプローチをとることで、影響を最小限に抑えることができる。
各変更を導入する際には、限られた範囲のテストスクリプトを実行して影響を確認します。
問題がないことが確認されたら、変更を全面的に適用します。
最後に、完全な回帰テストを実行して、変更が他のテストスクリプトに悪影響を与えていないことを検証します。
リグレッションテストの実行中に障害が発生した場合、テストレポート、テストログ、テストデータ分析を通じて根本原因を特定し、問題を解決します。
コアTAS関数ライブラリの効率化と効果化
TASが成熟するにつれて、タスクをより効率的に実行する方法が発見されます。
これらの新しい手法(コードの最適化、新しいオペレーティングシステムライブラリの使用など)を、現在のプロジェクトと将来のプロジェクトで使用されるコア関数ライブラリに組み込む必要があります。
複数の機能を統合して効率化
自動テストの実行において、GUI上のコントロールの操作は重要な役割を果たします。
コントロールの可視性、有効性、サイズ、データなどの情報を取得し、ドロップダウンリストからアイテムを選択したり、フィールドに入力したり、フィールドから値を読み取ったりするために、さまざまな関数を使用します。
これらの関数を統合することで、メンテナンスを最小限に抑えつつ、同じ結果を得ることができます。
SUTの変更に対応するためのTAAのリファクタリング
TAS(テスト自動化システム)のライフサイクル中には、SUT(システムアンダーテスト)の変更に対応するためにTAA(テスト自動化アーキテクチャ)を変更する必要があります。
SUTが進化するにつれて、TAAもそれに合わせて進化し、SUTをサポートできるようにする必要があります。
新しい機能を追加する際には、単に追加するのではなく、TAA全体を見直して変更することが重要です。
これにより、新しいSUT機能に対応するためのテストスクリプトが必要になった場合でも、互換性のあるコンポーネントが既に用意されているため、スムーズに対応できます。
命名規則の統一と標準化
テスト自動化コードや関数ライブラリに新しい要素を追加する際には、既存の命名規則に準拠することが重要です。
命名規則を統一することで、コードの可読性(統一された命名規則により、コードが読みやすくなる)とメンテナンス性(コードの変更や修正が容易になる)が向上します。
既存テストスクリプトの評価と最適化
SUTの変更や改善に伴い、既存のテストスクリプトの評価も重要です。
複雑で時間がかかるテストは、より小さなテストに分解することで、各テストの実行時間が短縮され、問題の特定が容易になり、効率化することができます。
また、頻繁に実行されていないテスト、重要度の低いテストは、削除することでTASの複雑性を軽減し、メンテナンス性を向上させることができます。
テスト自動化ツールの活用機会
テスト自動化は、実際のテスト以外にもさまざまな非特定的なテストアクティビティに役立ちます。
データエイジングの自動化
データエイジングとは、テストデータの有効期限を管理し、古いデータを更新または削除するプロセスです。
例えば、商品の有効期限やユーザーの登録日を更新することで、現実的なテストシナリオを構築できます。
テスト自動化を活用することで、このプロセスを効率的に自動化することができる。
スクリーンショットとビデオの自動生成
最新のUIテスト自動化ツールには、特定の条件下でスクリーンショットやビデオを自動的に生成し、保存する機能が組み込まれています。
これにより、テストチームはソフトウェアのリリースドキュメントやマーケティング目的のために、実際の使用状況をキャプチャしたスクリーンショットやビデオを簡単に作成できます。
具体的な活用例として以下のようなものがある
- テストケースの失敗時のキャプチャ
テストが失敗した際に、エラーの特定や再現のために、スクリーンショットやビデオを自動的に生成します。 - 特定のステップの記録
特定のテストステップの実行過程をビデオに記録し、テストレポートに添付します。 - ユーザー体験のシミュレーション
ユーザーの視点から、ソフトウェアの操作手順をビデオに記録します。 - ソフトウェアのデモ用素材の作成
マーケティング資料やセールス資料に使用するスクリーンショットやビデオを自動生成します。