スクラムフェス大阪が先日開催されたばかりという状況ですが、今更ながらスクフェス新潟で発表した資料を公開しました。
公開資料
感謝
発表後ではありますが、今回の資料を公開するにあたってOSTできょんさん(+一部は47機関メンバー)に文章だけ見た時に気になる部分がないか、文章だけ見た時に誤解を招くような表現がないかを見てもらいました。
結果的に色々と表現を改めることができました。どうもありがとうございました!
発表概要
『xUnit Test Patterns: Refactoring Test Code』ではテストコードの不吉な匂いとしてTest Smellsが解説されています。
このTest Smellsは幅広いユニットテスティングフレームワークに影響を与えており、ユニットテスティングフレームワーク(xUnit)のバージョンアップ時には、Test Smellsの解消が容易になるようなアップデート内容が多く存在しています。 しかし、残念ながらこのアップデートは多くのPJでは活用がされていないことが多いようです。
例えばJUnit5ライブラリは2017年にリリースされたにも関わらず、大規模なOSSでも20%以下のPJしか2022年時点でJUnit5の機能が活用されておらず、結果的にTest Smellsが残存しているとのSurveyが挙がっています。
本発表では、JUnit5の機能の中からSurveyで活用率が低いとされている幾つかの機能を紹介しながら、Test Smellsを具体的にどのように撃退していくのかを説明することで、Test Smellsの効果的な撃退方法を解説していきます。
発表に至ったモチベーション
これまで技術的な内容での発表がなかったのでそういった発表をしてみたいと思って何かしら技術的発表ネタを考えていたところ、最近読んでいた論文でTest Smellsが未だに多く残存している問題を知ったので、JUnit5を使ってTest Smellsを撃退する方法を話してみようと思いました。
発表が届いて欲しい人
まずは、JUnit5を使っているけれど正直JUnit4との違いが今ひとつ分かっていない(あるいは今ひとつ使いこなせている感覚が持てていない)という人に届いたら嬉しいなあと思っています。
次に、JUnit4→JUit5へのupdateを考えているんだけれど具体的にupdateのメリットが良く分かっていないという人にも届いてもらえると嬉しいです。
最後に、Test Smellsという単語や具体的な症状はまあ知っているけど、どういう風にして埋め込まれるのかわからないなあという人にも届いてもらえると役に立つ内容になっているかと思います。(発表の主題ではありませんが、Test Smellsがなぜ埋め込まれるのかのSurveyも簡単にまとめてあるため)
おまけ(このタイミングで公開することになった背景)
まず、スクフェス新潟直前&直後に親族のバタバタや自身のCOVID-19感染などがあったりしてで公開する余裕がなくて、公開が遅れてしまいました。
また、資料内容的に参照される可能性が一定程度あり、その際に誤解を招くような表現があったら嫌だなーと思っていたので、発表を聞いていなかった人にレビューをしてもらいたいと思っていたのですが、ずるずるとレビュー依頼が後回しになり、公開が遅れてしまいました。