知識ゼロから学ぶソフトウェアテスト【改訂版】を読んだ
2023/01/30
はじめに
「知識ゼロから学ぶソフトウェアテスト【改訂版】」という書籍を読了しました。
本エントリでは、下記について記載したいと思います。
- 本書の対象読者はどういった方なのか
- 自分が本書を読んで理解した内容
- いちソフトウェアエンジニアとして感じたこと
本書の対象読者
本書は、タイトルの通り「知識ゼロ」の方を対象としています。
具体的には:
- ソフトウェアテストの基礎を学びたい方
- テストエンジニアを目指す方
- 開発者だがテストについて体系的に学びたい方
本書で学んだこと
テストの基本
- テストの目的: バグを見つけること
- テストの限界: すべてのバグを見つけることはできない
- テストの重要性: 品質を保証するための重要な工程
テスト技法
ブラックボックステスト
- 同値分割法
- 境界値分析
- デシジョンテーブル
- 状態遷移テスト
ホワイトボックステスト
- 命令網羅(C0)
- 分岐網羅(C1)
- 条件網羅(C2)
テストレベル
- 単体テスト: 個々のモジュールをテスト
- 結合テスト: モジュール間の連携をテスト
- システムテスト: システム全体をテスト
- 受入テスト: ユーザー視点でテスト
テストの種類
- 機能テスト
- 非機能テスト(性能、セキュリティ、使いやすさなど)
- 回帰テスト
- スモークテスト
エンジニアとして感じたこと
テストは設計の一部
テストケースを考えることは、仕様を深く理解することにつながります。
「このケースはどうなる?」と考えることで、仕様の曖昧な部分や矛盾を発見できます。
自動化の重要性
手動テストは時間がかかり、ミスも発生しやすいです。
可能な限り自動化することで:
- テストの実行時間を短縮
- 人的ミスを削減
- 回帰テストを容易に
テストファーストの考え方
TDD(テスト駆動開発)の考え方は、品質の高いコードを書くために有効です。
先にテストを書くことで:
- 仕様を明確にできる
- 必要最小限の実装に集中できる
- リファクタリングしやすくなる
まとめ
本書を読んで、ソフトウェアテストの基礎を体系的に学ぶことができました。
開発者として、テストの重要性を改めて認識し、日々の開発に活かしていきたいと思います。
テストは「面倒なもの」ではなく、「品質を保証するための重要な工程」であることを忘れずに、今後も学び続けていきたいです。