このブログについて

ソフトウェア開発におけるエラーの予防やプロジェクト管理、品質管理を支援するParasoft製品のTIPSなどを、国内総販売代理店テクマトリックスのサポートスタッフが紹介しています。

2016年2月23日火曜日

C++testで、実行されたコードが見える!!


今回のテーマ:アプリケーションモニタリング

ソフトウェアの開発をしていて、コードの内容が分からない、ドキュメントが無いといった「レガシーコード」を読みたいと思ったことはないでしょうか。

レガシーコードの内容を把握するために、動作確認を繰り返すのは、とても大変な作業です。

今回は、レガシーコードの内容を把握する際に心強い味方になる、C++testの機能の1つ
「アプリケーションモニタリング」について、ご紹介させていただきたいと思います。

アプリケーションモニタリングとは?

実行時に様々なカバレッジを計測し、ソースコードを色分けして、実行・未実行を表示する機能に
なります。

特徴として、実機でもシミュレーターでも、ソフトウェアのカバレッジを取得することが可能です。

つまり、実機で動作させた後に、自分の目でカバレッジを確認することができます。

実行されたコードは緑、実行されなかったコードはピンクで表示されるため、一目で実行・未実行を
判別でき、デバッグ作業の大きな助けになります。

例えば、レガシーコードの中身を把握する必要がある場合に、レガシーコードを実行しながらカバレッジを取得することで、実際の動きとコードの流れを確認するというような使い方も可能です。


ロボットのカバレッジを取得してみました

アプリケーションモニタリングの例として、ETロボコンで使用したEV3のカバレッジを取得した例を
ご紹介いたします。

ETロボコンについては、こちらをご覧ください。

今回は、EV3とPCをBluetooth接続し、カバレッジをEV3からPCへ送信する方法でカバレッジの
取得を行いました。

EV3を実行すると、カバレッジの情報がPCに送信され、受け取ったカバレッジ情報をC++testで
確認することができます。EV3が自由に動き回っている状態のまま!!

以下は、左がEV3の写真、右がEclipse版C++testのスクリーンショットになります。
この例では、EV3の行カバレッジを取得しています。



取得可能なカバレッジの種類

C++testでは、C0、C1、C2、MC/DCを含む以下の8種類のカバレッジを計測することが可能です。

・行カバレッジ
・ブロックカバレッジ
・ステートメントカバレッジ(C0)
・パスカバレッジ
・判断文カバレッジ(C1)
・単純条件カバレッジ(C2)
・MC/DC
・関数カバレッジ

ぜひご活用ください!

C++testは、C/C++プログラムの単体テスト、カバレッジ計測、静的解析、フロー解析、実行時メモリエラー検出を行う総合的なツールです。

今回は、その機能の1つとしてアプリケーションモニタリングを紹介させていただきました。

C++testをご利用になっている方は、ぜひこの機能も利用してみてはいかがでしょうか。

もし、C++testをご利用いただいていない場合には、この機会にぜひお試しください。

無償体験版ダウンロードは↓こちら↓です。

 技術資料請求

テクマトリックスではツールのご提供のみにとどまらず、導入前の支援から、導入開始時における開発者向けのトレーニング、CI(継続的インテグレーション)環境構築など、運用に乗せるための様々なサービスも実施しています。

ご興味のある方は、お気軽にお問い合わせください。