どうする??
テストとバグ修正
THANK YOU !!
ハートランド・データ株式会社のブースに足を運んでいただき
誠にありがとうございました。
ハートランド・データのブースでは、
組込み機器のテストを自動化するためのツール「AUTOmeal」と
組込みソフトのバグを解析するツール「DT+シリーズ」の
2つの製品を使った、ハートランド・データだからこそ
実現できる「バグに悩まされない方法」をご紹介いたしました。
このページでは、改めて
組込みソフト開発で発生するやっかいな不具合に対して
テストとデバッグの2つの側面で効果的にアプローチする
方法をご紹介いたします。
自動で動かす、
実物で動かす。
バグに悩まされないために、ハートランド・データだけが実現できるテスト
普段の製品開発で「なかなか再現しない不具合」や「発生箇所の分からないバグ」を発見してしまったらどうしますか?
組込み機器のテスト・デバッグには、テストの対象となるターゲット機器の動作(操作)が必要です。
ターゲットの動作が必要ということは、それだけ「手間がかかる」ということでもあります。
そんなめんどうな組込み機器の不具合修正では、「テストすべきポイント」を絞って精度を高め、
なるべく手間をかけずに完了させたいところです。
ハートランド・データが考えているポイントは、” 自動で動かす、実物で動かす。”
テスト自動化ツールで実機操作を疑似的に再現して、長時間動作させ続けることで「再現性の低い不具合」でも
人の手を介さずに再現させることができます。
さらに、OSやCPUに依存せず、長時間トレースが可能な汎用性の高いデバッグツールで動的に解析を行います。
以上2つの側面からアプローチすることにより、「どんな開発環境」の「どんなターゲット」でも
バグに悩まされることのないテスト・デバッグ環境を実現しました。
Excelで作った
テストケースにしたがって、
テスト対象の機器を
手動で操作
パフォーマンス測定は
何度もテストシナリオを
実行しながら、
オシロスコープと
にらめっこ
バグを見つけたら、
JTAGとオシロスコープで
地道にデバッグ。
バグが再現するまで
何度も同じ操作を繰り返す
Excelから自動生成し、
テスト対象の機器を
自動で操作
通信データや送受信タイミング、
パフォーマンス測定は、
自動テストでテストシナリオを
実施して、動的テストのログ解
析ですべて一気に測定と確認。
しかもテストシナリオのOK/NG
まで判定できちゃう。
取得していたプログラムの
実行経路情報や変数値から
原因を解析。
修正後の確認もかんたん
あなたにピッタリの活用シーンが分かる!
バグ解析力 診断チャート
診断結果から見る!
課題解決のベストプラクティスとは?
ⒶⒷⒸ課題解決のためのベストプラクティス
Aまずはテストを
自動化しよう
あれこれ悩む前に、まずはいつものテストの何かひとつ
だけでも自動化してみましょう。
AUTOmeal は、自動テストをはじめるのに必要な機能が
パッケージ化されたプラットフォームだから、環境構築
がかんたん。1週間ではじめられるほどすばやく、しか
もお手軽価格で自動テストをスタートできます。
Bスモールスタートで
自動テストをはじめよう
すでに具体的な検討を進めているのであれば、ひとつ重
要なポイントが。それは、最初からあれこれ何でも自動
化しようとするのは NG ということ。まずはスモールス
タートで考えるのがスムーズに始められるコツ。現状の
テスト作業を洗い出して自動化できそうな範囲を絞って
からはじめてみましょう。AUTOmeal を使えば、最小限
の範囲から、すばやく自動テスト環境を構築できて、徐々
に自動テストの適用範囲を広げていくことができます。
Cいろいろな機器のテストを
自動化しよう
自動テストをもっと幅広く活用したいのであれば、色々な
機器のテストを自動化できるように環境を構築したいと
ころ。特にリグレッションテストは時間とリソースを消
費する作業なので、さまざまなハードウェアに適用でき
る、汎用的な自動テストのプラットフォーム選択が重要
です。AUTOmeal なら、テスト対象の機器との接続にア
タッチメント方式を採用。拡張 I/F ボードを付け替える
ことで、さまざまな組込み機器に自動テスト環境を適用
できます。
ⒹⒺⒻ課題解決のためのベストプラクティス
Dなかなか再現しない
バグをつぶしたい
再現しにくい不具合の原因捜索では、デバッガを用いてブレークを
駆使する手法ではタイヘン。print文などを活用してエラー内容や
変数遷移、通過した処理などを一度に出力してログ解析する方法が
有効です。
DT+ なら、数クリックでログ出力用のコードを埋め込み、再現し
たところでバックトレースを活用して原因箇所を特定。原因を確実
に把握することで、修正確認の試行回数も最低限に抑えられます。
最大75% の大幅な工数短縮を実現したケースも。
異常がわかる!
Eタイミング依存の
バグをつぶしたい
割り込みやタイミング依存に起因する不具合は、処理の実行時間を
こまかく見ないと解決が困難。処理に影響が大きい関数や割り込み
処理の実行時間や CPU 占有率を取得する仕組みを入れましょう。
DT+ なら、割り込み発生タイミングや、周期時間、処理時間のバ
ラツキなどを監視して、要求性能を満たしていない箇所やパターン
を特定することで、タイミングに依存するバグを効率的に対策す
ることが可能です。意外な処理がボトルネックになっているケース
をすぐに発見できるかも。
タイミングや頻度が
わかる!
F組込みLinuxの
バグをつぶしたい
有効な手段が限られる Linux の動作解析。カーネル情報の出力ドラ
イバをシステムに組み込んで、ログを追いかけるといった方法にな
りがちですが、たった数分で数百 MB になるログを、自分の目とコー
ドエディタだけを頼りに解析するのは至難の業です。
DT+ なら、Linux カーネルはもちろん、アプリケーションの動作
解析まで対応。デバッグオプションやデバッガが使えない環境、
ブレイクできないマルチスレッドな処理のデバッグでも、動的テス
トならバックトレースからステップ実行感覚で処理手順の追跡が可
能です。
カーネル(Linux)の挙動が
わかる!
お手持ちのラズパイを使って
すぐに はじめられるプラットフォーム
どんな製品?
「AUTOmeal(オートミール)」は、自動化が難しい組込み機器の
自動テスト環境を構築できるプラットフォームです。
「Raspberry Pi 4」に「拡張 I/F ボード」を接続して使うので、
とてもはじめやすく、さまざまな組込み機器に対応できます。
はじめ
られる
ノーコード
機器で
使える
テストシナリオをノーコードでスクリプトに変換。テスト実行、結果判定と一連のテスト業務を自動化できます。
手動で行われている複雑な操作や、多くの計測を自動化し、テスト作業の効率化と正確な制御・計測を実現します。
使い方はかんたん3ステップ
1
テストスクリプトの作成
テストシナリオをノーコードで
スクリプトに変換
2
テストスクリプトの実行
判定結果や信号の波形・通信の
内容を表示
3
テスト結果の確認
ターゲット機器を自動で
制御・計測
組込みソフトのバグを解析する
OSやCPUに依存しない
汎用的なデバッグツール
どんな製品?
「DT+(ディーティープラス)」は、組込みソフトウェアのリアルな実行経路を見える化できるデバッグツールです。
経路情報を取得するためのテストポイントを、ソースコードに自動で挿入して、いつも通り実行するだけ。
実行経路情報を長時間ログとして取得するだけで、
関数の遷移、実行時間や変数値の変化などを一挙に確認でき、
バグ修正の時間を大幅に短縮することが可能です。
ログ収集
見える化
マンス
計測
テストポイントを
入れて
いつも通りコンパイル
ふだんお使いの統合開発環境などを
使用して、実行ファイルを作成
プログラムを実行してトレース
テストポイントを通過するたびに、
トレースデータを出力
開発で使える知識を学べる!