このブログについて

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

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(継続的インテグレーション)環境構築など、運用に乗せるための様々なサービスも実施しています。

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








2015年11月2日月曜日

ETロボコンに参戦しました


はじめまして、6月にParasoft製品サポートチームに配属された新人です。

スキルアップの一環として、「ETロボコン」に参加しました。

今回はその様子をレポートいたします。


ETロボコンとは、「5年後、15年後に世界をリードするエンジニアの育成」をテーマに、ロボットで指定コースを自律走行させ競技を行います。

競技するロボットは全チーム同じものを使用するため、ソフトウェアの優劣が勝敗を分けるポイントとなっています。
※詳しくは、ETロボコンの公式HPをご確認ください。



会場の様子

EV3


初参戦ということもあり、私達「チームてくまと(私+先輩2人)」は、入門者向けのプライマリークラスにエントリーしました。

「ETロボコン」では、初心者向けに、開発の手順やモデルについて解説してくれる技術教育も開催されます。

技術教育で基礎を学び、ロボットの理解を深めながら、「チームてくまと」は以下のスケジュールで開発を進めていきました。


  • 6月:技術教育に参加、サンプルコードでロボットを動かす
  • 7月:障害物(難所と呼ばれる)を攻略する機能の実装
  • 8月:設計を解説するためのモデルを作成
  • 9月:難所を攻略する機能の実装と細かな調整



そして、3ヶ月の開発を終え、去る9/22(火)、「ETロボコン東京地区大会」へ出場しました。

大会の順位は、難所の異なる2種類のコース(LおよびRコース)を走行させた結果に「ロボットの構造を紹介するモデル」の出来ばえが加算され、その合計スコアで決まります。

そして、上位4チーム(東京地区の場合)には、全国大会への出場権が与えられます。

今年の東京地区プライマリークラスでは、51チームが全国大会を目指して、熱い戦いを繰り広げました。

下の動画は、「チームてくまと」(画面向かって左のロボット)がRコースを走行している様子です。



後日発表された「チームてくまと」の総合順位は、51チーム中18位で、残念ながら全国大会には至りませんでした。

優勝チームとは、ロボットのスピード、難所攻略の精度、モデルの分かりやすさ、など様々な点で大きな力の差を感じました。

しかし、LコースRコース共に、目標としていた「完走」は、(ほぼ)達成することができました。

たとえ優勝できなくても、3ヶ月ロボットと格闘して学んだことは、私にとって大きな財産になったと思います。

****

なお、大会で使用したロボットは、「Embedded Technology2015」の弊社ブースで展示する予定です。

EV3のコードを解析した結果や、ロボットを走らせたときのコードカバレッジの測定結果なども御覧いただけるように、現在準備を進めています。

ET2015へお越しの際は、ぜひテクマトリックスブースにお立ち寄りください。