ソフトウェア アプリケーションは、最終消費者が使用できるようにリリースされる前に、さまざまな段階を経ます。
テストは、SDLC (ソフトウェア開発ライフ サイクル) で最も重要な要素の 1 つであり、バグを特定し、アプリケーションが期待どおりに動作しているかどうかを確認します。
これまで、ソフトウェア テスターは手動テスト手法を使用していました。 ただし、手動テストは時間がかかり、他のさまざまな課題も伴います。 Selenium は、ソフトウェア テストを自動化するために作成されました。
Selenium は現在市場のリーダーであり、ほとんどのソフトウェア テスターが既に使用しています。 ソフトウェア テスターとして就職したい場合は、一般的なセレンの面接の質問で武装することで、他の求職者よりも優位に立つことができます。
以下は、遭遇する可能性が高いSeleniumインタビューの質問と回答です。
自動化テストとは?
簡単に言えば、自動テストとは、自動テスト スイートを使用して、または手動の関与なしに、ソフトウェア テストの作成および実行のプロセスを自動化するプロセスです。 自動化テストにより、テスターは別のツールを使用してテスト タスクを繰り返し実行できます。
自動化テストの利点は何ですか?
- 時間とお金を節約します。 手動のテスターにお金を払わなければならない場合、ソフトウェアのテストは高くつく可能性があります。 自動化されたテストは、長期的には安価になる可能性があります。
- コードの再利用性を促進します。 テストを一度設定すれば、実行は繰り返し行われます。
- 人為的なエラーを減らし、精度を向上させます。
- 大規模なアプリケーションに最適です。 小さなアプリのテストは、手動テストで簡単に行うことができます。 ただし、アプリの規模が拡大するにつれて、アプリの規模が拡大するにつれて、自動化されたテスト キットが役立ちます。
セレンとは?
Selenium は、Jason Huggins が 2004 年に開発した、オープンソースで無料の Web UI ベースの自動テスト スイートです。強力なコミュニティの存在により、Selenium は最も人気のある自動ソフトウェア テスト スイートの 1 つになりました。 Selenium Suite は、さまざまなブラウザーとプラットフォームでサポートされています。
セレンのさまざまな形態は何ですか?
Selenium は単なるテスト ツールではなく、いくつかのツールのスイートです。 以下は、Selenium のさまざまな形式です。
- Selenium 統合開発環境 (IDE)
- Selenium WebDriver
- セレンリモコン (RC)
- セレングリッド
Selenium でサポートされているプログラミング言語は?
- パイソン
- ジャワ
- Cシャープ
- JavaScript
- ルビー
- PHP
- パール
Selenium でサポートされているテストの種類は?
Selenium WebDriver とは?
Selenium WebDriver は、Web ブラウザーとの通信を担当します。 このツールは、ネイティブの互換性にも依存して、さまざまなタスクを自動化します。
セレン IDE とは何ですか?
Selenium IDE は、記録および再生ツールとして機能する Firefox プラグインです。 このプラグインは、自動化スクリプトの作成を高速化するためのソリューションとして作成されました。
Selenium グリッドとは何ですか?
このツールを使用すると、ユーザーはテストの実行を複数の環境およびプラットフォームに同時に配布できます。
セレン RC (リモート コントロール) とは何ですか?
RC は、希望するプログラミング言語でテスト スクリプトを作成できるツールです。 このツールを使用すると、ユーザーはさまざまなブラウザー内でテスト スクリプトを実行することもできます。
Selenese とはどういう意味ですか?
Selenium IDE には、Selenium コマンドを記述するために使用される Selenese と呼ばれる言語があります。 これらのコマンドは、Selenium が実行する操作またはアクションを理解するのに役立ちます。
セレネーゼの種類は?
- 行動。 これらは、アプリケーションの状態を操作するコマンドです。 「このボックスを入力してください」と「このリンクをクリックしてください」は、アクションの例です。
- アクセサー。 これらのコマンドは、アプリケーションの状態を指示し、結果を変数に格納します。
- アサーション。 これらは、テスターがアプリケーションの状態を検証できるようにするコマンドです。
Seleniumで要素を見つけるためのアプローチは何ですか?
- ID
- クラス名
- 名前
- タグ名
- リンクテキスト
- 部分リンクテキスト
- Xpath
- CSS セレクター
- ドム
XPath とは何ですか?
XPath は、Extensible Markup Language パスに基づいて Web 要素を見つけます。 XML ストアは、任意のデータを編成および転送します。
XPath の「/」と「//」。 違いはなんですか?
「/」または単一のスラッシュは、絶対パスで XPath を作成します。 このように、開始ノード/ドキュメント ノードから選択を開始するように XPath が作成されます。
「//」または二重スラッシュを使用して、相対パスで XPath を作成します。 したがって、作成された XPath は、ドキュメント内のどこからでも選択を開始します。
絶対XPathとは何ですか?
絶対 XPath は、単一のスラッシュ「/」で始まります。 このようなパスには、ルートから識別したい要素までの完全なパスがあります。
findElement() と findElements() を区別する
- findElements(): 指定された検索メカニズムを使用して、現在のページのすべての要素を検索し、すべての Web 要素のリストを返します。
- findElement(): 指定された検索メカニズムを使用して現在のページ内の最初の要素を検索し、単一の Web 要素のみを返します。
Selenium で使用される注釈の種類は?
- 前スイート
- テスト前
- 授業前
- Beforeメソッド
- テストケース
- AfterMethod
- 放課後
- アフターテスト
- アフタースイート
Selenium のアサーションとは何ですか?
アサーションは、アプリケーションが期待どおりに機能しているかどうかを判断します。 アサーションが失敗すると、テスト ケースは失敗し、実行は停止します。
Assert コマンドと Verify コマンドとは何ですか?
- アサート: アサート条件が真の場合、プログラムは次のテスト ステップの実行を続行します。 ただし、条件が false の場合、実行は停止し、他のテストは実行されません。
- 検証: 検証された条件が true か false かに関係なく、テストの実行が続行されます。
同一生成元ポリシーとは何ですか? また、Selenium はそれをどのように処理しますか?
同一オリジン ポリシーは、特定のオリジンによってロードされたスクリプトまたはドキュメントが別のオリジンのリソースと対話する方法を制限するセキュリティ メカニズムとして説明できます。 このようなアプローチは、悪意のあるスクリプトを隔離するのに役立ちます。
Selenium は、プロキシ インジェクション メソッドを使用して同一オリジン ポリシーを実装します。 このセットアップでは、Selenium Server は、テスト対象のアプリケーションとブラウザーの間でクライアント構成の HTTP プロキシとして機能します。 このプロキシ インジェクションは、架空の URL を介して AUT をマスクします。
Selenium IDE の一時停止機能とは何ですか?
一時停止は、指定された時間、自動テストの実行を遅らせる待機 Selenium IDE コマンドです。 待機はミリ秒単位で示されます。つまり、3 秒間待機する場合は 3000 を入力する必要があります。
Selenium IDE テストが失敗するのはなぜですか?
- 非同期 Web サイト。 Selenium テストは特定の順序で作成されます。 ただし、一部の Web サイトは非同期アーキテクチャに基づいており、応答が正しくない場合があります。
- タイムアウト。 コンポーネントがロードされるのを待っている間に、Selenium が失敗することがあります。 このようなエラーは、「待機」を使用して処理できます。
- バグ。 Selenium は常に改善されています。 ただし、ときどきバグが発生し、テストが失敗する可能性があります。
- ソースコードへの小さな変更。 ロケーターへの変更がチェックされると、このロケーターに向けられたすべてのテストが失敗する可能性があります。
TestNG とは何ですか? また、その機能にはどのようなものがありますか?
TestNG は、JUnit と NUnit に触発されたテスト自動化フレームワークです。 NG (Next Generation) はオープンソースの無料ツールです。
これらは TestNG 機能の一部です。
- さまざまな種類のアサーションがあります。
- ユーザーがテストを並行して実行できるようにします。
- 「dependsOnMethods」および「dependsOnGroups」属性を使用して、テストを相互に依存させることができます。
- データ駆動型テストを実行します。
- さまざまなテストをグループ化できます。
暗黙の待機と明示的な待機の違いは何ですか?
- Implicit Wait は、WebDriver に、例外をスローする前に一定期間待機するように指示します。 デフォルト値は 0 で、時間が設定されると、WebDriver は時間が経過するまで待機して例外をスローします。
- 明示的な待機は、「ElementNotVisibleException」例外をスローする前に、特定の条件または ExpectedConditions を待機するように WebDriver に指示します。 明示的な待機は、指定された要素のみに適用される「インテリジェントな」待機です。
オブジェクトリポジトリとは?
オブジェクト リポジトリは、自動化された GUI テスト スクリプト内のキーと値のペアのコレクションであり、テスト スクリプトのメンテナンスの負担を軽減します。 このような場合のキーは、オブジェクトを識別する論理名と、画面上のオブジェクトを識別する一意のプロパティを持つ値です。
また、すべてのデータが保存および管理される中心的な場所でもあります。
Selenium Web ドライバーで遭遇する可能性のある例外は何ですか?
例外は、プログラムまたはソフトウェア アプリケーションの実行中に発生する前例のない、または異常なイベントです。 通常のプログラム フローを中断または影響する、予期しないイベントまたは結果の実行時エラーとして説明することもできます。
これらは Selenium Web Driver の主な例外です。
- NoSuchWindowException. WebDriver が無効な (利用できない) ウィンドウに切り替えようとしています。
- NoSuchElementException. 要素に到達できない場合に発生します。
- NoAlertPresentException. この例外は、表示されないアラートに切り替えようとすると発生します。
- タイムアウト例外。 特定のコマンドが指定された時間内に終了しませんでした。
- ElementNotVisibleException.
- ElementNotSelectableException. このような例外は、要素が DOM で使用可能であるにもかかわらず無効になっている (選択またはクリックできない) 場合に発生します。
- SessionNotFoundException. この場合、WebDriver はブラウザを閉じた直後に動作します。
さまざまなタイプのロケーターを一覧表示する
- ID
- 名前
- クラス名
- タグ名
- リンクテキスト
- 部分リンクテキスト
- CSS セレクター
- XPath
ブレークポイントと開始点とは何ですか?
- 開始点は、コードの実行を開始する場所を示します。 開始点を使用して、コードの途中またはブレークポイントからテスト スクリプトを実行できます。
- ブレークポイントは、コードの実行を停止するために使用されます。 ブレークポイントは、コードが期待どおりに機能していることを確認するために使用されます。
まとめ
上記は、次回のテスト自動化エンジニアリングの面接で遭遇する可能性が高い Selenium 面接の質問の一部です。 テスト自動化エンジニアの役割に応募する前に、必要なスキルがあることを確認してください。
記事を読んでよかったですか? 世界と共有してみませんか?