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
480
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
あの重機は今どこにある?- 重機管理IoTプロダクトのバックエンドをAWSで構築した話 -
yuuu
0
500
mruby-esp32におけるペリフェラルAPIの実装検討
yuuu
0
400
育成力 - エンジニアの才能を引き出す環境とチューターの立ち回り -
yuuu
4
4.2k
committee-railsとOpenAPI Generatorでスキーマ駆動なAPI開発をする
yuuu
0
600
mrubyでマイコンの世界に足を踏み入れる
yuuu
1
1.5k
mruby on IoT devices.
yuuu
4
2k
SORACOM ArcでオフィスのIoT化を進行中です⭐
yuuu
1
880
AWSのIoTサービスをおさらいしよう
yuuu
1
220
mrubyを1300円のボードで動かそう
yuuu
0
510
Other Decks in Programming
See All in Programming
AWSでゲームサーバーを運用! Amazon GameLiftのお話
iriikeita
0
200
Architectures with Lightweight Stores: New Rules and Options
manfredsteyer
PRO
0
100
HMSコンペ 11th Solution (team : kansai-kaggler)
t88
1
680
みんなのオブザーバビリティプラットフォームを作ってるんだがパフォーマンスがやばい #mackerelio #srenext
ne_sachirou
0
370
今こそ始める、CDKコンストラクトライブラリ開発 ― 入門から実践まで
tmokmss
1
930
CSC307 Lecture 12
javiergs
PRO
0
220
Ruby メモリ管理 プログラミング
megmogmog1965
0
130
最古の関数型言語「Lisp」ことはじめ / lisp_in_kamiyama
uhooi
1
190
Clean Architecture by TypeScript & NestJS
ryounasso
0
150
Polarsの成長: v0.14からv1.0までの変遷と今後の展望
zerebom
1
350
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
250
さきがけから振り返るアーキテクチャ刷新 / Reflecting on the Architectural Renewal from the Vanguard
nrslib
2
770
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1362
200k
Speed Design
sergeychernyshev
9
270
Navigating Team Friction
lara
181
13k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
325
21k
Principles of Awesome APIs and How to Build Them.
keavy
124
16k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.9k
How to train your dragon (web standard)
notwaldorf
79
5.5k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
105
6.8k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
No one is an island. Learnings from fostering a developers community.
thoeni
17
2.8k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
189
16k
Art, The Web, and Tiny UX
lynnandtonic
291
20k
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は技術が好きなエンジニアを 募集しています