テスト

ソフトウェアが期待通り動くか検証する活動。品質と変更の安全性を支える

品質開発プラクティス
テスト」の技術書を見る (85 冊) →

テストとは

ソフトウェアテストとは、プログラムが期待した通りに動作するかを検証する活動だ。単に「バグを見つける」ためだけでなく、変更を加えても既存の機能が壊れていないことを保証し、安心してコードを書き換えられる土台をつくる役割を持つ。テストが整っているほど、開発のスピードと品質を両立しやすくなる。

テストの種類

種類 対象
単体テスト 関数やクラスなど小さな単位
結合テスト 複数の部品を組み合わせた動作
E2E テスト ユーザー操作に沿った全体の流れ

下位 (単体) ほど高速で原因を特定しやすく、上位 (E2E) ほど実際の利用に近いが実行コストが高い。これらをバランスよく組み合わせるのが定石だ。

自動テストの価値

手作業の確認は、人が増えるほど・機能が増えるほど現実的でなくなる。コードで書いた自動テストは、変更のたびに何度でも瞬時に再実行でき、デグレード (以前動いていた機能が壊れること) を即座に検知する。継続的に開発を続けるプロジェクトでは、自動テストの整備が長期的な開発速度を決定づける。

陥りやすい誤解

「カバレッジ (テストが網羅したコードの割合) が高い = 品質が高い」とは限らない。意味のない表面的なテストで数値だけ上げても、肝心の不具合は防げない。重要なのは、壊れたら困る振る舞いを確実に検証することだ。また、テストを書く手間を嫌って後回しにすると、変更が怖くなり開発が停滞する。テストは品質保証であると同時に、変更を恐れず前進するための投資だと捉えたい。

考え方を学ぶには関連書籍が役立つ。

この記事は役に立ちましたか?

関連用語

関連する記事