ソフトウェアテストにおけるブラックボックステストとホワイトボックステストの役割は何ですか?

I.はじめに

ソフトウェア市場が成熟するにつれ、ソフトウェアの役割に対する人々の期待はますます高まっています。私の国のソフトウェア会社は、ソフトウェアテストの重要性をより認識し、ソフトウェア開発システムエンジニアリング全体におけるソフトウェアテストの割合を徐々に増やしています。 。

ソフトウェアテストは、従来の意味での製品納品前の単一の「障害発見」プロセスではなく、ソフトウェアプロセスを最初から最後まで実行し、科学的な品質管理プロセスです。どのエンジニアリング製品でも、次の2つの方法のいずれかをテストに使用できます。つまり、ブラックボックステストとホワイトボックステストです。

2.ソフトウェアテストにおけるブラックボックステストの役割

ブラックボックステストは、機能テスト、動作テスト、またはデータ駆動型テストとも呼ばれます。テスト中、プログラムは開くことができないブラックボックスと見なされます。テスターは、プログラムの論理構造や内部特性をまったく考慮しません。 、およびプログラム仕様の要件のみに基づいて、プログラムの機能がその機能の説明を満たしているかどうかを確認します。したがって、ブラックボックステストが基本テストです。例:C#を使用して「電卓」アプリケーションを作成します。7を入力してsqrtキーを押すと、結果は2.645751311になります。ブラックボックステスト法を使用すると、「平方根を見つける」ためにいくつの複雑な計算が必要であっても、その操作の結果だけが気になります。

ブラックボックステストの方法には、主にソフトウェア検証テストに使用される同値類の分割、境界値分析、因果関係グラフ、エラー推測などが含まれます。「ブラックボックス」方式は、プログラムの外部構造に焦点を当て、内部の論理構造を考慮せず、ソフトウェアインターフェイスとソフトウェア機能をテストします。「ブラックボックス」方式は徹底的な入力テストです。可能なすべての入力がテスト条件として使用される場合にのみ、プログラム内のすべてのエラーをこの方式で検出できます。実際、テストケースは無数にあります。人々はすべての合法的な入力だけでなく、違法であるが可能性のある入力もテストする必要があります。ブラックボックステストの主な欠点は、システムの整合性を測定することが困難であり、ホワイトボックステストでこの欠陥を補うことができることです。

「ブラックボックス」とは、ボックスの中身が見えないことを意味します。つまり、ブラックボックステストでは、ソフトウェアの内部設計とプログラム実装は考慮されず、外部パフォーマンス、つまり、テストは、入力と出力を観察することで知ることができます。ソフトウェア要件に基づいて、誰でもブラックボックステストを実行できます。ブラックボックステストは、テストソフトウェアの機能要件に焦点を当て、プログラムの外部構造に焦点を当て、内部の論理構造を考慮せず、主にソフトウェアインターフェイスとソフトウェア機能をテストし、主に後の段階で使用されます。テストプロセス。これは、ソフトウェア要件、設計ドキュメント、およびシミュレートされた顧客シナリオに従ってシステムで実行される実際のテストです。このテストテクノロジは、テストのすべての側面をカバーします。主に、次のタイプのエラーを見つけるためのものです。機能エラーまたは脱落があるかどうか。 ;インターフェイスで正しい入力と出力を実行できるかどうか;データ構造エラーまたは外部データベースアクセスエラーがあるかどうか;パフォーマンスが要件を満たすことができるかどうか;初期化または終了エラーがあるかどうか。

したがって、ブラックボックステストでは、実際に次の点が要件を満たしているかどうかを確認します。

1. cの正しさ:計算結果、命名など。

2. dユーザビリティ:ソフトウェアの要件を満たすことができるかどうか。

3. E境界条件(境界条件):入力部分の境界値を同値類で除算し、最大値と最小値、不正なデータなどを試します。

4.パフォーマンス(パフォーマンス):プログラムのパフォーマンスは、操作の速度と消費する必要のあるシステムリソースの2つの要因に依存します。テスト中にパフォーマンスの問題が見つかった場合、修復は非常に困難です。これは、プログラムのアルゴリズムが適切でない、構造が適切でない、または設計が間違っていることを意味することが多いためです。したがって、製品開発の開始時に、ソフトウェアパフォーマンスの問題を考慮する必要があります。

5. gストレステスト(ストレス):マルチユーザーの状況では、ストレステストツールの使用を検討してください。ストレステストとパフォーマンステストを組み合わせることをお勧めします。負荷分散がある場合は、サーバー側の監視ツールを開いてサーバーのCPU使用率とメモリ使用量を確認する必要があります。必要に応じて、大量のデータ入力やハードディスクへの影響などをシミュレートできます。 。

6、hエラー回復(エラー回復):エラー処理、突然の停電を含むページデータの検証、間違ったデータの入力など。

7. iセキュリティテスト(セキュリティ):特に一部のビジネスWebサイト、または金銭や会社の秘密に関連するWebでは、このテストが必要です。

8. j互換性:関数を実装するときのさまざまなブラウザーおよびさまざまなアプリケーションバージョンのパフォーマンス。

ブラックボックステストテクノロジを使用すると、次の基準を満たす一連のテストケースを設計できます。

(1)設計されたテストケースは、合理的なテストを達成するために設計されたテストケースの総数を減らすことができます。

(2)設計されたテストケースは、特定のテストに関連するエラーがあるかどうかだけでなく、特定のタイプのエラーがあるかどうかを教えてくれます。

3.ソフトウェアテストにおけるホワイトボックステストの役割

ホワイトボックステストは、構造テストまたは論理駆動テストとも呼ばれます。これは、ソフトウェアの内部構造とプログラムの実行方法を理解することに基づくソフトウェアテストテクノロジです。通常、処理された入力とこれらの処理方法が正しいかどうかを追跡する必要があります。 。このメソッドは、テストオブジェクトをオープンボックスと見なします。これにより、テスターはプログラム内のロジック構造と関連情報を使用して、プログラムのすべてのロジックパスをテストするテストケースを設計または選択できます。

ホワイトボックステストは、テスト対象の内部状態に焦点を当てており、ソースコードの動作を追跡する必要があります。ソフトウェア内のロジック構造をチェックすることにより、ソフトウェアのロジックパスがカバーされ、テストされます。チェックポイントがプログラムのさまざまな場所に設定され、プログラムのステータスをチェックして、実際の動作状態が期待と一致しているかどうかを判断します。状態。ホワイトボックステスターは、ソフトウェアの内部設計とプログラム実装を理解し、テスト駆動プログラムを作成できる必要があります。開発者は通常、テスターの役割を同時に担います。多くのテスター、特にジュニアテスターは、ホワイトボックステストはプログラムコードをよく知っているシニアテスターだけが実行できるテストであると信じています。コード構造と関数実現のプロセスに精通していることは、もちろんテストに非常に役立ちますが、一部のホワイトボックステストでは、テスターがプログラムコードのすべての行を理解する必要はありません。次のプログラムがあるとします。
ここに画像の説明を挿入
  上記のプログラムの場合、2つのテストケースを設計することで、条件付きカバレッジの要件を満たすことができます。

テストケースの入力は次のとおりです。

{a = 5、b = 15、c = 15}

{a = 2、b = 15、c = 15}

上記の2つのテストケースは条件カバレッジの要件を満たすことができますが、判断条件をチェックすることはできません。たとえば、2番目の条件b> 15はb <15と誤って記述されます。上記のテストケースはブランチカバレッジも満たします。

ソフトウェアのホワイトボックステストは、ソフトウェアの手順の詳細を詳細に検査することです。さまざまな時点でプログラムの状態をチェックすることにより、実際の状態が期待される状態と一致しているかどうかを判断します。ホワイトボックステストの主な目的は、プログラムモジュールを次のようにチェックすることです。

1.プログラムモジュールのすべての独立した実行パスを少なくとも1回テストします。

2.すべての論理的判断について、「true」と「false」の2つのケースを少なくとも1回テストできます。

3.ループの境界と操作の境界内でループ本体を実行します。

4.内部データ構造などの妥当性をテストします。

ホワイトボックステストの主な方法には、ステートメントカバレッジ、判断カバレッジ、条件カバレッジ、判断/条件カバレッジ、条件の組み合わせカバレッジ、パスカバレッジなどがあります。これは、コードレベルにまで及ぶテストです。このテクノロジを使用して、問題は最も早く、効果も最高です。この技術の主な特徴は、テストオブジェクトがコードを入力することです。開発者がコードとプログラムに精通していることにより、ソフトウェアは必要な部分にコード化され、開発者は自分の理解と連絡に従ってソフトウェアテストを実行します。コード。

第四に、ホワイトボックステストとブラックボックステストの関係

ホワイトボックステストとブラックボックステストはどちらも非常に重要なリンクです。どちらが技術が高く、誰が技術が低いかは問題ありません。両者の強調が異なり、使用される技術も異なるだけです。ブラックボックステスターはビジネスの側面に焦点を合わせ、ホワイトボックステスターは実装方法に焦点を合わせます。ブラックボックステストは全体に焦点を合わせ、ホワイトボックステストは部分に焦点を合わせます。ホワイトボックステストはプロセスのテストであり、ブラックボックステストは結果のテストです。

5つのテストケース

実際、限られたすべての入力をテストするだけでなく、それらの違法である可能性のある入力もテストするなど、多くのテスト状況があります。このように、完全なテストは不可能であるため、ソフトウェアテストが体系化され、段階的に計画されていることを確認するために、ターゲットテストを実施し、テストケースを作成してテストの実装をガイドする必要があります。ソフトウェアの品質を真に保証するには、テスト動作を定量化する必要があります。テストケースは、テスト動作を定量化する方法の1つです。その中で、ロジックカバレッジテクノロジーはホワイトボックステストの典型的なテクノロジーですが、等価分割、境界分析、因果関係図などのテクノロジーはブラックボックステストのより典型的なテクノロジーです。

6、結論

ブラックボックステストとホワイトボックステストは、2つの異なるテスト方法です。どちらの方法もテストプロセス全体で使用されますが、経験に基づいて、プロジェクトでは、テストエンジニアは依然としてブラックボックステストをメインとして使用し、ホワイトボックステストを補足として使用します。最初にブラックボックステストを使用して結果が正しいかどうか、またはターゲットが正しいかどうかを確認する必要があるため、結果が正しい場合は、ホワイトボックステストを使用して正しい結果が正しいプロセスによるものかどうかを確認します。結果が正しくない場合は、ホワイトボックステストを使用して、プロセスの間違った場所を見つけてください。最初にブラックボックステストを実行し、次にホワイトボックステストで検証することによってのみ、このテストは完了したと言えます。

ソフトウェアテスト交換グループ、QQ:642830685をお勧めします。このグループは、ソフトウェアテストのリソースを共有し、テストの質問や業界情報を随時インタビューします。友達はグループ内で積極的にコミュニケーションを取り、交流することができます。関連する質問に答える技術専門家もいます。

おすすめ

転載: blog.csdn.net/weixin_53519100/article/details/112795353