そこで、Habrコミュニティと共有できるトピックを見つけました。 この記事が参考になるだけでなく、興味深いものであることを願っています。
入力データ:
場所:ドネプロペトロフスク。
役職:ジュニアオートメーションQAエンジニア。
テクノロジー:C#、Selenium、MSTest、TeamCity、Hibernate。
数か月前に、ある大企業の予備の店に行きました。 クライアントは、自動テストのチームを2で割ることを決めました(ゼロではなかったのは良いことです)。このプロジェクトに短い時間を費やしたため、私は予備になりました。 内部プロジェクトは予期されていなかったため、準備金では通常、退屈でお金の面で不採算です。 それで私はインタビューに行き始めました。
初めてグーグルに行く前に、特にセルフテストに関するインタビューの質問を説明する良い記事を見つけられなかったので、間違いから学ばなければなりませんでした。 これが、この資料を作成する主な理由です。
インタビュー構造を渡す前に、自動ジョブを探しているプロジェクトのタイプを理解する必要があります。 これは主に、Java、Selenium、TestNG、およびMavenを使用するWebです(これはまさに私が探していたものです)。 最も人気のあるのはB Sharp、次にpythonとRuby(すべてSeleniumを使用)です。 デスクトップでは、SilkTestとRanoreksにプロジェクトがありました。
私はいくつかのインタビューに行きました。 どこかで私が好きではなかった、どこかで私を好きではなかった-それは本当に重要ではありません。
ここではその順序でした:
1.私が最初に訪れたオフィスはアウトソーシングではありませんでした。これは、特にオートメーションを探している人だけを数える場合、ドニエプルでは非常にまれです。 面接に関しては、すべてが1つのステップで決定されるため、これは便利です。 しかし、インタビュー自体は私を少し驚かせました。 質問の100%は手動テストに関するものでした。 同社はまた、手動テストを行う準備ができている時間の割合を尋ねました。 時間を節約するためにテストケースを自動化するマニュアルを探していることが明らかになりました。
2. 2番目のオフィスは、おそらく自動車の投稿に最も適した質問をしました。 ほとんどすべての質問は、Selenium、いくつかのSQLクエリ、およびOOPに関するものでした。 これは、インタビューが2つの自動テストによって行われたという事実によって説明されます。
3.すべてが非常に構造化されています。 最近開発に切り替えたオートテスターは、質問のリストである紙片を思いつき、順番に尋ね始めました。 Javaの質問15、手動テストの質問10、自動車の質問10。 Javaについての質問で、彼らは少し行き過ぎているように思えました。
4.このオフィスでは、2つの異なるプロジェクトのインタビューを行いました。 両方のプロジェクトにタスクが与えられました。 最初のものはクライアントのサイトをテストするように頼まれました、それはホームタスクでした。 テスト自体は複雑ではなく、約5個でした。 Maven、TestNG、Selenium、およびPageオブジェクトパターンを使用して、Eclipseでプロジェクトを作成する必要がありました。 インタビューには、課題の分析と、Javaマニュアルおよびセルフテストに関する質問が含まれていました。
2番目のプロジェクトは、インタビュー自体でタスクを提供してくれました。 約7つの純粋なプログラミングタスクがありました:配列を展開するメソッド(最初の要素を最後の要素に置き換えるなど)、2つの配列に同じ要素があるかどうかを確認するメソッド、桁数を調べるメソッドなどです。 インタビュー自体は基本的に単なるコミュニケーションであり、自動テストのためにコードを読む必要がありました。
これらのインタビューで提起された重要な質問の一般的なリストは次のとおりです。
開発により:
1. OOPの3つの原則。
2. Javaコレクション。
3. Java例外の階層。
4.メソッド.hashcode()および.equals()、それらの実装。
5. HashMapの実装。
6.インターフェースと抽象クラスの違い。
7. javaのObjectクラスのメソッド。
8.パターン(通常は機能するリスト)。
9.単語は静的です。
10.内部クラス。
手動テストの場合:
1.優先度と重大度の違い。
2.テスト計画の構造。
3.テストケースの構造。
4.テスト手法を設計します。
5.テストの種類。
6.テストのレベル。
7.バグレポート。
自動テストにより:
1.セレクターの種類。
2.欠点、xpathの利点、およびその理由。
3.テストのパターン。
4. Webドライバーで待機を含意し、表現します。
5. junitとtestNGの違い。
6. Mavenの仕組み。
7. TDDおよびBDD(JBehave)。
ほとんどすべての場所で、彼らはそのような小さなタスクを与えました:
1.データベースには2つのプレートがあります。 SQLクエリを作成する必要があります。 リクエストには参加が必要です。
2. htmlを表示し、いくつかのxpathまたは他のセレクターの作成を要求しました。
3.登録フォームなどを提出し、テスト(つまり、すべての手動テストケース)を要求します。
常に経験について尋ねられた:
1.データベース(MS SQLサーバー、Oracle、MySQL ...)。
2. CI(TeamCity、Jenkins ...)。
3.バージョン管理システム(Git、mercurialなど)。
4.バグ追跡システム(jira、tfs ...)。
お気づきかもしれませんが、インタビュー、特に自動テストの一般的なルールはありません。 この職業では、インタビュアー自身の専門性に大きく依存します。 したがって、すべてのポイントに備えることをお勧めします。 私は約束を少なくし、より多くを成し遂げるタイプの人です。 そして、これはインタビューの質の悪さです。 したがって、何かの経験について質問されたら、「はい」と答えてください(たとえ経験が最小であっても-たとえばHabréの記事から)、そしてインタビューの後、このテクノロジーを詰め込んでください。 インタビューで行ったコメントは必ずしも正当化されているわけではありません。100%の真実として受け取らないで、あなたの意見を弁護してください。 多くの場合、AとBのどちらが良いか質問しますか? 1つのオプションを選択するのではなく、最初のオプションを選択する状況と2番目のオプションを選択する状況を教えてください。 そして、覚えておいてください:あなたが言ったすべての過剰はあなたに対して使用することができます(そしてほとんどの場合使用されます)。
質問を投げることはこれまで以上に簡単で、目標を達成するのがはるかに困難です。 したがって、インタビュアーの場合、前の会社で働いていた主要なテクノロジーの候補をロードすることをお勧めします。 彼がそれらをよく知っていれば、あなたのものはすぐにマスターできます。 しかし、あなたがプロジェクトで使用する最も単純なものが合理的でないことを知らないという事実のために驚いて候補者を拒否する場合、彼はおそらく数分でそれを理解するでしょう。 さらに、情報を覚えているが、彼が何をしているのか、そしてその理由を理解していない人と一緒に働きたいという事実を考慮してください。 または、頭の中であまり知識を持たないが、より知識が豊富で教育力のある人と一緒に。 結局のところ、トレーニングをする人は簡単に再調整できるようになり、クラマーは新しい技術を「記憶」し、「猿のビジネス」の原則に取り組むためにもっと多くの時間を必要とします。
出力データ:
場所:ドネプロペトロフスク。
役職:ミドルオートメーションQAエンジニア。
テクノロジー:Java、Selenium、Junit、DBunit、Jenkins。
インタビューの成功と新たな高みをお祈りします! 忘れないでください:「努力することはすべて簡単になります。」