【ソフトウェアテスト面接】最も完全なネットワーク、自動テスト面接の質問の要約(回答付き)


序文

インタビューの質問 1: 自動テストを行ったことがありますか?

ソフトウェア テストのインタビューの質問: https://www.bilibili.com/video/BV1Lq4y137aR/

回答:
xx プロジェクトで Web 自動テストを実装しました. 私たちは、私たちのプロジェクトで自動テスト フレームワーク技術を構築しました: python+selenium+pytest/unittest+ddt+jenkins, そして、POM 階層化モード (オブジェクト指向の考え方) を使用しました, データ-driven Excel+ddt のドライブモードを使用して、これらのモジュールとテストケースの自動コード記述を担当し、この自動テスト実装プロジェクトを担当しています。

xx プロジェクト、技術スタック: python+django+pytest+vue+ddt+jenkins にインターフェイス自動テスト プラットフォーム構築を実装しました。

インタビューの質問 2: 社内で自動テストをどのように実装していますか?

1. 現在自動化を実施中の企業であり、自動化の実施プロセスを担当してほしい
2. すでに自動化を実施している企業であり、そこから学びたい

1) 自動化を行うプロジェクト チームの実現可能性分析の自動化率はどの程度ですか?
プロジェクト サイクルは 1 年以上であり、要件は頻繁に変更されず、自動化スクリプトは継続的かつ繰り返し使用できます
。自動化ツール Selenium robotframework の研究とデモのデモンストレーション
3) リーダーによる 自動化されたテスト フレームワークを構築し、プロジェクトで段階的に実装し、フレームワークの問題を発見して改善します 4) 自動化を処理し、使用ドキュメントと仕様を組み立て
ます5) カスタマイズされたレポート
生成し、フレームワークを改善し続ける

インタビューの質問 3: インターフェイス自動化テスト フレームワークでインターフェイスの関連付けをどのように処理しますか?

postman と jmeter はインターフェイスの関連付けをどのように処理しますか?

回答:
json エクストラクタ、正規表現、Cookie エクストラクタ

1. 別の extract.yaml ファイルを使用して、関連するすべてのフィールドを保存します. 途中で抽出された変数は、すべてのテスト ケースの前にクリアされます. unittest を使用してクリア
:
setup_class
pytest: conftest+fixtrue
2. テスト ケースの yaml で、 level キーワード extract は、json 抽出をサポートする正規表現抽出を抽出します
3. 他のインターフェースの yaml ファイルでは、 {{}} または ${} で抽出します

インタビューの質問 4: 自動化されたインターフェイスの自動化されたテスト フレームワークをゼロから独自に構築しましたか?

回答:
xx プロジェクトで構築したインターフェイス自動化テスト フレームワークで使用されるコア テクノロジ:
request+pytest+allure+parametrize+jenkins
パッケージ: basepage 基本パッケージ、テストケース パッケージ...

2 次カプセル化、ログ収集モジュール yaml 構成ファイルのカプセル化を要求します

このパッケージ化されたプロジェクトのルール:
YAML 形式の使用例の規則
1. 最初のレベルのキーワードを含める必要があります: name request validate
2. request キーワードの下に含める必要があります: method、url、data、データがない場合は、デフォルト値 {}
3 、変数を抽出するには、第 1 レベルのキーワード抽出を使用します。{} を使用した json 抽出と通常の抽出 (.+?) および (.*?) 値のサポート
4. ホット ロードを使用して、メソッドを呼び出すことで debug_talk.py の debugTalk クラスのメソッドを呼び出すことができます5. equals と equals をサポートします6. csv ファイルのデータ ドライバーとしてパラメーターを使用し、{} を介してメソッドを呼び出す 5. equals をサポートし、2 種類のアサーションを含む 6. csv ファイルのデータ ドライバーとしてパラメーターを使用し、passメソッドを呼び出す5 、eq u a ls をサポートしアサーション含む6 パラメータcsvファイルデータドライバとして使用csv ( appid ) の形式取得する

Web とインターフェースの自動化
詳細:
Web: フレームの処理方法、ドロップダウン ボックスの処理方法、複数ページ、ポップアップ ウィンドウの操作、マウス操作 (ホバリング)、スクロール バー、キーボード、それらの処理方法 Interface: インターフェイス暗号化インターフェース
署名

インタビューの質問 5: 特定のビジネス シナリオと組み合わせてどのようにテストしますか?

例:ダブルイレブンのクーポンは即日利用可能、100円利用で50%OFF、特典は使えない?

需要を分析するための文字通りのテストポイント
1.当日ダブル11クーポンが利用可能(境界値)
2.100マイナス50を使用(境界値)
3.特別オファーは使用できません

その他のシナリオ
1. UI 検査: クーポンの金額。クーポンはグレーアウトできず、有効期限が表示されます
2. クーポンのステータス: 受け取って未使用、受け取って使用済み、使用済み、使用後に払い戻し
3. クーポンが自動的に選択されるかどうか、および他のクーポンと結合されているかどうかを確認します重畳利用、最大クーポンのスマート選択、クーポン選択切替
4、返品シーンでクーポンを利用して購入した商品の返品金額、クーポンの返金可否
5、クーポンの繰り返し受け取り可否 など

インタビューの質問 6: フロントエンドとバックエンドのバグをどのように区別しますか?

パケットをキャプチャしてフロントエンドのパラメータを確認し、バックエンドから返されたデータを比較する
バックグラウンドのログを分析することもできます
...
まず、テスト環境の問題または誤用によって引き起こされた要因を排除し、同じ手順に従って再現できない場合は、先ほどのログをそのままコピーしてください ログのスクリーンショットは開発用です。

再度表示される場合は、パケット キャプチャ ツールを使用してリクエストとレスポンスのデータを確認できます.リクエストが間違っている場合はフロントエンドの問題であり、レスポンスが間違っている場合はバックエンドの問題です.

ステータスコードも見れますが、一般的に4で始まる場合はクライアントの問題で、例えば401なら不正、403ならアクセス禁止、404ならページが見つからないという意味です。5 はサーバーの問題です。たとえば、500 は内部サーバー エラーです。

インタビューの質問 7: 分散テスト アーキテクチャとユース ケースの同時実行を実現するにはどうすればよいですか?

ただし、分散テスト アーキテクチャに関連するすべてのシステムは、一般的に UI 自動化に基づいています. SeleniumGrid は、特に使いやすい分散アーキテクチャ展開サービスです。

現在の主流の分散テスト フレームワークの展開は、マスター/スレーブ ノード形式に基づいています。ゲートウェイ + N 個の子ノードを構成して分散アーキテクチャを実装する

マルチスレッド モードを使用して
Jenkins 独自の分散展開モードを実現するには、ユース ケースの同時実行が推奨されます。マスター/スレーブ ノードにも基づいています。

インタビューの質問 8: POM 自動テスト アーキテクチャを実装するにはどうすればよいですか?

複数人のチームの下で自動化作業の開発を解決する方法: アーキテクチャ
テスト フレームワーク構造を定義します:
基本クラス、ページ オブジェクト クラス、テスト ケース、テスト データ、構成、関数...

インタビューの質問 9: フレームワークはどのように設計されていますか? フレームワークはどのように設計されていますか?

テクノロジー:
キーワード主導 + データ主導

カスタム キーワード クラスを生成し、後続の呼び出しのためにすべてのカプセル化関数をクラスに配置するための一般的に使用される操作動作の 2 次カプセル化

Excel データ ドライブを優先し、Python 起動メカニズム + openpyxl モジュールを組み合わせて Excel データ コンテンツの読み取りと実行を実現し、標準化された Excel ファイルのテスト ケース形式を定義します。

ログ情報の構成、フレームワークのテスト環境の構成、サーバーの構成、データファイルの読み込みパスの構成、公開パラメータの構成などと組み合わせて構成モジュールの詳細な研究開発管理を行う

再最適化は、Unittest/Pytest に基づくユース ケース管理の実装を考慮し、データ読み取りの駆動パラメーターを定義します。

HTMLTestRunnerまたはAllureのテストレポートを統合、メールを継承、Jenkinsを統合して自動テスト構築を実現

分散テスト フレームワークの展開の技術的実装 + ユース ケースの同時実装

POM テスト フレームワークの実装

インターフェイス テストでよくあるバグ

1. 特殊な値の不適切な処理により、プログラムが異常終了したときにプログラムがクラッシュします (明示的な情報ユーザーが送信を入力しません) 2.
型境界のオーバーフローにより、データの読み取りと書き込みの一貫性が失われます (リストによってチェックされる値クエリが実際の項目数と一致しない)
3. 値 境界値の外側で正しいエラー メッセージが返されない
4. 権限が処理されない場合、他のユーザー情報にアクセスできます (レポートのエクスポートにはロール権限が必要であり、全員がアクセスできます5.
ロジックチェックが完全でないと、抜け道を利用して不正な利益を得ることができます(現金口座の流入と流出は凍結され、凍結解除されます) 6.ステータスの不適切な処理はロジックエラーにつながります(
順序ステータスが未払い、支払い保留中、支払いキャンセル済み、支払い保留中、返金キャンセル済み) 7.
配列型の項目数が 0 の場合、または項目が繰り返される場合 プログラムが異常終了しました

更新を続ける

以下は、私がコンパイルした2023年の最も完全なソフトウェアテストエンジニア学習知識アーキテクチャシステム図です。

1. Pythonプログラミングの入門から習得まで

写真の説明を追加してください

2. インターフェイス自動化プロジェクト実戦

写真の説明を追加してください

3. Web自動化プロジェクトの実戦

写真の説明を追加してください

4. アプリ自動化プロジェクトの実戦

写真の説明を追加してください

5. 一流メーカーのレジュメ

写真の説明を追加してください

6. DevOps システムのテストと開発

写真の説明を追加してください

7. 一般的に使用される自動テスト ツール

写真の説明を追加してください

八、JMeterの性能テスト

写真の説明を追加してください

9. まとめ(最後にちょっとしたサプライズ)

人生はマラソンのようなもので、走り続けることによってのみゴールにたどり着くことができます。信念を持って前進し、決してあきらめないでください。あなたが一生懸命働く限り、成功はそう遠くないでしょう。

夢は現在以上のものであり、征服されるのを待っている遠い場所がまだあります. 諦めずに頑張れば、どんなに苦しくても、繭を抜けて蝶になり、華を咲かせることができます。自分だけの輝きを一緒に創っていきましょう!

人生は短すぎる、意味のないことに無駄遣いするな。日々を掴み、しっかりと前に進み、常に自分を超える。どんな時も、情熱と情熱を持ち続け、最後まで戦い、夢を追い求め、人生を意味あるものにします。

おすすめ

転載: blog.csdn.net/shuang_waiwai/article/details/130268170