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