一般的な面接では、候補者の「基礎」がしっかりしているかどうかを確認するために、非常に基本的な質問を 1 つまたは 2 つ行います。いくつかの質問はオペレーティング システム レベルに関するもの、いくつかは Python 言語に関するものなどです。
長年IT業界で働いてきた私たちは、プログラマーにとって、一流のインターネット企業に就職できるかどうかは、今後の発展に大きな影響を与えると感じました。
「それはわかっているけど、大きな工場に入るのは難しすぎて、面接の案内状どころか履歴書も基本的に捨てられてしまう」と言いたい人も多いでしょう。
友人が一時的に忙しいため、今日は友人の代わりに面接をさせていただきます。初めての面接(弊社への応募ではありません)ですが、とても真剣に責任ある姿勢で面接を進めさせていただきます。約30分続きます。主に技術面の面接ですが、30分ほどの間、私と面接官は交流と学習を行いましたが、コミュニケーションのプロセス全体が心地よく、心がざわつくことはありませんでした。
面接官として、あなたは良い態度を持ち、面接対象者と対等にコミュニケーションを取り、問題を分析できるように誘導し、勝手に話を遮ってはならず、ましてや自分のわずかな知識をひけらかす必要はありません。適切な人材を雇用することを願っています。また、面接を受ける人が優秀であれば、面接官にとっても学びの機会となります。学習と尊敬は常に双方向です。
比較的簡単な履歴書と相手の経験を考慮して、非常に浅い質問をしてしまいましたが、あまり多くを語らず、話した技術的な話題のみを述べました。それ:
システムのボトルネックとは何ですか?
同時実行とは何ですか? lordrunner で同時にテストするにはどうすればよいですか? ランデブー ポイントに障害が発生した場合はどうなりますか?
これまでの仕事で、ソフトウェア欠陥 (またはバグ) 記録には何が含まれていますか? 高品質のソフトウェア欠陥 (バグ) 記録を提出するにはどうすればよいですか?
テスト終了の基準は何ですか?
パフォーマンステストの指標は何ですか、ログイン機能のパフォーマンステストの指標は何ですか、同時に処理できるリクエストの最大数を測定する方法は何ですか? ログイン機能のテスト方法を答えてください
。
直交表テストケース設計法の特徴は何ですか?
要件テストの注意点は何ですか?
300 個のクライアントを持つクライアントと、サーバーに負荷をかける 300 個のクライアントを持つ 300 個のクライアントの違いは何ですか?
これら9つの質問を求めて面接に来た人は、抜け穴だらけで、高度な質問は致命的でさえあり、最先端のテクノロジーの最新の発展に注意を払っていませんでした。しかし、この人の給与要件は 20,000 近くあり、話し合い中は自分のことを高く評価しています。
上記は、自動テストを学びたくない人にとっての言い訳にはなりません。むしろ、テスターは作業に没頭してはいけないと感じています。現在、大量の求人情報を見る限り、高い給料を求めるなら以下のポイントが必要になります。
自動テストの基本を理解し、Appium の操作、要素の配置、操作、待機、スライドなどを理解し、PO、単体テスト、yaml、構成ファイル、テスト レポートなどの詳細な説明を理解し、アプリ テスト フレームワークの設計を完了します。キーワード駆動型、Pytest および jenkins の継続的統合と開発、パフォーマンス テスト ツールのロードランナー、自動テスト ツールの Selenium、Appium などのテスト ツールに基づいています。
わずかな力
自動ソフトウェア テスターとして、私がこれまでに培ってきたテクノロジーの要約と要約、および上級テスターが習得する必要があるスキルについてのメモを共有したいと思います。テクノロジーに興味がある人々の助けになれば幸いです。黒人の友人のもとへずっと進んでいます!
私がまとめた、2022 年に最も完成しているかもしれないソフトウェア テスト エンジニアの開発方向の知識構造図を共有しましょう。
ジュニア ソフトウェア テスト エンジニアの専門スキル予備軍
1) コンピュータとソフトウェアのテストの基本を理解する
a. 基本的なコンピュータの知識
コンピュータのコンポーネント、オペレーティング システムの分類、一般的なシステム アーキテクチャ (B/S および C/S)、一般的に使用される DOS コマンド
b. ソフトウェアテストの基本的な理論的知識
ソフトウェアテストの目的、定義、原則、製品品質モデル、ソフトウェアテストの基本プロセス
2) 一般的に使用される Linux コマンド
ソフトウェアテストでは、テスト環境を自分で構築したり、サーバー上に自動化プロジェクトを展開したりする必要がある場合があります。サーバーは基本的に Linux システムを使用するため、いくつかの基本的な Linux コマンドをマスターする必要があります。
3) SQL文
ソフトウェアテストでは、テスト結果の検証や自動化におけるテストデータの作成などをデータベースを操作して行います。したがって、データベースの最も基本的な追加、削除、変更、およびクエリ SQL ステートメントについては、独立して記述できる必要があります。
4) 手動テストケースの作成 (最も重要)
ソフトウェア テスト エンジニアとしての最も基本的な要件は、ユース ケースを作成できることです。高いカバレッジと低い反復率を備えたテスト ケースを作成する方法は、ソフトウェア テスト業界に参入する際に常に追求されるべき能力です。
5) 欠陥管理
プロジェクトのバグを時間内に確実に修正できるように、チーム内のテスターによって提案されたバグを管理する方法を理解する
ソフトウェアテスト業界に入ったばかりの学生でも上記のスキルをマスターすれば、確実な足場を築くことができます。
中級ソフトウェアテストエンジニア専門スキル予備軍
1. インターフェーステストに関する専門スキル
自動テストでもパフォーマンス テストでも、あるいはテスト開発の方向での開発でも、最も基本的なことはインターフェイスをテストすることです。したがって、優れた中級ソフトウェア テスト エンジニアになりたい場合、最初のステップはインターフェイス テストを完了できるようにすることです。
1) インターフェースおよびインターフェーステストに関する基礎的な理論的知識
インターフェイスとインターフェイス テストの概念、インターフェイス テストの原理、インターフェイス テストのプロセス、http プロトコル、Restful インターフェイス スタイルが含まれます。これらのことを理解する必要があります
2) インターフェースツールの使用: Postman と Jmeter
インターフェイスのテストには、コードまたはツールを使用できます。通常、インターフェイスのテストはせいぜいツールを使用して行われますが、「効率的」という理由以外に理由はありません。
3) パケット キャプチャ ツール: Fiddler と Charles
テスト中に、フロントエンドとバックエンドの問題を特定するために、パケット キャプチャ ツールを使用して、インターフェイスから返された結果を表示します。フロントエンドかバックエンドに問題があるかを特定します。
これら 2 つのツールは、機能が同じであるため、通常はどちらかを選択して学習します。
2. プログラミング言語学習
自動テストの実装は主にコードに依存して完了します。したがって、テストを自動化できるようにするには、まずプログラミング言語を習得する必要があります。現在、業界で主流の自動テスト用プログラミング言語はPythonとJavaです。初心者にとっては、始めるのがそれほど難しくないため、個人的には Python をお勧めします。一日中勉強できれば10日ほどでPythonを始めることができます
3. 自動化されたテストと学習
Python を学習したら、自動テストについて学習し始めることができます。
自動テストの目的は主に、回帰テストの時間を短縮することです。
ソフトウェアテストにおける自動テストは、UI自動化とインターフェース自動化に分かれます。
上記の学習に合格したら、あなたがどのような能力を持っているか見てみましょう?
SQL ステートメント、Linux 共通コマンド
手動によるテスト ケースの作成と欠陥管理
フロントエンドおよびバックエンドの問題箇所を特定するためにパケット キャプチャ ツールを使用する
インターフェイス テストに Postman または Jmeter を使用
する インターフェイス/UI 自動テストに Python を使用する
上級テストエンジニアが習得すべき知識のポイント
この段階では、知識体系を広げると同時に、上級段階、コード品質、テスト アーキテクチャ、マイクロサービスとミドルウェア、コンテナ化、自動テスト設計、テスト アーキテクチャ、CI/CD、およびテストは左にシフト、テストステージ、テストは右にシフト。
テスト開発と研究開発ポストの違いの 1 つは、研究開発では深さにより注意が払われるのに対し、テスト開発では幅広さにより注意が払われるということです。
例: 作成したテスト プラットフォーム/ツールを CI/CD パイプラインや運用保守監視システムに接続する必要がある場合があるため、CI/CD について理解する必要がある
別の例: パフォーマンス テストを行うときに、アーキテクチャ設計の核となる知識を理解していないと、フルリンク ストレス テストやサービス低下テストを行うときに解決が難しい多くの問題に遭遇する可能性があります。
比較するテスト開発 JD を見つけます。また、この投稿がミドルウェアとパフォーマンスのテスト用であることもわかります。すべての民営化プラットフォームは理解しています。
知識体系を広げることに加えて、コーディング スキルを磨く必要もあります。
つまり、大きな工場ではJavaがよく使われており、大きな工場に行きたい場合は基本的にJavaに精通していないと面接は通りやすいと言えます。
3 番目のポイント: 面接での質問
ByteDance などの大手メーカーからよく寄せられる質問をまとめたものです (回答分析を含む)
ネットワーク全体での最初のリリース - 16 のテクノロジー スタックをカバー
第 1 部、テスト理論 (テスト基礎 + 要件分析 + テストモデル + テスト計画 + テスト戦略 + テストケースなど)
第 2 部、Linux (Linux の基礎 + Linux の練習問題)
第三部、MySQL (基礎知識 + クエリの練習 + 万年学生テーブルの典型的な面接質問の要約 + データベース企業の実際の質問)
パート IV、Web テスト
パート V、API テスト
パート VI、アプリのテスト
パート VII、管理ツール
第 8 部、Python の基礎 (Python の基礎 + プログラミングの質問 + コレクション + 関数 + Python の機能など)
パート IX、Selenium 関連
パート 10、パフォーマンス テスト
パート 11、LordRunner 関連
パート 12、コンピュータ ネットワーク
第 13 部、構成の原則
パート 14、データ構造とアルゴリズム
パート XV、論理の問題
パート XVI、人事
ソフトウェアテストの基礎
ソフトウェアテストの手順は何ですか?
テストスクリプトを記録するにはどうすればよいですか?
テスト方法について検討すべきテスト方法
テストの労力を見積もるにはどうすればよいですか?
テスト設計の問題
テストプロセス中にエラーが発生した場合、解決策は何ですか?
テスト実行の問題
テスト評価の目標
テストを改善するにはどうすればよいでしょうか?
C/Sモードのメリットとデメリット
B/Sモードのメリットとデメリット
Linux の
grep と find の違いは何ですか? grep の用途は何ですか?
IPアドレスを表示しますか?
複数レベルのディレクトリを作成および削除しますか?
現在のユーザーのホーム ディレクトリで haha.txt ファイルを見つけますか?
Tomcat プロセスにクエリを実行してプロセスを強制終了し、Linux コマンドを記述するにはどうすればよいですか?
ログ ファイルを動的に表示しますか?
システムのハードディスク容量を表示するコマンド?
現在のマシンのすべてのポートを表示します、聞きますか?
Python は、
Python ソース コード ファイル内のコードの行数をカウントし、コメント、空白行を削除し、出力します。
Python は cmd を呼び出して結果を返しますか?
バブルソート
4 つの数字 1、2、3、4 から構成される、繰り返しのない 3 桁の異なる数字は何通りありますか?
Python を使用して 10000 以内の対称な数値を出力してください (対称的な数値の特徴: 数値は左右対称です。たとえば、1、2、11、121、1221 など)。
整数 N と 0 ~ 9 の数値 K が与えられた場合、0 ~ N 内の数値 K の出現数を返す必要があります。
101 ~ 200 の間に素数がいくつあるかを判断し、すべての素数を出力します
三角形を入力する関数、入力後の出力が三角形を形成できるかどうか、および三角形の種類は、同値クラス分割法を使用してテスト ケースを設計してください。
MySQL
にはどの Mysql エンジンを使用していますか?各エンジンの違いは何ですか?
クエリコマンドを最適化するにはどうすればよいですか?
データベースの最適化?
SQL インジェクションはどのように発生し、それを防ぐにはどうすればよいですか?
NoSQL とリレーショナル データベースの違いは何ですか?
MySQL の本質と MongoDB の最も基本的な違いは何ですか
MySQLデータベースにページングを実装するにはどうすればよいですか?
MySQLデータベースの操作は?
データベースを最適化しますか? データベースのパフォーマンスを向上させますか?
データの整合性とは何ですか?
ウェブ
Webテストとアプリテストの違いは何ですか?
WEBテスト環境構築とテスト方法
WEBテストチュートリアル
WEBテストのポイントと基本的なやり方
Webテストページの概要
…
インターフェースのテスト
インターフェースとは
モジュールが http から https にリクエストする場合、テスト計画はどのように策定および変更する必要がありますか?
よく使用される HTTP プロトコル デバッグ エージェントは何ですか? HTTPS プロトコルをキャプチャするための設定プロセスを詳しく説明しますか?
TCP/IPプロトコルの階層構造と各層の重要なプロトコルについて説明する
jmeter の場合、インターフェイスの応答結果は次のようになります。
インターフェースによって生成されたガベージデータをクリーンアップする方法
サードパーティのインターフェイスへの依存に対処する方法
テストデータはどこに置きますか?
データドリブンとは何ですか?またそれをパラメータ化する方法は何ですか?
…
パフォーマンス テスト
パフォーマンス テストの目的は何だと思いますか? パフォーマンス テストを適切に行うための鍵は何ですか?
サーバーサイドのパフォーマンス分析はどのような角度から行われますか?
ストレステスト、ネガティブテスト、パフォーマンステストをどのように理解すればよいでしょうか?
メモリリークがあるかどうかを判断する方法と懸念される指標は何ですか?
ソフトウェアにおけるメモリリークの原因とその確認方法を説明します(開発言語と組み合わせて記述可能)
バリュー転送とは何ですか、アドレス転送とは何ですか。また、この 2 つの違いは何ですか?
システムのボトルネックとは何でしょうか?
...
Selenium は
自動テスト フレームワークをどのように構築するのでしょうか?
自動テストケースを設計する方法:
Webdriver はどのようにしてブラウザを開いたり終了したりするのでしょうか?
自動テストフレームワークとは何ですか?
Selenium とは何ですか?また、一般的なバージョンは何ですか?
コマンドラインから Selenium RC を起動するにはどうすればよいですか?
私のマシンではポート 4444 が空いていません。別のポートを使用するにはどうすればよいですか?
Selenium Server とは何ですか? Selenium Hub との違いは何ですか?
Selenium からデータベースに接続するにはどうすればよいですか?
オブジェクトが複数のページに存在することをどのように確認しますか?
XPath での単一スラッシュと二重スラッシュの違いは何ですか?
SeleniumIDE/RC のユーザー拡張機能を作成するにはどうすればよいですか?
ページが正常に読み込まれた後に要素の存在を確認するにはどうすればよいですか?
Selenium Grid について何を知っていますか?それが提供する機能は何ですか?
Java クラスから Selenium サーバーを起動するにはどうすればよいですか?
Seleniumの検証ポイントは何ですか?
XPath とは何ですか? Selenium で XPath を使用する必要があるのはどのような場合ですか?
…
コンピュータとネットワーク
コンピュータの IP は 192.168.10.71、サブネット マスクは 255.255.255.64、192.168.10.201…です。
DNS、Active Directory、ドメインの概念について簡単に説明してください。
10M ブロードバンドとは何を意味しますか? 理論上のダウンロード速度はどのくらいですか?
IPアドレスとは何ですか?
OSI ネットワーク モデルの 7 つの層とは何ですか?
TCPとUDPの違いは何ですか?
HTTP はどのプロトコル層に属しますか?
HTTP と HTTPS の違いは何ですか?
Cookie とセッションの違いは何ですか?
HTTP get リクエストと post リクエストの違いは何ですか?
HTTP1.0とHTTP1.1の違いは何ですか
TCPコネクションの確立処理と切断処理?
クライアントが DHCP を使用して IP を取得するプロセスは?
ネットワーク セグメントのネットワーク アドレスとブロードキャスト アドレスを書き留めますか?
…
人事
テストに関するキャリア開発についてはどのようなものですか? テストを行うメリットは何だと思いますか?
仕事を探すとき、最も重要なことは何ですか?
なぜあなたを認めなければならないのでしょうか?
あなたの個人的なベストポイントを教えてください。
テストエンジニアにはどのような資質やスキルが必要なのでしょうか?
また、ソフトウェアの品質をどのように確保するか、つまりソフトウェアの品質を最大限に保証するにはどうすればよいとお考えですか。
なぜこのラインをテストすることにしたのですか?
あなたを採用したら、その部門にどのような貢献ができますか?
書類の入手方法:
このドキュメントは、[ソフトウェア テスト] に参加したい友人にとって、最も包括的で完全な準備倉庫となるはずです。この倉庫は、私が最も困難な旅を乗り越えるのにも同行してくれました。そして、あなたにも役立つことを願っています。上記のものはすべて共有できます。下の小さなカードをクリックしてグループに参加すると、無料で入手できます。