特別セミナーハンズオンセミナーオンラインセミナーC++test無料相談会フロー解析プログラムのあらゆるパスをシミュレートし、バグを早期に発見ソースコードを解析し、関数・ファイルをまたがったバグに至るまでの処理の流れをレポートフロー解析機能は、プログラムを静的に解析して、プログラム実行時に発生し得る問題を検出する機能です。非常に複雑なアプリケーションでも、複数のファイル、メソッドにまたがるパスを自動的にトレースし、「NULLポインターの間接参照」や「バッファオーバーフロー」などプログラムの動作に致命的な影響をもたらすバグを早期に発見します。C++testのフロー解析機能のルール数は114種類。問題として顕在化していなかった欠陥や、システムテストなどの後工程で見つかっていたような欠陥を、コーディングフェーズで瞬時に見つけることができるようになり、手戻りのリスクを軽減します。フロー解析機能とはフロー解析機能は、コードの処理フローを静的にシミュレートして、エラーの可能性があるパスを検出するフロー解析機能です。非常に複雑なアプリケーションでも、自動的にパスをトレースし、実行をシミュレートすることができます。複数のファイルにわたる処理フローも解析できるので、一般的な静的解析(コーディングルールに基づくエラーパターンの検出)では検出が難しい、実行パスとデータの組み合わせに依存するメモリリークやリソースリークなどのエラーも検出できます。単体テストなどの実際にコードを実行するテストとは違って静的な解析であるため、例外処理などのテストが難しい場所に潜むエラーもコードを実行せずに検出できます。複数のファイル、関数にまたがる欠陥を自動的に検出できる単体テストは、基本的には関数単位の欠陥を検出するのに役立つテスト手法です。関数に対してテストを行なって、発見された問題をすべて修正してからコードを統合しても、その後でメモリ破壊などの問題が起きることがありますが、そのような問題は複数の関数、あるいは複数のファイルを通る複雑でわかりにくいパスで発生するため、原因をつきとめるのに何日もかかる場合があります。フロー解析を使用すると、このような問題も瞬時に検出できる可能性があります。カバレッジを達成します。結果として、テスト中にカバーされないことも多い例外的な状況で起こる問題を検出できるケースもあります。問題に至る処理フローを瞬時に把握フロー解析により、問題の可能性が発見された場合は、問題が発生した箇所とそれに至るまでの処理フローがレポートされます。処理フローを確認しながら、処理フローに依存した問題の原因を確認することができます。テストケースやスタブは、不必要。テスト資産のないソースコードでも検証可能フロー解析は、静的解析であるため、テスト対象ソフトウェアを実行する必要はありません。ボタンをクリックするだけで処理フローの自動検証を開始します。複雑なパスを自動でシミュレートしますので、人の目でパスを網羅するのに比べて、人的リソースを削減することができます。テストケースやスタブなどのテスト資産を用意する必要もありません。テスト資産が不要ですので、過去コードを流用した派生開発の場合も、テストケースの更新や再作成をすることなく、すぐにテストを行なうことができます。DTPと連携することにより、フロー解析トーレースの詳細表示が可能です。フロー解析におけるデータフローのシミュレート結果がより詳しく表示されます。「なぜ条件演算子でtrueと判断されたのか」・「なぜ違反が発生しているか」の理解や、「違反の重要性」の判断が容易となっています。以下では、フロー解析機能でどのようなエラーを検出できるのか、その一部を具体的にご紹介します。メモリリークメモリリークは、プログラム内で動的に割り当てられたメモリ領域が解放されないまま残ってしまう現象です。長時間実行され続けるプログラムにメモリリークの欠陥があると、時間の経過とともに使用できるメモリ領域が少なくなり、パフォーマンスが悪化したり、動作が不安定になる可能性もあります。下の図は、C++testのフロー解析でメモリリークを検出した結果の例です。メモリリークを検出した結果の例ゼロ除算ゼロによる除算は例外を発生させ、プログラムの異常終了の原因になる可能性があります。下の図は、C++testのフロー解析でゼロ除算を検出した結果の例です。未初期化メモリの使用C言語では、ローカル自動変数の初期値は不定値です。変数を初期化せずに使用すると、プログラムの予期しない動作につながる可能性があります。下の図は、C++testのフロー解析で未初期化メモリの使用を検出した結果の例です。10.3.4」バージョンアップ製品をリリースを開始しました。C++testフロー解析CONTACT製品についてやテクマトリックスについてなど、こちらよりお気軽にお問い合わせいただけます。