ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方(高橋 寿一)|翔泳社の本
  1. ホーム >
  2. 書籍 >
  3. ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方

ソフトウェア品質を高める開発者テスト アジャイル時代の実践的・効率的なテストのやり方


形式:
書籍
発売日:
ISBN:
9784798165035
定価:
2,640(本体2,400円+税10%)
仕様:
A5・224ページ
カテゴリ:
開発管理
キーワード:
#開発環境,#開発手法,#プログラミング,#システム運用
紙の書籍
本書籍には新版があります
ソフトウェア品質を高める開発者テスト 改訂版 アジャイル時代の実践的・効率的でスムーズなテストのやり方

ソフトウェア上流品質を上げまくって、
バグだらけ・死ぬほど働くのをやめませんか?

テスト界の第一人者、高橋寿一氏執筆の
ロングセラー『知識ゼロから学ぶソフトウェアテスト』の続編が登場!
今回のテーマは「開発者テスト」です。

本書では、アプリ・システム開発において、バグを減らすために
開発者が行うべきテスト(開発者テスト)についてわかりやすく解説します。

開発者テストを実施するために知っておくべき概念・手法や、
○単体テスト
○リファクタリング
○アジャイル開発での品質担保
○テストの自動化
などについて、実例を出しながら解説していきます。

品質コンサルタントとして長年培ってきた筆者の経験をもとにした、
現場で必須の手法+学術的根拠のエッセンスを詰め込んだ一冊です。

̻□章構成
第1章 はじめに
第2章 上流品質向上のためのテスト
第3章 開発者テストの基本の基本
第4章 コードベースの単体テスト
第5章 単体テストの効率化――楽勝単体テスト
第6章 機能単位の単体テスト
第7章 リファクタリング
第8章 コードレビュー
第9章 統合テスト
第10章 システムテストの自動化
第11章 探索的テスト
第12章 まとめ――全体テストのデザイン
第13章 品質と要求仕様とテストのケース
第14章 アジャイル開発 versus ウォーターフォール開発
第15章 開発者テストの実サンプル

ソフトウェア上流品質を上げまくって、バグだらけ・死ぬほど働くのをやめませんか?

テスト界の第一人者による開発者テストの実践方法+学術的根拠のエッセンス

テスト界の第一人者、高橋寿一氏執筆のロングセラー『知識ゼロから学ぶソフトウェアテスト』の続編が登場!今回のテーマは「開発者テスト」です。

本書について

本書について

本書では、アプリ・システム開発において、バグを減らすために開発者が行うべきテスト(開発者テスト)についてわかりやすく解説します。

開発者テストを実施するために知っておくべき概念・手法や、

  • 単体テスト
  • リファクタリング
  • アジャイル開発での品質担保
  • テストの自動化

などについて、実例を出しながら解説していきます。品質コンサルタントとして長年培ってきた筆者の経験をもとにした、現場で必須の手法+学術的根拠のエッセンスを詰め込んだ一冊です。

単体テスト

単体テスト

単体テストは全員の開発者が知っていると言うかもしれませんが、ほとんどの開発者が本当はよく知らない、不思議な技術です。膨大なサンプルコードが載っている書籍もありますが、本質を言い当てている書籍は少ないと思います。本書で単体テストの本質と実践力を培ってください。

リファクタリング

リファクタリング

筆者は、ソフトウェア品質を担保するためにはリファクタリングは必須だと考えています。リファクタリングなしには上流品質が担保できないからです。コードの品質の本質論からのリファクタリングについて考えてみましょう。

テストの自動化

テストの自動化

テストの自動化では、どんな自動化でも、メインテナンスコストを最小限に抑えることが一番重要です。逆に言うと、最初にスクリプトを作るときにいくらかかっても、メインテナンスコストが安ければいくらでも自動化テストは再利用できます。

第1章 はじめに

第2章 上流品質向上のためのテスト
2.1 上流品質活動
2.2 さぼる・逆らう人のための上流テスト講座
 2.2.1 上流品質と出荷後の品質
 2.2.2 上流品質と残バグのリスク
2.3 まとめ

第3章 開発者テストの基本の基本
3.1 開発者がこれだけは知っておくべきテスト手法
 3.1.1 境界値テスト
 3.1.2 状態遷移テスト

第4章 コードベースの単体テスト
4.1 コードベースの単体テストとは
4.2 命令網羅(C0カバレッジ)
4.3 分岐網羅(C1カバレッジ)
4.4 よくある単体テストの間違い――コードベースの単体テスト
4.5 知っているようで知らないコードベースの単体テストの書き方
 4.5.1 一般的なテスト方法(TDD)
4.6 網羅率――コードベースの単体テストの成否を計測する

第5章 単体テストの効率化――楽勝単体テスト
5.1 コードの複雑度
5.2 どこを単体テストすればよいか?――単体テストやってる暇ありませんという人のために
 5.2.1 単体テストのやる箇所を絞る
 5.2.2 筆者の独自手法――ファイルを2つにぶった切る
 5.2.3 明確なメリット

第6章 機能単位の単体テスト
6.1 開発者がやるべき単機能のテスト
 6.1.1 ソート機能の単体テスト
6.2 ブラックボックステスト・ホワイトボックステスト

第7章 リファクタリング
7.1 やはり複雑です、そのコード!書けません、単体テスト
7.2 ファイルのコードのリファクタリング
7.3 ビッグクラスのリファクタリング
 7.3.1 CKメトリックス
7.4 複雑度を下げるリファクタリング
7.5 出口は1つ
7.6 MVC分離

第8章 コードレビュー

第9章 統合テスト
9.1 統合テストのパターン
 9.1.1 統合テスト重視の実例
9.2 APIテストとAPIバグ密度の考え方

第10章 システムテストの自動化
10.1 最悪のシステムテスト
10.2 キーワード駆動型自動テスト
10.3 妄想な自動化

第11章 探索的テスト

第12章 まとめ――テスト全体のデザイン
12.1 単体テストなしで疲弊する組織

第13章 品質と要求仕様とテストのケース

第14章 アジャイル開発 versus ウォーターフォール開発
14.1 ウォーターフォール開発のプロジェクト管理
14.2 アジャイル開発の上流品質

第15章 開発者テストの実サンプル
15.1 単体テスト
 15.1.1 Setup――簡単なアプリを作る
 15.1.2 単体テストのセットアップ
 15.1.3 単体テストを作る
15.2 コード網羅測定
 15.2.1 コード網羅ツールの準備
 15.2.2 一番簡単な網羅(命令網羅)
 15.2.3 分岐網羅
15.3 CI/CD設定
 15.3.1 ソースコード管理
 15.3.2 CircleCI
 15.3.3 Code Coverage設定

本書は付属データの提供はございません。

お問い合わせ

内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。

正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。

利用許諾に関するお問い合わせ

本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。

追加情報はありません。

ご購入いただいた書籍の種類を選択してください。

書籍の刷数を選択してください。

刷数は奥付(書籍の最終ページ)に記載されています。

現在表示されている正誤表の対象書籍

書籍の種類:

書籍の刷数:

本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。

対象の書籍は正誤表がありません。

最終更新日:2021年06月18日
発生刷 ページ数 書籍改訂刷 電子書籍訂正 内容 登録日
1刷 002
9行目
しかし、Sift Left
しかし、Shift Left
2021.03.22
1刷 016
上から1行目
レーリー特性 1(図 2.4)のク゛ラフの形は
レーリー特性 3(図 2.6)のク゛ラフの形は
2021.04.01
1刷 028
脚注※3
以下は「=>」
以下は「>=」
2021.03.19
1刷 037
上から1行目
そうすると図4.1のすべての四角を通るパスをテストしますが、 これだと水色矢印の部分を通るテストが抜けます(図4.2)。
そうすると図4.2のすべての四角を通るパスをテストしますが、 これだとオレンジ色の矢印の部分を通るテストが抜けます。

2021.04.01更新
2021.03.18
1刷 061
2021.04.01
1刷 068
「図5.A ブラックボックステストとホワイトボックステストの定義」のホワイトボックステストの図 四角内の式
if(a = 0)
if(a == 0)
2021.04.01
1刷 092
7.4複雑度を下げるリファクタリング 上から2行目
プログラムの制御の流れを有効グラフで表現して、
プログラムの制御の流れを有向グラフで表現して、
2021.04.08
1刷 165
「15.1.2単体テストのセットアップ」上から1つめのオレンジ色の枠内
classpath "de.mannodermaus.gradle.plugins:android-junit5:1.4.2.0"
classpath "de.mannodermaus.gradle.plugins:android-junit5:1.7.1.1"
2021.06.18
1刷 165
図15.4

(画像クリックで拡大)

(画像クリックで拡大)
2021.06.18
1刷 168
図15.9

(画像クリックで拡大)

(画像クリックで拡大)

androidTestではなくtestに単体テストを記述するというふうに記述しましたが、2021年6月時点ではjacocoに追加記述をいれないと、カバレジのリポートが出力されないため、本書ではandroidTestディレクトリに便宜的に単体テストを記述します。
(上記注釈も追記します)。
2021.06.18

感想・レビュー

ニョンブーチョッパー さん

2021-05-09

★★★★★ 今までの経験した現場のことしか言えないが、本書のテーマである、Shift Leftして開発作業を楽にするという考え方を実践している開発現場は少ない。アジャイル開発だとドキュメントはいらないかと勘違いしていたけれど、最低限、クラス図とシーケンス図はあるべきとか、MVC分離は必須とか、関数の出口は1つにすべきとか、単体テストをしっかりやるならウォーターフォール開発も否定されるものではないとか、得るものがたくさんあった。↓

ユータス さん

2021-08-06

おすすめ度⭐︎⭐︎⭐︎⭐︎⭐︎(感動した)。マネージャーの立場をやることが多くなり開発の品質に悩んでいたため拝読。タイトルに「テスト」とあるのでテストの本かと思って読み始めたが、実はテストに限らず「ソフトウェア品質を高める実践的なやり方」の全てが紹介されている本だった。日本のソフトウェア開発現場が死ぬほど働かされてバグだらけだという現実をしっかり理解した上で現実的な改善方法を紹介・提案してくれている。ソフトウェア開発の品質をあげたいと思っている人だけでなく、効率をあげたいと思っている人も必読の一冊です。

smapx さん

2021-11-17

装丁は古くさいけど中身は新しい