こちらの記事では、組み込みソフトウェアテストの自動化について解説しています。テスト導入の背景やメリット、テストの進め方やツールの選び方などをまとめています。
組み込みソフトウェアテストとは、自動車や家電製品、産業機械などに組み込まれるソフトウェアに関するテストです。このテストでは、ソフトウェアとハードウェアが正しく連携して動作するかどうかが確認されるため、ソフトウェア単体での動作確認では完了しないという面があります。
さらに、多くの組み込みソフトウェアはリアルタイムでの動作が求められることから、タイミングやパフォーマンスについての検証も大切な要素といえます。また、組み込みソフトウェアは家庭やオフィスなどユーザー環境で使用されるケースが多いため、セキュリティ面を含めた確認が求められます。
近年のIoT市場の拡大に伴い、組み込みソフトウェアにおける自動テスト導入が非常に重要になっています。IoTで利用されるデバイスは多彩な環境で利用されるため、さまざまなテストケースの網羅が必要です。さらに、IoTデバイスは数多くのセンサーやアクチュエーターを搭載していることから、動作の確認が重要ですが、これらのテストを手動で行うことは非常に困難であり、自動化が欠かせない状況になっています。また機能追加やファームウェアのアップデートが頻繁に行われるケースについても、自動化が必要であるといえます。
テストの自動化によってテストの工数を削減できます。さらに自動化が行われたテストスクリプトについては繰り返し利用が可能であることから、ソフトウェアに変更があった場合にも迅速にテストが行えます。これらの点から、開発サイクルの短縮ができ、市場への投入スピードが加速されます。
テストを自動化した場合には、手動テストの場合と異なり人的ミスの削減が可能となります。この点から、高い精度でのテストが可能となり品質も向上するため、ユーザーからの信頼性アップも期待できます。
まずはテスト環境の準備が必要です。この場合、エミュレーターまたは実機にてテストを行いますが、エミュレーターを使用することによって実際のハードウェアを使用せずに動作検証が可能となり、効率的にテストを進められます。ただし、エミュレーターのみで全てのテストをカバーできるわけではないため、実機でのテストも行う必要があります。
環境を用意したら、テストケースをもとに自動テストスクリプトの作成を行います。適切なテストスクリプトの作成によって、ソフトウェアの信頼性と安全性を高めることが可能に。またテストでは、ソフトウェアとハードウェアが連携して動作することを確認する点も大切なポイントとなります。
通常、組み込みソフトウェアは特定のハードウェアにおける動作を想定して設計されています。この点から、ハードウェアの特性に強く依存し、ハードウェアの変更やアップデートがソフトウェアの挙動に影響を与えるケースも見られます。この点から、ハードウェアとソフトウェアの関係について十分に考慮した検証が必要となり、実際のハードウェア上でテストを実施する、ハードウェアの動作を再現するシミュレーション環境を準備するといった対応が求められます。
タイミング制約とは、特定のイベントに対してシステムが指定された時間内に処理を完了する必要があるという制約を指します。組み込みシステムでは信頼性や性能の面からリアルタイム性が重視されるため、非常に重要な要素であるといえます。以上の点から、適切なテスト方法を用いてタイミング制約を満たしているかを確認することが重要となります。
組み込みシステムは、身近な専用端末から大規模なインフラ機器まで多岐にわたります。ここでは、特定のハードウェアに焦点を当てたテスト自動化のポイントを解説します。
金融機関で利用されるATM(現金自動預け払い機)は、極めて高い堅牢性とミスのない処理が求められます。ATM テスト自動化においては、現金の入出金処理をシミュレートするだけでなく、通信エラー発生時の復旧処理や、各種センサー(紙幣詰まり検知など)の異常系テストを網羅的に自動化することが不可欠です。
小売店や飲食店で稼働するPOSレジは、バーコードリーダーやキャッシュドロア、レシートプリンターなど多くの周辺機器と連携します。POSレジ テストでは、これらのハードウェア制御に加え、ポイントシステムやクラウドの在庫管理サーバーとの通信といった、ネットワーク越しの動作を含めたE2E(エンドツーエンド)での自動検証が効果的です。
KIOSK端末や工場の制御盤、医療用機器などの専用端末 自動化においては、タッチパネルなどの物理的なユーザー操作の検証が課題となります。最近では、シミュレーターだけでなく、ロボットアームを用いて実機のディスプレイを物理的にタップ・スワイプさせるテスト手法も導入されています。
組み込みテストを自動化するためのツールを選定する際のポイントの一つが、どのようなマイコンやOS、通信プロトコルに対応しているか、という点です。組み込みテストを行う上では、この部分を十分に確認しておくことが大切です。
組み込みソフトウェアのテストは、一般的に実機を使用して行われますが、これをPC上でシミュレーションして検証できれば、不具合の修正が必要になった場合の手戻り工数が削減できるというメリットがあります。また自動テストツール選定にあたっては、拡張性の有無もポイントです。拡張性が高いツールを導入することによって、さまざまな状況に柔軟に対応ができるなどのメリットが期待できます。
IoTデバイスの管理画面や、機器から送信されるデータのクラウド連携など、組み込みシステム開発でもWeb・API技術の検証は必須です。しかし、ハードウェアの検証に手一杯で、Web側のテストまで手が回らない現場も少なくありません。そこでおすすめなのが、「ATgo(エーティーゴー)」です。

ルーターやIoTゲートウェイなどの組み込み機器には、ブラウザで操作する「設定画面(Web UI)」が搭載されていることが一般的です。
ATgoの「レコーディング機能」を使えば、設定画面の操作を録画するだけでテストスクリプトを自動生成できます。Webテストの専門知識がない組み込みエンジニアでも簡単に扱えるため、ファームウェア更新ごとの画面動作チェック(リグレッションテスト)を大幅に効率化できます。
「センサー等の実機からクラウドへ正しくデータが送信されたか」を確認するには、画面だけでなくデータベースの値も検証する必要があります。
ATgoはUI操作、API実行、DB参照を組み合わせたテストが可能です。「Web管理画面で設定変更」→「API経由でデータ送信」→「DBの値が更新されているか確認」といった、機器とクラウドをまたぐE2E(エンドツーエンド)テストを一気通貫で自動化できます。
組み込みシステムの開発現場は、機密保持やセキュリティの観点からインターネットに接続できない「閉域網」であることが多く、SaaS型ツールの利用が困難です。
ATgoはインストール不要で、インターネット接続のないオフライン環境でも動作します。セキュリティポリシーの厳しいラボ環境や工場内のネットワークでも、問題なく導入・運用が可能です。
こちらの記事では、組み込みソフトウェアテストの自動化について解説してきました。自動化に取り組むことによって開発サイクルの短縮や人的ミスの削減などさまざまなメリットが期待できます。
ATgoは、インターネット非接続のクローズド環境でスムーズに導入・運用が可能なテスト自動化ツールです。UIテストとAPIテストに対応し、金融系システム開発で重視されるエビデンスや比較レポートの作成も自動化。
高精度な画面比較や生成AIによるテスト支援も搭載し、実装コスト・検証コストを大幅に軽減します。テスト自動化サポートプランもあり、導入初期から安心して自動化を進められます。
タップして拡大専門的なプログラミング知識は不要。
画面を操作するだけでテストスクリプトを自動生成する機能や、日本語でテスト手順を提案する機能を搭載。
初心者でも即戦力として自動化に取り組めるため、属人化を防ぎ、採用・教育コストを抑えます。
ATgoはインストール不要・インターネット接続不要で動作するため、セキュリティポリシーの厳しい環境でもスムーズに導入可能です。
まずは1か月の無料トライアルで、その操作性と効果をご体感ください。すべての標準機能を制限なくお試しいただけます。