ホワイトボックステストとは? わかりやすく解説

556の専門辞書や国語辞典百科事典から一度に検索! Weblio 辞書 ヘルプ
Weblio 辞書 > 辞書・百科事典 > デジタル大辞泉 > ホワイトボックステストの意味・解説 

ホワイトボックス‐テスト【white box test】


ホワイトボックステスト

【英】white box test

ホワイトボックステストとは、システムテスト手法のうち、特にどのような論理構造作成されているかに着目したテストのことである。

ホワイトボックステストでは、プログラム外部仕様には着目せず、論理実現するために使われている命令や、分岐正しく動作するか、といった部分についてチェックが行われる。判定度合い網羅率(Coverage)によって示され網羅率が100%となることを目指し進められるチェック観点従い命令網羅C0)、分岐網羅C1)、条件網羅C2)などの種類分けられる

命令網羅CO)は、全ての命令正しく一度実行されたかどうかをテストする観点である。分岐網羅は、全ての分岐正しく一度実行されたかどうか、条件網羅は、複数条件真偽組み合わせについて全ての分岐正しく一度実行されたかをテストする

ホワイトボックステストは、プログラム側の観点からテストが行われるため、仕様誤解して作って正し結果得られるまた、ホワイトボックステストに対して内部構造関知せず外部仕様だけに着目し仕様通り動作することを確認するテスト手法が、ブラックボックステスト呼ばれる

システム開発のほかの用語一覧
ソフトウェアテスト:  ウォークスルー  運用テスト  非機能テスト  ホワイトボックステスト  負荷テスト  ブラックボックステスト  結合テスト

ホワイトボックステスト

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/09/04 04:11 UTC 版)

ホワイトボックステスト (: white-box testing)は、アプリケーションの機能(ブラックボックス)ではなく、アプリケーションの内部構造をテストするソフトウェアテストの手法である。構造テストとも呼ばれる。開発したソフトウェアを中身が見える箱として扱い、内部論理を網羅的にテストする。プログラムが辿る経路をどれだけ実行したかを基準とする。

ホワイトボックステストでは、システムの内部的な視点とプログラミングスキルを使用して、テストケースを設計する。テスターは、入力を選択してコード内のパスを実行し、期待される出力を決定します。これは、インサーキットテスト(ICT)など、回路内のノードのテストに類似しています。ホワイトボックステストは、ソフトウェアテストプロセスのユニット、統合、およびシステムレベルで適用できます。従来のテスターは、ホワイトボックステストをユニットレベルで行われると考える傾向がありましたが、今日では統合およびシステムテストに使用されることが多くなっています。ユニット内のパス、統合中のユニット間のパス、およびシステムレベルのテスト中のサブシステム間のパスをテストできます。このテスト設計方法では、多くのエラーや問題を発見できるが、仕様の実装されていない部分や不足している要件を見逃す可能性がある。ホワイトボックステストが設計主導型である場合[1] 、つまり、ソフトウェアの各コンポーネントの動作が合意された仕様のみに基づく場合( DO-178CおよびISO 26262プロセスのように)、ホワイトボックステスト手法で、未実装の要件と欠落している要件の評価を行うことができる。

ホワイトボックステストの設計手法には、次のコードカバレッジ基準が含まれる。

  • 制御フローテスト
  • データフローテスト
  • ブランチテスト
  • ステートメントカバレッジ
  • 決定範囲
  • 変更された条件/決定範囲
  • プライムパステスト
  • パステスト

概要

ホワイトボックステストは、ソースコードのレベルでアプリケーションをテストする方法です。これらのテストケースは、上記の設計手法(制御フローテスト、データフローテスト、ブランチテスト、パステスト、ステートメントカバレッジ、決定カバレッジ、および変更された条件/決定カバレッジ)を使用して導出されます。ホワイトボックステストは、すべてのコードを調べてエラーのない環境を作成するためのガイドラインとしてこれらの手法を使用することです。これらのホワイトボックステスト手法は、ホワイトボックステストの構成要素であり、その本質は、後で隠れたエラーを減らすために、ソースコードレベルでアプリケーションを注意深くテストすることです。 [2]これらのさまざまな手法は、ソースコードの目に見えるすべてのパスを実行して、エラーを最小限に抑え、エラーのない環境を作成します。ホワイトボックステストの要点は、コードのどの行が実行されているかを知り、正しい出力がどうあるべきかを識別できることです。

レベル

  1. 単体テスト。ホワイトボックステストは、以前にテストされたコードとの統合が行われる前に、コードが意図したとおりに機能していることを確認するために、単体テスト中に実行されます。単体テスト中のホワイトボックステストは、多くの欠陥を早期に発見する可能性があり、コードがアプリケーションの他の部分と統合された後に発生する欠陥に対処するのに役立ち、したがって開発の後半でエラーの影響を軽減します。 [2]
  2. 統合テスト。このレベルのホワイトボックステストは、インターフェイスの相互作用をテストするために作成されています。ユニットレベルのテストでは、各コードがテストされ、分離された環境で適切に機能していることを確認しました。統合では、プログラマーが知っているインターフェイスの相互作用のホワイトボックステストを使用して、オープン環境での動作の正確さを調べます。
  3. 回帰テスト。回帰テスト中のホワイトボックステストは、ユニットおよび統合テストレベルでリサイクルされたホワイトボックステストケースを使用することです。

基本的な手順

ホワイトボックステストの基本的な手順では、テスターがテスト対象のソースコードに関する深い知識を持っている必要があります。プログラマーは、アプリケーションを深く理解して、作成するテストケースの種類を把握し、目に見えるすべてのパスがテストのために実行されるようにする必要があります。ソースコードが理解されると、作成するテストケースについてソースコードを分析できます。以下は、テストケースを作成するためにホワイトボックステストが実行する3つの基本的な手順です。

  1. 入力には、さまざまなタイプの要件、機能仕様、ドキュメントの詳細設計、適切なソースコード、およびセキュリティ仕様が含まれます。[要出典]これは、すべての基本情報をレイアウトするためのホワイトボックステストの準備段階です。
  2. 処理には、リスク分析を実行して、テストプロセス全体、適切なテスト計画を導き、テストケースを実行し、結果を伝達することが含まれます。[要出典]これは、テストケースを構築して、アプリケーションを徹底的にテストし、与えられた結果がそれに応じて記録されるようにするフェーズです。
  3. 出力には、上記の準備と結果のすべてを含む最終レポートの準備が含まれます。[要出典]

長所

  1. ソースコードの知識を持つことの副作用は、徹底的なテストに役立ちます。[要出典]
  2. 目立たないボトルネックが露呈するため、コードの最適化が容易になります。[要出典]
  3. 開発者は新しい実装を注意深く説明するため、プログラマーに内省を与えます。[要出典]
  4. ソースからのテストのトレーサビリティを提供します。これにより、ソースへの将来の変更を、新しく追加または変更されたテストで簡単にキャプチャできます。 [3]
  5. 自動化が簡単。 [4]
  6. テストをいつ停止するかについて、明確なエンジニアリングベースのルールを提供します。 [5]

短所

ホワイトボックステストには大きな利点がありますが、完全ではなく、いくつかの欠点があります。

  1. ホワイトボックステストは、テスターがプログラムの知識を持っている必要があるため、またはテストチームがコードレベルでプログラムを理解できる非常に優れたプログラマーを少なくとも1人持つ必要があるため、テストを複雑にします。ホワイトボックステストでは、実行する必要のあるテストレベルが複雑であるため、高度な知識を持つプログラマーが必要です。[要出典]
  2. 場合によっては、アプリケーションの既存のすべての条件をテストできることが現実的ではなく、一部の条件はテストされません。[要出典]
  3. テストは、存在するソフトウェアに焦点を合わせており、不足している機能が発見されない場合があります。
  4. 結果として得られるテストは、テスト対象の特定の実装と緊密に結合されているため、脆弱になる可能性があります。テスト対象のコードは、テストに組み込まれた仮定を無効にする別の方法で同じ機能を実装するように書き直すことができます。これにより、テストが不必要に失敗したり、最悪の場合、テストで誤検知が発生したり、コードでエラーがマスクされたりする可能性があります。

現代の見解

より現代的な見方は、ホワイトボックステストとブラックボックステストの二分法が曖昧になり、関連性が低くなっているというものです。 「ホワイトボックス」は元々ソースコードを使用することを意味し、ブラックボックスは要件を使用することを意味していましたが、テストは現在、さまざまな抽象化レベルの多くのドキュメントから派生しています。本当のポイントは、テストは通常、入力スペース、グラフ、論理述語などの抽象構造から設計されているということです。問題は、その抽象構造をどのレベルの抽象化から導き出すかです。 [4]これは、ソースコード、要件、入力スペースの説明、または数十種類の設計モデルの1つです。したがって、「ホワイトボックス/ブラックボックス」の区別はそれほど重要ではなく、用語の関連性も低くなります。[要出典]

ハッキング

ペネトレーションテストでは、ホワイトボックステストとは、ホワイトハットハッカーが攻撃対象のシステムを完全に把握している方法を指す。ホワイトボックス侵入テストの目標は、ターゲットシステムの知識と、場合によっては基本的な資格情報を持っている悪意のあるインサイダーをシミュレートすることです。

関連項目

出典

  1. ^ Stacy Nelson (June 2003), NASA/CR–2003-212806 Certification Processes for Safety-Critical and Mission-Critical Aerospace Software, Ames Research Center, p. 25, https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20040014965.pdf, "[Glossary] White Box Testing: Design-driven testing where engineers examine internal workings of code" 
  2. ^ a b Williams, Laurie. White-Box Testing. pp. 60–61, 69. http://www.chaudhary.org/WhiteBox.pdf 2013年2月13日閲覧。. [要検証]
  3. ^ Binder, Bob (2000). Testing Object-oriented Systems. Addison-Wesley Publishing Company Inc.. https://archive.org/details/testingobjectori00bind 
  4. ^ a b Ammann, Paul; Offutt, Jeff (2008). Introduction to Software Testing. Cambridge University Press. ISBN 9780521880381. http://cs.gmu.edu/~offutt/softwaretest/ 
  5. ^ Myers, Glenford (1979). The Art of Software Testing. John Wiley and Sons. https://archive.org/details/artofsoftwaretes00myer 

外部リンク


ホワイトボックステスト (white box test)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/23 10:14 UTC 版)

ソフトウェアテスト」の記事における「ホワイトボックステスト (white box test)」の解説

詳細は「ホワイトボックステスト」を参照 ホワイトボックステスト (white box test) は、プログラム構造着目したソフトウェアテストのことである。着目する構造には命令分岐などがあり、注目した構造に対してどれだけの割合部分実行できたかを網羅率で表す。 int abs(int x) { if (x < 0) { x = -x; } return x;}

※この「ホワイトボックステスト (white box test)」の解説は、「ソフトウェアテスト」の解説の一部です。
「ホワイトボックステスト (white box test)」を含む「ソフトウェアテスト」の記事については、「ソフトウェアテスト」の概要を参照ください。

ウィキペディア小見出し辞書の「ホワイトボックステスト」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ホワイトボックステスト」の関連用語

ホワイトボックステストのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ホワイトボックステストのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2025 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリの【ホワイトボックステスト】の記事を利用しております。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのホワイトボックステスト (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのソフトウェアテスト (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS