skillup

技術ブログ

プログラミング全般

テストコードを読みやすくする

投稿日:2016年7月11日 更新日:

リーダブルコードも最終章に近づいてきましたね。

今回はテストコードについて。

以前のプロジェクトではテストコードを書いていたのですが、今携わっているプロジェクトでは書いてないです・・・

テストを書く目的ですが、単純にテスト工数を減らす以外に「本物のコードの動作と使い方を示した非公式の文書」という見方もありますね。先輩からも「仕様書の一種」といわれていたので、単純な動作確認以上の目的があるようです。

ポイントとしては下記のようなことが挙げられています。

重要な情報を目立つようにする

仕様がすぐにわかるような情報を書く、ということですね。

最適なエラーメッセージを書く

ディフォルトのExceptionのエラーメッセージに任せるのではなくて、エラー内容をわかりやすくカスタマイズしたメッセージを出力しよう、ということですね。これはテストコードだけではなく、普段のプログラムでもそうですねぇ・・・

テスト入力値は単純で網羅性のあるものにする

テストパターンの網羅ですが、下記3点が大切ですね。

  • 漏れがないこと
  • なるべく単純であること
  • 一度に複数の仕様をチェックするよりは、複数に分ける

テストコードを意識した、コードにする

普段コードを書いているときから、テストコードを書きやすいコードを意識することが大事と書いてあります。

ポイントとしてはよく言われますが、疎結合にすることですね。プログラムがお互いに依存している場合、テストがとても面倒で大変になります。細かい部品群にわけてあればそれだけテストをするのが楽になります。

テストしにくいソースの特徴

  • グローバル変数を使う
  • 外部コンポーネントへの依存
  • 各プログラムへの依存度が高い

テストしやすいソースの特徴

  • クラスが小さい。内部状態を持たない
  • クラスや関数が1つのことをしている
  • クラスや関数が独立している

まとめ

これらがテストしやすいソースの特徴ですね。ただし、ほどほどに、ということはリーダブルコードでも書かれていますね。

私が依然かかわっていたプロジェクトでもテストコードのために時間を取られるという本末転倒な事象がおこっていました。どんなことでもバランスが大切です。

-プログラミング全般
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

Eclipseのシンタックスハイライト

先日PCがクラッシュした時にEclipseを入れなおしたんですが、普段あまり意識せずに使っていたのでhtmlのシンタックスハイライトをだすためだけに2時間ぐらい費やしました・・・自戒の意味も込めてメモ …

no image

抽象性と可読性のトレードオフに関して

私自身プログラムを書く場合、とにかくコードを書く量を制限したいという思いが強く、多少でも共通化できる箇所がある場合はなるべく共通化するようにしておりましたが、時と場合によっては過剰に共通化したことによ …

no image

アクセストークンの分類について

認可情報を取得する際に、ID &パスワードではなく、アクセストークンで認証を行うサービスは多いと思うのですが、アクセストークンにも色々ありますので、再度まとめておこうと思います。 以前まとめた …

no image

データ構造の基礎知識 前編 メモリとポインタ、配列と連結リスト

WEB+DB(vol91)で使えそうな連載記事がありますのでブログにメモリます。 テーマはデータ構造です。 Contents1 データ構造とは?2 計算量3 プログラムとメモリ4 配列について4.1 …

no image

コーディングルール 前半まとめ

リーダブルコードを3分の2ぐらいよんだので現時点でのまとめを。 Contents1 いいコードの定義2 具体的な手法2.1 変数の名称2.2 コード自体の見た目2.3 コメント2.4 制御フロー2.5 …

アーカイブ