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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Y_uuu
January 30, 2020
Programming
630
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
850
Porting filesystem-fat to Another Microcontroller: ESP32
yuuu
2
380
Porting PicoRuby to Another Microcontroller: ESP32
yuuu
4
1.1k
RubyKaigi 2025でプロポーザルが初めて採択されるまでにやったこと
yuuu
1
730
地方企業の強みを活かす!AWSを活用したIoTシステムの開発事例とその裏側
yuuu
0
180
あの重機は今どこにある?- 重機管理IoTプロダクトのバックエンドをAWSで構築した話 -
yuuu
0
1.1k
mruby-esp32におけるペリフェラルAPIの実装検討
yuuu
1
900
育成力 - エンジニアの才能を引き出す環境とチューターの立ち回り -
yuuu
4
5.1k
committee-railsとOpenAPI Generatorでスキーマ駆動なAPI開発をする
yuuu
0
1k
Other Decks in Programming
See All in Programming
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
10
5.5k
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
640
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
180
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
130
AI時代の仕事技芸論 — ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ
kuranuki
2
680
脅威をエンジニアリングの糧にして――現場編 / Turning Threats into Engineering Fuel — Field Edition
nrslib
0
280
Inside Stream API
skrb
1
730
Lessons from Spec-Driven Development
simas
PRO
0
200
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
120
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
130
AIで効率化できた業務・日常
ochtum
0
140
Featured
See All Featured
エンジニアに許された特別な時間の終わり
watany
107
250k
Technical Leadership for Architectural Decision Making
baasie
3
410
How to build a perfect <img>
jonoalderson
1
5.7k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
Why Our Code Smells
bkeepers
PRO
340
58k
Designing for Performance
lara
611
70k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
460
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
AI: The stuff that nobody shows you
jnunemaker
PRO
8
720
Bash Introduction
62gerente
615
220k
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は技術が好きなエンジニアを 募集しています