先日行われたGo Conferrence 2022 Springで「testingパッケージを使ったWebアプリケーションテスト」というタイトルで登壇した。
Go Conferrence 2022 Spring
※ The Go gopher was designed by Renee French. Illustrations by tottie.
Go Conferrence(GoCon)は半年に1回ペースで行われる日本国内最大級のGoのイベントだ。
Paper Callで募集要項(CFP)が公開され、プロポーザルを審査された結果登壇できるかが決まる。私としては2019年夏ぶりに登壇できた。
発表資料
当日に使った発表資料はこちら。
https://speakerdeck.com/budougumi0617/gocon2022spring
資料内のリンク
- P7: Google Testing Blog: Just Say No to More End-to-End Tests
- P7: Using Models to Help Plan Tests in Agile Projects | Agile Testing Quadrants | InformIT
- P16 Repositoryによる抽象化の理想と現実
- P26: マイクロサービスの開発とテストファースト/テスト駆動開発 【Mercari Gears Lecture Series】
- P33: Go Fridayこぼれ話:非公開(unexported)な機能を使ったテスト
- P33: Go言語でのテストの並列化 〜t.Parallel()メソッドを理解する〜
- OSS
話した内容について
https://t.co/xtgr6VsCuu
— gim_kondo (@gim_kondo) April 23, 2022
タイトルからするとちょっとしたHow-toかと思ったけど、リアルな事情に基づいた解決方法や妥協点の話でとても良かった#gocon
そのプロダクトで効果のあるテスト、検証したいことを意識するというのはとてもいいですね#gocon #goconA
— dyuji (@dyuji1) April 23, 2022
なんのためにテストを実装するのか? を明らかにして、
— im || imaima (@im_miolab) April 23, 2022
どこの責務に対してテストを書いてのか? がきちんと分割されてるの良き👏#gocon #goconA
タイトルのとおり、テストの話をしたのだが、「なぜこのようなテストを行なっているのか?」を話の主軸においた。
テストは書いたほうが良いに決まっているが、テストを書くことで何を保証・検証したいのか?によって必要なテストの形式は変わってくる。
自分のチームはどのような考えてアプリケーションを設計し、そのアプリケーションの品質を保つためにどのようなテストを書いているのかが伝わっていれば幸いである。
資料作成はMiroとmarkmapがよかった。
今回の発表資料の作成ではまず書籍から一般的な「Why」の考えを集める作業をした。 関連書籍をばーっと見てMiroで一人ブレストするのが結構よい感じだった。 これをしないとただのHowTo的な発表になっていたと思うのでやってよかった。
これのあと@t_wadaさんが書いていたmarkmapを使ってスライド構成を思案した。
Googleスライド上で作業する段階はもう見た目のことくらいしか気にしなくてよくなったので、だいぶ迷わずスライドづくりができた。
後述の登壇がすぐ控えているので次のスライドもこの流れで作っていきたい。
感想
でかいカンファレンスでの登壇は家庭の事情で久しぶりだったので結構緊張した。
案の定コロナ関係で登壇準備にかけるつもりだった時間がほとんど取れなかったのでなんとか発表できてよかった。
そのせいで他の皆さんの発表をほとんど見ることができなかったのであとでアーカイブや資料を拝見させていただく。
また、今年は少し家庭の事情が落ち着いてくるはずなので運営のお手伝いも再開したい。
また、現職としてもスポンサーを行なったり、同僚も登壇できたのでよかった。
そして今週はGoConスポンサー企業有志による非公式アフタートークイベントもある。私はNew Relicに関する発表をする予定。
良い発表をして連休を迎えたい。
ちょっとした宣伝
登壇中でも触れたが、GoのWebアプリケーション開発の中で必要となる今回のようなテストのようなテクニックや多用されるプラクティスをまとめた本を執筆しているので発表を良いと思ってくれた方は予約しておいてもらえるとより具体的な内容を伝えられると思う。
こちらは絶賛執筆中。
関連
- Go Conferrence 2022 Spring
- \非公式/ Go Conference 2022 Spring スポンサー企業4社 アフタートーク
- Go Conference 2022 Spring Onlineにシルバースポンサーで協賛・2名登壇します - BASEプロダクトチームブログ
- 詳解Go言語Webアプリケーション開発
参考資料
なお、今回の登壇資料を作成するまえに考えをまとめるために読んだ本は次のとおり。 久しぶりに読む名著から最近の本までいろいろ読む機会にもなったのでよかった。