概要
- 組込みテストの大変さ
- ターゲット環境でのテスト
- 当たり前で手がつけられていない!!
モダン/ポストモダン
- 仮想環境を使う
- QEMUによるターゲット命令エミュレート
- テストの自動化
- 多数のテストを同時実行
- ネット結合など統合テスト対応
仮想化の種類
- VMwearなど仮想化専用ソフト
- KVMやHyper-V
- Docker
- 占有するリソースに差がある.
- 軽量で高速:Docker 技術
![]()
```
演習環境
- Jupyter にログイン
- ファイルエクスプローラで
- Exa1, Exa2, Exa3
Exa1
- readmeExa1.Rmdを開く
- Cursor がUnityを使った
- 自動テストの環境とテストデータ作成
- その記録です
- 内容を見る
- Unity を動作させるツールの
- OSへのインストールが含まれる
- Cursor は自動実行する
Exa2
- readmeExa2.md を開く
- こちらはCMock を使った
- テスト環境,テスト設計,実行を含む
- Exa1とは環境が違うだけ
- 実行はホスト上(Jupyter と同じubuntu24.04)
Exa3 docker
- ここからDockerで仮想環境を立ち上げる
- README_qemu_arm.md を開く
- ここではArmの32ビットマシンをエミュレート
- 動作させるのは三角形問題
- それをDockerで動作させる
dockerの起動定義
- docker-compose.yml が設定情報
- 演習では,4グループが同時実行するので
- container_name にグループ識別を追加
- 保存(Ctrl + S)
docker 起動
- terminal から
- docker compose build
- その後
- docker compose up -d
- 動作確認は
テストの自動実行は指定していない
- 動作確認のために仮想側(ゲスト側)に入る
- ホスト側から
- docker exec -it triangle_test_arm_qemu-X bash
- 成功するとrootのプロンプトが出る
テストのmakeと実行
- カレントが workspace であることを確認後
- make check-toolchain 実行
- その後 テストのmake
- テストを実行してカバレッジ確認
いろいろmdファイルに書いているので
- 討論しながら試してください
- 変な状態でハマたら,コンテナーからexit
- コンテナーを停止(down)
- 再起動する
Dockerの活用
- 様々な局面で活用が考えられる
- グループで共有しましょう
まとめ
- 開発とテストの一体化
- 機能間の隔離技術が進み
- マイクロサービス的な開発
- 支える技術の代表:仮想化技術
- 統合までならDocker
- 開発者,テスト技術者,共に必要な技術