対象読者
- テスト開発に興味はありながらも、テストファーストとまでは思い切れない方
- ドキュメントもコメントもないプログラムの保守を突然任されて頭を悩まされている開発者
必要な環境
本連載では以下の環境でサンプルを実行します。
- Windows 7(8、8.1も対応)
- Visual Studio 2015 RC Enterprise(一部機能はVisual Studio 2015 RCでも使用可能)
インテリテストとは
Visual Studio 2015には、Android/iOS開発や、さまざまなエディションのWindows上で動作するUWP(Universal Windows Platform)アプリのサポートなど、多彩な新機能が搭載されていますが、基本的なコーディングを支えるサポート機能も充実しています。本記事では、Visual Studio 2015 Enterpriseに新たに搭載されたインテリテスト(旧名:スマートユニットテスト)機能について解説します。
プログラミングにおいて、実装したコードが設計通りに正しく動作するかを検証するためのテストは非常に重要です。最近はテストファースト(Test-First)と呼ばれる「実際に動作するコードを書く前にテストを書いてテストを失敗させ、そのテストが正しく動作するようにコードを実装する」という開発手法も提唱されており、テストの重要度は高まっていると言えます。
とはいえ、すべての要求仕様を満たすテストを漏れなく記述するというのはなかなか骨の折れる仕事で、ある程度思いついたパターンでテストを書いて終わりにしてしまう、ということもあるかもしれません。そうすると、実装したコードのうち、特定の条件でしか実行されない部分がテストで網羅されず、潜在的なバグを取りこぼしてしまう、といった危険性も出てきます。
Visual Studio 2015 Enterpriseの新機能であるインテリテストを使えば、実装したコードのすべての行を通過するようなテスト群を自動生成してくれます。インテリテストはMicrosoft Researchで研究されていたPexというツールの発展形で、コードを分析しテストを自動生成する機能を持っています。