目次: はじめに
序文
1. インターフェースでよく発生するバグと問題
準拠していないパラメータが渡されるとプログラムがクラッシュします。
データ型がオーバーフローしてデータの読み取りと書き込みに一貫性がなくなります。
オブジェクトの権限が検証されないため、他のユーザーの機密情報にアクセスできます。
不適切なステータス処理により論理の混乱が生じます。 ;
論理検証 テストが不完全な場合、抜け穴を悪用して違法な利益を得る可能性があります。
2. テストケースの設計
入力 - インターフェイス処理ロジック - 出力 -
インターフェイスには通常、入力と出力がありますが、出力がない場合もあります、
ユースケースの設計上の考慮事項、入力、出力
入力ではパラメーターの種類に応じた設計、
処理ではロジックに応じたユースケースの設計、
出力では結果に基づいた分析と設計が可能です。
詳細:
入力用に設計:
数値型:
同値クラス: 値の範囲内、値の範囲外
境界方法: 値の範囲の境界: 境界の最大値、最小値、境界の最小値 -1、最大値 +1 など
特殊な値: 0、負値等の
走査方法:値の範囲内のすべての値を走査する
例: 入力値の範囲は int 1 ~ 12、範囲内の値を考慮する必要があります、境界値 0、1、12、13、タイプの特殊な値 -1 ,0; int の最小境界値と最大境界値も考慮する必要がある 考慮; 1 ~ 12 が指定された意味を持つ場合、すべての値を走査する必要がある
リスク: 特殊な値、境界値の不適切な処理、プログラムの終了、データ オーバーフロー、エラー メッセージが返されるなど。
Int: データ型境界: -2147483648、2147483648。(整数.MAX_VALUE)
文字列型:
文字列長:
等価方法: 値の範囲内、値の範囲外
境界方法: 範囲境界、型境界を指定
特殊値: 0、つまり空文字
文字列の内容:
特定の種類: 英語、中国語、大文字と小文字など。
特殊文字: >、<*!@#$% など。
機密文字: "flg"、"TMD"" など。
例: インターフェイスのファンクション文字列の長さは 3 桁で、テストの長さは次のとおりです: 3 桁、3 を超える、3 未満、文字列の最大長、特殊なヌル文字、文字列の内容は数値、
非-数値など、特殊文字、機密文字をフィルタリングする必要があるかどうか。
リスク: 他の型、超長い文字、機密単語などが渡された場合、プログラムが異常終了するかどうか、表示されるかどうか、ストレージに問題があるかどうか、機密単語が特別に処理されるかどうか。
配列またはリンクリスト型:
メンバ数:
等価方法: 値の範囲内、値の範囲外
境界方法: 範囲境界、数値境界値を指定
特殊値: 0など
メンバーの内容:
同等クラス: 正当なメンバーと不正なメンバー
反復メソッド: 反復されたメンバー
例: インターフェースで受け入れられる配列の長さは通常 5 で、値は 1 ~ 5 以内、境界値は 6 つの
範囲外です。リクエストで許可される最大値、最小値、特別な値、0、コンテンツが合法か違法か、重複コンテンツが許可されるかどうかリスク:
0 は、異常終了するかどうか、重複コンテンツが許可されるかどうかを意味します
論理設計のための
制約分析:
数値制限:スコア制限、金貨制限、レベル制限など(条件を満たした場合のみ実行可能)
ステータス制限:初回ログイン必須など(情報の同期など)
関係制限:束縛関係、友人関係など
権限制限:管理者など
リスク:制約の判断が不十分、利用者が特殊な手段で利益を得る可能性がある など
操作オブジェクトの分析:
通常、操作はオブジェクトを対象とします。操作は合法オブジェクトと違法オブジェクトに対して実行されます。バックグラウンド処理はどうなりますか?
リスク: ユーザーが許可なく操作できる可能性があります。
状態遷移解析:
テスト対象のロジックをステートマシンに抽象化し、各機能のロジックに従って各状態を切り替える この順序が崩れてジャンプ操作が行われるとロジック上の問題が発生し、検証の正当性リスクが発生する:
特殊本来不可能なことを手段を用いて実現し、それによって利益を得る等のこと。
タイミング分析:
一部の複雑なアクティビティでは、アクティビティは指定された順序で実行される一連のアクションで構成されており、アクションが順番に完了した場合にのみ、期待される結果が得られます。通常のプロセスでは、アクションは中断されることなく順番に実行されますが、インターフェイスのテストでは、順番に実行されなかった場合に問題が発生するかどうかを考慮する必要があります。
たとえば、クライアント データの同期はクライアントによってトリガーされ、この期間中ユーザーは介入できません。機能テストで見ているのは、正常に同期できるかどうかですが、さらに分解してみると、同期プロセスは一連の動作です。
例: ユーザー情報の取得、リクエストの開始、バックグラウンドでのログイン情報の返し、ローカル データのローカル アップロード、バックグラウンドでのデータの検証、差分と対応する新しい番号の生成、増分データと番号の返し、ローカルでの競合のレポート、ローカルでの競合の処理バックグラウンド、およびクライアント同期の完了に関する情報を返します。
インターフェイスは同期的に完了するために順番に呼び出す必要がありますが、インターフェイスをテストするときに、このシーケンスを中断する実行、例外があるかどうかなどをテストできます。
リスク: 非順次実行後、データ異常が発生したり、他のプログラムの問題が発生したりする可能性があります。
出力の設計:
出力結果の場合: 正しい結果は 1 つだけかもしれませんが、間違った状況は多数あります。返された結果リストまたはタイプに基づいてユースケース設計を実行できます。
リスク:
不十分なエラー フロントエンド処理によりフロントエンド例外が発生します。
不適切なエラー プロンプト処理により、ユーザーには不明瞭なプログラム コードが表示されます。
不適切なエラー プロンプトにより、ユーザーは問題の場所とその解決方法がわかりません。
インターフェイスのタイムアウト:
インターフェイスは正常に戻りますが、戻りを受信できない場合はどうなりますか? インターフェースのタイムアウト処理も考慮が必要な部分で、適切に処理しないと処理全体がブロックされ、タイムアウト後に戻り値を受け取ることになり、論理的な混乱が生じます。
その他のテストの合計:
放棄されたインターフェイスのテスト:
放棄されたインターフェイスは時間内に削除されない可能性があるため、問題を回避するために関連する放棄されたインターフェイスをチェックする必要があります。
インターフェイス設計の合理性分析:
次の側面の分析:
インターフェイスのフィールドが冗長かどうか、
インターフェイスが冗長かどうか、
インターフェイスが呼び出し元が期待する情報を返すかどうか、
インターフェイス定義がすべての呼び出し要件を満たすことができるかどうか、
インターフェイス定義が適切かどうか電話をかけるのに便利です。
セキュリティ テスト:ビジネス セキュリティにさらに注意を払う非専門的なセキュリティ テスターの場合は、インターフェイスで https プロトコルが使用されているかどうか、インターフェイスのリクエスト データが暗号化されているかどうか、キー情報がデータベースに保存されているかどうか
を考慮することができます。処理済み 暗号化処理、一般的に使用されるツールのリクエストに制限があるかどうか、インターフェイスが同じ IP へのアクセス数を制限しているかどうか。
テストプロジェクト:
繰り返し提出、同時テスト、分散テスト(負荷分散テスト)、環境異常テスト、大容量データテスト
パフォーマンス テストの焦点:
応答時間、スループット、同時実行数、サーバー パフォーマンス: (CPU、コンテンツ、IO、ネットワーク)
以下は、私がまとめた 2023 年の最も包括的なソフトウェア テスト エンジニア学習ナレッジ アーキテクチャ システム図です。 |
1. Python プログラミングの入門から習熟まで
2. インターフェース自動化プロジェクトの実践
3. Web自動化プロジェクトの実戦
4. アプリ自動化プロジェクトの実践
5. 一流メーカーの履歴書
6. DevOps システムのテストと開発
7. 一般的に使用される自動テストツール
8. JMeter パフォーマンス テスト
9. まとめ(最後にちょっとしたサプライズ)
粘り強く努力し、挑戦し、勇敢に前進し、勇敢に未来に挑戦してください。困難や失敗を恐れず、知恵と勇気で困難を乗り越え、闘いの道に輝きを生み出しましょう。自分の可能性を信じ、夢を追い、素晴らしい人生の旅を達成しましょう!
夜明けごとに、闘いの夜明けが前途を照らし、私たちは勇気を持って夢に向かって船出します。挑戦を恐れず、自分の限界を超え、努力と汗を流して成功への道を切り開いてください。自分の粘り強さを信じて奮闘し続ければ、やがてあなただけの輝かしい花が咲きます!
勇敢に前進し、努力を続ければ、闘争の力が無限の可能性を切り開きます。たとえスタート地点が何であれ、夢を持って懸命に前に進んでいけば、風雨を乗り越えて栄光を迎えることができます。