Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

84931a5617d844ecfda982721de3a9e9?s=47 k-abe
April 27, 2022

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

2022/4/27 単体テストはエンジニアを救うLT大会の発表資料
タイトル:書籍【テスト駆動開発による組み込みプログラミング】を写経した感想
https://shiftevolve.connpass.com/event/241524/

84931a5617d844ecfda982721de3a9e9?s=128

k-abe

April 27, 2022
Tweet

More Decks by k-abe

Other Decks in Programming

Transcript

  1. ॻ੶ʲςετۦಈ։ൃʹΑΔ૊ΈࠐΈ ϓϩάϥϛϯάʳΛࣸܦͨ͠ײ૝ 2022.4.27 ύʔιϧςΫϊϩδʔελοϑגࣜձࣾ Ѩ෦ ߞೋ koji.abe@persol.co.jp ୯ମςετ͸ΤϯδχΞΛٹ͏LTେձ 1

  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. ɾTDDͷ։ൃϦζϜ͕৺஍Α͍ɻ ɹRed(ςετࣦഊ֬ೝ)→Green(ςετ੒ޭ)→ϦϑΝΫλϦϯά ɹ ৺஍Α͍ɾָ͍ͨ͠Ίςετ͢Δ͜ͱ͕໨తʹͳͬͯ͠·͍͕ͪɻ ɹ⇛ʲςετਥʳʹͳΓ͗͢஫ҙͱࢥͬͨɻ ɹςετਥͱ͸?ɿhttps://gihyo.jp/dev/serial/01/tdd/0014 ݱ৔Ͱ͸ࣄલʹTDDͷϧʔϧܾΊ͓ͯ͘ͱྑ͍͔΋ɻ 1. ࣸܦͨ͠ײ૝ 8

  9. Ͳ͏ֶΜͰ͍Δ? ɹجຊɺ@t_wada͞Μͷํ๏(https://twitter.com/t_wada/status/9000231741)Ͱ͢ɻ ɹຊͷίʔυࣸܦ⇛gitίϛοτɾϓογϡ ԿΛҙ͍ࣝͯ͠Δ? ɾͰ͖Δ͚ͩࡉ͔͍εςοϓͰίϛοτɾϓογϡΛ৺͕͚ͨɻ ɹίϛοτϩάʹຊͷষ൪߸ɾϖʔδ਺Λهࡌ͢Δɻ ɹෆ໌఺ɾֶͼɾؾ͍ͮͨ͜ͱͳͲ΋ϩάʹ࢒͢ɻ ɾTDDͷྲྀΕΛՄࢹԽ͢Δ͜ͱͰίʔυͷ੒௕͕Θ͔Δɻ ɹ͋ͱͰίϛοτϩάΛݟฦ͢ͱৼΓฦΓ͕Ͱ͖Δɺؾ͕͍͍࣋ͪɻ 1.

    ࣸܦͨ͠ײ૝ 9
  10. ຊͷࣸܦͷίϛοτϩά ※ݴޠ͸CݴޠɻςετϑϨʔϜϫʔΫ͸ຊͱಉ͡CppUTestɻ • LED Driver https://github.com/grace2riku/cmake-cpputest/tree/syakyo • HomeAutomation https://github.com/grace2riku/TDD_EmbeddedC_HomeAutomation 1.

    ࣸܦͨ͠ײ૝ 10
  11. 1.ࣸܦͨ͠ײ૝ 2.ςετઓུ 3.ϓϩάϥϛϯάݴޠڭҭͱͯ͠ͷTDD ײ૝ 11

  12. • TDDΛ։ൃͰͲ͏ద༻͢Δͷ͔ɾڭҭ͢Δͷ͔ɺઓུॏཁͱײ ͨ͡ɻ • ૊৫ɾ։ൃର৅ɾͦͷଞͰઓུ΋มΘΓͦ͏ɻ ɹྫ) ೿ੜ։ൃ?৽ن։ൃ? ɹྫ) ։ൃܦݧ๛෋ͳϚΠίϯɾϓϩηοα?ͦΕͱ΋৽ن? ɹྫ)

    TDDΛνʔϜʹͲ͏఻೻ɾڭҭ͍ͯ͘͠? -> ϖΞϓϩ? https://gihyo.jp/dev/serial/01/tdd/0019 2.ςετઓུ 12
  13. 1.ࣸܦͨ͠ײ૝ 2.ςετઓུ 3.ϓϩάϥϛϯάݴޠڭҭͱͯ͠ͷTDD ײ૝ 13

  14. • ຊΛࣸܦ͠TDDʹֶ͍ͭͯΜͰ͍ͬͨΒ࣍ ͷಈըʹग़ձ͏ɻ https://gihyo.jp/dev/serial/01/tdd/0016 ʲϓϩάϥϛϯάݴޠΛϚελʔ͢ΔͨΊʹ ͸ͦͷݴޠͷςεςΟϯάϑϨʔϜϫʔΫΛ ࡞ͬͯΈΔʳ 3.ϓϩάϥϛϯάݴޠڭҭͱͯ͠ͷTDD 14

  15. ʲϓϩάϥϛϯάݴޠΛϚελʔ͢ΔͨΊʹ͸ͦͷݴޠͷςεςΟ ϯάϑϨʔϜϫʔΫΛ࡞ͬͯΈΔʳ -> ͔֬ʹͦͷͱ͓Γ͔΋ɻɻɻ ɹൺֱత৽͍͠ϓϩάϥϛϯάݴޠ(Rust, ZigͳͲ)͸ςετػೳ͕ݴ ޠʹ૊Έࠐ·Ε͍ͯΔɻ ɹςετػೳΛ࢖ͬͯݴޠࣗମΛղઆ͍ͯ͠Δɻ ɹTDD͠ͳ͕Βͷݴޠֶश͸Ξϓϩʔνͱͯ͠ྑ͍͔΋ɾɾɾͱײ ͨ͡ɻ

    3.ϓϩάϥϛϯάݴޠڭҭͱͯ͠ͷTDD 15
  16. ͝੩ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠ɻ ऴΘΓ 16