初心者エンジニアの歩み[テスト編]

  • このエントリーをはてなブックマークに追加

現在参画中のプロジェクトでテストを行っている事もあり、テストへの見識を深めるために読んだ本の一部で、「テスト駆動開発」という言葉を知ったので、アウトプットしたいと思います。

初めての自動テスト
――Webシステムのための自動テスト基礎

[cover photo]

  • Jonathan Rasmusson 著、玉川 紘子 訳
  • 2017年09月 発行
  • 288ページ
  • ISBN978-4-87311-816-1
  • 原書: The Way of the Web Tester

自動テストについて書いてある本は、そんなに種類も多くない中で、イラストや章ごとに簡潔にまとめた内容は、読みやすく、イメージもしやすく、頭に入りやすいため、自分のような初心者にとってはありがたい一冊でした。「テストの考え方」を学べる一冊となっています。

<お勧めするエンジニア>・・・Web系エンジニア(特にRubyエンジニア)、テスター、エンジニア初心者☝☝☝スクリプトのソース例がその都度載っていて、Rspecを採用して書いているので、Ruby(Rails)を使う方にはより身近に感じ、参考にしやすい一冊ではないかと思います。絵やコードが沢山載っていて、分かりやすく、読みやすさも★★★★★です。

 

★「テスト駆動開発」とは・・・・通常は開発した後に行われるユニットテストを、順番を逆にして、テストを書いてから開発を行うこと

 

★なぜそんなことをするのか?

  • 通常の手順を踏むよりテストストレスが減る
  • 本当にテストしたいことをフォーカスしやすい
  • 実際に開発するときに読みやすいコードを生み出せるようになる
  • 保守しやすいシンプルさを保つ

★テスト駆動開発(別名「TDD」)のサイクル

1.失敗するテストを書く

→コードを書いてない状態からテストだけ書き始めるため、答えを出すことを考えない。代わりにコードの設計について考えます。コードのAPIを考えて具体化するため、ある意味「開発設計者」となることが必要です。どんな変数名にするか、クラス、メソッドは?返り値は?などを考えるからです。

2.テストを成功させる

→今度は具体的な答えを出すためにテストを通すことに専念します。あくまで「テストの良し悪し」を気にせず、テストが通りさえすれば何してもOKです。理由は、過剰な作りこみでオーバーエンジニアリングを避けるためです。あまり細かく作り込まず、必要だと思う機能のテストをすることを考えます。

3.リファクタリングする

→もっとも重要な段階です。テストと実装の両方を見直し、全体の設計を改善するという観点から必要な調整を加えます。2.を細分化するのではなく、テストコードの中で余分な部分をまとめたり、省いたりして、より美しい形でテストを通すことを考えます。

 

サイクルなので、1.→ 2.→ 3.→ 1.→ 2.→ 3.→・・・・と一つ一つのテストを通していく形になります。

何もない状態からテストをするなんて・・・と思われる方もいるかもしれませんが、この本によれば、「テストファースト」の習慣が身についてしまうと、テストを通すことで小さな満足感を得られ、テストの成功を積み重ねて(開発自体)ゴールに近づいていくので、楽しくなるそうです。

 

本自体はもっと色々な事が載っているのでぜひ読んでみて下さい!

以上です。

  • このエントリーをはてなブックマークに追加

フリーランスで高収入と安心を実現するなら

テックブレインは、高単価・保障に強いIT/Webフリーランスエンジニアのための独立支援サービスです。

常時5,000件以上の高単価案件が豊富にあるため収入を最大化できます。また、あなたの立場になって案件の紹介から企業との交渉をシステム開発経験があるコーディネーターがフルサポート。正社員並みの福利厚生も利用できます。


高単価・正社員並み保障のフリーエンジニア求人案件へ