ソフトウェアは、重要なタスクを指揮するために新しいアプリケーションやデバイスを家庭や企業に歓迎するにつれて、より価値が高く重要になります。 4月16日th、1994年、空港に着陸する直前に、航空機の致命的な飛行機が墜落しました。 250人が死亡した場所。これはチャイナエアラインで最も致命的な事故でした。事件の主な原因はソフトウェアのバグによるものでした。ソフトウェアユーザーは、実装する前にテストされていません。すべてのシステムにはソフトウェアのバグがあります。バグのないソフトウェアシステムを設計することは不可能です。ただし、システムのソフトウェアバグが原因で発生した障害は、ソフトウェアテストを実行することで保護できます。ソフトウェアテストは、開発されたコンピュータソフトウェアのエラー、完全性、および品質を見つけるために使用されるプロセスです。これには、ソフトウェアのエラーを見つけて、製品がエンドユーザーにリリースされる前に修正できるようにすることを目的として実行される一連のアクティビティが含まれます。手動テストのテスト手順には、2つのタイプがあります。 オートメーション テスト。
自動化テストとは何ですか?
自動テストでは、ツール、スクリプト、およびソフトウェアの支援を利用して、事前定義されたアクションを繰り返すことでテストケースを実行します。これは、事前にスクリプトが実行されたときに期待される結果と実際の結果を比較する事前にスクリプト化されたテストに完全に依存します。負荷、応力、スパイクなどのテストは、自動化ツールを使用してテストできます。例:Facebookは、思考をデジタルテキストに変換する可能性のあるブレインコンピューターインターフェイスをテストしています。
どのテストケースを最初に自動化する必要がありますか?
以下は、最初に自動化されるテストケースです。
- 繰り返されるタスク– ログイン資格情報を複数回テストして、ユーザー要件に従ってログインページが機能していることを確認するeコマースサイトのような例。
- 結果の取得と共有– 数値を計算してグラフをツールや自動化戦略に投資させるよりも、時間を節約できると便利です。
- データ入力テスト– 情報をデータソースに自動化して、簡単にアクセスして読み取ることができるようにします。データの変動性をより適切に処理できる場合。つまり、何千ものデータから特定のデータを検索したい場合は、自動化ツールを使用して特定のデータを検索できます。
- タイミングまたはスクリーニング応答– 画面を手動で追跡する必要はありません。自動コード「まで待つ」を使用することで改善できます。
- 非機能テスト– 非機能テストタイプの自動化の例は、負荷テストの自動化です。手動でテストする代わりに1万の負荷がある場合は、自動化テストを使用することをお勧めします。
自動化テストプロセス
自動化テストに使用されるステップバイステップの手順は次のとおりです。
自動化-テスト-プロセス
1)。テストツールの選択
関係するテストの性質に基づいて適切なツールを選択することは、自動化を成功させるために非常に重要です。コード駆動型テストの場合、プロセスまたは グラフィカル・ユーザー・インターフェース ベースのテストに応じて適切なツールを選択する必要があります。
2)。自動化の範囲を定義する
自動化の範囲は基本的な役割を果たします。同様の例として、あらゆるビジネスにとって重要な機能は、さまざまなプラットフォームやアプリケーション間で共通の機能を持つ大量のデータを含むシナリオと、テストケースの複雑さです。等。
3)。設計と開発の計画
目標と自動化するテストのタイプを決定した後、どの自動テストを実行するかを決定する必要があります。最初にテストケースをより小さな論理テストに開発し、次にテストスクリプトを作成し、テストスイートを開発します。テストスイートは次々に自動で実行されます。これは、複数のテストケースを持つライブラリのようなスーツでテストを作成することによって生成されます。
4)。テストの実行
テストスクリプトの実行には、自動化ツールまたはテスト管理ツールが使用されます。最終実行後、個々のテストについて詳細にレポートを作成する必要があります。レポートを他のテストの参照として使用できるようにします。
5)。メンテナンス
自動化スクリプトは、サイクルごとに追加、レビュー、および保守されます。メンテナンスが必要になった場合。たとえば、コードを記述した後、コードをチェックし、バグがある場合は障害が発生します。したがって、コードのどの部分にエラーがあるかを特定して修正し、コードを最初から実行します。したがって、メンテナンスは自動化スクリプトの必要性を向上させる重要な役割を果たします。
自動化へのアプローチ
自動化には3つのアプローチがあります。
1)。コード駆動型アプローチ
フレームワークをテストし、テストケースの実行に焦点を合わせて、コードのさまざまなセクションがさまざまな条件下で期待どおりに実行されているかどうかを確認します。これは、アジャイルソフトウェア開発で使用される一般的な方法です。
2)。グラフィカルユーザーインターフェイス(GUI)
GUIを備えたアプリケーションは、この方法を使用してテストし、ユーザーのアクションと応答を何度でも記録できます。例:Webサイトのテストに使用されるSeleniumツール。テストケースは、java、phyton、Cなどの任意のスクリプト言語で記述できます。
3)。フレームワークアプローチ
これは一連のガイドラインです。フレームワークが関数のライブラリ、テストデータソース、オブジェクトの詳細、およびその他の再利用可能なモジュールをまとめる場所。メンテナンスコストは低く、非常に効率的です。例:テストケースに変更がある場合は、ドライバーや起動スクリプトを変更せずに、テストケースファイルのその部分を更新する必要があります。
フレームワークの種類
フレームワークアプローチにはさまざまな種類があります
- 線形スクリプトフレームワーク
- データ駆動型フレームワーク
- キーワード駆動型フレームワーク
- モジュラーテストフレームワーク
- ハイブリッドテストフレームワーク。
自動化テストの種類
さまざまなタイプの自動化テストは
- ユニットテスト
- スモークテスト
- 機能テスト
- 統合テスト
- 回帰試験
1)。ユニットテスト
Webアプリケーションでは、テストするコンポーネント/モデルがいくつかある場合があります。すべてのモデルをテストするプロセスは、単体テストです。これは開発段階で行われます。コードが開発者とテスターによって書かれている場所。
2)。スモークテスト
スモークテストは、「ビルド検証テスト」とも呼ばれます。これは、コードが最終結果の期待どおりに記述されているかどうかを確認するために使用されます。スモークテストでは、テストが完了すると、その最終結果によって、将来のテストを続行するかどうかが決定されます。テスト中の問題は、早い段階で特定できます。
3)。機能テスト
Webの機能をチェックし、それに応じて機能するかどうかを確認します。たとえば、ユーザーIDとパスワードを入力する必要があるログインページを検討する場合です。正しいデータを入力しない限り、期待されるページは開きません。ログインページ用にコードが記述され、正しくテストされた場合、期待されるページが開きます。これは、機能テストが正しく機能していることを意味します。
4)。統合テスト
この場合、個々のコンポーネントが統合され、一度にテストされます。個々のモジュールが相互に通信できるかどうかを確認できる場所。たとえば、ボールペンの製造を考えた場合、ペンはリフィル、キャップ、ボディで構成され、これらは別々に製造され、一緒に組み立てられます。組み立て中に、正しく取り付けられているかどうかを確認します。
5)。回帰試験
コードに更新がある場合は、すでに記述されているコードに影響を与えないようにします。したがって、回帰テストを行います。回帰テストの使用は、要件に基づいてコードを更新し、エラーを検出して修正することです。回帰テストの例は、当座預金残高の更新など、必要に応じてWebサイトが定期的に更新される銀行のWebサイトです。したがって、Webサイトを更新するときは、新しく更新された機能が既存の機能に影響を与えないようにする必要があります。
自動化ツールの選び方は?
適切な自動化ツールを選択するには、以下にリストされている次のプロパティを確認してください。
- 環境サポート
- データベーステスト
- オブジェクトの識別
- 画像テスト
- エラー回復テスト
- 複数のフレームワークのサポート
- コストを最小限に抑える
- 広範なテストレポートとコスト。
自動化テストツールの種類
多くの自動化テストツールがありますが、そのうちのいくつかを以下に示します。
1)。セレン
これはオープンソースであり、Webアプリケーション、複数のブラウザー、およびプラットフォームを実行するための一般的なテスト方法です。セレンの最新バージョンはSelenium4です。プログラマーには、高度なプログラミング言語のスキルが必要です。 Seleniumには、Selenium、Selenium IDE、Selenium Remote Control、Webドライバー、SeleniumGridの4つのコンポーネントがあります。
2)。水
これは、Webアプリケーションのテストを自動化するrubyライブラリで構成されたオープンソースのテストツールです。 watirの最新バージョンはwatir6.16です。コードはどの言語でも書くことができます。 Firefox、chrome、safariは、watirがサポートする特定のブラウザです。 watirの機能のいくつかは、画面の短縮、ページのパフォーマンスが必要であり、任意のファイルを簡単にダウンロードできることです。
3)。ラノレックス
これは、柔軟なオールインワンGUIテストツールです。すべての環境のブラウザとデバイスに適しています。 C#とV.NETをサポートしています。これは、MicrosoftWindowsおよびWindowsサーバーに組み込まれています。 ranorexの主なコンポーネントは、ranorexレコーダー、ranorexリポジトリ、ranorexスパイ、ranorexコードエディター、およびranorexデバッガーです。
4)。 API(アプリケーションプログラミングインターフェイステスト)
これは、オープンソースのアプリケーションソフトウェアであるモバイルテストツールです。 APIは、実行されたAPIテストで正確な結果が得られるかどうかを検出します。 APIテストには、単体テスト、機能テスト、負荷テスト、ランタイムエラー検出、セキュリティテスト、Web UIテスト、侵入テスト、ファズテストなどさまざまな種類があります。これはPOSIXAPIに実装されています。
モバイルアプリケーション用の自動化テストツール
モバイルアプリケーション用のさまざまなタイプの自動化テストツールは、Appium、Robotium、MonkeyRunner、UI Automator、Selendroid、MonkeyTalk、Testdroid、Calabash、Frank、SeeTestです。
1)。 appium
- オープンソースです
- Java、Rubyなどをサポートします
- ソースコードは再利用できます
- AndroidとIosに対応しています。
2)。ロボット
- オープンソースです
- すべてのAndroidバージョンおよびサブバージョンと互換性があります。
- コードはJavaで書かれています。
3)。モンキーランナー
- フレームワークまたは機能レベルのテストは、monkeyrunnerを使用して行われます
- コードはPythonで書かれています
- 機能:一度に多くのデバイスを制御し、自動化を拡張でき、Androidアプリとハードウェアをテストでき、自動化を拡張できます。
4)。 UIオートマター
- UIテストケースを使用してユーザーインターフェイスをテストするために使用されます。
- アンドロイドのさまざまなバージョンをサポートします
- スマートフォンをロックおよびロック解除できます
5)。セレンドロイド
- これは、Androidベースのハイブリッドのユーザーインターフェイスをテストするために使用されます。
- テストケースはselendroidを使用して記述されています
- に プロトコル JSONワイヤーのように非常に互換性があります。
自動化テストに伴うリスク
自動化テストに伴うリスクは
- 初期費用が高くなります
- 自動化は決して100%ではありません
- 固定されていないUIを自動化しません
- 時間と労力の誤った評価
- 自動化ツールの非互換性。
自動化テストの利点
の利点 オートメーション テストは
- テストケースの実行が簡素化されます
- テストの信頼性を向上させます
- メンテナンスコストを削減
- テスト結果は公開されます
- ヒューマンエラーなし
- 時間とメモリを節約します。
ここではソフトウェアについて説明します 自動化テスト、 そのテストプロセス、自動化テストの種類、自動化テストツール。ここに、「自動テストは手動テストよりも優れているのか」という質問があります。