Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
UnitTest on M5StickC
Search
Y_uuu
January 30, 2020
Programming
650
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
UnitTest on M5StickC
2020-01-30
M5Stack福岡ユーザーミーティング vol.1
https://m5stack.connpass.com/event/161887/
Y_uuu
January 30, 2020
More Decks by Y_uuu
See All by Y_uuu
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
940
Porting filesystem-fat to Another Microcontroller: ESP32
yuuu
2
450
Porting PicoRuby to Another Microcontroller: ESP32
yuuu
4
1.2k
RubyKaigi 2025でプロポーザルが初めて採択されるまでにやったこと
yuuu
1
810
地方企業の強みを活かす!AWSを活用したIoTシステムの開発事例とその裏側
yuuu
0
200
あの重機は今どこにある?- 重機管理IoTプロダクトのバックエンドをAWSで構築した話 -
yuuu
0
1.1k
mruby-esp32におけるペリフェラルAPIの実装検討
yuuu
1
930
育成力 - エンジニアの才能を引き出す環境とチューターの立ち回り -
yuuu
4
5.3k
committee-railsとOpenAPI Generatorでスキーマ駆動なAPI開発をする
yuuu
0
1.1k
Other Decks in Programming
See All in Programming
Webの地図
yosuke_furukawa
PRO
6
4.6k
一人だけ、Kiroが静止する日
hideg
0
120
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.8k
Jetpack Compose メカニズム
skydoves
0
440
iOSDC2026登壇資料.pdf
riofujimon
0
170
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
190
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
260
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
130
Streamlitで実現する自然言語データアプリ開発
ayumu_yamaguchi
1
290
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
340
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
290
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
190
Featured
See All Featured
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
57k
Amusing Abliteration
ianozsvald
1
310
Balancing Empowerment & Direction
lara
6
1.3k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.4k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
500
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
500
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
660
Skip the Path - Find Your Career Trail
mkilby
1
230
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
760
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は技術が好きなエンジニアを 募集しています