ここ数年、Java+SeleniumでのWebサイト/アプリケーションのテスト自動化を仕事で行うことが多いです。

自分一人でやったり、メンバーと一緒にやったりするのですが、自分が「このように書くべきだ」「こんな書き方のほうが綺麗で処理効率も良い」といった思いをもって書いているところをメンバーなりに説明する機会が発生します。

で、自分なりに色々と説明をするのですが、どうもふわっとしているというか、しっかり説明できてないな、自分の理解もまだまだ感覚的なところがあるな、と感じていました。

そこで、もう一度Javaでちゃんとしたコードを書くためのベースをおさらいしよう、と思って購入したのがこの『Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで』です。

ざーっと読んで見た感想として、

  • プログラミング最初の1冊ではなく、Javaをなんとなく書いている人がもっとしっかり土台を固めるための本

だなと感じました。ネット上で評判を目にしていたとおりでかなり良書です。

目次

Amazonより。

  • Chapter 1 Javaの基本を知ろう ~イントロダクション~
  • Chapter 2 基本的な書き方を身につける
  • Chapter 3 型を極める
  • Chapter 4 配列とコレクションを極める
  • Chapter 5 ストリーム処理を使いこなす ~ラムダ式とStream API~
  • Chapter 6 例外を極める
  • Chapter 7 文字列操作を極める
  • Chapter 8 ファイル操作を極める
  • Chapter 9 日付処理を極める
  • Chapter 10 オブジェクト指向をたしなむ
  • Chapter 11 スレッドセーフをたしなむ
  • Chapter 12 デザインパターンをたしなむ
  • Chapter 13 周辺ツールで品質を上げる
  • Chapter 14 ライブラリで効率を上げる

良かったポイント

「どれを使ったらいいか」の迷いポイントに対する答えが載っている

Javaを書いているメンバーからよく質問というか、感想として出てくるのが、「自分がやりたいことにたいしてどの手段を使ったらいいかわからない」ということ。特に、配列とコレクションあたりはわかりにくいようです。またラムダやStreamも馴染みがないと使い所が難しいため、よくハマるポイントになっています。

本書ではこのあたりがしっかり対応されていて、配列やコレクションについてはどんなときにどの手段が向いているのかが表形式でまとまっていてわかりやすい。

また、Java5, 6, 7, 8あたりの変更点についても要所要所で触れられており、5, 6ではこの書き方、7からはこの書き方といった説明が載っています。

周辺ツールとライブラリの説明がありがたい

Java+Seleniumでテストの自動化をする際、ユニットテストフレームワークやビルドツールをあわせて使うことが多いのですが、QAやテストの人ってあんまりこの辺使ったことがない印象です。他の本だとJavaを覚えましょうで終わっていることも多いのですが、本書では「現場で必須の知識もフォロー」ということで

  • ビルド
  • ドキュメンテーション
  • ユニットテスト
  • 静的解析
  • 品質レポート作成
  • CSV/JSON
  • ロギング

と、これだけの説明が載っています。

これ、ほぼ全部GUIの自動テストエンジニアにとって必須知識だと思っていて、そういう意味で本記事タイトルの「Selenium+Javaでテストを自動化しているエンジニアのために書かれた本かもしれない」という表現をしました。

Javaが書けるだけでは業務が進められなくて、そこにプラスで必要になるツールやライブラリの知識もこの1冊でカバーしているあたりが、とても助かります。もちろんこの1冊読めば全部が完璧!とは言いませんが、この本で概要を把握した上でネットに頼ったり他の本にあたったりすれば、一人で悩むよりは大分スピーディにキャッチアップが可能。

まとめ

Java+Seleniumでテスト自動化をする人で、雰囲気でJavaは書けてなんとなく動かせます、という人にポンと渡して、2,3段階レベルアップしてもらうのにちょうど良い本でした。

また当初の目的の通り、自分がふわっと感覚理解してたところのおさらいにもぴったり。まだざっと読んだだけなので、この後疑問に思う→見返す→理解する→新たな疑問に出会う→見返す・・・のループでより自分のスキルもアップできたら良いな。

Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで