アジャイル テスト自動化フレームワーク
⚡ スマートサマリー
アジャイルテスト自動化は、要件が毎週変更される短いスプリント内で自動チェックを適用するものであり、安定したウォーターフォールリリース向けに構築されたテストスイートは、安全網というよりもすぐに保守上の負担となってしまう。

アジャイル自動化テスト
アジャイル自動化テスト これは、アジャイル開発プロセス内でテスト自動化を活用する手法です。その目的は、品質を維持し、リリースにかかる時間とリソースを管理しながら、ソフトウェア開発をより効果的かつ効率的にすることです。テストは機能開発と並行して作成されるため、開発者とテスター間の連携が非常に重要になります。
アジャイル手法がウォーターフォールモデルの面倒な現実を排除しようとして以来、その影響は 自動化テスト また、この2つの分野は意図的に組み合わせる必要がある。
ウォーターフォール型開発における自動化とアジャイル型開発における自動化の比較
従来のソフトウェアテストライフサイクルでは、アプリケーションが 安定しており、要件は満たされている. それは、 かなりの時間高度なスキルを持つ自動化スペシャリストと、それなりの初期費用がかかります。基本的な目的は、長期的にコストを削減し、既存のテストケース周辺で新たな欠陥が発生していないことを確認することです。
自動化テストは本質的に探索的なものではないなぜなら、その主な役割は時間とコストの節約にあるからです。新しい革新的な欠陥を発見するために設計されたものではありません。自動化テストは、主に既に存在する動作を確認するものです。
したがって、この2つの設定はテストスイートに全く異なる要求を課すことになる。
| 因子 | ウォーターフォールにおける自動化 | アジャイルにおける自動化 |
|---|---|---|
| アプリケーションの状態 | スクリプト作成開始前に安定性と承認が完了していることを確認する | スプリントごとに変更を加え、多くの場合、スクリプト作成中に変更を加える。 |
| 利用可能な時間 | 専用の自動化フェーズ | 1週間から4週間のスプリント期間内に収まるものなら何でも |
| 誰が脚本を書くのか | 自動化専門家からなる別のチーム | 配送チーム、テスター、開発者が一緒に |
| 主な目標 | 大規模な回帰分析スイート全体にわたる長期的なコスト削減 | 構築したばかりの増分に関する迅速なフィードバック |
| メンテナンスリスク | 低い。なぜなら要求はゆっくりと変化するからである。 | 要求は常に変化するため、高い。 |
アジャイル手法における自動化の方法
アジャイル開発手法は、その定義によれば、煩雑な文書作成を排除することで、新しいアイデアを迅速に実行に移し、人々が自由に交流できるようにすることを目的としています。書類作成よりも探索的な作業を重視するのです。
アジャイル開発手法の根本的な理念と自動テストの間には、実際には矛盾が存在します。アジャイルチームは、自動化する範囲を減らすのではなく、自動化する対象を絞り込むことでこの矛盾を解決します。つまり、機能開発と同じスプリント内でチェックを作成し、保守コストが最も低いユニットレベルやAPIレベルにまで落とし込み、すべてのビルドで実行します。
アジャイルテスト自動化の基本ポイント
スプリントのリソースを自動化に投入する前に、スクリプトがそもそも完成できるかどうかを決定する要素を検討してください。
- 設計およびコーディング時間: すべてのスクリプトは、本番環境のコードと同様に、設計、コーディング、レビューされなければならない。
- テストデータに対する検証: 完成したスクリプトは、信頼できるものとなる前に、既存のテストデータを用いて検証されなければならない。
- テストの目的: 機能テストと回帰テストは、それぞれ異なるメンテナンスコストと有効期間を伴う。
- Sprint 長さ: スプリントは1週間から4週間、最も一般的には2週間で行われるため、大規模なスクリプト作成作業を行う余裕はほとんど残されていない。
2つ目の要因は、要件の変更です。アジャイル開発は、定義上、顧客主導の変更に対応するための手法であるため、開発全体を通して頻繁な調整を行うのに適しています。
一方、自動化テストは、安定した要件に対して最も効果を発揮します。アジャイル開発手法のような絶え間ない変化には適していないため、自動化する量よりも、何を自動化するかという選択の方が重要になります。
アジャイル自動化ツール
関連する選択 自動化ツール アジャイル開発手法において自動化テストを導入する際のもう一つの重要な要素は、ライセンスによるセキュリティです。例えば、ライセンス付きの自動化ツールは、様々な種類やレベルのユーザーに対して厳格なセキュリティアクセス基準を課しており、そのテスト自動化フレームワークに属するリソースにアクセスできるユーザーを制限しています。
一方、アジャイル開発手法は、チームメンバー間のオープンなコラボレーションと自由な交流を重視します。アクセス制限的なポリシーは、こうした結束を阻害し、プロジェクトの成功に役立たない、あるいは貢献しない結果を生み出す可能性があります。
最優先事項は、アジャイルプロセスで許容される時間内に、質の高い自動化スクリプトを提供することです。テストケースの候補を慎重に選択することで、作成されたスクリプトを後で再利用でき、かつ割り当てられた時間内に完了させることができます。
アジャイル開発環境においても、いくつかのテストは実施する必要があります。特に回帰テストは重要です。次のセクションでは、自動化テストが適用される状況と、それぞれがアジャイルテストにどのように対応しているかを解説します。
自動化テスト Concepts アジャイルに適用する場合
以下の表は、テストの自動化を正当化する7つの典型的な条件を取り上げ、それぞれに対するアジャイルな解決策を示しています。アジャイルのスプリントにスムーズに移行できるのは3つのみで、その3つはいずれも回帰テストの形式をとっています。
| # | 自動化テストの概念 | アジャイル手法に関する回答 |
|---|---|---|
| 1 | この検査は頻繁に繰り返す必要がある。 | ここで回帰テストという概念が登場する。 |
| 2 | テストのワークフローと検証方法は、時間の経過とともにゆっくりと進化し変化していく。 | アジャイルテストには適していません。アジャイルテストでは、要件が頻繁に変更されるためです。 |
| 3 | このテストは、見た目や操作性、色、テーブルレイアウトではなく、ビジネスプロセスやワークフローを検証するものです。 | このシナリオは、手動テストを伴うものと考えることができます。 |
| 4 | この検査は、規制機関に結果を提出するものであり、規制機関は、その結果を法令遵守の正式な証拠として電子的に記録し、保管することを要求する。 | 徹底的なレベルの文書化はアジャイル開発手法の一部ではないため、アジャイル開発手法には適していません。 |
| 5 | このテストは非常に反復的であるか、毎回全く同じように実行しなければならない手順が多く、手作業によるテスト担当者の疲労を避ける必要がある。 | アジャイル開発手法には適していません。 |
| 6 | 選択した自動化ツールを使用すれば、テストの合否結果を比較的容易に判定し、記録することができる。 | アジャイルテストにおける回帰テストなど、反復的で骨の折れる作業を必要とする場合に適しています。 |
| 7 | テストでは、アプリケーションに大量のデータを投入する必要がある。 | 回帰テストとして組み込むことができます。 |

.jpg)


