フレームワークを使用して実装した場合、自動テスト(AT)が最も効果的です。 フレームワークという用語は 、ユニットテストツールを形成するオブジェクトのセットを表すためにATでよく使用されるという事実にもかかわらず、この記事では主に他の種類のフレームワークに焦点を当てます。 自動テストを設計、作成、実装する抽象概念、プロセス、手順、環境の全体として定義できるフレームワークの種類について説明します。 さらに、フレームワークのこの定義には、テストの作成と実装、およびコンポーネント間の論理的な相互作用の整理に使用される物理オブジェクトが含まれます。
自動テスト(したがって、フレームワーク)は長年にわたって進化しており、進化の新しい段階ごとに形成され、より複雑になっています。 これらのフェーズは3つの世代の観点から説明できます。各世代には一連の不利な点と利点があります。そのため、新しい開発にも関わらず、それぞれが関連性を保ちます。 以下に示す概念は通常、機能テストを自動化するために使用されますが、場合によっては単体テストの問題を解決するためにも使用できます。
第一世代のフレームワーク
テスト自動化フレームワークの第一世代は、最初は自動化されたテストの開発に対する線形アプローチに基づいていました。 通常、線形アプローチでは、自動テストの1次元セットが作成され、各自動テストは単に「手動」の同等物の実装と見なされます。 自動テストで使用されるすべてのコンポーネントは、記録再生技術を使用して大部分が生成され、主にこの自動テスト内に配置されます。 同時に、スクリプトには、モジュール性、コードの再利用、およびソフトウェアの品質を決定するその他の要素が実質的に欠けています。 このようなテストが役立つ可能性のある範囲は非常に限られています。線形フレームワーク
小さな線形スクリプトの例を以下に示します。 外部モジュールへの呼び出しや外部データへのアクセスがないことに注意してください。ほとんどの場合、記録再生技術の使用は、フレームワークまたは自動化への深刻なアプローチと見なすことはできません。 ただし、多くの場合、この手法が場合によっては役立つ可能性があることに同意します。
- 「John」をユーザー名テキストボックスに入力します
- 「パスワード」テキストボックスに「JPass」を入力します
- [ログイン]ボタンをクリックします
- 「ようこそ画面」が存在する場合
- テストに合格する
- その他
- テストに不合格
- 終了する 場合
線形フレームワークの利点
- スクリプトの作成速度 -多くの計画活動を必要とせず、ソフトウェアとしての自動テストの品質の側面にはほとんど注意が払われません。 これを考えると、線形スクリプトの開発は「記録再生」技術の使用に基づいていることが多いという事実を考えると、そのような開発の時間、リソース、お金のコストは比較的小さいことが理解できます。
- 短い学習曲線w-テストの自動化には通常、自動化ツール、プログラミング言語、およびテスト対象のアプリケーションとツールとの相互作用に関する知識が必要です。 線形スクリプトを作成するときに「記録再生」技術を使用すると、テスト対象のアプリケーションで実行する必要があるアクションに対応するコードが自動的に作成されます。 その後、このコードを自動化エンジニアが調査して、自動化ツールの言語の構文、およびツールがアプリケーションと対話する方法に関する質問への回答を得ることができます。
- テストされたアプリケーションの変更に関するクイック情報 -この利点は、以前のアプリケーションと密接に関連しています。 「記録再生」の手法を使用すると、テスト対象のアプリケーションの変更に関する情報が提供されます。 たとえば、アプリケーションを変更するアクションの後、オブジェクトのプロパティがどのように変化するかについて。
- スクリプトの独立性 - スクリプトで使用されるすべてのコンポーネントがスクリプト自体の内部にあるという事実を考えると、他のスクリプトの動作に誤って影響を与えるような方法でスクリプトを変更する危険はありません。
- エラーの検出のしやすさ -フレームワークが高度になるほど、複雑になります。 複雑さとともに、特にフレームワークの構造に精通していない人にとっては、エラーの原因を見つけることに問題が生じます。 線形スクリプトのすべてのコンポーネントが含まれているという事実を考えると、エラーが発生した場所を把握することは問題ではありません。
線形フレームワークの欠点
- 誤った再生 -彼らが主に「記録再生 」アプローチに依存している場合、記録されたスクリプトはしばしば正しく再生されません。 これは、このようなアプローチは分析的ではないという事実によるものです。 これを使用する場合、アプリケーションの範囲とその動作は調査されず、これらのオブジェクトと動作との最適な対話方法に関する決定は行われません。 再生エラーを修正しようとすると、一連の一時的な解決策がよく使用されますが、それは時間のテストに合格しません。
- 冗長性 -線形スクリプトには再利用の利点がないため、複数のスクリプトが類似または類似のアクションを実行すると、各スクリプトで機能が複製されます。 テストされたアプリケーションが将来のリリースで変更された場合、結果としてスクリプトのメンテナンスコストが増加します。
- 一次元 -低い柔軟性が負荷に適用されます。 スクリプトは、1つのレベルでのみ、1つの場所で、独自の方法で簡単に実行できます。 テストマネージャーが、特定の優先順位やリスクに基づいて、または異なる環境で、または異なるシーケンスでオートマトンにテストの一部を実行させる場合、オートマトンは必要なスクリプトを完了するためにスクリプトの分析に多くの時間を費やす必要があります。 その結果、スクリプトの実行または結果の分析に使用できる時間が短縮されます。
- スクリプトは読みにくい -再利用可能なコンポーネントがないため、線形スクリプトはコードでオーバーロードされます。 これにより、スクリプトが読みにくくなるため、分析および保守が困難になります。 さらに、スクリプトに変更を加える必要がある場合、コードのどのセクションでこれを行う必要があるかを判断するのが難しくなります。
- サポートにはより高いレベルの知識が必要です -これは、モジュールへの分割の欠如に直接関連しています。 モジュール性は、コードの各ブロックが何を担当しているのかを理解するのに役立ちます。 リニアスクリプトの無料広告では、このプロセスはそれほど簡単ではありません。 そのため、線形スクリプトを分析またはデバッグする場合、自動化エンジニアは、スクリプトを効果的にサポートするために、まずコードを理解するのにかなりの時間を費やす必要があります。
パート2