Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
UnitTest on M5StickC
Search
Y_uuu
January 30, 2020
Programming
1
570
UnitTest on M5StickC
2020-01-30
M5Stack福岡ユーザーミーティング vol.1
https://m5stack.connpass.com/event/161887/
Y_uuu
January 30, 2020
Tweet
Share
More Decks by Y_uuu
See All by Y_uuu
Porting PicoRuby to Another Microcontroller: ESP32
yuuu
4
750
RubyKaigi 2025でプロポーザルが初めて採択されるまでにやったこと
yuuu
1
490
地方企業の強みを活かす!AWSを活用したIoTシステムの開発事例とその裏側
yuuu
0
96
あの重機は今どこにある?- 重機管理IoTプロダクトのバックエンドをAWSで構築した話 -
yuuu
0
960
mruby-esp32におけるペリフェラルAPIの実装検討
yuuu
1
750
育成力 - エンジニアの才能を引き出す環境とチューターの立ち回り -
yuuu
4
4.7k
committee-railsとOpenAPI Generatorでスキーマ駆動なAPI開発をする
yuuu
0
910
mrubyでマイコンの世界に足を踏み入れる
yuuu
2
2k
mruby on IoT devices.
yuuu
4
2.5k
Other Decks in Programming
See All in Programming
ペアプロ × 生成AI 現場での実践と課題について / generative-ai-in-pair-programming
codmoninc
1
18k
Hack Claude Code with Claude Code
choplin
4
2k
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
21
4k
AIともっと楽するE2Eテスト
myohei
6
2.6k
AI時代の『改訂新版 良いコード/悪いコードで学ぶ設計入門』 / ai-good-code-bad-code
minodriven
13
3.5k
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
270
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
650
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
170
生成AI時代のコンポーネントライブラリの作り方
touyou
1
210
猫と暮らす Google Nest Cam生活🐈 / WebRTC with Google Nest Cam
yutailang0119
0
120
NPOでのDevinの活用
codeforeveryone
0
830
「Cursor/Devin全社導入の理想と現実」のその後
saitoryc
0
820
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
6
300
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
950
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Unsuck your backbone
ammeep
671
58k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
50
5.5k
Building Applications with DynamoDB
mza
95
6.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
181
54k
Agile that works and the tools we love
rasmusluckow
329
21k
The Invisible Side of Design
smashingmag
301
51k
Automating Front-end Workflow
addyosmani
1370
200k
Transcript
UnitTest on M5StickC 2019/01/30 M5Stack福岡ユーザーミーティング vol.1 株式会社Fusic 岡嵜雄平
⾃⼰紹介 岡嵜 雄平(@Y_uuu) 2017年まで関⻄で組込みソフトウェア開発を経験 2018年にJターン転職&Webの世界へ 転職前はETロボコンの選⼿→実⾏委員を経験 ⾃⼰紹介
⾃⼰紹介 ⾃⼰紹介 ↓これが私のTwitterアカウントです
mockmock 最近のお仕事 • IoTサーバへデバイスの代わりにデータ送信 • さまざまな⽅法でテストデータを⾃動⽣成 • 各種クラウドサービス(AWS, GCP, Azure)やSORACOMと連携
IoTのテストを⽀援する https://bit.ly/37tA9bf で検索
今⽇話すこと デバイス(組込みソフトウェア)のユニットテスト ユニットテスト どうする︖
デバイスとWebシステムの違い • ⾼級⾔語、オブジェクト指向⾔語で開発 • クラス間が疎結合なのでユニットテストもしやすい • CPUやOSレベルではプラットフォームが統⼀化 • OOSのツールやライブラリ多数
Webシステム : ユニットテストしやすい
デバイスとWebシステムの違い • CまたはC++で実装するケースが多い • 密結合になりがちでユニットテストしにくい • プラットフォームの統⼀化が進んでいない • OSSのツールやライブラリもそう多くない
デバイス : ユニットテストしにくい
デバイスにおけるユニットテストのバイブル • テスト駆動開発の⼀連の流れを解説 • 組込みソフトウェアに特化 • Mockの導⼊やレガシーコード対策に ついても⾔及 テスト駆動開発による組み込みプログラミング
軽量テストフレームワーク Unity http://www.throwtheswitch.org/unity
M5StickC上でユニットテストを実⾏ • メリット • 本番により近い環境(CPU、IO)でテストできる • 各種ライブラリ(M5Stick.hなど)のMockを作らなくて良い • デメリット
• 実施に時間がかかる • CIを回すのが困難 • Mockを使わないのでIOが絡む境界値テストが難しい
-FUbTUSZ
クロスコンパイル • Unityの3つのソースコードを スケッチに追加
クロスコンパイル • 標準出⼒に使う関数を定義
クロスコンパイル • 標準出⼒に使う関数を定義
クロスコンパイル • 改⾏時の挙動を変更
テスト対象 • 温度センサから温度を取得
テストコード • 取得した温度が0〜100度 であることをテスト
実⾏結果
ςετޭ
まとめ • デバイスのテスト難しい • M5StickC上でもユニットテストが実⾏できた • Mockの活⽤やCIは今後の課題
Thank you! Fusicは技術が好きなエンジニアを 募集しています