ソフトウェア テストの財務プロジェクトでの経験の概要、面接の質問は何ですか? インターフェイスの暗号化と復号化を処理する方法は?


序文

暗号化/復号化インターフェースの処理

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

目標
プロジェクトでのインターフェイスの暗号化と復号化の実装プロセスを理解する;
暗号化と復号化のコード実装を理解する;
Jmeter がインターフェイスの暗号化と復号化のテストを実装する方法を理解する;
リクエストに基づくインターフェイスの暗号化と復号化のテストを実装する方法を理解する;

1. APP/クライアントインターフェースの暗号化と復号化の紹介
暗号化方式 (2) は、
TCP/IP 4 層モデルのアプリケーション層で暗号化されます。コードブックと同様に、現在のプロジェクトはこれを使用しており、すべての応答コンテンツを表示できますが、理解することはできません。

TCP/IP の 4 層モデルでは、トランスポート層とアプリケーション層の間で暗号化が行われ、暗号化は https などのトランスポート プロトコルを通じて実装されます。暗号化されたパスと同様に、この暗号化方式でキャプチャされたメッセージの応答内容はすべて文字化けです。

2.
暗号化および復号化インターフェース テストの核心は、アプリケーション サーバーに一致する暗号化および復号化メソッドを記述することです。

社内で暗号化と復号化のインターフェイス テストを行う方法:
開発者が必要とする暗号化と復号化の方法を見つけます (プロジェクト コードに対応する暗号化と復号化の方法が必要なため)
。テスト環境(難易度や影響に応じて、開発者と協議する必要があります);

バグの場所の分析

要件:
基本的な要件: バグがフロントエンドに属しているかバックエンド
に属しているかを特定する 高次の要件: バグが属しているモジュール、バグのコード レベル (必須ではありません)

価値:
バグの再発経路を発見し、バグの開発と修復の効率を向上させ、
自身の論理的思考と技術力を向上させる

ポジショニングスキル:
1.論理的分析
あらゆる可能性を分析し、1つ1つチェックして
最短の再発経路を見つける
事例:CFゲームをプレイし、高いところから飛び降り、失血しない確率がある - バグ分析 考えられる
原因問題: 身長、体重、地形、姿勢...
各寸法を個別にテストおよび分析し、他の要因を修正し、そのうちの 1 つだけを変更して、
バグの原因となる影響要因を最終的に決定します

2. 技術的手段
データベースを表示する
パケット分析をキャプチャする
サーバーログを表示する

ケース/インタビューの質問: インターフェイスでユーザーを追加しますが、ユーザー リストに対応するユーザー情報が表示されません

データベースに対応するユーザー レコードがあるかどうかを確認します。
存在する場合は、タイトルの 2 つの操作、ユーザーを追加する操作が成功し、ユーザーを確認する操作が失敗したことを意味します。存在しない場合は
、ユーザーの追加操作が失敗しました

最初のステップで特定された失敗したビジネス オペレーションのパケットをキャプチャし、すべての要求と応答のデータを観察し、同時にサーバー ログをキャプチャします。

最初に応答コードを見てください。応答に 4XX エラーがある場合は、クライアント リクエストに問題があります。5XX エラーがある場合は、サーバーに問題があります (おそらくバグ)。2XX の場合は、さらなる分析が必要です

応答が 200 の場合、応答内容を確認します。
応答は正しいが、フロントエンド ページを表示できません。応答フィールドがフロントエンド定義フィールドと一致するかどうかを確認し、そうでない場合は、フロントエンド担当者を見つけて確認します。フロントエンド/バックエンドが明確に定義されていないこと。

応答が正しくない場合は、リクエスト パラメータが正しいかどうかを確認します
。リクエスト パラメータが正しくない場合は、フロントエンド コードに問題があります。
リクエスト パラメータが正しいのに応答が間違っている場合は、サーバ ログを使用して問題の特定 (おそらくバックエンド コードの問題)。

備考: サーバー ログの場所を特定するには、開発者に確認する必要があります (ログ ファイルに書き込むことも、コマンド ライン ウィンドウに直接出力することもできます)。

テスト面接:金融プロジェクトのテスト経験の説明(すべての回答は具体的なケースと組み合わせる必要があります)

1. プロジェクト紹介 プロジェクトの内容は?
2. 誰のためのプロジェクトですか?
3. プロジェクトの主な機能は何ですか?
4. プロジェクトの技術的構造は?
5. プロジェクトのコア ビジネス プロセスは何ですか?
6. プロジェクトのテスト プロセスはどのようなものですか?

  • ニーズのレビューに参加し、ニーズ分析を実施する
  • テスト計画の作成とレビュー
  • テスト ポイントとシステム テスト ケースの作成とレビュー、インターフェース テストがある場合は、インターフェース テスト ケースの作成とレビュー
  • インターフェイス テスト ケースの実行 (手動および自動実行)、システム テスト ケースの実行
  • テスト レポートの作成とレビュー

7. 担当する機能モジュールをテストする方法は? (つまり、テスト ケースの設計方法)

  • 機能、性能、使い勝手、互換性…あらゆる面からテスト
  • 機能テストでは、最初に各ページの機能ポイントのテスト ケースを設計します。たとえば、次のようにします。. . . 特定のページのどの関数ポイントがどのメソッドによって設計され、次にテスト ケースがビジネス プロセス用に設計されます。. . . . 同上
  • パフォーマンス テストの場合。. .
  • 使いやすさ。. .
  • 互換性: ブラウザー、オペレーティング システム、解像度など。. . . .

8. インターフェース テスト ケースの設計方法は?
シングルポート設計

  • 進む (成功): 必須パラメーター、すべてのパラメーター
  • 逆 (失敗):
    パラメーター エラー: パラメーターが多く、パラメーターが少ない (優先度が低い)
    パラメーター データ エラー: データが空である、長さ範囲エラー、型エラー (優先度中)
    ビジネス データ エラー: ビジネス関数に基づいてエラー例外を返す (参照 異なるエラーAPI で定義された記述) - (優先度高) プロジェクトのビジネスと組み合わせます。. .

複数のインターフェースの設計

  • プロジェクトの業務と合わせて、システムの業務プロセスを整理します。. .
  • 業務プロセスの各アクションに対応するインターフェースを整理し、プロジェクトの業務と組み合わせる。. .
  • プロジェクトの業務と合わせて、業務プロセス順にテストします。. .

9. インターフェイス テストのタイミングと目的は何ですか? (手動インターフェイス テストまたは自動インターフェイス テストのどちらを意味するかを尋ねます)
手動インターフェイス テスト

  • タイミング: バックエンドは開発されていますが、フロントエンドは開発されていません。
  • 目的: できるだけ早くバグを見つける

自動インターフェース テスト

  • タイミング: プロジェクト テストの全プロセス中
  • 目的: プロジェクトの品質を確保し、コードを開発および変更して新しい問題を導入することを回避するため (回帰テストに似ています)

10. インターフェイス自動化テスト プロセスでデータを準備するにはどうすればよいですか? (プロジェクトで必要なデータ シナリオは非常に多様であり、3 つのシナリオすべてが表示されます)

手動構築: 一度構築するだけで、長期間使用できるデータを
構築できます.
インターフェース構築: 複数の構築が必要であり、データは比較的複雑です.2つまで)

11. Jmeter を使用してインターフェース自動化スクリプトを作成する方法は?
インターフェイス オートメーション スクリプトを記述できます
各テスト ケースは Jmeter のスレッド グループに対応します
HTTP サンプラーを使用してリクエストを送信します
補足的な使用法: データ定義、レスポンス結果のデータ関連付け、レスポンス アサーション...

自動化されたデータの自動クリアを実行できます.
JDBC 接続プールを構成し
、SQL ステートメントを実行して、JDBC Request リクエストを介してデータをクリアします.

継続的インテグレーションへの Jmeter スクリプトのデプロイ

12. コードを使用してインターフェース自動化スクリプトを作成する方法は?
最初にフレームワーク (api、script、log、report、utils、app) をビルドして、
ログの初期化構成を定義し、スクリプト スイートを実行します。
スクリプトを記述するときは、
最初に API インターフェース クラスを定義し
、テスト スクリプトで API インターフェース クラスを呼び出します。

13. インターフェイス自動化テスト スクリプトの安定性を確保するにはどうすればよいですか?
スクリプト実行後、テストデータをクリアし、
アサート時は固定データではなく、データベースに接続して実際のデータを取得します。

14. プロジェクトにサードパーティのインターフェースが含まれている場合、インターフェースをテストするにはどうすればよいですか?
モック テクノロジーを通じて、サードパーティ システムをシミュレートしてリクエストを受信し、レスポンスを返す

15. プロジェクトのテスト中に発見された印象的なバグは、
確率論的なバグ
や技術的な内容のバグ (インターフェイス、ホワイト、テストなど) など、見つける/特定するのが難しい、コード分析によって発見されたバグ (手作業で簡単に構築できない)
バグの伝達プロセスでは、それはより曲がりくねっていて、最終的に解決されました

上記は、準備する独自のプロジェクトと組み合わせた印象的な BUG のアイデアです。

16. プロジェクトのテスト中に発生した問題

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

八、JMeterの性能テスト

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

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

目標がある限り、一歩一歩前進しなければなりません。困難を恐れず、希望を捨てないでください。がんばれば、自分の未来は自分でつくることができます。自分を信じてください、あなたは成功するでしょう!

人生は長い道のりであり、闘争は終わりがありません。粘り強さほど大切なことはなく、どんな挫折や失敗があっても、夢と粘り強さをあきらめないでください。あなたは成功するでしょう!

失敗にとどまらず、継続してください。他人の目に左右されず、自分を信じて、しっかりと進んでください。闘争の過程は常に挑戦と困難に満ちていますが、粘り強く続けることによってのみ、成功の味を味わうことができます。来て!

おすすめ

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