
テストコードを書く理由
システム開発をご依頼いただいた場合, 納品物の中にテストコードを含む場合があります。 このテストコードはどういった目的で書かれているものでしょうか。
プロダクションコード と テストコード
当社にシステム開発をご依頼いただいた場合, 納品されるコードは大きく 2 種類に分類できます。 それが「プロダクションコード」と「テストコード」です。
プロダクションコードはシステム上で実際に呼び出され動作するコードです。
テストコードは そのシステム上で動作することはありません。 プロダクションコードが正しく実装されているか検証するために追加するコードをいいます。
極端に例を挙げると 1 + 2
は必ず 3
になります。これをテストコードとして追加し必ず 3
になることを検証します。
実際のシステムでは処理対象の状態や条件に応じて複雑な処理が実装されます。 この状態や条件を前提としたテストコードを書くことで, プロダクションコードが正しい処理を行なっているのか検証できます。
なぜテストコードを書くのか
継続的なシステム開発を実現するためです。
テストコードを省略すれば作業コストを抑えられないでしょうか。 この考えは一見正しいように思えます。結果は 短期的にはコストを抑えられますが長期的にはコスト高 になります。
最初は小さなシステムから始まります。手動で動作確認を行う手間も小さなものです。 時を経てシステムが大きくなるにつれ問題が生じます。動作確認の手間がシステムの肥大化に応じて大きくなり続けます。
テストコードが追加されている場合, テストを実行することでそのシステムが特定の機能を実現できているか確認できます。 既存の処理に変更を加える場合は, 影響範囲のテストが落ちる [1] ことで処理の見直し範囲を知ることができます。 影響範囲を中心に動作確認を行えばシステムが正しく動作していると言うことができます。
長期的にシステムを開発運用する場合, テストコードを書くことで継続的な開発とリリースを可能とします。[2]
システムを生かし続けるために
当社では, 安定的にシステムを動かし続けるため, テストコードを追加するコストは必要なものだと考えています。 継続的なシステム開発をご要望の際には, ぜひ当社にご相談ください。
[1]テストが落ちる場合, 大抵のテストツールは赤文字でエラーが発生したことを教えてくれます。
[2]継続的インテグレーションとは – アマゾン ウェブ サービス