テスト駆動開発作品一覧
-
3.5◆長年のソフトウェア開発経験が生み出した新提案◆ 本書は、著者が約30年間経験してきたAPI仕様の作成、20年間経験してきたテストファースト開発/テスト駆動開発の知見をまとめたものであり、一般的なソフトウェア開発者が習得することが容易ではない事柄を、本書を通して学び、実践してもらうことを目的としています。 本書が提唱する「API仕様ファースト開発」はWebサービスにおける大域的なテスト駆動開発の実現に必要なものであり、また、API仕様ファースト開発を実現するにはテスト駆動開発が必要です。API仕様ファースト開発とテスト駆動開発は、いわば車の両輪のような関係にあります。 ソフトウェアテストの変遷とWebサービスにおけるAPI仕様の関連を説明したうえで、API仕様とはどうあるべきか、API仕様に何を書くべきかについて説明します。具体例としてはgRPCを取り上げます。第4章で紹介するAPI仕様ファースト開発という開発プロセスは、筆者が日々実践していることですが、多くのソフトウェアエンジニアが実践できていないことです。そのために必要なE2Eテストフレームワーク、さらには、API仕様がきちんと書かれていないために生まれる技術負債の返済方法なども紹介します。 ■目次 ●第1章 ソフトウェアテストの変遷 1.1 1990年代までと2000年代のソフトウェアテスト 1.2 フィードバックループを短くする 1.3 ビッグバンインテグレーションから継続的インテグレーションへ 1.4 まとめ ●第2章 API仕様 2.1 APIとは 2.2 優れたAPI仕様とは 2.3 API仕様でよくある問題点 2.4 API仕様に書くべきこと 2.5 API仕様とE2Eテスト 2.6 まとめ ●第3章 gRPCにおけるAPI仕様の書き方 3.1 gRPCとは 3.2 API仕様をどこに書くか 3.3 サービスの概要の説明 3.4 個々のエンドポイント(RPC)の説明 3.5 エラーの説明 3.6 リストオプションの説明 3.7 まとめ ●第4章 API仕様ファースト開発 4.1 開発順序 4.2 不具合の修正順序 4.3 既存のエンドポイントの修正と新たなエンドポイントの追加 4.4 API仕様のエンドポイントを呼び出すE2Eテストの利点 4.5 まとめ ●第5章 E2Eテストフレームワークの構築 5.1 テストフレームワークの基本的な考え方 5.2 マイクロサービス構成でのテストフレームワーク 5.3 非マイクロサービス構成でのテストフレームワーク 5.4 E2Eテストフレームワークの骨格 5.5 まとめ ●第6章 API仕様の技術的負債の返済 6.1 APIの技術的負債とは 6.2 API仕様の負債の返済 6.3 返済順序のまとめ 6.4 E2Eテストのもう1つの利点:リファクタリング 6.5 E2Eテストと単体テスト 6.6 API仕様ファースト開発が定着した組織 6.7 まとめ ●第7章 Go言語によるE2Eテストフレームワークの実装 7.1 E2Eテストの基本的な流れ 7.2 courierライブラリの構成とインストール 7.3 サンプルサービスの構成と定義 7.4 E2Eテストコードの例 7.5 E2Eテストフレームワークの流れ 7.6 フェイクサービスの構築 7.7 テスト実行までの流れとテストコードの実装 7.8 テストの並列化サポート 7.9 ほかのテスト関数の例 7.10 テスト関数に合格するサーバ実装 7.11 外部サービスのフェイクサービス 7.12 E2Eテストでのデータの準備 7.13 ステージング環境や本番環境に対するE2Eテスト 7.14 まとめ ●付録A:Goのテストの並列化 ●付録B:長時間夜間ランニングテスト ●付録C:防御的プログラミング ■著者プロフィール 柴田芳樹:九州工業大学および大学院で情報工学を専攻。1984年4月に富士ゼロックスに就職し、その後さまざまな会社でソフトウェア開発に従事。2024年4月より個人事業主として活動。2018年6月に、メルペイ(メルカリ子会社)でWebサービスのバックエンドサービス開発に従事してからは、「API仕様ファースト開発」によるGoおよびTypeScriptを用いたバックエンドサービス開発に従事している。著書に『プログラマー“まだまだ”現役続行』(2010年、技術評論社)ほか多数。
-
-本書はゲーム作りを通してテスト駆動開発の基本を学ぶための解説書です。 著者が、最初にテスト駆動開発に触れたのは2003年頃でした。著者も最初は「機能を実装するまえにテストをつくるなんて無駄な作業だなぁ~」と懐疑的でしたが、実際に試してみると、その効果が絶大であることを痛感しました。ソースコードの修正もテストがあるので安心して行えます。 機能を追加することで副作用が起きても、テストがあるのですぐに発見できます。あたかも、「セーフティーネットの上でいろいろな技を安心して試すことができる」そんな感覚でした。最初のプロジェクトを終えたころにはすっかりテスト駆動開発の信者になっていました。
-
-エクストリーム・プログラミングのプラクティスのひとつであるテスト駆動開発(TDD)について、聞いたことはあるけれど内容は知らない方、概要は知っているけれど実際に使ったことがない方を対象に、全7章にわたってご説明していきます。アジャイルをかじった程度の開発経験の浅いプログラマと、TDD開発を実践しているプロジェクトリーダーによる会話形式で楽しくTDDを学びましょう。本書は、インプレスが運営するWebメディア「Think IT」で、「初学者のためのTDD(テスト駆動開発)入門」として連載された技術解説記事を電子書籍およびオンデマンド書籍として再編集したものです。
-
-本書は,プログラミング言語Rubyの言語仕様や開発の現場で役立つRubyの知識を説明した本です。豊富なサンプルコードで文法を学び,例題でプログラミングの流れを体験できます。第1版(2017年11月発行)は,初心者の目線にたった丁寧な解説が好評で多くのRuby初学者に愛読され,いまやRuby入門書の定番とも言える存在です。2020年末のRuby 3.0のリリースに伴い,全章にわたって記述内容を見直し,Ruby 3.0までの変更点や新機能に合わせて加筆・修正を行いました。また,第1版にて読者から「難しい,わかりづらい」という声の多かったトピックの説明を改善するなど,より初心者に親切な内容に刷新しています。
-
4.9Rubyの文法をサンプルコードで学び,例題でプログラミングの流れを体験できる解説書です。 ほかのプログラミング言語で開発経験のある人が,Rubyを学ぶ際に効率的に学べる内容を詰め込みました。 プログラミング未経験者向けの「変数とは」「配列とは」といったプログラミング基礎知識の説明は最小限にし,そのぶんRubyの特徴(他プログラミング言語との違い),Rubyにおけるリファクタリングの要点,テスト駆動開発やデバッグのやり方など開発現場で必要になる知識を解説しています。 本書の内容を理解すれば,開発の現場で必要とされるRuby関連の知識を一通り習得できます。そして,「今まで呪文のようにしか見えなかった不思議な構文」や「実はあまりよくわからないまま,見よう見まねで書いているコード」も自信をもって読み書きできるようになるはずです。 本書はRuby 2.4をベースに解説します。Ruby 2.2や2.3など,少し前のバージョンで動きが異なる場合は,適宜注釈を入れています。
-
-Swiftは従来からのオブジェクト指向言語と、ScalaやHaskellといった関数型言語の特徴を併せ持っています。このことは意識しなくても、アプリケーションは作成できます。しかし、オブジェクト指向技術や関数型プログラミングを習得すれば、Swift言語のポテンシャルを引き出し、最先端の設計に近づくことができます。 本書はその入り口まで、読者の皆さんをご案内します。ある程度開発経験のある初級~中級プログラマの皆さんに、職業プログラマとして通用するレベルの技術力を、Swiftで磨いて頂こうというのが主旨です。 そのために本書では、Swiftの基本文法を押さえたうえで、関数型プログラミング、デザインパターン、テスト駆動開発、リファクタリング等にも言及し、プロの開発者を目指す足掛かりを提供します。 <本書「はじめに」より抜粋・編集>