面接問題集(3)

αテスト、βテストとは何か、いつ使うのか答えてください

  • アルファテスト:管理された環境で実施され、開発者の施設でユーザーが実施し、ユーザーへの開発者のガイダンスに基づいてテストします。使用中に発生したエラーや問題を記録する責任は開発者にあります
  • ベータテスト:1つ以上の顧客サイトでソフトウェアのエンドユーザーが実施する、開発者の制御が及ばない環境での実際のアプリケーション。ユーザーは、テストで発生した一連の問題を記録し、定期的に開発者に報告します。 。

単体テスト、統合テスト、およびシステムテストの焦点は何ですか?

  • ユニットテストは、ソフトウェア開発プロセス中に実行される最も低いレベルのテストアクティビティであり、サブルーチンの正確性検証を含むシステムのモジュールに焦点を当てています
  • 統合テストは、アセンブリテストまたはジョイントテストとも呼ばれます。単体テストに基づいて、すべてのモジュールは、統合テストの設計要件に従ってサブシステムまたはシステムに組み込まれます。一部のモジュールは個別に動作する場合がありますが、接続したときに正しく動作することを保証できないことは、実際に示されています。プログラムの一部に反映できない問題は、グローバルに公開され、機能の実現に影響を与える可能性があります。このテストは、モジュール間の接続とパラメータの転送に重点を置いています
  • システムテストは、テストするサブシステムを完全なシステムに組み立ててテストすることです。これは、システムプログラム仕様で指定された機能をシステムが実際に提供できるかどうかを確認するための効果的な方法です。テストは、システム全体の動作と他のソフトウェアとの互換性に焦点を当てています。

ソフトウェアテストのコア競争力は何だと思いますか

  • 中心的な競争力は、問題を早期に発見し、他の人にはできない問題を発見できることにあります。
  • 1.早期の問題検出:問題が早期に発見されるほど、解決のコストは低くなります。要件が満たされる前に要件を発見できる場合、そのような問題の価値は最も高くなります。
  • 2.他の人が発見できない問題を発見する:誰もが発見できる問題を発見した場合、あなたはあなたが交換できることを証明できます。他の人はそれを見つけることができません、そしてあなたはそれを見つけることができます、そしてあなたは単に取り替えられないでしょう。

チキン食べゲームをストレステストしてください

1.まず、何をテストする必要があるかを明確にします。

1.ゲームサーバーハードウェア

  • a。ハードディスクI / o b。メモリc。CPU

2.ネットワークのプレッシャー

  • a。長い接続   
  • a1。接続の最大数
  • a2。フロー(イントラネット、エクストラネット、イン、アウト)
  • b。長い接続と短い期間(HttpのTCPアプリケーションと同様に、これは特別にLoginAgentの要件です)
  • b1。1秒あたりに確立された接続の数
  • b2。実際の処理能力

3.データベース

  • a。1秒あたりのトランザクション数b。1秒あたりのロック待機数c。平均遅延(ミリ秒)d。一時的なCPU

4.マルチスレッドの最適なスレッド数

  • a。データベースによって実行されるマルチスレッドb。マルチ接続処理

WeChatログインインターフェイスに従ってテストケースを設計してください

参照回答:

1.機能テスト

  1. 正しいユーザー名とパスワードを入力し、送信ボタンをクリックして、正しくログインできることを確認します。
  2. 間違ったユーザー名またはパスワードを入力すると、ログイン検証が失敗し、対応するエラーメッセージが表示されます。
  3. ログイン成功後に正しいページにジャンプできますか
  4. ログインに携帯電話番号を使用したログイン、WeChatアカウントまたはスキャンコードを使用したログインなど、さまざまなログイン方法を選択できるかどうかを確認します。
  5. ユーザー名を記憶する機能
  6. ログイン失敗後にパスワードを記録できない機能
  7. パスワードがプレーンテキストで表示されない場合でも、代わりにアスタリスクやドットなどの記号を使用してください。
  8. 確認コードがある場合は、テキストが変形して認識しづらいか、ボタンの色、更新、変更が使いやすいかなども検討する必要があります。
  9. 登録、パスワードを忘れた、別のアカウントでログインしたログアウトなどのログインページのリンクは正しいですか?
  10. パスワードを入力すると、大文字のキーボードがオンになったときにプロンプ​​トメッセージが表示されます。
  11. 何も入力せず、送信ボタンをクリックしてプロンプト情報を確認します。

第二に、インターフェーステスト

  1. レイアウトが妥当かどうか、テストボックスとボタンが適切かどうか。
  2. テストボックスとボタンの長さと高さが複合要件であるかどうか。
  3.  インターフェイスのデザインスタイルがUIのデザインスタイルと統合されているかどうか。
  4.  インターフェースのテキストは、タイプミスのない簡潔で理解しやすいものです。

3.パフォーマンステスト

  1. 必要な時間が必要な時間内であるかどうか、ログインページを開きます。
  2. 正しいユーザー名とパスワードを入力した後、新しいページに正常にログインするための時間が必要な時間内かどうかを確認してください。
  3. 多数のユーザーをシミュレートして同時にログインし、特定のプレッシャーの下で正常にログインできるかどうかを確認します。

4.セキュリティテスト

  1. ログイン成功後に生成されたCookieがhttponlyであるかどうか(そうでない場合、スクリプトによって盗まれるのは簡単です)。
  2. ユーザー名とパスワードが暗号化を介してWebサーバーに送信されるかどうか。
  3. ユーザー名とパスワードの検証は、クライアント側のJavaScript検証だけでなく、サーバー側の検証である必要があります。
  4. ユーザー名とパスワードの入力ボックスは、SQLインジェクション攻撃から保護する必要があります。
  5. ユーザー名とパスワードの入力ボックスでは、スクリプトの入力を禁止する必要があります(XSS攻撃を防ぐため)。
  6. ブルートフォースクラッキングを防止し、誤ったログインの数に制限があるかどうかを確認します。
  7.  同じマシンにログインする複数のユーザーをサポートするかどうか。
  8. 同じユーザーが複数のマシンにログインできます。

5、互換性テスト

  1. さまざまなモバイルプラットフォームまたはPC環境で正常に表示され、正常に機能できるかどうか
  2. 同じプラットフォーム上の異なるWeChatバージョンで正常に表示され、正常に機能するかどうか。
  3. ディスプレイがさまざまな解像度で正常かどうか。

あなたはどんな印象的なバグに遭遇しましたか、そしてインターフェーステストのバグの理由は何ですか?

jmeterテストで画像をアップロードするときは、具体的に説明してください:

 

インターフェイステストの一般的なバグは次のとおりです。

  • 特別な値の不適切な処理により、プログラムが異常終了またはクラッシュする
  • 型の境界のオーバーフローにより、データだけが書き込まれ、書き込みに一貫性がなくなります
  • 正しいエラーメッセージが値の境界の外に返されない
  • 権限は処理されません。他のユーザーの情報にアクセスできます
  • 論理チェックは完全ではなく、抜け穴は不正な利益を得るために使用できます
  • 不適切な状態処理、その結果論理エラー
  • 配列型の項目数が0であるか、項目が繰り返されると、プログラムが異常終了する

プロジェクトでストレステストを行ったことがありますか、それを行う方法

参照回答:

1.まず、テストするシステムを分析し、スパイクなどのその部分のストレステストを行う必要があることを確認します

2.これらのテストポイントに圧力をかける方法

最初の方法は、サーバーにパケットを送受信する圧力ロボットを生成するスクリプトを作成することです

2番目のポイントは、Jmeter、LoadRunnerなどのストレステストツールを使用することです。

3.これらのテストポイントに正しい圧力を加える方法

ユーザーの操作をシミュレートするスクリプトを記録するために、ストレステストツールまたはその他の方法を使用する必要がある

4.テストポイントの設計に対するプレッシャーはどれくらい適切ですか。

ストレステストの制限の数、つまり同時ユーザーの数を明確にする必要がある

5.これらのデータを使用して、テスト後にパフォーマンスの問題を特定する方法

テストを通じて、スループットや平均応答時間などのデータを取得できます。このデータの背後にあるのは、バックグラウンド処理ロジック全体の複合効果の結果です。このとき、最初にシステムのCPUとメモリに注意を払い、次にスループットを比較できます。平均応答時間がボトルネックに達したときこれらのデータを使用して、システムのどの部分がパフォーマンスの問題を引き起こしたかを確認できます

システムへの多数の同時アクセスの場合、どのようにテストを行うか、提案

高度な並行システムをテストする方法一般的に言えば、全体的なテスト戦略は、最初に一部のシステムでパフォーマンステストとストレステストを実行して各パーツのピーク処理パフォーマンスを取得し、次に全体的なビジネスプロセスとビジネスのテストに焦点を当てた全体的なプロセステストをシミュレートします。予想される負荷。次の点のテストに焦点を合わせます。

  1. 異なる州と異なる事業者のCDNノードのパフォーマンス、一般的なストレステストプログラムを使用できます
  2. 中核となるコンピュータールームのBGPネットワーク帯域幅。このパートでは、各オペレーターのBGPネットワークの信頼性、実際の速度のテストに焦点を当て、一般的にスモーク、lxChariot、その他のツールを使用します。
  3. すべての種類のハードウェア機器のパフォーマンス、一般的に専門的なネットワーク機器テストツールを使用
  4. さまざまなサーバーの同時パフォーマンス、分散処理機能、ストレステストプログラムツールを使用できます。
  5. ビジネスシステムパフォーマンス、ビジネスシステムストレステストプログラムを使用
  6. データベース処理パフォーマンス。この部分は、コアビジネスシナリオでデータベースのTPS / QPSを取得するために、ビジネスシステムと組み合わせてテストする必要があります。
  7. 支払い機能がある場合は、支払いチャネルインターフェイスとシャントテストを実施する必要があります。この部分が最大のボトルネックになる可能性があります。さらに、バックアップソリューション、障害復旧ソリューション、およびビジネスダウングレードソリューションのテストも含まれます。

ネットワークに関連して一般的に使用されるシェルコマンド、3つのnetstat、ping、ifconfigの違い、それらの機能、および起動後のnetstat内の一般的なサーバーのポートステータスについてお答えください。

一般的に使用されるネットワーク関連のコマンドは次のとおりです。

1、ifconfig

このコマンドは、ネットワークインターフェイス、サブネットマスクを表示するために使用されます

2、host和nslookup

これらの2つのコマンドはDNSルックアップツールです。ホストを実行すると、特定のドメイン名のすべてのIPが一覧表示されます。Nslookupは、DNS関連の詳細と名前解決を照会するために使用されるホストと同様のコマンドです

3、ルート

ルーティングテーブルを表示

4、traceroute

このコマンドは、グループ化パスのすべてのゲートウェイアドレスを表示します

netstat、ping、ifconfigの3つの違い:

netstat:ネットワークステータスを表示します。netstatを使用すると、Linuxシステム全体のネットワーク状況を通知できます。構文は、netstat [-acCeFghilMnNoprstuvVwx] [-A <ネットワークタイプ>] [-ip]です。

ping:pingコマンドはicmp転送プロトコルを使用して応答を要求するメッセージを送信するため、機能はホストを検出します。リモートホストのネットワーク機能に問題がない場合、リモートホストはメッセージに応答するため、ホストは正常に動作しています。構文は次のとおりです。 ping [-dfnqrR​​v] [-c <完了数>] [-i <間隔秒>] [-I <ネットワークインターフェース>] [-l <プリロード>> [-p <テンプレートスタイル>] [- s <パケットサイズ>] [-t <ライブ値>] [ホスト名またはIPアドレス

ifconnfig:関数はネットワークデバイスを表示または設定するためのもので、構文は次のとおりです。ifconfig [ネットワークデバイス] [ダウンアップ-allmulti -arp -promisc] [アドレス<アドレス>] [デル<アドレス>] [<hw <ネットワークデバイスタイプ> <ハードウェアアドレス>] [io_addr <I / Oアドレス>] [irq <IRQアドレス>] [メディア<ネットワークメディアタイプ>] [mem_start <メモリアドレス>] [メトリック<番号>] [mtu <バイト>] [ネットマスク<サブネットマスク>] [トンネル<アドレス>] [-ブロードキャスト<アドレス>] [-pointopoint <アドレス>] [IPアドレス]

サーバーの起動後、サーバーは通常リスニング状態です

クロスドメインを知っていますか、条件は何か、ヘッダーに何を追加する必要があるか、いくつかのオプションがあります

クロスドメインとは何ですか?

  • ブラウザがドメイン名のWebページから別のドメイン名のリソースを要求すると、異なるドメイン名、ポート、およびプロトコルがクロスドメインになります

クロスドメインのいくつかのオプション:

  1. スクリプトタグに基づくクロスドメイン
  2. jqueryに基づくクロスドメイン
  3. iframeを介したサブドメインの横断

ブラウザーを開いてから、サーバー上のプロジェクトのコントローラーに到達するためのURLを入力します。プロセスを説明してください

このプロセスでは、ネットワーク通信が発生します。つまり、ネットワーク通信にtcp / ipプロトコルクラスタが使用され、送信側がアプリケーション層からダウンし、受信側がデータリンク層からアップします。

  1. ブラウザ入力URL、httpはプロトコル
  2. アプリケーション層でのDNS解決、対応するIPアドレスを返す
  3. アプリケーション層クライアントがhttpリクエストを送信し、
  4. ネットワーク層のIPクエリのMACアドレス、
  5. トランスポート層TCP転送メッセージ
  6. データがデータリンク層に到達すると、クライアントは終了要求を送信します
  7. サーバーはデータリンク層でデータパケットを受信し、次にアプリケーション層に送信します。
  8. サーバーは要求に応答し、クライアントが要求したリソースを見つけて、応答メッセージを返します

mysql deleteステートメントを記述してください

1. Dropステートメント。データベースとテーブルの削除に使用できます。

  • データベースを削除するには、dropステートメントを使用します。drop database db;
  • dropステートメントを使用して、テーブルを削除します。drop table tb;

2.ステートメントを削除します。テーブルのフィールドを削除するために使用されます。

  • id = 1のtbから削除します。
  • whereがdeleteステートメントに追加されていない場合、テーブル内のすべてのレコードが削除されます。

3. truncateを使用して、テーブル内のすべてのフィールドを削除します。

  • テーブルtbを切り捨てます。

基本的なSQLステートメントをいくつか記述してください

  • 選択:*をtable1から選択し、範囲
  • 挿入:table1(field1、field2)values(value1、value2)に挿入します
  • 削除:table1から範囲を削除
  • 更新:table1を更新しますfield1 = value1を設定します
  • 検索:table1から*を選択します。ここで、field1のように '%value1%' ---のような構文は絶妙です、情報を確認してください!
  • 並び順:*を選択し、* table1からfield1、field2 [desc]の順に並べる
  • 总数:表1からtotalcountとしてカウントを選択します
  • 求和:テーブル1の合計値としてsum(field1)を選択します
  • 平均:table1のavgvalueとしてavg(field1)を選択します
  • 最大:テーブル1から最大値としてmax(field1)を選択
  • 最小:min(field1)をtable1の最小値として選択

特定のテーブルに同じデータが10個ありますが、そのうち9個を削除したいので、sqlステートメントを作成してください

  • delete * from table_name limit 9

 

テストケースを設計してください:一連の数値、うるう年の識別

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

元の記事を29件公開 いいね1 訪問数573

おすすめ

転載: blog.csdn.net/wennie11/article/details/105554741