ネットワーク全体で最も完全なソフトウェアテストの面接の質問と回答(パフォーマンステスト+機能テスト+インターフェイステスト+自動テスト)

序文

スペースに限りがあるため、スクリーンショットはすべての情報を表しているわけではありません。私はすべての情報を公開アカウント[Programmer Axin]の写真に入れており、66に返信することで入手できます。
材料

性能試験

パフォーマンステストプロセスについて簡単に説明してください。
1.パフォーマンス要件を分析します。
2.パフォーマンステスト計画を作成します。
3.テストケース
を作成します。4。テスト環境を構築し、テストデータを準備します
。5。パフォーマンステストスクリプトを作成します
。6。パフォーマンステストスクリプトの調整。
7.テストシナリオを設計します。
8.テスト結果を分析します。
9.回帰パフォーマンステスト。
10.テストレポートを作成します。

どのような環境で、いつパフォーマンステストを実行しますか?
テスト用に独立したパフォーマンステスト環境を構築します。時間の観点から、
ベンチマークテスト:機能テストの後、システムが比較的安定しているときに実行します。
負荷テスト:システムが真夜中に使用されていない場合

think_timeの役割は何ですか?
実際の本番ユーザーの操作をシミュレートして、サーバーへの影響を調べます。
パフォーマンステストの結果が信頼できるものであることを確認した後、次の問題が見つかった場合は、以下のアイデアに従って問題を特定します。

検証コードの機能で、パフォーマンステストを行う方法は?
1.検証コードを一時的にシールドし、パフォーマンステストの完了後に復元します
。2。ユニバーサル検証コードを使用します。

パフォーマンステストの指標は何ですか?
応答時間
  スループット
  CPU
  メモリ
  IO
  ディスク

機能テスト

ソフトウェアテスト業界についてどう思いますか。また、なぜソフトウェアテストを選択する必要があるのですか。
ソフトウェアテストは有望なキャリアであり、この業界での経験が豊富で、このポジションに非常に適していると思います。しっかりと進みたいと思います。

テスト中にバグが見つかったが、開発者がそれをバグではないと考えた場合は、どうすればよいですか?
まず、問題を欠陥管理プラットフォームに送信して登録します。次に、判断の根拠と基準を取得するには、次のようにします。

要件仕様、製品説明、設計文書などに従って、実際の結果が計画と矛盾していないかどうかを確認し、欠陥が確認されているかどうかの直接的な根拠を提供します。

文書化の根拠がない場合は、類似のソフトウェアの一般的な特性に従って矛盾があるかどうかを説明することにより、それが欠陥であるかどうかを確認できます。

ユーザーの一般的な使用習慣に従って、それが欠陥であるかどうかを確認します。

設計者、開発者、製品管理者などの関係者と話し合い、欠陥があるかどうかを確認します。

合理的な話し合い、あなたの判断の理由をテストマネージャーに説明し、客観的で厳密であり、個人的な感情と混ざらないように注意を払います。プロダクトマネージャーが最終決定を下すのを待ちます。それでも論争がある場合は、テストマネージャーに確認し、このバグのリスクをオンラインレポートに残し、早期に警告し、プロジェクトの全員に状況を知らせます。 。

テストケースを設計する方法は何ですか?
同値類、境界値、デシジョンテーブル、因果関係図。

ソフトウェアテストの戦略は何ですか?
ソフトウェアテスト戦略:特定のソフトウェアテスト標準とテスト仕様のガイダンスの下で、テストプロジェクトの特定の環境制約に従って、ソフトウェアテストの原則、方法、および方法のコレクション。

ソフトウェア開発プロセスにおけるテスターのタスクは何ですか?

(1)システムのバグをできるだけ早く見つけます。

(2)ソフトウェア開発プロセスでの欠陥の発生を回避します。

(3)ソフトウェアの品質を測定し、システムの品質を確認します。

(4)ユーザーのニーズに注意を払い、システムがユーザーのニーズを満たしていることを確認します。全体的な目標は、ソフトウェアの品質を確保することです。

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

getとpostの違いは何ですか?
Get request、ブラウザはhttpヘッダーとデータを一緒に送信し、サーバーは200応答コード
のPsot要求を返し、ブラウザは最初にヘッダーを送信し、サーバーは100(続行)で応答し、次にデータを送信します。サーバーは200応答コード
投稿セキュリティ率が高くなる

インターフェイスの自動化で関連付けを処理する方法は?
前のリクエストから返された結果を次のリクエストのパラメータに渡し、リクエストの結果をクラス属性に反映し(setattr()関数を使用)、このクラス属性を次のリクエストで呼び出します

自動テストはどのように結果を検証しますか?
アサーション、実際の結果と比較した期待される結果

データベースの検証。テストシナリオに従って、データベース内のデータをクエリし、リクエストの前にデータを比較します。

パラメータ化とデータ駆動型についてのあなたの理解について教えてください。
この質問には、自動テストにおける2つの重要な概念が含まれます。パラメーター化とデータ駆動型です。実際、私の意見では、それらは同じものです-テストスクリプトとデータの分離。例:ログインスクリプトは元々、ユーザー名、パスワードなどの一連のテストデータを修正しました。データを変更するたびに、スクリプトを変更する必要があります。データをスクリプトから分離してから、ユーザー名とパスワードを外部、できれば外部ファイルに抽出します。これは、パラメーター化と呼ばれます。

パフォーマンステストでは、各仮想ユーザーが異なるユーザー名とパスワードでログインすることを確認したいと思います。これは、実際のビジネスシナリオに近いものです。自動テストでは、さまざまな種類のユーザー名、パスワードなど、複数のデータの組み合わせをテストしたいと思います。どのシナリオであっても、複数のデータセットが必要ですが、ログイン操作プロセスは固定されています。これはデータ駆動型と呼ばれます。

一般的な開発言語の単体テストフレームワークには、PythonのddtモジュールやTestNGのDataProviderアノテーションなどのデータ駆動型機能があります。

インターフェイスによって生成されたガベージデータをクリーンアップする方法
上記のように、データの作成とデータのクリーンアップには、Pythonを使用してデータベースに接続し、
テストケースの追加、削除、変更、チェックの操作を行う必要があります

WebUI自動テスト

セレンに元素が存在するかどうかを確認するにはどうすればよいですか?
要素が存在するかどうかを判断するネイティブな方法はありません。通常、要素+例外キャプチャを見つけることで判断できます。

セレンに非表示または表示=なしの要素を見つけることはできますか?
いいえ、クリックする場合は、jsを使用してdisplay=noneの属性を削除できます

セレンスクリプトの実行速度を向上させる方法は?
1.テストケースを最適化します。
2.不要な操作手順を減らします。
3.ページのロードを中断します。
4.Seleniumグリッドを使用します。

継続的インテグレーションとは何ですか?
コードをトランクに頻繁に統合し、プロジェクトを継続的に構築して、エラーをすばやく見つけ、ブランチがトランクから大きく逸脱するのを防ぎます。

層化テストとは何ですか?
1.データ層
2.インターフェース層'
3.UI層

アプリのテスト

IOS携帯電話とAndroid携帯電話の違いを教えてください。
2つの操作メカニズムは異なります。IOSはサンドボックス操作メカニズムを使用し、Androidは仮想マシン操作メカニズムを使用します。

2つのバックグラウンドシステムは異なります。IOSのサードパーティプログラムはバックグラウンドで実行できません。Androidのプログラムはバックグラウンドで実行でき、メモリがなくなるまで閉じられません。

アプリのパフォーマンステスト、つまり特別なテストでは、どの側面に焦点を当てる必要があると思いますか?
メモリ、CPU使用率、消費電力、トラフィックなど。

Androidシステムの4層アーキテクチャを簡単に紹介してください。
上から順に、アプリケーションレイヤー、アプリケーションフレームワークレイヤー、システムランタイムレイヤー、Linuxコアレイヤーの順になります。

テスト中にアプリでクラッシュまたはANRが発生した場合はどうしますか?
最初にログをフィルターで除外できます:adb logcat | findstr xxxxx(ログ情報のフィルター)次に、例外、クラッシュなどのキーワードを検索して、最初に問題が送信された原因となったメソッドまたは例外を確認します。問題の原因を特定し、開発者に渡して根本的な原因を特定し、修正することができます。

便利なAndroidUI自動化テストツールを簡単に紹介してください。
appium:は、ネイティブアプリケーション、モバイルWebアプリケーション、およびハイブリッドアプリケーションのテストに使用できるモバイル自動化フレームワークであり、クロスプラットフォームです。

robotium:これは主にAndroidプラットフォーム上のアプリケーションのブラックボックス自動化テスト用の外国のAndroid自動化テストフレームワークです。さまざまなジェスチャー操作(クリック、長押し、スライドなど)、検索およびアサーションメカニズムをシミュレートするAPIを提供します。さまざまなコントロールを操作できます。

おすすめ

転載: blog.csdn.net/qq_40214204/article/details/111018669