新着情報
採用情報
日本語
|
English
ユーザーサポート
資料ダウンロード
お問い合わせ
3つの強み
組み込みソフト開発・検証ツール
Windows開発環境向けユニットテストツール
カバレッジマスターwinAMS
カバレッジマスターwinAMS MBTオプション
Linux開発環境向けユニットテストツール
QTE(Quality Town for Embedded grade)
パフォーマンス検証ツール
PLAS-Qlite
テストデータ生成ツール
PROMPT
C/C++ 組込み用プログラム仕様書作成・解析ツール
Caseplayer2
共有変数自動解析ツール
SharedVariableChecker2
ISO 26262セーフティ&セキュリティ
Salutem(サルテム)
Safilia(セイフィリア)
Seculia
HighTec社 TriCore/Power Architecture クロスコンパイラ
HighTec社 TriCore 開発プラットフォーム
HighTec社 Power Architecture 開発プラットフォーム
動作タイミング解析ツール
Timing-Suite T1(ティーワン)
組込みシステム仮想検証環境
シミュレータベーストファミリ仮想検証ツール
実機連携 組込みソフト自動テストシステム
リアルタイムファンクションテスター
モデルガイドラインチェック製品
Model Dr. MDiA
エンジニアリングサービス
MCD -モデル中核開発事業-
MBD Back-to-Backテスト 定着運用サポート
モデルベース開発(MBD+MDD)のプロセス構築とツールの導入支援
IS&S
-サイバーセキュリティ 向け エンジニアリング支援-
ガイオ サイバーセキュリティサービス
(サイバーセキュリティ 現場業務)
ガイオ サイバーセキュリティサービス
(サイバーセキュリティワークパッケージ)
ガイオ サイバーセキュリティサービス
(サイバーセキュリティ 教育支援)
セキュリティ脅威分析支援サービス
セキュリティ検証支援サービス
-機能安全開発効率化支援-
Safilia導入支援サービス
機能安全に対応した派生開発の影響分析サービス
SAQT -先進品質技術ソリューション事業-
テストパートナーSQV
ユニットテスト・オンザトラック
QEMUを使った仮想検証環境構築サービス
Salutem導入支援サービス
SAQT HILSエンジニアリングサービス
HILS テストシナリオ作成及びシナリオ実行自動化サービス
HILS 車両モデル作成サービス
HILS CANモデル作成サービス
リアルタイムハードとSimulinkモデルの割り付けソフト設定サービス
道路、交通流CGの設定・作成サービス
大規模ソフトウェア開発者向けテストツール導入支援
QTE導入支援サービス
GAIO CLUB
導入事例
セミナーイベント
企業情報
ガイオ・テクノロジーの3つの強み
モダン型開発/従来型開発について
組込みソフト開発・検証ツール
Windows開発環境向けユニットテストツール
カバレッジマスターwinAMS
カバレッジマスターwinAMS MBTオプション
Linux開発環境向けユニットテストツール
Quality Town for Embedded grade(QTE)
パフォーマンス検証ツール
PLAS-Qlite
テストデータ生成ツール
PROMPT
C/C++ 組込み用プログラム仕様書作成・
解析ツール
CasePlayer2
共有変数自動解析ツール
SharedVariableChecker2
ISO 26262セーフティ&セキュリティ
Salutem
Safilia
Seculia
HighTec社 クロスコンパイラ
HighTec社 TriCore 開発プラットフォーム
HighTec社 Power Architecture 開発プラットフォーム
動作タイミング解析ツール
Timing-Suite T1(ティーワン)
組込みシステム仮想検証環境
シミュレータベーストファミリ仮想検証ツール
実機連携 組込みソフト自動テストシステム
リアルタイムファンクションテスター
モデルガイドラインチェック製品
Model Dr. MDiA
エンジニアリングサービス
モデル中核開発事業
リバースモデリング代行サービス
MBD Back-to-Backテスト 定着運用サポート
モデルベース開発(MBD+MDD)のプロセス構築と
ツールの導入支援
セキュリティサービス
サイバーセキュリティ 現場業務
サイバーセキュリティワークパッケージ
サイバーセキュリティ 教育支援
セキュリティ脅威分析支援サービス
セキュリティ検証支援サービス
機能安全開発効率化支援
Salutem導入支援サービス
Safilia導入支援サービス
機能安全に対応した派生開発の影響分析サービス
先進品質技術ソリューション事業(SAQT)
テストパートナーSQV
ユニットテスト・オンザトラック
SAQT HILSエンジニアリングサービス
HILS テストシナリオ作成及びシナリオ実行自動化サービス
HILS 車両モデル作成サービス
HILS CANモデル作成サービス
リアルタイムハードとSimulinkモデルの割り付けソフト設定サービス
道路、交通流CGの設定・作成サービス
QEMUを使った仮想検証環境構築サービス
企業情報
新着情報
採用情報
導入事例
セミナーイベント
資料ダウンロード
動画一覧
GAIOサイバーチャンネル
GAIO CLUB
お問い合わせ
プライバシーポリシー
情報セキュリティ基本方針
ユーザーサポート
GAIO CLUB
HOME
>
GAIO CLUB
>
【第6回】ガイオ用語集「ブラックボックステスト」
2023年07月14日
【第6回】ガイオ用語集「ブラックボックステスト」
ガイオ用語集
目次
ブラックボックステストとは
ブラックボックステストの種類
同値分割法
境界値(限界値)分析
状態遷移テスト
デシジョンテーブル
ユースケーステスト
ブラックボックステストのメリット・デメリット
メリット
デメリット
ブラックボックステストのやり方(使い方)
まとめ
ブラックボックステストとは
ブラックボックステストとは、テスト対象となるシステムやアプリケーションなどを、内部のプログラムの構造や動作原理を考慮せずにテストして品質を評価する方法です。テスト対象を見えない箱として扱い、入力と出力の整合性を確認します。
ブラックボックステストの種類
ブラックボックステストにはいくつかの手法があります。主なものを以下に紹介します。
同値分割法
入力値や出力値を同じ結果になると予想されるグループ(同値パーティション)に分けて、各グループから代表的な値を選んでテストする技法です。システムに受け入れられる値を「有効同値パーティション」とし、システムに拒否される値を「無効同値パーティション」として振り分けていきます。
年齢を入力する場合を例に考えてみます。この場合、入力される年齢データを次の3つの同値パーティションに分けます。
・1歳未満のパーティション:0歳未満の年齢。例えば、入力値「0」。
・1歳以上120歳以下のパーティション:正常な年齢範囲。例えば、入力値「60」。
・120歳超のパーティション:非現実的な高齢の年齢。例えば、入力値「121」。
各パーティションから代表的な値を選んでテストケースを作成します。
この例では次のようなテストケースとなります。
・1歳未満:代表値「0」を使います。このケースでは、システムがこの入力をどのように扱うかを確認します。
・1歳以上120歳以下:代表値「60」を使います。このケースでは、システムがこの入力を正しく処理できるかを確認します。
・120歳超:代表値「121」を使います。このケースでは、システムがこの入力をどのように処理するかを確認します。
同値分割法を使用することで、テストケースの数を効率的に減らしながらも、システムが全ての重要な入力範囲を正しく処理できるかどうかを確認することができます。テストの網羅性と効率を両立させることが可能です。
境界値(限界値)分析
境界値(限界値)分析は同値分割法の拡張で、入力値や出力値の範囲を最小値、最大値、最小値より1小さい値、最大値より1大きい値などに分けて、それぞれの境界値でテストする技法です。
こちらも年齢を入力する場合を例に考えてみます。この場合、入力される年齢データの範囲を「1歳以上120歳以下」とし、この範囲に対して、次のような境界値を選定します。
・最小値より1小さい値:0歳
・最小値:1歳
・最大値:120歳
・最大値より1大きい値:121歳
これらの値を使ってテストケースを作成します。
・0歳:範囲外に位置する値。このケースでは、システムが最小値外の入力をどのように扱うかを確認します。
・1歳:範囲内に位置する値。このケースでは、システムが最小値の入力を正しく処理できるかを確認します。
・120歳:範囲内に位置する値。このケースでは、システムが最大値の入力を正しく処理できるかを確認します。
・121歳:範囲外に位置する値。このケースでは、システムが最大値外の入力をどのように扱うかを確認します。
境界値分析を使用することで、テストケースの効果を高めることができます。システムが境界付近の入力を適切に処理できるかどうかを確認し、これにより、範囲の端で発生しやすいエラーやバグを見つけることができます。
状態遷移テスト
テスト対象が持つ状態や状態間の遷移を表現した状態遷移図や状態遷移表をもとにして、各状態での動作や遷移条件をテストします。例えば、ATMの操作画面をテストする場合、カード挿入・暗証番号入力・メニュー選択・取引実行・カード返却という状態やその間の遷移をテストします。
デシジョンテーブル
複数の条件や結果が組み合わさる場合に使用する表で、各条件の真偽に応じて期待される結果を列挙してテストします。例えば、商品の送料を計算する場合、購入金額や会員ランクなどの条件と送料無料かどうかなどの結果を表にまとめてテストします。
ユースケーステスト
ユーザーの視点からテスト対象が提供するサービスや機能を表現したユースケースをもとにして、ユーザーの目的や要求に沿ったテストシナリオを作成してテストします。例えば、ECサイトで商品を購入する場合、商品検索⇒ カート追加⇒ 注文確定⇒ 支払い方法選択⇒ 配送先入力などの一連の流れでテストします。
ブラックボックステストのメリット・デメリット
メリット
・プログラムの内部構造を知らなくてもテストが可能
・利用者の視点からのテストができるため、より現実的なテストができる
・どのテストレベルでも適用できるため、設計不良の発見が早期に行える
・ソフトウェアの異なるバージョンやプラットフォームでの互換性を評価するのに適している
デメリット
・プログラムの内部構造を考慮しないため、特定の箇所のバグが見つけにくい場合がある
・テストケースの選定に悩む場合がある
・内部のプログラム変更があった場合、テスト条件が変わることがある
・冗長なテストが発生しやすくなり、効率が悪くなる場合がある
ブラックボックステストのやり方(使い方)
ブラックボックステストの実施手順は以下の通りです。
1. テスト対象のソフトウェアやシステムの機能や仕様を確認します。
2. テストケースを設計し、実装します。入力データや操作手順、期待する結果を含むものです。
3. 実際にテストケースを元にテスト実行し、得られた結果を期待する結果と比較します。
4. テスト結果によって不具合が見つかった場合、修正を行った上で確認テストと回帰テストを実施します。
5. 全てのテストが完了し、問題がないと判断されたらリリースします。
まとめ
ブラックボックステストは、テスト対象が設計通りに機能しているか確認するための重要なテスト方法です。内部の構造を知らずに行えるため、幅広い視点でテストが可能です。ただし、内部構造を考慮しないため、特定の箇所の故障や欠陥が見つけにくい場合があることを理解し、テスト計画を立てることが大切です。
関連ページ
カバレッジマスターwinAMS(Windows開発環境向けユニットテストツール)
単体テスト受託サービスを通じて確立した手法を使用し、関数の要求仕様からのテストデータ設計を効率的に行う「テストデータ分析エディタ」を搭載。自動生成されたテストデータと、要求仕様書とを照らし合わせながらテスト設計を行う事で、要求仕様確認である
ブラックボックステスト
と、コードの構造確認である
ホワイトボックステスト
を効率的に進めることが出来ます。
今すぐ資料ダウンロード!
この記事を読んだ人はこんなページを読んでいます。
【第5回】ガイオ用語集「ホワイトボックステスト」
【第7回】ガイオ用語集「GPU」
前のコラム
コラム一覧に戻る
次のコラム
人気のコラム
OSの無い環境でC言語プログラムを動かすときは、マイコンのメモリを意識する必要があります。今回は、メモリとCソースプログラムの関係についての話です。
シミュレータによる製品開発のメリットについては多く語られていますが、目的に応じたシミュレータの選択や使い方について正しく理解していないと、思ったような成果を得ることができません。ここでは、xILSの構成と利用上の注意点について簡単に説明を行います。
これまでメモリの話や変数初期化の話などをしてきましたが、今回は関数の機械語化についての話です。CコンパイラはC言語プログラムをアセンブリ言語に変換(翻訳)します。
最新のコラム
Google Test
Google Mock使用例の最後に、C言語プログラムのテストで使ってみようと思います。前回までに使用したプログラムをC言語に書き換え、Google Mock使ってテストします。
Google Test
前回は、Google Mockで子関数の戻り値をあらかじめ決めた後にテストを実施してみました。Google Mockの感じをつかんだので、今回はGoogle Mockでどんなことができるのか、いくつか見て行こうと思います。
Google Test
Google Mockは、単体テストの対象関数が使用している子関数の代理関数とその関数の振る舞いを定義する環境を提供します。今回は簡単な例を見ながらGoogle Mockの使い方を見てみます。
Google Test
単体テストをする際、対象関数の動作確認のために、その関数が使用する(読む)変数に値を入れておく必要があります。関数の動作結果は前回お話ししたアサーションによって確認しますが、繰り返しテストをする際に異なる値を設定したい時はどうするのでしょうか。また、致命的なエラーが起きた時にテストを中止する方法はあるでしょうか。今回は、Google Testを使ってテストドライバーを書く時の、そんな話です。
技術情報
近年、自動車産業を取り巻く環境は大きく変化しており、100年に1度の大変革時代と言われている。欧米をはじめとして、中国及び日本でも車載ECUの統合化(ADAS Domain Controller, Cockpit Domain Controller等)が進み、2020年頃からSDV化された車両が増えてきている。本寄稿では、車載業界のSDVされたシステムの進化の流れを説明し、SDV化の進展により新たに発生する機能安全対応の課題と対策について、事例を交えて説明する。
Google Test
前回お話ししたように、Google Testはテストドライバーを作る環境を提供しています。今回は、Google Testを使ってテストドライバーをどのように書いて動かすのか、見て行こうと思います。
Google Test
皆さんはテストがお好きでしょうか。テストは面倒かもしれません。でも、プログラムを書いたら動かしたいですよね。正しく動いてくれることを確認したくなると思います。テストが嫌いだと思っていても、テストしない開発者はいないでしょう。
お問い合わせ・お見積りはこちら
03-4455-4767
[代表]9:00~17:30
(土・日・祝日・年末年始・夏季休暇を除く)