書籍【テスト駆動開発による組み込みプログラミング】を写経した感想

4.1K Views

June 14, 22

tdd

スライド概要

単体テストはエンジニアを救うLT大会の発表資料です。
https://shiftevolve.connpass.com/event/241524/

書籍【テスト駆動開発による組み込みプログラミング】を写経した感想です。

profile-image

組込みソフトウェアエンジニア。 技術バックボーンはC言語・ベアメタル。 CQ EVカートのオーナーで、ハード・ソフトウェアの改造を通じて自身のスキルアップを日々考え中・・・。 LAPRASポートフォリオ: https://lapras.com/public/k-abe GitHub: http://github.com/grace2riku Qiita: https://qiita.com/juraruming Zenn: https://zenn.dev/k_abe よろしくね。

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

単体テストはエンジニアを救うLT大会 書籍【テスト駆動開発による組み込み プログラミング】を写経した感想 2022.4.271 パーソルテクノロジースタッフ株式会社 阿部 耕二 koji.abe@persol.co.jp

2.

目次 • 自己紹介 • 書籍【テスト駆動開発による組み込みプログラミング】の紹介 • 感想 2

3.

自己紹介 • 名前:阿部 耕二(あべ こうじ) • 所属:パーソルテクノロジースタッフ株式会社 • 医療機器開発 • 組込みソフトウェア開発。C言語、ベアメタルの開発業務経験がほとん ど。 • twitter: @juraruming 3

4.

書籍【テスト駆動開発による組み込みプロ グラミング】の紹介 • https://www.oreilly.co.jp/books/9784873116143/ • 組込みでTDDする際の定番の本(と思っています) • TDDのやり方を学べる。 最初は小さなテーマ(LED Driver)からスタート。 • 後半は設計原則を学ぶ。 SOLID原則 4

5.

書籍【テスト駆動開発による組み込みプロ グラミング】の紹介 ・小さく段階を踏んでコードが成長していく。 ・リファクタリングのやり方学べる。 ・組込み特有の課題へのアプローチを説明。 例) クロス開発環境:ホストとターゲットで組込むライブ ラリが違うため動作が異なるかもしれない。 例) ハードウェア:ハードウェアの挙動をどうやってテスト する? 5

6.

感想 1. 写経した感想 2.テスト戦略 3.プログラミング言語教育としてのTDD 6

7.

感想 1.写経した感想 2.テスト戦略 3.プログラミング言語教育としてのTDD 7

8.

1. 写経した感想 ・TDDの開発リズムが心地よい。 Red(テスト失敗確認)→Green(テスト成功)→リファクタリング 心地よい・楽しいためテストすることが目的になってしまいがち。 ⇛【テスト厨】になりすぎ注意と思った。 テスト厨とは?:https://gihyo.jp/dev/serial/01/tdd/0014 現場では事前にTDDのルール決めておくと良いかも。 8

9.

1. 写経した感想 どう学んでいる? 基本、@t_wadaさんの方法(https://twitter.com/t_wada/status/9000231741)です。 本のコード写経⇛gitコミット・プッシュ 何を意識している? ・できるだけ細かいステップでコミット・プッシュを心がけた。 コミットログに本の章番号・ページ数を記載する。 不明点・学び・気づいたことなどもログに残す。 ・TDDの流れを可視化することでコードの成長がわかる。 あとでコミットログを見返すと振り返りができる、気持ちがいい。 9

10.

1. 写経した感想 本の写経のコミットログ ※言語はC言語。テストフレームワークは本と同じCppUTest。 • LED Driver https://github.com/grace2riku/cmake-cpputest/tree/syakyo • HomeAutomation https://github.com/grace2riku/TDD_EmbeddedC_HomeAutomation 10

11.

感想 1. 写経した感想 2.テスト戦略 3.プログラミング言語教育としてのTDD 11

12.

2.テスト戦略 • TDDを開発でどう適用するのか・教育するのか、戦略重要と感 じた。 • 組織・開発対象・その他で戦略も変わりそう。 例) 派生開発?新規開発? 例) 開発経験豊富なマイコン・プロセッサ?それとも新規? 例) TDDをチームにどう伝播・教育していく? -> ペアプロ? https://gihyo.jp/dev/serial/01/tdd/0019 12

13.

感想 1. 写経した感想 2.テスト戦略 3.プログラミング言語教育としてのTDD 13

14.

3.プログラミング言語教育としてのTDD • 本を写経しTDDについて学んでいったら次 の動画に出会う。 https://gihyo.jp/dev/serial/01/tdd/0016 【プログラミング言語をマスターするために はその言語のテスティングフレームワークを 作ってみる】 14

15.

3.プログラミング言語教育としてのTDD 【プログラミング言語をマスターするためにはその言語のテスティ ングフレームワークを作ってみる】 -> 確かにそのとおりかも。。。 比較的新しいプログラミング言語(Rust, Zigなど)はテスト機能が言 語に組み込まれている。 テスト機能を使って言語自体を解説している。 TDDしながらの言語学習はアプローチとして良いかも・・・と感 じた。 15

16.

終わり ご静聴ありがとう ございました。 16