自動ソフトウェアテストの面接の質問(面接前の準備)

1.問題予測

  1. 簡単に自己紹介させてください(各インタビューの冒頭)

  2. 私が何をするか教えてあげましょう

  3. 私が読んだ本は何ですか(私は尋ねました)

  4. どのテクニカルブログ/フォーラム(質問)を知る

  5. ソフトウェアのテストに必要な知識を知っていますか(同様の質問をしました)

  6. 以前に面接を受けましたが、何を追加する必要があると思いますか?どのような行動をしましたか?

  7. なぜテストを行うのですか?自分でテストを行う利点は何ですか?(お願い)

  8. どのバグシステムを知る

  9. テストケースの基本的な要素は何ですか?

2.会社のプロジェクトを紹介する

3.スキル

1.データベースの常識

2. Linuxの操作

3.欠陥(質問)

4.ユースケース部分

5.ソフトウェアテストプロセス

6.ネットワーク関連

7.テストツール

8.その他の概念的な問題

4.他に質問したいことはありますか(必須)

5、履歴書テンプレート

1.問題予測

  1. 簡単に自己紹介させていただきます(言うまでもなく、すべてのインタビューが始まります)

こんにちは、私の名前はxxです。xxから、xxを卒業しています。現在、2年間の機能テストの経験があります。最近の仕事はxx社で、主にアプリシステムのテストに携わっており、xxapp、Douyinに似た短いビデオアプリ、機能テスト、撮影、アップロード、検索、レコメンデーションエンジンなどの機能モジュールを担当しています。主に、境界値、等価クラス、誤った推測などの一般的なブラックボックステスト手法を使用します。

  1. 私が何をするか教えてあげましょう

ソフトウェアのテストとテストの手順、テスト方法などの基本的な理論に精通しています。アプリのテスト、Webのテスト、インターフェイスのテストの経験があります。データベースの追加、削除、変更、クエリ操作に精通しており、テスト管理ツールの使用に精通している。

  1. 私が読んだ本は何ですか(私は尋ねました)

ソフトウェアテスト、ソフトウェアテストの技法、および実用的なソフトウェアテストのチュートリアル私の短いビデオ推奨エンジンテスト期間中に、主に推奨システムの評価部分であるXiang Liangの「Recommendation System Actual Combat」を読みました。

  1. どのテクニカルブログ/フォーラム(質問)を知る

51testingフォーラム、一部のCSDNブログ(インタビューの経験:インタビューでどのブログが問われるか)、およびパブリックアカウント(Sogouテスト、ソフトウェアテストリソースの共有)

  1. ソフトウェアテストで習得する必要がある知識を知っていますか(同様の質問がいくつか尋ねられました)

ソフトウェアテスト、プロセス、テストケースメソッド、データベース関連の知識、パケットキャプチャ分析、インターフェイステスト、テストツール、パフォーマンステストなどの基本的な知識。

  1. 以前に面接を受けましたが、何を追加する必要があると思いますか?どのような行動をしましたか?

多くの企業がパフォーマンステストと自動テストツールを必要としていますが、これまでの作業は主に機能テストに関係していたため、この分野の知識の蓄積は不十分でした。しかし、私は最近この知識を学んでいるので、将来の仕事でもっと学びたいと思っています。

  1. なぜテストを行うのですか?自分でテストを行う利点は何ですか?(お願い)

私の性格はテストに適していると思います。私はより注意深く、忍耐強く、より総合的に考慮します。これは、テストケースを設計するときに非常に役立ち、他の人とうまく調整して通信することができます。テストと開発の間で通信の競合がある場合にも、非常に良いことができます。私は通常、Weiboをスキャンし、Zhihuに関する人気のコメントを読み、公共の心理学を研究するのが好きで、これはユーザーの視点からテストポイントを設計するのに役立ちます。

  1. どのバグシステムを知る

タオ・ゼン/ブジラなど

9.テストケースの基本要素は何ですか?

バージョン番号、汎用モジュール、優先度レベル、前提条件、ステップ、期待される結果、実際の結果など。

2.会社のプロジェクトを紹介する

xxappは、短いビデオ、ゲーム、ライブブロードキャスト、ソーシャルインタラクションを統合するコンテンツエンターテイメントアプリです。同社は約1か月間、より大きなバージョンをリリースします。要件の数は20を超え40を超え(ユースケースの数はxx +です)、各バージョンにはwww \ wap、バックエンド、およびクライアントの要件の要件が含まれます。プロジェクトは、クライアント版担当者、バックグラウンド版担当者、H5版担当者に分かれており、担当者が中心となってテストプロセス全体を実施します。私が提供した役割には、H5アクティビティリーダー、レコメンデーションエンジンバージョンリーダー、クライアントおよびバックグラウンドシステムテスターが含まれます。担当するモジュールのユースケースは約500件。

3.スキル

1.データベースの常識

lリレーショナルデータベース:複雑なデータ構造が単純なバイナリ関係(つまり、2次元のテーブル形式)に縮小され、データはSQL構造化クエリステートメントを通じて格納されます。

代表的な製品:

Mysql:インターネット分野、大中小のWebサイト、ゲーム会社、eコマースプラットフォームなど 小型、高速、低コスト、オープンソースコード

Oracle:従来の大企業、大企業、政府、金融、証券など 安全性、高コスト、

l非リレーショナルデータベース:非リレーショナルデータベースはNoSQLデータベースとも呼ばれ、NOSQLの本来の意味は「Not Olnly SQL」です。NOSQLは高いパフォーマンスと高い同時実行性のために生まれました

その他のカテゴリー

1)Key-Valueストレージデータベース:特定のキーと特定のデータへのポインターが存在するハッシュテーブルを主に使用します。シンプルで展開が簡単、高い同時実行性

標準:Redis、Memcached

2)列指向データベース:分散ストレージで大量のデータを処理します。Personクラスがある場合、通常は給与ではなく、名前と年齢を一緒にクエリします。この場合、名前と年齢は1つの列ファミリーに入れられ、給与は別の列ファミリーに入れられます。

標準:Hbase

3)ドキュメント指向データベース:データストレージの最小単位はドキュメントです

標準:Mongodb、Hive

Mongodbは、リレーショナルデータベースと非リレーショナルデータベース間の製品です。パフォーマンスが高く、展開が簡単で、使いやすく、データの保存に非常に便利です。

Hiveは統計クエリに使用でき、HBaseはリアルタイムクエリに使用できます

いくつかの追加、削除、修正、筆記試験の準備

(別のものを開始)

2. Linuxの操作

linuxは、Webシステムサービスビルドなどのテスト環境をビルドします。

いくつかの一般的なコマンドの準備

(別のものを開始)

3.欠陥(質問)

最も印象に残っているバグを説明してください

ビデオアップロードテスト中に、Huawei Honor V10が携帯電話のビルトインカメラのプロフェッショナルモードで記録されたビデオをアップロードするとクラッシュすることがわかりました。また、同じビデオをiOSにアップロードすると、合成が失敗します。

プロモードと携帯電話内蔵カメラで撮影したノーマルモードで撮影した同じ長さの映像をパソコンに送ったところ、フォーマットファクトリーソフトで映像の違いを確認したところ、映像のエンコードが違うことがわかりました。

私はインターネット上のビデオエンコーディングの知識を引き続き確認し、mp4ビデオにはいくつかのエンコーディングがあることを発見し、アプリによってアップロードされたビデオがmp4ビデオのH.264エンコーディング形式のみをサポートすることをテストおよび検証し続けました。そのため、H.264以外の形式のビデオをサポートしないビデオアップロードを送信しました。また、関連するユースケースを補足して改善します。

(社内でログをチェックする権限がないため、最初にログをチェックする必要があります)

4.ユースケース部分

このサイトでは、ウォーターカップやスツールをテストする方法などのユースケースを設計するように求めていますか?

まず、そのようなテストの質問に遭遇した場合は、最初にインタビュアーに、テストするカップの種類など、要件は何かを尋ねる必要があります。

テストケースを設計するためのルールは、要件分析ドキュメントに基づいてユースケースを設計し、顧客が必要とするものをテストすることです。

ただし、要件分析ドキュメントを使用せずにテストケースを設計するには、問題が包括的であるか、テストケースの設計方法が合理的であるかなど、テスターの基本的なスキルを調べることができます。

一般に、テストケースは、日々の経験とテスト思考に基づいて設計されています。テストケースを設計する場合、通常、機能テスト、パフォーマンステスト、インターフェイステスト、セキュリティテスト、互換性テスト、ユーザビリティテスト、信頼性テスト、ローカリゼーション/国際化テストの側面から分析されます。

例(別のものを開始)

5.ソフトウェアテストプロセス

会社はテストプロセスとテストドキュメントを厳しく規制しています。まず、要件のレビューに参加し、テスト計画、テスト計画、テストケースをまとめ、テストグループによるテスト計画とユースケースの内部レビューと外部レビューを実施します。

第1レベルのユースケースの一部が抽出され、R&Dセルフテストに送信されます。R&Dセルフテストに合格すると、一連のシステムテストが開始されます。

テストプロセス中に、問題が検出され、送信され、追跡されました。

問題が修正された後、回帰テストを実行します。

1回のテストが完了した後、修理パッケージで煙のテストが実行され、テストに合格した場合は2回目のテストが実行されます。

2回目のテストが完了した後、要件のクロステストが実施されます。

テスト準備システムのテストレポートを完成させ、受け入れテストを送信します。受け入れテストは、出力受け入れテストレポートに合格します。

6.ネットワーク関連

TCP / UDPなどのネットワークプロトコルの違いは何ですか?(Https://www.cnblogs.com/steven520213/p/8005258.html)

1. TCP接続指向(電話をかける前に接続を確立するためにダイヤルするなど)、UDPはコネクションレス、つまりデータを送信する前に接続を確立する必要がない

2. TCPは信頼できるサービスを提供します。つまり、TCP接続を介して送信されたデータには、エラー、損失、重複がなく、順序どおりに到着します。UDPは最善を尽くして配信します。つまり、信頼できる配信は保証されません。

3. TCPはバイト指向であり、実際にはTCPはデータを一連の非構造化バイトストリームとして扱い、UDPはメッセージ指向です

UDPには輻輳制御がないため、ネットワークの輻輳によって送信元ホストの送信速度が低下することはありません(IPテレフォニー、リアルタイムビデオ会議などのリアルタイムアプリケーションに役立ちます)。

4.各TCP接続はポイントツーポイントのみです。UDPは、1対1、1対多、多対1および多対多の対話型通信をサポートします。

5. TCPヘッダーのオーバーヘッドは20バイト、UDPヘッダーのオーバーヘッドはわずか8バイト

6. TCPの論理通信チャネルは全二重の信頼できるチャネルですが、UDPは信頼できないチャネルです

3つのハンドシェイクと4つの波

スリーウェイハンドシェイクの人気バージョン:

最初のハンドシェイク:サーバーと通信するために、クライアントはまずサーバーに通知し、次にSYN = 1の接続要求信号を送信する必要があります、「兄弟サーバー、あなたと話したいです」。

2番目のハンドシェイク:サーバーがクライアントの接続要求を受信すると、クライアントに確認メッセージが表示されます。「確認(ACK)、私の側は準備ができています。今すぐ接続できます(SYN)」 。

3番目のハンドシェイク:クライアントはサーバーから接続確認を受信すると、サーバーに「さあ、Unicom(ACK)を始めましょう」と丁寧に通知する必要があります。

この時点で、接続を確立するプロセス全体が終了します。次のステップは、情報の通信と送信を同時に行う両方のプロセスです。

人気のバージョンを切断するために4回振る:

第1ハンド:両当事者がほぼ通信しています。この時点でクライアントも終了し、通信接続が次に切断されるため、サーバーに「終了しました(FIN)」と伝え、この時点でサーバーは接続の終了を待機している状態を形成します。

第2の波:サーバーはクライアントが言うことは何もないことを知っており、サーバーは現時点でクライアントに2つの言葉を言う必要があります。「完了しました(ACK)、もう2つの言葉&* ...%¥」...

3回目のウェーブ:この時点では、クライアントはまだ終了を待っており、サーバーは終了しています。このとき、クライアントは接続を閉じるのを待っている状態であり、「終了しました、中断しましょう(FIN )」

第4波:クライアントは、サーバーが話し終わったことを認識し、またサーバー(ACK)に通知します。これは、接続と切断の両方で、閉じる操作を押して切断する必要があり、クライアントも自身のタイミングを定義しているためです。私が言ったばかりの文がサーバーに正確に到達できるかどうかわからないからです(ネットワークが不安定であるか、他の要因が原因です)。

したがって、デフォルトの時間は、2つの通信の最大時間の合計として設定されます。この時間の後、サーバーはデフォルトで独自の確認メッセージを受信します。この時点で、クライアントは接続を閉じます。サーバーがクライアントから確認通知を受信すると、サーバー側の接続をすぐに閉じます。

これまでのところ、2者間の通信プロセス全体はここで終了します。

ここにステートメントがあります:切断は必ずしもクライアントである必要はなく、誰でも最初に切断コマンドを開始できます。クライアントとサーバー間に固定の基準はなく、要求を開始する人は誰でもクライアントです。

3ウェイハンドシェイクの説明:

最初のメッセージ送信では、Aがシーケンス番号を最初のシーケンス番号としてランダムに選択し、それをBに送信します。

2番目のメッセージBはackを使用してAのデータパケットを確認します。これは、シーケンス番号xのデータパケットを受信し、シーケンス番号x + 1のパケットを受信する準備ができているため、ack = x + 1であり、BがAに通知します。最初のシーケンス番号はseq = yです。

3番目のメッセージAは、Bに確認メッセージを受信し、接続を確立する準備ができていることをBに伝えます。このメッセージのシーケンス番号はx + 1なので、seq = x + 1であり、ack = y + 1は、AがBには、シーケンス番号がy + 1のデータパケットがあります。

4人が手を振って詳しく説明しました:

TCP接続は全二重であるため、各方向を個別に閉じる必要があります。この原則は、一方のパーティがデータ送信タスクを完了すると、FINを送信してこの方向の接続を終了するというものです。

FINを受信するということは、この方向に流れるデータがなくなること、つまり、これ以上データが受信されないことを意味しますが、FINもこの方向に送信されるまで、このTCP接続でデータを送信できます。

上の図で説明したように、シャットダウンする最初のパーティはアクティブシャットダウンを実行し、他方はパッシブシャットダウンを実行します。
(1)最初のウェーブ:クライアントはFINを送信して、クライアントからサーバーへのデータ転送を閉じ、クライアントはFIN_WAIT_1状態に入ります。
(2)2番目の波:FINを受信した後、サーバーはクライアントにACKを送信し、シリアル番号が受信したシリアル番号+ 1(SYNと同じ、FINがシリアル番号を占有する)であることを確認し、サーバーはCLOSE_WAIT状態になります。
(3)3番目のウェーブ:サーバーはサーバーからクライアントへのデータ転送を閉じるためにFINを送信し、サーバーはLAST_ACK状態に入ります。
(4)4番目のウェーブ:クライアントがFINを受信した後、クライアントはTIME_WAIT状態に入り、サーバーにACKを送信して、シリアル番号が受信したシリアル番号+1であることを確認し、サーバーがCLOSED状態になり、4つのウェーブを完了します。

7.テストツール

テストツールは次のカテゴリにすぎません。

自動テストツール(QTPなど)

パフォーマンステストツール(loadrunnerなど)

テスト管理クラス(jiraなど)

セキュリティテストツール

侵入テストツール

8.その他の概念的な問題

ベータテストとアルファテストの違いは何ですか

1.アルファテスト

アルファテストは、開発環境でユーザーが実施するテスト、またはシミュレーションされた実際の動作環境で開発組織内のユーザーが実施するテストです。開発者はユーザーの隣に座ります。これは、開発者が管理する環境で行われるテストです。使用中のエラーや問題をいつでも記録するのは開発者の責任です。

2.ベータテスト

ベータテストは、1人以上のユーザーの実際の使用環境で、ソフトウェアの複数のユーザーが実施するテストです。通常、開発者はテストサイトにいません。これは、開発者の制御が及ばない環境で実施されるテストです。ユーザーが遭遇した問題はすべて記録され、開発者に定期的に報告されます。ベータテストは、実際の使用環境をシミュレーションして欠陥を見つけるテストです

3.受け入れテスト

受け入れテストはユーザー指向のテストです。ソフトウェア開発とQA担当者も参加する必要があります。テストは通常​​、ユーザーの場所で行われます。ユーザーは、ソフトウェア製品が一連の受け入れテストのすべての要件を満たしているかどうかを確認します。

プロジェクトを実施している企業のみに限定され、部門の内部テストが安定した後、契約企業は契約要件に従って受け入れテストを実施します。受け入れテストの目的は、「未実現の要件」を目的として見つけ、「使用への適合性」を目標として評価することであり、このようなテストは、主な目的として欠陥を見つけることを目的としていません。

違い:2つの主な違いは、テストサイトが異なることです。

アルファテストとは、テストのために開発者の施設にユーザーを招待することを指し、ベータテストとは、1人以上のユーザーの施設で実施されるテストを指します。Alphaテスト環境は開発者によって制御され、ユーザー数は比較的少なく、時間は比較的集中しています。

ベータテスト環境は開発者によって制御されておらず、ユーザーがソフトウェアをどのように拷問したのか誰にもわかりません。ユーザー数は比較的多く、時間に集中していません。

通常、アルファテストはベータテストの前に実行されます。汎用ソフトウェア製品は大規模なベータテストを必要とし、テストサイクルは比較的長いです。製品がベータテストに合格した場合、正式にリリースできます。

アルファテストは、システム開発が完了に近づいているときのアプリケーションシステムのテストであり、テスト後にいくつかの設計変更が行われます。この種のテストは、通常、プログラムやテスターではなく、エンドユーザーまたは他の担当者によって実行されます。

ベータテストは、開発とテストが基本的に完了したときに行われるテストです。最終的なエラーや問題は、最終的なリリースの前に見つける必要があります。この種のテストは通常​​、プログラマーやテスターではなく、エンドユーザーまたは他の担当者が実行します。

4.他に質問したいことはありますか(必須)

入社できることを切に願っておりますので、他に足りないものはありますか?そして、再テストの時間はありますか?

5、履歴書テンプレート

興味があれば、これからもよろしくお願いします〜

ここに画像の説明を挿入
ここに画像の説明を挿入
上記は私が収集したビデオリソースの一部であり、このプロセスで非常に役立ちました。自習中に情報を見つけることができないという感覚を味わいたくない場合、誰もあなたの質問に答えず、数日後にあきらめたくない場合は、さまざまなソフトウェアテストリソースと技術的なディスカッションを備えた控除グループ[313782132]に参加できます。

ここに画像の説明を挿入
もちろん、面接があります。面接は通常、技術面接と人事面接に分けられます。形式の面では、グループの顔はほとんどありません。少数の企業が交差点を持っている可能性がありますが、一般的に、技術面は基本的には専門的および技術的レベルの検査です。何の問題は基本的にありません技術的な人事面を介するなど、その後、時間の面が主に限り、その後、一般的な、技術では、会社の要件を満たしていない人の全体的な品質と家族の状況の文字を見るために(いくつかの企業は、時間の面が多くの人々を磨くますがあります)
私たちは、主に技術面で言えば、技術面は主に専門的な技術知識とレベルを調べることであり、上記は私が編集したインタビューの質問も選択されています。

さあ、テストマン!計画を改善する必要がある場合は、それを実行してください。法律がなければならず、そうすれば成功するでしょう。

リソースが良ければ、推薦してください〜

おすすめ

転載: blog.csdn.net/weixin_50271247/article/details/108667800