皆さんはテストの本質を理解されていますか? 実は、テストには機能検証をするということ以上に重要な役割があるのです。本稿では、テストファーストがソフトウェアアーキテクチャに及ぼす多大な影響について説明します。 テストファーストとは? 皆さんは「テストファースト」という言葉をどこかで耳にしたことがあるのではないでしょうか? これは単に、「コードを書く前にテストケースを書きなさい」ということであり、この手法をはじめて耳にしたときには何ら驚きを感じないことと思います(私自身そうでした)。 ソフトウェア開発の経験をある程度積んだエンジニアであれば、テストの重要性は自らの苦い経験から学んでいるはずですし、実装する関数一つ一つに確実にテストが用意されていれば、テスト自身が生きた使用例になるというメリットも頭で理解できるはずです。しかし、「テストファースト」がただテストを用意するだけのことであれば、「テス