1000時間以上のテストでも分からない組み込み機器の不具合を動的テストで解決:ソフトウェアテスト
ハートランド・データの動的テストツール「DT+」のユーザーズカンファレンスにパナソニック エレクトリックワークス社の横山一直氏が登壇。同社ソリューションエンジニアリング本部が手掛ける機器や設備の組み込みソフトウェア開発にて、動作確認や障害対応の効率化に動的テストを活用した事例を紹介した。
組み込み機器のソフトウェア開発とテストにおいて重視されるようになっているのが、プログラムコードを実行しながら動作確認を行う動的テストだ。一般的な静的テストツールはルールベース解析などを通じてソースコード内の誤りや脆弱(ぜいじゃく)性を検出できるが、複雑化・高度化するOSおよびプロセスの動作タイミングや相互関係を把握するのは原理的に困難であり、動的テストツールが必要になる。
複雑な挙動検証や不具合解析に役立つのがハートランド・データの動的テストツール「DT+」だ。2009年発売の「DT10」の機能を拡張する形で2020年にリリースされたDT+は採用実績を積み重ねており、シリーズ累計で1000社以上に利用されている。
2024年7月26日、このDT+の活用例を紹介する「DT+ユーザーズカンファレンス2024」がリアルとオンラインのハイブリッド形式で開催された。本稿では、パナソニック エレクトリックワークス社 ソリューションエンジニアリング本部 ソリューション事業統括部 ビルディングオペレーションカテゴリー 商品技術部 課長の横山一直氏による「V字モデルにおけるDT+Traceの適用事例紹介」の講演内容を紹介する。
ビル関連機器や装置の組み込みソフトをV字モデルで開発
パナソニックの社内カンパニーの一つであるエレクトリックワークス社は、照明機器や照明設備、配線器具や分電盤などの電設資材、太陽電池モジュールや家庭用燃料電池およびソリューションを住宅、オフィスビル、ホテル、商業施設、スポーツ施設などに提供している。近年は従来のモノ売りだけではなくコト売りも強化しており、その一環として2023年にソリューションエンジニアリング本部を新設した。
このソリューションエンジニアリング本部に属している横山一直氏は、ビルオートメーションシステム、照明制御システム、入退室管理システム、防災システムなどの機器や設備のソフトウェア開発を担当している。
横山氏のチームは、DT+の機能の一つでありプログラムの実行経路のトレースやリアルな動きの見える化が可能な「DT+Trace」をV字モデルに基づいた開発とテストに活用しており、3例を講演で紹介した。
事例1:プロセスの実行状態を解析してリブート現象を解析
最初に、V字の右上に当たる評価フェーズにDT+Traceを適用した例を紹介した。導入のきっかけは障害対応だ。
製品のシステムテストの最終段階でコントローラーと端末の断線と復旧を繰り返したとき、コントローラーのメインマイコンがエラーログを出力することなくリブートする現象が発生していた。ただし頻度は極めて低く、評価チームの環境において1000時間以上のテストで発生回数はわずか3回だった。開発チームの環境でも確認したが1000時間以上のテストを経ても発生しなかった。
「シリアルを介してトレースログを取得したりリブートの要因を故障の木解析(FTA)で一つずつ書き出したり、評価チームが使っているシステムに別の不具合があるのではないかと疑ったりと、3カ月にわたって検討や調査を行いましたが、原因の特定には至りませんでした」
このコントローラーでは、メインプロセスの他に幾つかの子スレッドとウォッチドッグタイマーを定期的に初期化する生存監視プロセスが動作している。OSはLinuxだ。横山氏らは、OSや各プロセスの動的解析を行う必要があると判断してハートランド・データのDT+Traceを導入することにした。
トレースデータを解析したところ、生存監視プロセスに規定時間内に実行権が渡されない場合があることが分かってきた。「子スレッドBが動いた後、実行権が生存監視プロセスではなく子スレッドAに渡される場合があることが明らかになりました。その結果、生存監視プロセスがウォッチドッグタイマーを初期化できずリブートに至っていると考えられました」
こうした解析結果を踏まえて生存監視プロセスに実行権が定期的に渡されるように設計を変更して、製品化に無事こぎ着けた。横山氏は「シリアルポートを介してトレースログを取得する従来の方法では各プロセスの実行タイミングが変化してしまい、プログラムの欠陥を把握できなかったと考えています。設計段階の想定動作と実動作でのギャップがあり、DT+Traceがなければこの問題(ギャップ)を分析することは困難だったと思っていて、まさにDT+Traceに救ってもらったという認識です」とDT+Traceを評価する。
事例2:信号反転処理の入力と出力をDT+Analogで確認
続いて、V字モデル左上側の中間に当たる「基本設計」や「詳細設計」関連の活用事例を紹介した。
対象製品は、入力信号を反転処理して出力する機能を持つ端末だ。従来は入力波形と出力波形をオシロスコープで観測して確認する方法しかなく、ソフトウェアの動作と関連付けた確認ができなかった。
横山氏のチームはアナログ信号のキャプチャーができるDT+の機能「DT+Analog」を導入した。DT+Analogは簡易的なオシロスコープを実現するツールだ。専用ハードウェア「DBOX+Analog」のサンプリングレートは10MSPS、分解能は12ビットであり、ほとんどの信号測定には十分な性能だ。
評価では、マイコンのGPIO×6ポートから出力したソフトウェア実行箇所のトレース情報をDT+Traceを使ってデジタル信号としてDBOX+Trace(DT+Trace用ハードウェア)でキャプチャーし、波形反転処理の入力信号と出力信号をDBOX+Analogでサンプリングした。解析用PCでプログラムの挙動とオシロスコープ的な波形情報を連動させながら動作検証を行うことで、設計者の意図通りに反転処理が行われていることを確認した。
「とても小規模な事例ですが、発生頻度が低い障害の発生を防ぐという意味でも設計段階において想定した動きを確認することがとても重要と考えて紹介しました。初期段階で不具合を見つけて早期に修正するために、これからも設計段階からDT+TraceやDT+Analogを積極的に活用したいと考えています」
事例3:AUTOmealを使って単体テストなどの自動化を目指す
最後に、ハートランド・データのテスト自動化プラットフォーム「AUTOmeal(オートミール)」とDT+Traceを組み合わせて、V字モデルの底に当たるプロセスのテスト自動化の取り組みを紹介した。
横山氏は「当社はV字モデルにのっとって開発していますが、きれいな形で進められることはあまりなく、設計、コーディング、単体テストをぐるぐる回しながらソフトウェアのQCDを高めています。そこの繰り返し部分を少しでも効率化できないかと考え、AUTOmealを導入してみることにしました」と背景を説明する。
AUTOmealは、テストシナリオに基づいてテスト対象機器に疑似信号を与えるとともに、テスト対象機器が出力する各種信号をキャプチャーしてその結果を自動的に判定するテストシステムだ。
信号の出力やキャプチャーには市販のRaspberry Pi(以下、ラズパイ)を使う。信号に応じてロジック入出力ボード、リレー接点出力ボード、パルス入出力ボード、アナログ出力ボード、アナログ入力ボード、シリアル/USBアダプターなどをラズパイに組み合わせる。
テストの自動実行や結果判定を行うのが、AUTOmealアプリケーションに含まれる「テスト・ランナー」だ。通常はPythonでテストシナリオを記述するがExcelからの変換も可能であり、その場合はノーコードで開発できる。
手持ちのラズパイが使えるなどスモールスタートが可能であり、環境構築も容易なのがAUTOmealの特徴と言える。
横山氏は、講演時点ではAUTOmealの本格的な活用にはまだ至っていないと前置きした上で、「テスト項目の作成、単体テスト実施、障害解析、コード修正、再テスト実施という一連の流れにおいて、テスト実施、障害解析、再テスト実施の3項目についてはAUTOmealとDT+Traceで自動化および効率化が可能であり、約20%の工数削減が図れるという試算を得ています」と述べた。
開発するソフトウェアの規模が大きければ大きくなるほど単体テストの項目数も増えるため、より大きな効果が期待できる可能性がある。今後、テスト自動化のスキームを確立するとともに実際の製品開発に適用する計画だ。
保守や機能増強にもDT+Traceを活用中
ここまで紹介したのは新規開発案件を対象にした事例だが、横山氏は既設システムの運用保守にもDT+Traceを活用していることを明らかにした。「ビルなどのシステムの中には10〜20年、長ければ30年以上使われるものもあります。資料が全て残っていない場合もあるので、DT+Traceでどのような動きをしているかを解析し、サポート部隊と共有しています」
稼働中のシステムに新機能を追加する場合にも活用しているという。「新しく組み込んだ機能の確認だけではなく、変更していない部分に影響が及んでいないかどうかを確認しなければなりません。変更前と変更後の動きをDT+Traceでトレースし、視覚的に分かりやすく整理して提示することで品質保証部門に説明することもあります」。
ハートランド・データに対しては、取得したトレースログを視覚的に整理するための機能拡張を要望するとともに、DT+ユーザーズカンファレンスのような技術交流会を東京だけではなく関西でも開催してほしいと述べて講演を終えた。
Copyright © ITmedia, Inc. All Rights Reserved.
関連リンク
- 動画:パナソニックエレクトリックワークスにおける動的テストの使用事例発表
- パナソニック株式会社エレクトリックワークス社
- 動的テストツールDT+
- 組込み開発向けテスト自動化プラットフォーム AUTOmeal
- print文やデバッガではキツいときの、動的テストの使い方
- レガシーコードをいじる前に知っておいてほしい動的テスト3つの使い方
- 日々のデバッグから機能要件関連の測定まで「動的テスト」10の活用シーン
- テスト自動化に着手する前に知っておきたい「はじめやすくて つづけやすい テスト自動化環境」の作り方
- ソフトウェアテストを効率化したい人のための自動テスト活用ケース紹介セミナー
- 結合テストで露見する不具合の解析手法
- デバドラ作成に疲れたエンジニアのための、Linuxカーネルとアプリの挙動トレース
- Wireshark×動的テストで、パケット送受信処理の挙動を解析する
- ハートランド・データ株式会社
提供:ハートランド・データ株式会社、パナソニック エレクトリックワークス社
アイティメディア営業企画/制作:MONOist 編集部/掲載内容有効期限:2024年10月7日