C++ には優れた単体テスト フレームワークがたくさんありますが、機能テストに適したものは見つかりませんでした。機能テストとは、ディスクに触れるもの、アプリケーション全体を配置する必要があるものなどを意味します。
要点: I/O が機能するかどうかなどのテストに役立つフレームワークは何ですか? 一時フォルダーを作成し、大量のデータをコピーする手作業のシステムを導入したので、テストは常に同じ環境で行われますが、カスタム フレームワークに時間を費やす前に、良いものはすでにありますか?
C++ には優れた単体テスト フレームワークがたくさんありますが、機能テストに適したものは見つかりませんでした。機能テストとは、ディスクに触れるもの、アプリケーション全体を配置する必要があるものなどを意味します。
要点: I/O が機能するかどうかなどのテストに役立つフレームワークは何ですか? 一時フォルダーを作成し、大量のデータをコピーする手作業のシステムを導入したので、テストは常に同じ環境で行われますが、カスタム フレームワークに時間を費やす前に、良いものはすでにありますか?
すでに 3 回ゼロから作成しました。2 回は FIX プロトコルを使用して取引所と通信する C++ アプリのテスト用で、1 回は GUI アプリ用です。
問題は、適切なシステム テストを行うために外の世界をエミュレートする必要があることです。「コードの外」という意味ではなく、アプリケーションの外です。これには、エンド ユーザー、外部エンティティ、インターネットなどのエミュレートが含まれます。
私は通常、perl を使用してシステム テスト フレームワークとテストを記述します。これは主に、あらゆる種類の OS 機能へのアクセスに優れており、正規表現が第一級の市民であるためです。
いくつかのヒント: ログが解析しやすく、詳細でありながら、冗長になりすぎないようにしてください。適切なデフォルト構成を用意してください。アプリケーションを簡単に「リセット」できるようにします。各テストの後に行う必要があります。
私が通常使用するアプローチは、アプリケーションの外部世界との通信を何らかの実行可能ファイルの stdin/stdout に変換する、ある種の「アダプター」を用意することです。次に、その上に perl フレームワークを構築し、テスト ケースでそのフレームワークを使用します。
以下に、私が認識しているいくつかのツールと大規模なテスト アプリケーションをリストします。お使いのプラットフォーム (OS など) に関する詳細情報を提供していただければ、より適切な回答を提供できる可能性があります。
必要なものの一部として、Microsoft はApplication Verifierを提供しています。
Application Verifier (AppVerifier) は、アプリケーションの Microsoft Windows XP との互換性をテストする際に使用される実行時検証ツールです。このツールを使用すると、アプリケーションの実行中にさまざまな既知の互換性の問題をテストできます。この記事では、AppVerifier をアプリケーションの開発とテストのサイクルに効果的に追加する手順について詳しく説明します。
Application Verifier は、メモリ不足の状態、その他のリソース不足、およびその他の API の使用状況をテストするのに役立ちます。
パズルのもう 1 つの部分は、Microsoft Detours パッケージです。これは、API 呼び出しを独自のコードに置き換えるために使用できます (たとえば、セットアップが難しいテストのエラー コードを返す場合に役立ちます)。
Detours は、x86、x64、および IA64 マシンで任意の Win32 関数を計測するためのライブラリです。Detours は、ターゲット関数のメモリ内コードを書き直すことで、Win32 関数をインターセプトします。Detours パッケージには、任意の DLL とデータ セグメント (ペイロードと呼ばれる) を任意の Win32 バイナリに添付するためのユーティリティも含まれています。
他にも、より大規模な (そしてより高価な) 包括的なパッケージが利用可能です。Borland はSilkを製造しています。
Automated Software はTestCompleteを作成します。これらのツールのいずれを選択するかは、アプリケーションのニーズに応じて異なります。
IBM/Rational は、Rational Functional Testerを提供します。これは、多くのプラットフォームで使用でき、豊富な機能を備えています。
こんにちは、私たちが持っているフレームワークがあなたの状況に役立つかどうかはわかりませんが、それは Rational Functional Tester にフックされ、ユーザーがさまざまなテストに接続するさまざまなデータセットを作成し、スクリプトを変更せずに環境を変更し、自動化を再利用できるようにします効率的な方法。興味のある方はご覧ください: http://www.testpro.com.au/Test-Automation-Framework.html