what is sdet know difference between tester
このチュートリアルでは、スキルセット、役割と責任、給与とキャリアパスを含むSDET(テスト中のソフトウェア開発エンジニア)のすべての側面について説明します。
SDETの役割、企業が期待するこの役割からの期待と責任、SDETが持つ必要のあるスキルセット、候補者が実際に使用する必要のあるツールとテクノロジー、および一般的な給与について詳しく説明します。提供されます。
学習内容:
SDETの役割を理解する
SDETの拡張形式は– テスト中のソフトウェア開発エンジニア
非常に簡単に言えば、この役割は、純粋な開発者の役割と純粋なテスターの役割の中間の組み合わせです。 SDETは、品質エンジニアリングとソフトウェア開発の両方の熟練した専門家です。
SDETという用語は、最初にMicrosoftによって発明され、その後、Google、Amazon、Adobe、Expediaなどのほとんどの大手製品名で使用されました。主な期待の役割は、手動の反復タスクを自動化に置き換えて効率を高めることでした。テスト対象のアプリケーションの信頼性。
SDETと手動QAの比較
手動QAテスターは、主にブラックボックスまたはアプリケーションのテストに重点を置いています。これが意味するのは、QAテスターにとって重要なのは、特定の入力が与えられたときにアプリがどのように動作するかを指定することです。
7zファイルとは何ですか?
QAテスターは、通常のユーザー/顧客が使用するのと同じように、テスト対象のアプリケーション/システムを使用しますが、さまざまな入力の組み合わせなどを試すことで、より詳細な詳細やエッジシナリオに焦点を当てます。
SDETは、ホワイトボックステストとブラックボックステストの両方からのアプリケーションに重点を置いています。言い換えれば、彼らはアプリの内部機能も認識しているため、ホワイトボックスまたはブラックボックスの両方のテスト手法を使用して自動化テストを作成できます。
本質的に、テストのソフトウェア開発エンジニアは、より良い品質基準とより欠陥の少ないソフトウェア製品を保証するアプリの内部機能を理解するために、実践的な開発/コーディングの知識とともにすべてのブラックボックステスト技術を知っている必要があります。
基本的に、SDETは、あらゆる手段を通じて効果的なQAを実現するためのイネーブラーとして機能する必要があります。これはまた、個人が自分のスキルを使用して、テスト対象のソフトウェアのすべての部分が、機能領域と非機能領域の両方のテストを含む可能な限り最良の方法で検証されることを保証することを意味します。
さまざまなパラメーターでのSDETと手動テストの比較を見てみましょう
パラメータ | SDET | 手動テスト担当者 |
---|---|---|
テスト範囲 | さまざまなテスト手法とタイプに焦点を当てています。 例: 機能的、非機能的、セキュリティ、パフォーマンスなど。 | 一般に、テスト対象のアプリケーションの機能の観点に焦点を合わせます。手動テスターは、テスト対象のアプリのユーザー/顧客のように動作し、その観点から検証します。 |
オートメーション | SDETは主に、反復シナリオの自動化に重点を置いており、手動テスターがより複雑でエッジのあるシナリオに集中し、帯域幅とスキルをより効率的に使用できるようにします。 | 手動テスターは、自動化のスキルを持っているか、まったく持っていません。ただし、手動テスト担当者は、手動テストを支援するツールの使用に注意する必要があります。 例: Postmanを使用してAPIエンドポイントを実行したり、ソースラボなどのクラウドプロバイダーを使用してさまざまなプラットフォームバージョンでテストを実行したりします。 |
プライマリスキルセット | SDETは主に、テストケースの自動化と、チームが繰り返しの作業を減らすのに役立つ再利用可能なスクリプト/ツールの作成を担当します。 SDETチームのシニアメンバーは、自動化フレームワークを作成し、他のSDETがフレームワークを使用してテストを作成できるようにする責任もあります。 | 手動テスターは、主にアプリの機能に焦点を当て、エッジケースのシナリオと複雑なテストケースに焦点を当てます。 例えば: モバイルアプリをテストする手動テスターは、すべての機能シナリオに加えて、次のようなシナリオを考えます。 -バックエンド操作/ネットワーク呼び出しが進行中のときにアプリを閉じるとどうなりますか。 -顧客がアプリの特定のページを表示しているときにモバイルが突然オフになった場合はどうなりますか。 -アプリなどにドキュメントをアップロードしている最中にインターネットがオフになるとどうなりますか。 |
給与 | SDETは、彼らが持っているスキルと経験のために、一般的に高い給与(手動テスターよりも約40-50%高い)を提供されます。 | 純粋な手動テストの役割は、手動テスターが新しいツールを学習し、提供される製品に付加価値を付けようとするハイブリッドの役割と比較して、給与が低くなります。 |
テストスキルセットのソフトウェア開発エンジニア
以下に、SDETが所有しなければならないスキルセットを示します。
#1)オープンマインドセット
何よりも重要なスキルセットは、テスト中のソフトウェア開発エンジニアは、テスト対象のアプリを徹底的にテストできるようにするために必要なスクリプト言語/ツールを学ぶことにオープンである必要があるということです。
ある会社のSDETとして、Microsoft / .NET技術スタックを使用して作業する可能性が非常に高いですが、別の会社では、開発言語は主にJavaです。したがって、SDETは、新しいもの/技術を学ぶためのオープンな考え方を持つことが期待されます。必要に応じて。
#2)アダプティブ
テスト中のソフトウェア開発エンジニアは、プロジェクト、ツール、テクノロジー、データベースなどのニーズに適応する必要があります。 例えば – SDETとして、APIテストを行った経験があるかもしれませんが、別の役割では、UIまたはフロントエンドをテストする必要があります。したがって、この役割では、高品質の標準製品を提供するために、プロジェクトのニーズに適応する必要があります。
#3)マルチタスカー
ほとんどの製品会社では、多くの場合、DEVとQAの比率が大幅に偏っています。これは、DEV:QAの比率が4:1または5:1のチームを見るのが一般的であることを意味します。したがって、SDETが複数のことに関与して提供することが期待されることが不可欠です。
これらは、SDETが取り組むことが期待されるいくつかの責任です。
- 利害関係者会議への参加:SDETは、開発者と製品担当者の両方と緊密に連携して、開発者と製品の両方の観点から製品を理解し、自動化戦略を考案/提案する必要があります。
- フレームワーク/ツールを作成する
- テスト計画を戦略化する
- 欠陥の発生/調査
- 開発者と一緒にユニットテストに貢献することが必要になる場合があります。
#4)探索的考え方
各SDETは、これらの行を常に覚えておく必要があります–「 常に同じアクションを繰り返す場合は、自動化することを検討してください 「」
その人は、生産性を高め、高品質のソフトウェア製品を保証するためのツールの助けを借りて、自分の道に来るものすべての労力を減らすという考え方を持っているでしょう。
SDETの主な仕事は、すべての自動化作業に加えて、必要なものをすべて備えた高品質の製品を提供することです。したがって、SDETは、さらに多くの隠れたバグや欠陥を発見するための探索的な方法を通じて製品のテストに集中する必要があります。
#5)コラボレーション、貢献、コミュニケーション
SDETの役割は、開発者、製品、手動テスターなどのさまざまな利害関係者間の連絡を義務付けています。
SDETは、必要なすべての利害関係者と協力し、必要に応じて必要なすべての詳細を伝達することが重要です。
SDETとQAチームは、製品が一般に公開される前に品質ゲートを保持しているため、製品が顧客に発売されるのに適しているかどうかを判断する上で重要な役割を果たします。
役割と責任
それでは、SDETの日々の仕事と責任、およびSDETが実行することが期待されるさまざまなタスクについて理解してみましょう。
- 開発者やビジネスの利害関係者と協力して、受け入れ基準の自動化に努めます。つまり、簡単に言うと、SDETは最初に受け入れ/顧客の観点から要件を理解し、コーディング言語やデータベースなどの観点から製品の開発方法を理解し、次に可能な限り最大のシナリオを自動化する戦略を計画する必要があります。 。
- 機能テスト、回帰テスト、およびパフォーマンステストのための堅牢で高品質のテスト自動化ソリューションの構築を担当します。
- 必要に応じて、再利用可能なスクリプト/ツールを作成します。
- テストの機能領域と非機能領域の両方に貢献します。機能テストには、機能/要件の観点からのテストが含まれ、主に受け入れ基準またはユーザーストーリーによって推進されます。
ただし、非機能テストも同様に重要です。 例えば、 アプリケーションのパフォーマンス、アプリケーションの安全性、アプリのセキュリティを損なう可能性のあるハッキングがアプリに残っていないことを確認し、顧客と組織の両方に大きな損失をもたらす可能性があります。 - また、設計およびアーキテクチャ設計のディスカッションに参加し、コードレビューで効果的なフィードバックを提供します。
素晴らしいSDETになる
優れたSDETになるために、彼らの役割をよりうまく遂行するために学ばなければならないいくつかのヒント/基本的なツールと技術的なスキルを見てみましょう。
前のセクションでは、テストのソフトウェア開発エンジニアがその役割で優れたものになるために持っていなければならない資質について学びました。彼らはオープンな考え方を持ち、適応力があり、製品またはチームによって義務付けられている方法でコミュニケーション、コラボレーション、および貢献できる必要があります。
ルーターのネットワークセキュリティキーの場所
SDETが学習する必要のある一般的なツールとテクノロジーのリストを見てみましょう。
- テストの原則、テストの種類、および方法論をしっかりと理解している必要があります。
- デバッグの問題に非常に精通している–次のようなデバッグツールを学ぶ– Chromeウェブデバッガー これは、Webアプリケーションのデバッグや、テスト中のアプリのネットワークログの調査に非常に役立ちます。
- 再利用可能なコード/スクリプトを記述できる必要があるため、少なくとも1つのスクリプト言語に習熟している必要があります。学ぶのが最も簡単なのはPythonで、これはさまざまなタスク、自動化フレームワークなどに適用できます。
- 次のようなAPIテストクライアントに精通している POSTMAN
- モックフレームワークのようなホワイトボックステストツールとテクニックに注意する必要があります( Mockito )など。必要に応じてユニットテストの作成にも貢献することが期待される場合があります。
- 彼らは次のようなバージョン管理ツールを知っている必要があります 行く 。また、彼らはの概念に精通している必要があります プルリクエスト 、コードレビューなど。
- Webアプリケーションのアーキテクチャと一般的なクライアントサーバーモデルの理解。
- 基本的なオブジェクト指向プログラミングの概念を認識し、 固体 モデル( S イングル責任、 または ペン/閉鎖原則、 L iskov置換、 私 インターフェースの分離、 D ependency Inversion)
- の基本的な理解 継続的インテグレーション / 継続的デリバリー 概念(CI / CD)であり、Jenkins / BambooなどのCIツールにも注意する必要があります。
SDETは通常、展開の問題も処理することが期待されているため、これらのツールを理解することが不可欠です。 - 少なくとも1つのフロントエンド自動化フレームワークに精通している必要があります。最も簡単で最も広く使用されている セレン 。これはWebアプリケーションのフロントエンドテストの聖杯であり、ほとんどすべての組織がUIテストの自動化にSeleniumフレームワークを使用しています。
- パフォーマンステストの基本を学び、次のようなオープンソースのパフォーマンステストツールを使用して簡単なスクリプトを作成します。 JMeter 非常に役立ち、これを参照できます Jmeterチュートリアル 。 SDETは、パフォーマンステストなどの非機能要件も処理することが期待されているため、これは役立ちます。
- また、セキュリティテストの基本的な概念についても知っておく必要があります。これには、アプリで対処されていない基本的なセキュリティ上の欠陥がないことを保証する基本的なコーディング標準の知識も含まれます。 OWASP このようなすべての基本的な概念の優れたリファレンスです。
- SDETは、アジャイル開発手法を理解、理解、および実装することが期待されており、アジャイルのスプリント/スクラム手法を使用してチームと快適に連携できる必要があります。
- 次のようなクラウドテクノロジープラットフォームを知っている必要があります– アマゾンAWS 、 Google GCP 、または Microsoft Azure 。
現在、ほとんどの企業がクラウドベースのインフラストラクチャに移行しているため、クラウドツールとテクノロジーの基本を理解しておくと、一般的に始めるのに役立ちます。
SDETの認定
一般に、SDETで利用できる特定の認定はありません
誰かがテストの旅でソフトウェア開発エンジニアを始めたい場合は、このチュートリアルの「優れたSDETになる方法」セクションに記載されているポイントに集中するだけで、オープンマインドセットのSDETは学習の旅を続ける必要があります仕事上の。
テストの用語と基本については、ソフトウェアテストの専門家であるすべての人に認定を受けることをお勧めします。 ISTQBFoundationテスト証明書 。
この認定は、次のようなすべての基本的なソフトウェアテストの概念をカバーしています。
- テストタイプ–機能的/非機能的
- ブラックボックス/ホワイトボックス/グレーボックステスト
- テスト計画/欠陥管理
- テスト手法–等価分割、トレーサビリティマトリックスなど。
利用可能な他の国際的なソフトウェアテスト認定もありますが、それらのほとんどは、企業がSDETを採用するためのそれほど主要な選択基準ではありません。
そのようなすべての認定のリストが利用可能です ここに。
インタビュー
大規模な製品会社のほとんどでは、テスト面接のソフトウェア開発エンジニアは、方法論と関連概念の開発のほとんどを知っていることが期待されるため、開発者面接のソフトウェア開発エンジニアよりもはるかに多くなっています。
ただし、インタビューは開発者に比べて少し寛大です。ここで強調されているのは、候補者が問題にどのようにアプローチするか、そして人が問題についてどれだけ広く考えることができるかです。
一般に、SDETインタビューは、Amazon、Microsoft、Adobe、Expediaなどのほぼすべての大手製品組織での次のラウンド/質問タイプで構成されています。
- 書かれたラウンド: 特定の製品のテストケースを作成します。ここでの目的は、すべての機能シナリオ、エッジケースシナリオ、セキュリティテスト、パフォーマンステストなどに焦点を当てた候補者である場合のように、テストのすべての側面で候補者についてどのように考えることができるかを理解することです。
- コーディングラウンド: 小さなコーディング演習が行われ、候補者はすべての単体テストと機能テストのシナリオを書き留めることが期待されています。ここでテストされる領域またはスキルは、基本的なコーディングの知識/構成、テスト可能なコードの記述、および単体テスト、モックなどのホワイトボックステスト手法に関する知識です。
- デザインラウンド: システム設計の質問が投げられます、 例 、 YouTubeをどのようにデザインしますか
これらのタイプの質問は、一般に開発者にとってより関連性がありますが、SDETの場合、インタビュアーは、人がどれだけ広く考えることができるか、候補者はOOPの概念について知っているか、スケーラビリティ、堅牢性、負荷分散などについて考えることができる候補者であるかを探しています。 、候補者は、設計するアプリケーションに適切なデータベースを使用できますか - 人事/マネージャーラウンド: ここでは、候補者についてチームフィットネスやカルチャーフィットネスなどを観察し、給与について話し合い、交渉も行います。
推奨読書=> SDETインタビューの質問
SDET給与
前のセクションで説明したように、SDETは、ほとんどの手動テストの役割よりも高い給与を要求します。多くの場合、給与は同様の経験レベルの開発者の給与に匹敵します。
参照できます ここに さまざまな組織のさまざまなSDETプロファイルでの給与の範囲について調べるため。一般的に、SDETの給与は、組織だけでなく経験バンドによっても異なります。
以下は、Microsoft、Expediaなどのトップ企業のSDET給与の比較です。
レベル | マイクロソフト($) | Expedia($) |
---|---|---|
SDET-私 | 65000〜80000 | 60000〜70000 |
SDET-II | 75000-11000 | 7000-100000 |
SDET氏 | 100,000〜150,000 | 90000-130,000 |
キャリアの道
一般に、SDETキャリアラダーは次のように開始および成長します。
- SDET-1 –自動化スクリプトを記述できるジュニアレベルのSDET。
- SDET-2 –再利用可能なツールと自動化フレームワークを作成できる経験豊富なSDET。
- SDET氏 – SDET1やSDET2のような個人の貢献者になることができるが、
- コードレビューの実施。
- デザインディスカッションに参加し、デザインに適切な変更を加えるための提案を行います。
- 製品の全体的なテスト戦略に参加します。
- CI / CD配信モデルに参加し、実行パイプラインを作成します。
- SDETマネージャー – SDET2の後、SrSDETまたはSDETManagerPathのいずれかを選択できます。 SDETマネージャーには、SDETの中核的な作業に加えて、管理/リーダーシップの責任もあります。
- テストアーキテクト/ソリューションエンジニア –テストアーキテクトまたはソリューションエンジニアは、主に複数のプロジェクトの全体的なフレームワークを設計/設計し、テスト仕様をフレーム化し、デリバリーマネージャーとしても機能します。これらの人々はgotoの個人であり、複数のプロジェクトがテスト結果を達成し、十分にテストされた欠陥のない製品を出荷するのを支援します。
SDETキャリアパスのブロックレベルの表現は次のとおりです。
結論
このチュートリアルでは、役割と責任の観点からSDETとは何か、必須のスキル、SDETと手動テスターの違い、およびテストで優れたソフトウェア開発エンジニアになるために必要なことについて詳しく学びました。
一般に、SDETは需要の高い役割であり、ほとんどすべての優れた製品会社がチームでこの役割を担っており、高く評価されています。