TypemockがIsolator++をリリースした。Windowsプラットフォーム用に記述された64bit C/C++コードのサポートに加えて,もともとテストを考慮していなかったようなレガシコードにも対応する。マクロを利用してテスト対象のメソッドの動作を変更することも可能だ。
C/C++用モックフレームワークのIsolator++は,メソッド呼び出しやパラメータのアサート,関数のモック生成,参照によって返される値のシミュレートなどの機能も提供する。AQTime, Software Verify, BullsEyeなどのツールと統合可能であると同時に,CppUnit, UnitTest++, Google Test Boostといったテスト実行フレームワークとの互換性も備えている。
最新リリースのメリットについて詳しく知るため,InfoQは,TypemockのプロダクトマネージャであるGil Zilberfeld氏に話を聞いた。
64bitのサポートは,開発者にとってどのようなメリットがありますか? 本当に意義はあるのでしょうか?
開発者の中には,64bit環境に限定して開発を行っている人もいます。64bitをサポートしなければ,彼らは32bit環境でテストを行わなければなりません。しかし32bit環境でのテストではシステムの"真"の動作とは違いますから,テスト結果が実際の条件を反映しているかどうか,信頼性に欠ける部分があります。Isolatorが64bitをサポートすることで,製品環境と同じ条件でテストを実行できるようになるのです。信頼性が向上すれば,テストが現実を表現しているのか,それとも限定的なものか,という余計な推測の入る余地はなくなりますから,すべてが64bitで正しく動作するという確信を持ちながら,コードのリファクタやテストを行うことができます。
Typemock Isolator++の機能について教えてください。
Typemock Isolator++は,Windows上のCおよびC++のための完全なモックフレームワークです。Visual Studio 2005以降を対象に,32bitと64bitをサポートします。インスタンスあるいはスタティック,グローバル,プライベートとパブリック,仮想と非仮想など,すべての関数コールをモックできます。特定のオブジェクトや型,いくつかのメソッドのみをダミーにして,その他は本物の実装を使用することも可能です。関数がコールされた回数をカウントして,それをアサートすることもできます。参照で返されるパラメータをシミュレートする機能もあります。テスト用にコードの修正したり,テストのために準備作業をしたりする必要はありません。
開発者の生産性は向上するのでしょうか?
Isolator++は"テスト不能コード"用にテストを記述できますから,アプリケーション全体をデバッグするよりも手早く,ユニットテストを使ってデバッグすることが可能です。テストの不可能なシナリオもテストできます(例えばコンピュータのクロックを変更する必要のあるシナリオでも,コード上で実行可能です)。テストのためにコードを変更すれば,機能を損なうことになりかねません。ユニットテストの生産性が向上することで,作業にじっくりと取り組む余裕が生まれるはずです。
C#やVB.NETはサポートしていますか?
いいえ,Isolator++はCとC++でのみ動作します。マネージドな.NET言語には,Isolator for .NETを用意しています。Isolator++ for .NETは単なる.NET用の"すべてをモックする"フレームワークではなく,SmartRunnerや視覚的なカバレッジ,テストコード補完やテストルールブックなどを備えています。