駆け足でテストコードのプラクティスを学べる『実践JUnit』を読んだ

いざアサートせよ
緑の光あれ
我ら Javaの騎士

少し前に『実践JUnit』の書籍が発売されました。

対象とする読者に書かれているよう、ユニットテストの記述に慣れていない人を対象にしているものです。ツールの詳細などにはあまり踏み込みませんが、 どのようなテストが良いとされるのか というプラクティスや考え方がまとまっています。

ユニットテストフレームワークは随分使われてきました。その中で蓄積されたプラクティスを知って取り組むのと、知らずに取り組むのでは考え方の洗練されかたに差がでますよね。きっと。

この考え方は開発者テストと言われるユニットテスト以外にも、統合であったりシステムであったり、様々なスコープのテストコードを考える上でも共通して使えるものです。なので、 具体的なツールはある程度知っているけれど、どのような粒度、もしくは内容を意識してテストコード書けば良いか、そもそもの指標もわからない という人はかなり適したものな気がします。

私個人は、どのようなテストが良いのか?といったポイントは見聞きしたことがあるものでした。ただ、JUnit4 + Hamcrestの組み合わせのフレームワークの使い方には疎かったので、ツール自体は知っていましたがそれらを使ったフレームワークの遷移が面白かったです。他、テストのリファクタリングの テストの臭い は面白かったです。TDDであったり、 活きたドキュメントとしてのテストコード まで言及されていたのはさすがでした。

いくつかかいつまんで…

良いテスト

  • FIRST
    • Fast
    • Isolate
    • Repeatable
    • Self-Validating
    • Timely

テスト対象

  • Right-BICEP
    • Right
    • Boundary
    • Inverse
    • Cross-check
    • Error
    • Performance

境界条件

  • CORRECT
    • Conformance
    • Ordering
    • Range
    • Reference
    • Existence
    • Cardinality
    • Time

テストの臭い

不具合ありそうなコードの臭いみたいなのと同じで、よくなさそうなテストコードの臭いです。

  1. 不必要なコード
  2. アブストラクションの欠如
  3. 無関係な情報
  4. 肥大化したコンストラクタ
  5. 複数のアサーション
  6. 不必要な詳細さ
  7. 誤解を招く構成
  8. 暗黙の位置付け

ここら辺で言われているのはテストコードに限った話ではないですね。

締め

気になる方は、ぜひ書籍を購入してみてください。もしくは、近くの知見を持っている人に相談してみたりすると良いと思います。

私自身、テストコードの記述にまだ集中して取り組むまでに色々できていません。が、プラットフォームの差はあれどテストコードを書くことが広まった現在、設計された最低限のテストコードで最大限の成果を出せるようにしたいですね。そのための知見なんかは持ち合わせたい。

Advertisements

One thought on “駆け足でテストコードのプラクティスを学べる『実践JUnit』を読んだ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s