ソフトウェアテストの面接では、面接官から「テスト環境を構築できますか?」と質問されました。非常にレベルが高いと思われる答え方

1. テスト環境を構築しますか?

 リード: ソフトウェアテストの面接で「テスト環境を構築してもらえますか?」とよく聞かれる人が多いです。この質問にどう答えるか知っていますか?

2. 答え方

面接中にこのような質問に遭遇したとき、多くの人は頭が真っ白になったり、断片的なことがあり、どこから始めればよいのかわからないと感じるでしょう。一方で、面接官がこの質問をした意図がわかりません。彼が何を望んでいるのか分かりませんが?どこに答えればいいのかさえ分かりません。8 年以上テスト業界に携わってきたテスターとして、私の経験と意見をいくつか共有したいと思います。

テスト環境構築の学習方向性

 

まず、面接官がこの質問をしたときに得たいのは肯定的な答えであることは間違いありませんので、あなたにはテスト環境を構築できる優秀なテストエンジニアになってほしいと願っています。QA が実行するテストの種類に関係なく、最も基本的な機能テストにはテスト環境を構築する必要がありますが、高度な部分のパフォーマンス ストレス テストには構築された環境に対するより高い要件があります。したがって、テスト環境の構築は優秀なテストエンジニアに必要なスキルの1つであり、QAがテスト業務を遂行するための前提条件でもあります。もちろん、企業によってはテスト環境の準備を支援する運用保守部門や研究開発部門が存在する場合もありますが、QA が他部門に盲目的に依存すると、テスト作業の開発が大幅に制限されてしまいます。遅れはテスト作業の進捗や効率に直接影響しますし、テスト環境が QA によって維持されていない場合、後の事業拡大によりテスト環境を最適化する必要がある場合、または問題やデバッグに遭遇した場合に、QA がテスト環境を維持する必要があります。他の部門に依存すると、テスト作業が独立して行われなくなります。また、テストスタッフが専門的ではないように見えます。

3. 習得すべき知識

QA のテスト環境を構築する能力の重要性を理解しましたが、テスト環境を構築する能力を得るにはどのようなスキルと知識が必要ですか?

そのためには、テスト環境が何であるかを知る必要があります。テスト環境(テスト環境)とは、ソフトウェアのテストを完了するために必要なコンピュータのハードウェア、ソフトウェア、ネットワーク機器、および履歴データの総称であり、つまり、テスト環境 = ハードウェア + ソフトウェア + ネットワーク + データ準備 + テスト ツールです。テスト環境の構築方法を学びたい場合は、明らかに、これら 5 つのスキルと知識が必要です。そこで、各知識分野で習得すべき知識のポイントと深さと幅を詳しく紹介し、あなたが努力すべき方向性を知るためのガイドとしたいと考えています。

ハードウェア、一般テストに含まれるハードウェアは、Windows システム、Linux システム、MacOS システムなどのコンピュータ システムに関連する内容です。テスト環境は、現在テストされているソフトウェアの特定の要件に応じて、上記のシステムのいずれかに展開できます。一般的なソフトウェアの動作プラットフォームはWindows系が主流となりますが、ソフトウェアの操作にインタラクションを必要とするサービスやソフトウェアのバックグラウンドのホスティングサービスなどの関連サービスの構築はLinux系で構築されます。したがって、QA を行うには、Linux システムに関連するコマンドと操作を理解し、熟練している必要があります。Linux システムには、CentOS、Ubuntu、Redhat、Debian など、さまざまな種類があります。製品の特定のニーズに応じて、適切なシステムを選択してください。さらに、多くの企業が QA に機器リソースを提供し、QA は需要に応じて Linux システムをサーバーに展開する必要があるため、Linux システムのインストール方法をよく知っておく必要があります。ここでもう 1 つ注意すべき点は、ソフトウェアを実行するためのハードウェア要件です。通常、ソフトウェア マニュアルには、CPU の数、メモリ サイズ、ハードディスク サイズ、ネットワーク カードの数、その他の情報など、ソフトウェアのハードウェア要件が指定されています。明確な要件がない場合、QA は開発または製品と連絡を取ることができます。確認するために。したがって、ハードウェアに関しては、さまざまなオペレーティング システム、特に Linux システムの一般的なコマンドを操作できること、システムをインストールできること、IP やルーティングなどの基本的なネットワークを設定できることが必要です (これはネットワークの部分で説明します)、さまざまなシステムに共通のサービスをインストールして構築できます。

現在テストされているソフトウェアおよび関連する依存型および対話型ソフトウェアを含むソフトウェア。テスト対象のソフトウェアの現在の展開には、通常、展開された Linux システムにサービスがインストールされた後、フロントエンドの Web または APP を介して直接アクセスできます。バックエンドの展開が完了している限り、フロントエンドは比較的単純で、依存型の対話型ソフトウェア、通常は JDK、Tomcat、データベースなどのサポート ソフトウェアが含まれます。インストールと展開の方法は、自分で Baidu にアクセスできます。インターネット上には関連するチュートリアルが多数あります。

ネットワーク、これは多くのテスターの知識の盲点である可能性があります。ネットワークは比較的大規模な知識システムであり、多くのコンテンツが含まれており、複雑です。したがって、建設環境に関連の深いネットワーク知識を優先的に学習し、その後は自分でゆっくりと浸透させてさらに学習することができます。一般的な企業ネットワーク環境では、最も基本的な要件はスイッチングとルーティングに関する知識です。たとえば、ネットワーク トポロジを自分で構築し、複数のネットワーク デバイス (サーバー、ルーティング スイッチなどの中間デバイス、クライアントなど) を使用する場合、QA は IP アドレスを計画および構成し、ルーティングと VLAN を展開し、ネットワークの分離と通信を実現するためのその他の関連構成。このようにして、通常のビジネス テストを実行できます。さらに、TCP、UDP、HTTP などの一般的に使用される基本的なネットワーク プロトコルの基本を理解しておくことが最善です。 . 多くのサービスはこれらの基本プロトコルに基づいて実装されているため、これらを知ることで理解が深まり、テスト運用の実現に役立ちます。もちろん、前述したように、上記のネットワーク デバイスに加えて、Linux IP やルーティング設定、Linux システム コマンド パケット キャプチャ、ネットワーク通信問題のデバッグなど、Linux の基本的なネットワーク設定も操作する必要があります。これらには Linux コマンドとネットワーク設定が必要ですが、基本的なものは一緒に使用されます。

 データ準備とは、一般にテスト データの準備を指します。テストデータはテストケースの設計段階で設計され、ソフトウェアの実行時にソフトウェアの機能を検証するためのソフトウェアの入力として使用されます。少量の通常のテスト データであれば、手動で直接シミュレーションできますが、大量のユーザー データのシミュレーションであれば、テスト ツールを使用して構築できます。これについては、「」で詳しく説明します。テストツールの次の部分。

テスト ツールは、多くのテスターが興味を持ち、集まってくる知識分野です。機能テストを実行するときは、手動作業の代わりにさまざまなツールを使用してテストを簡素化および詳細化します。ストレスとパフォーマンスを実行するときは、テスト ツールを使用して、高同時実行性、高スループット、高持続性のデータをシミュレートする必要があります。確かにツールは非常に重要かつ実用的であることがわかりますが、多くの人材紹介会社の募集要項を見てみると、基本的には「xxxテストツールに精通していること」という明確な要件が設けられています。QA は、実行するテストの種類に応じて、学習に適切なツールを選択できます。たとえば、インターフェイス テストを実行したい場合は、Jmeter または postman を選択できます。ストレスおよびパフォーマンス テストを実行したい場合は、Loadrunner、IxLoad、または Avalanche の使用方法を学習でき、トラフィックをシミュレートしたい場合は、複数のプロトコルに対応している場合、Hping、Curl、ab などの Linux ツールで一般的に使用されるトラフィック テストを使用することもできます。また、fiddler、wireshark など、一般的に使用されるデバッグ ツールやパケット キャプチャ ツールもいくつかあります。学び、活用することもできます。つまり、このツールはテストを支援する優れたヘルパーであり、柔軟に使用することでテストをより効率的に行うことができます。もちろん、ツールの重要性は非難の余地がないことをここで付け加えておきたいと思いますが、誰もが盲目的にツールを崇拝したり、盲目的にツールの学習と使用を追求したりするべきではありません。そしてプロのテスターは依然として優れたテストのアイデアを適用する必要があります テストで概念とコンセプトを適切に使用することによってのみ、その役割を最大限に発揮できます。

4. 面接スキル

こう言うと、多くの人が大きなプレッシャーを感じるかもしれませんが、結局のところ、これだけ多くの専門知識を習得するのは誰にとっても簡単ではありません。すべてをマスターできれば完璧ですが、経験が浅い人や、長年テストに携わっている多くのテストエンジニアでさえ、これらすべての領域をうまくできるかどうか自信を持って確信することはできません。知識。では、あなたが万能の優秀なテストエンジニアに成長する前に、面接官からこのような質問をされたらどうすればよいでしょうか?ここで、いくつかのヒントを共有します。

          まず、面接に行く前に、どのような企業の面接を受けるのかを理解しましょう。実はこの点はこの質問に限らず面接全般に共通することであり、まずは面接を受ける企業の主な事業内容や職務要件を把握し、自分なりの知識や質問への回答の方向性を準備しておく必要があります。これは面接の必需品です。さて、今日お話しする環境構築の話に戻ります。テスト環境の構築に求められる能力は企業によって異なります。たとえば、ルーティングとスイッチング、ファイアウォール、その他のビジネス製品などの従来のネットワーク機器会社の場合、ネットワーク トポロジの構築と構成、ネットワークの使用方法など、ネットワークに関するより基本的な知識が必要になります。関連するプロトコルなどを理解できるように、関連する知識を準備します。従来の Windows ソフトウェア会社の場合、ほとんどのテスト環境はシステムに関連しており、これは前述のハードウェア部分に必要な内容です。そうすれば、時間をかけて Linux システムに関する関連知識を事前に補うことができます。Linux システムが現在最も人気のあるインターネット企業であれば、Web アプリケーション、PC 側の APP、モバイル側の APP ソフトウェアをテストします。このようなテスト環境の構築では、Linux システムの知識、関連サービスの確立、さまざまなツールの使用に重点が置かれます。もちろん、この分析はあくまで大まかなまとめであり、絶対に正しいというわけではなく、すべての状況をカバーできるわけではないので、皆さんも参考にしていただければと思います。しかし、最初に企業の種類と事業を分析し、求人要件を事前に準備するという考えは間違いなく有益であり、無害です。

          さらに、面接の前に、全員が自分の既存の職歴と知識体系に従ってよく調べなければなりません。ほとんどの面接官は、あなたの職歴に基づいてテスト環境を構築するプロセスについて説明するよう求めます。その後、実際のプロジェクト経験に基づいて自分の知識を組み合わせ、目的を絞った方法で言語を体系化して、ニーズに応える必要があります。現在の面接会社のニーズを聞き、相手の期待に応える美しい答えをまとめてください。少し抽象的かもしれないので、具体的な例を見てみましょう。

五、例

インタビュアー: 前の会社では、テストのために独自のテスト環境を構築する必要がありましたか? 独自のテスト環境を独立して構築しますか?

            あなた:元の会社では、テスト作業がより独立して独立して実行でき、後のメンテナンスがより便利になるため、テスト担当者全員が自分でテスト環境を構築しました(最初に、私は質問に肯定的に答え、次のように言いました)私がテスト環境を構築することを伝え、テスターがテスト環境を構築すると考えている必要性も表明します)。通常、テスト要件を取得したら、まず要件に従って環境を準備します。私の前の会社は独自の機器とそれに対応する Web アプリケーションと APP を備えたファイアウォール会社だったので、これらのフロントエンド アプリケーションとファイアウォール機器サービスを同時にテストします (最初に会社の業種と私自身のテスト製品を紹介しましょう) , 後で環境構築のポイントを説明するため、ここでは実際の状況に応じて決定できます)。したがって、このようなテスト環境を準備するには、クライアントとバックエンド サーバーをそれぞれシミュレートする 2 台の Linux サーバーを準備し、テスト トポロジをセットアップして、ネットワークに接続する必要があります (基本的なネットワーク構成機能があることを示します)。 Linuxシステムは通常、それ自体でインストールされ、対応するサービスが用意されている必要があります(Linuxシステムの動作と共通サービスの構築を表現することはOK)。その後、クライアントを使用してシミュレーションします。一部のユーザー トラフィック、および Windows 上で一般的に使用されるサービスもインストールします ユーザー データをシミュレートして製品をテストするためのテスト ツール (一般的なテスト ツールは問題ありません)。このようにして、テスト環境の初期設定はほぼ完了します。

         インタビュアー: Linux システムの使用方法を知っているんですね? 通常どのようなサービスをインストールしますか? 具体的な手順を簡単に説明していただけますか? (あなたの説明から気になる点をピックアップし、具体的な知識など詳しくお聞きします)

         現時点では、具体的な詳細に答えて、技術的なハードコア能力をテストする必要があります。もちろん、自分自身についてあまり明確でない場合は、重要な部分を避け、面接官を賢く誘導して自分の専門分野について質問する必要があります。「これについてはあまり詳しくありませんが、別の xxx を使用しました。」 、そして私はこれに精通しています。」  

        ……

6. まとめ

全体として、面接官がこのような質問をするとき、一方ではあなたの技術的な能力を調べたいと考えていますが、他方ではあなたの表現力も調べたいと考えています。したがって、上記の知識ポイントを比較して、自分の知識の予備力が足りないと感じた場合は、面接前にしっかりと個別指導を受けることができます。また、多くの知識分野に手を出していると感じた場合は、どこに行ったらよいかわかりません。回答する際にまず始めて、その後、自分の経験や現実を踏まえて、自分なりの知識体系を要約・沈殿させて整理することが多いです。

最後に、私の記事を注意深く読んでくださった皆さんに感謝します。互恵性は常に必要です。それはそれほど価値のあるものではありませんが、必要な場合はそれを取り上げることができます。

これらの資料は、 [ソフトウェア テスト] の友人にとって最も包括的で完全な準備倉庫である必要があります。この倉庫は、最も困難な旅を通じて何万人もの。お役に立てれば幸いです。テスト エンジニアに 

おすすめ

転載: blog.csdn.net/kk_lzvvkpj/article/details/132605352
おすすめ