組込み系:結合テスト

概要

  • 単体/結合:何が違うの
  • テストレベル(工程)/ 単体・結合・統合
    • テストタイプ:別の観点から

1 結合テスト

1.1 組込み系結合テストとは

  • 関数レベルのテスト:12/5の例
    • これは単体テストか,それ以下
  • 結合テストに応用するには?
    • その前に,次の疑問
  • 結合テストの範囲は?,テスト対象は?
    • 製品や職場で多様では・・・調べる
  • 原因:派生開発と新規開発の違い

1.2 実態:結合テストの範囲?

  1. 実行する環境の違いは:
    A PC上(エミュレータを含む)
    B 評価ボード
    C 製品ボード
    D クラウド
    E 実機
    F その他(統合ECUなど)
  1. テスト対象のコード範囲:
    A 担当する範囲
    B チームで共有する範囲
    C CANやAPIなどインタフェースが存在する範囲
    D RTOSなどリンクする範囲
    E その他

1.3 共有ノートで教えて

  • noteは,ここ
  • 結合テストで困りごとがあれば3.に書いてください.

各自で書き出して
 4分

2 テストにおける結合/統合の意味

2.1 Unitテスト/単体テスト

  • Unit範囲
    • 機能的に独立している範囲
    • テストとして切り出せる範囲
  • テストの品質
    • 機能の全網羅(ブラックボックス法)
    • パスの全網羅(ホワイトボックス法)

2.2 何を結合するのか

  • 結合範囲
    • 内製した関数や処理の集合
    • 他とのインタフェース(ライブラリも)
    • ハード(ECU種類やI/O)
  • テストの対象(何を確認すのか)
    • 結合部分を含めた機能確認
    • 関数網羅など(パス網羅はしない)

2.3 統合テスト

  • テストにおける結合と統合の差
    • 結合:テスト対象は個々の結合実体
    • 統合:テスト対象は統合体
      • 機能が同居した状態で,相互影響をテスト
      • 機能連携が正しいか
      • 悪影響は無いか

3 テストタイプから考える

3.1 テスト対象の大きさや工程とは別

  • 仕様ベースのテスト
  • 機能テスト
  • 非機能テスト
  • などなど,ブラックボックステスト

3.2 ホワイトボックステスト

  • 制御パスに着目
  • パス網羅などの基準
  • これらは単体テスト向け
  • 規模が大きい結合テストでは無理
  • 何故でしょうか?

3.3 結合テストでホワイトBOX必要?

  • チームで討論
  • ホワイトの範囲は,単体,結合,統合,・・・
  • 理由は?

Breakout Rooms
 5分

3.4 機能テスト/ブラックBOXテスト

  • 仕様ベースのテスト
  • 入出力を中心にテスト
  • 機能テストはブラックボックステスト
    • 理由分かりますか
    • 機能を満たす ≠ 網羅する

3.5 機能テストの設計方法

  • 機能=出力として確認できること
    • 確認にはlogやデバッガも含む
  • まず機能の識別
    • 機能の分解: 独立/排他など

3.6 入力と出力の関係

テストの入力は大別して2種類
1. ロジックに影響する入力
2. 出力に変換される入力

  • 1.と2.を兼ねる入力もある
  • 例 ソート入力で1行目が数値なら数値でソート

3.7 変換される入力とは

  • ロジックに影響しない入力で
  • 出力に何らかの影響を与える
  • 例 入力:画像信号
    • 出力:オブジェクト検出
  • 例 ソートの入力とソート結果

3.8 ロジックに影響する入力

  • プログラムの処理フローに影響
  • 同値分割や境界値分析の対象入力
  • 例:ソートのパラメータ:昇順/降順
    • 変換される入力は同値分割困難
    • ソート成功/失敗:これは出力同値

3.9 変換される=機能のテスト

  • 例 ソートで出力がソートされたか
  • 例 排ガス制御で排ガス量が制御されたか
  • これらは処理(機能)のアルゴリズムに依存する
  • ソフトウェア・テスト技術者のスキル外
  • 確認は必要:専門家と相談して確認する

3.10 テストケース設計の対象

  • 主にロジック入力
  • 単体テストと結合テスト
  • どちらがロジックが多いか
  • その理由は?

次は,