Hokkaido.pm #11

  • 1,649 views
Uploaded on

Slides for Hokkaido.pm #11. …

Slides for Hokkaido.pm #11.

Talking about software testing and documentation.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,649
On Slideshare
0
From Embeds
0
Number of Embeds
12

Actions

Shares
Downloads
1
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Hokkaido.pm 🍣x11 ブログ炎上 @moznion from Hachioji.pm
  • 2. @moznion 大学院生 (退学失敗) ソフトウェアエンジニア (アルバイト)
  • 3. 今年の流行語
  • 4. ではなくて
  • 5. DevOps
  • 6. Dev🔫Ops or Ops🔫Dev
  • 7. Dev🔫Ops or Ops🔫Dev
  • 8. Dev🔫Ops or Ops🔫Dev Dev💕Ops Dev🍣Ops Dev🍺Ops
  • 9. DevとOpsが協調
  • 10. めでたい!
  • 11. 他に協調出来そうな 概念は無いだろうか
  • 12. 例えば TestとDocumentの関係
  • 13. Testとは?
  • 14. ソフトウェアの正しい動作を 記述・表現・保証するもの
  • 15. Documentとは?
  • 16. 正しいソフトウェアの 動作を定義・表現するもの
  • 17. つまりTestもDocumentも ソフトウェアの正しい動作に 着目している
  • 18. DocumentとTestは 距離が近い
  • 19. 協調可能ではないか?
  • 20. 協調することによる メリット
  • 21. Documentの 不整合を防げる 破滅しない
  • 22. Documentの 陳腐化からの卒業
  • 23. DocumentとTestを それぞれ書くよりも コストを減らせる(かも)
  • 24. アプローチ
  • 25. 1
  • 26. Documentから Testを生成する
  • 27. 2
  • 28. Testから Documentを生成する
  • 29. 第Ⅰ部
  • 30. Documentから Testを生成する
  • 31. Documentがそのまま Testと化すので 陳腐化を防げる
  • 32. Documentを書く作業と Testを書く作業が 分離しない
  • 33. しかし
  • 34. 難しい
  • 35. 実現しようとすると Documentが 冗長になる傾向
  • 36. e.g. javadoc
  • 37. Documentを書く コストが格段に 跳ね上がる
  • 38. そのコストはDocumentとTest それぞれ分離して書いた時の コストと比較してどちらが高い?
  • 39. また, Documentから 生成するテストケースは 適切だろうか?
  • 40. etc etc…
  • 41. 多分, Documentから Testを生成するのは あまり良い方法ではない
  • 42. では生成するのを やめてはどうか
  • 43. DocumentとTestを 同居させるという手法
  • 44. e.g. DocTest (Python) Test::Inline (Perl) power-doctest (JS)
  • 45. 今回書いたやつ
  • 46. Test::Synopsis::Expectation https://metacpan.org/release/Test-Synopsis-Expectation https://github.com/moznion/Test-Synopsis-Expectation
  • 47. CPANモジュールの Documentの中でも 非常に重要なSYNOPSIS
  • 48. そのSYNOPSISを Testする
  • 49. SS
  • 50. SYNOPSISの中に テストケースを 同居させる
  • 51. 可読性もそこそこ高いので 人間が読んでも理解できる
  • 52. もちろんDocumentも 陳腐化しない
  • 53. Documentを書くと Testも増えるという思想
  • 54. 割と良いのではないか
  • 55. Documentから Testを生成する DocumentとTestを 同居させる
  • 56. 第Ⅰ部完
  • 57. 第Ⅱ部
  • 58. Testから Documentを生成する
  • 59. r7kamura氏のautodoc
  • 60. 衝撃!!!
  • 61. autodoc?
  • 62. JSON APIのTestを書くと APIのDocumentが 生成されるやつ
  • 63. Testで動作が正しいことが 保証されているものが そのままDocumentになる
  • 64. 正しいドキュメントが 必然的に得られる
  • 65. APIとか代謝が早くて Documentが追いつかない ケースが多い
  • 66. ただ, 健全な開発ならば APIに対するTestは 存在しているはず
  • 67. そのTestからDocumentを 生成することで Docが遅れなくなる
  • 68. で, 書いた
  • 69. Test::JsonAPI::Autodoc https://metacpan.org/release/Test-JsonAPI-Autodoc https://github.com/moznion/Test-JsonAPI-Autodoc
  • 70. 細かな差異はあれど, ほぼautodocのport
  • 71. また, 似たコンセプトのものに Shodoというのがあり…
  • 72. 後ほど説明が あると思います
  • 73. 第Ⅱ部完
  • 74. まとめ
  • 75. TestとDocumentは 近い存在 協調できると思う
  • 76. 協調すると, ドキュメントの破滅 などから救われる
  • 77. TestとDocumentを 同居させる方法と TestからDocumentを 生成する方法は 割と良いのではないか
  • 78. 双方の使い分けは ドメインに応じて
  • 79. という感じ
  • 80. 2013 DevOps ⇩ 2014 DocTest
  • 81. Doc🍣Test
  • 82. Any Q?