UnitTest on M5StickC
by
Y_uuu
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
UnitTest on M5StickC 2019/01/30 M5Stack福岡ユーザーミーティング vol.1 株式会社Fusic 岡嵜雄平
Slide 2
Slide 2 text
⾃⼰紹介 岡嵜 雄平(@Y_uuu) 2017年まで関⻄で組込みソフトウェア開発を経験 2018年にJターン転職&Webの世界へ 転職前はETロボコンの選⼿→実⾏委員を経験 ⾃⼰紹介
Slide 3
Slide 3 text
⾃⼰紹介 ⾃⼰紹介 ↓これが私のTwitterアカウントです
Slide 4
Slide 4 text
mockmock 最近のお仕事 • IoTサーバへデバイスの代わりにデータ送信 • さまざまな⽅法でテストデータを⾃動⽣成 • 各種クラウドサービス(AWS, GCP, Azure)やSORACOMと連携 IoTのテストを⽀援する https://bit.ly/37tA9bf で検索
Slide 5
Slide 5 text
今⽇話すこと デバイス(組込みソフトウェア)のユニットテスト ユニットテスト どうする︖
Slide 6
Slide 6 text
デバイスとWebシステムの違い • ⾼級⾔語、オブジェクト指向⾔語で開発 • クラス間が疎結合なのでユニットテストもしやすい • CPUやOSレベルではプラットフォームが統⼀化 • OOSのツールやライブラリ多数 Webシステム : ユニットテストしやすい
Slide 7
Slide 7 text
デバイスとWebシステムの違い • CまたはC++で実装するケースが多い • 密結合になりがちでユニットテストしにくい • プラットフォームの統⼀化が進んでいない • OSSのツールやライブラリもそう多くない デバイス : ユニットテストしにくい
Slide 8
Slide 8 text
デバイスにおけるユニットテストのバイブル • テスト駆動開発の⼀連の流れを解説 • 組込みソフトウェアに特化 • Mockの導⼊やレガシーコード対策に ついても⾔及 テスト駆動開発による組み込みプログラミング
Slide 9
Slide 9 text
軽量テストフレームワーク Unity http://www.throwtheswitch.org/unity
Slide 10
Slide 10 text
M5StickC上でユニットテストを実⾏ • メリット • 本番により近い環境(CPU、IO)でテストできる • 各種ライブラリ(M5Stick.hなど)のMockを作らなくて良い • デメリット • 実施に時間がかかる • CIを回すのが困難 • Mockを使わないのでIOが絡む境界値テストが難しい
Slide 11
Slide 11 text
-FUbTUSZ
Slide 12
Slide 12 text
クロスコンパイル • Unityの3つのソースコードを スケッチに追加
Slide 13
Slide 13 text
クロスコンパイル • 標準出⼒に使う関数を定義
Slide 14
Slide 14 text
クロスコンパイル • 標準出⼒に使う関数を定義
Slide 15
Slide 15 text
クロスコンパイル • 改⾏時の挙動を変更
Slide 16
Slide 16 text
テスト対象 • 温度センサから温度を取得
Slide 17
Slide 17 text
テストコード • 取得した温度が0〜100度 であることをテスト
Slide 18
Slide 18 text
実⾏結果
Slide 19
Slide 19 text
ςετޭ
Slide 20
Slide 20 text
まとめ • デバイスのテスト難しい • M5StickC上でもユニットテストが実⾏できた • Mockの活⽤やCIは今後の課題
Slide 21
Slide 21 text
Thank you! Fusicは技術が好きなエンジニアを 募集しています