車載ソフトウェアのテスト:要件とベストプラクティス

こちらの記事はAutomotive software testing: requirements and best practicesの抄訳です。

この記事では、車載ソフトウェア業界の展望や近年のソフトウェアの進歩、また車載ソフトウェアのテストに関する法的規制について触れながら、GUIを含む製品を持つ企業が、不安定かつ厳しい市場で競争力を保つためにどのようにソフトウェアテストを活用すればよいかについて簡単にご説明します。

車載ソフトウェア業界の展望

車載ソフトウェアの市場は、2030年までに急成長が見込まれており、その規模は310億ドル(2019年)から約800億ドルに増加すると予測されています。これは市場全体でCAGRが9%以上、具体的には、インフォテインメント、コネクティビティ、セキュリティ、コネクテッド・サービスでの成長が9.1%に相当します。

つまり、自動車業界も他の多くの業界と同様、かつてないほどの技術革新、技術進歩、そしてそれに伴う競争が起きているのです。自動車メーカーや部品メーカーが収益性を追求しながら業界をリードしていく一方で、その背後では、ソフトウェアをめぐる争いが繰り広げられています。

自動車のテスト 

自動車試験というと、衝突試験や速度試験など、機械的な介入を伴う試験が思い浮かぶ人が多いでしょう。しかし、実際には、ほとんどの自動車試験は部品が組み合わされるずっと前に行われているのです。

1台のクルマは約3万点の部品から構成されており、それらを数10社のメーカーが共同で供給しています。ハードウェア、ソフトウェアを問わず、それぞれの部品は最終的な組み立て前に何十万回もテストされ、実際に道路を走る前にはさらに多くのテストが行われます。

車載ソフトウェアのテスト

現在、一般的なセダンから最高級の高性能車まで、道路を走るクルマはソフトウェアによって駆動されています。2022年に製造される車には、約150ものECU(Electronic Control Unit)が搭載されているとすら言われています。

ここで、ECU(Electronic Control Unit)とは、自動車の特定の機能を制御する小型のコンピュータを意味します。ECU以前は、機械式システムが点火時期、燃料、空気、エンジン回転を利用して自動車の機能を実現していました。現在では、必要なことはすべてECU内のチップにプログラムされています。

ECUには、エンジンコントロールモジュール(ECM)やブレーキコントロールモジュール(BCM)などのクリティカルな機能を担うECUや、カーナビゲーションシステム内のECU、ドアの開閉や窓開け、エアコン制御などを行う汎用電子モジュール(GEM)など、比較的クリティカルではないECUも含まれます。

電子制御ユニットはつまるところ小さなコンピューターであるため、その機能性、操作性、安全性を確保するために、厳密なソフトウェアテストを実施する必要があります。

従来の自動車試験は実施に費用と時間がかかり、しかもその再現性が低いという現実があります。この問題を解決してくれるのが、HIL(Hardware-in-the-Loop)とSIL(Software-in-the-Loop)試験という方法です。

Software-in-the-Loop (SIL) テスト 

SILテストを実施することで、ソフトウェアのコードをシミュレーションによってテスト・検証してバグをつぶし、コードの品質を向上させ、ビルドにかかる時間も大幅に短縮させることができます。

各メーカーやサプライヤーが競争力を高めるために革新を続ける中で、真の勝者はそのソースコードによって決します。そのため、自動車を構成する部品の種類(安全性、ダッシュボード、ナビゲーションシステムなど)に関係なく、ソフトウェアは車両での使用を承認される前に広範囲に渡ってテストされなければなりません。

SILのメリットとしては、以下のようなことが挙げられます。

  • 最終ビルドを待たずに、プログラムの各セグメントが完成した時点でコードを定期的にテストすることができる
  • テストを自動化し、同時に実行することができる
  • テスト結果は共有可能で、分析が容易
  • ソフトウェアとハードウェアの開発が分離されているため、ソフトウェアメーカーはハードウェア業界のペースを待たず技術革新を続けることができる 
  • 後述するHILテストのような専用のテストベンチが不要
  • SILテストは、手動テストよりも簡単に拡張でき、再現性があり、高速である

Hardware-in-the-Loop (HIL) テスト 

HILテストは、その名の通り、車両に搭載されたハードウェアに関連するテストと検証のための方法です。これらのシミュレータはほとんど最終製品をモデルとしており、実機のECUをテストシステムに接続する前に徹底的にテストされます。

HILテストベンチは、カメラやレーダーなどの機器から入力されたデータをもとに、数学的モデルをリアルタイムに実行し、実際の自動車のエンジンの動きなどをエミュレートするものです。一般的に、HILテストはSILテストよりもコストと時間がかかるため、SILテストの後に行われます。

自動車用ソフトウェアのテストは、サイバーセキュリティ、サプライヤの信用と信頼性、自動車ブランドの健全性とイメージなど、純粋に路上での安全性だけではない理由でも重要です。

車載ソフトウェアテストにおける法的要求事項

当然ながら、自動車のハード・ソフト両面のテストには厳しい規制が存在します。

ISO 26262: Road vehicles - 機能安全 

自動車の安全性に関する主な法的要件はISO 26262です。これは量産される乗用車に適用され、バス、トラック、トレーラー、セミトレーラーのE/Eシステムに関するガイダンスも提供しています。

ISO 21434: Road vehicles - サイバーセキュリティエンジニアリング

ISO 21434はISO 26262に基づく後続規格で、特に自動車用ソフトウェアとサブシステムの設計・開発におけるサイバーセキュリティに焦点を当てています。この規格では、リスクマネジメントとその軽減、リスクアセスメント、継続的なセキュリティ、セキュリティ管理などのトピックを扱っています。

AUTOSAR

AUTOSARはAUTomotive Open System ARchitectureの略で、「自動車メーカー、サプライヤー、サービスプロバイダー、自動車エレクトロニクス、半導体、ソフトウェア業界の企業による世界的な開発パートナーシップ」である。AUTOSARの目的は、車載ECUのための世界的にオープンで標準化されたソフトウェアアーキテクチャを構築することです。サプライヤやメーカーはAUTOSARアーキテクチャへの参加や準拠を義務付けられてはいませんが、世界の主要企業の多くはAUTOSARアーキテクチャに参加しています。

MISRA 

MISRAは、サプライヤー、エンジニアリングコンサルタント、静的コードアナリスト、OEMメーカーで構成される自動車安全のための組織です。1998年に初めて発行されたコーディングガイドラインは、現在ではCおよびC++言語で構築されたシステムを対象としています。MISRAは強制力のない標準規格ですが、安全性やセキュリティが重要なシステムに対して、安全で確実、かつ移植性の高いコードの開発を促進するため、多くの産業で広く採用されています。

車載ソフトウェアのテストを実施しようとする企業のためのベストプラクティス

自動車における製品の機能(セーフティクリティカル、メカニカル観点、見た目の美しさ)は、必要とされる安全試験のレベルに影響を与えますが、ソフトウェア試験のベストプラクティスは、どのような製品にも一貫して適用されます。

しかし、ケースバイケースで考慮しなければならないのは、どのツールが作業に適しているかということです。例えば、ブレーキシステムを製造するサプライヤーは複雑なHILテストを必要とするかもしれませんし、インフォテインメントやナビゲーションシステムはSILテストだけを必要とするかもしれません。

車載製品向け自動GUIテスト

Squishは、クロスプラットフォームのデスクトップ、モバイル、組込み、Webアプリケーションのための自動GUIテストツールです。自動車のテストでは、Squishは一般的にナビゲーションシステム、タッチパネル、ダッシュボード、フロントパネルのテストに使用されています。 

自動車のGUIテストにSquishが有効な理由

自動車のユーザーインターフェースはアニメーション化が顕著で、グラフィックは信じられないようなレベルで高速に動くようになりました。このように、GUIの観点からのテストは、画面上ですべてが常に変化しており、一般に、アプリケーションの状態とテストの状態を確実に同期させるのに困難が伴います。

もしこれを手動でテストする場合、テスターは手動でスクリーンショットを撮り、インジケーターが正しい位置にあるか、正しい色か、正しい速度でアニメーションしているか(もし、それが動くことを意図しているなら)を目視で比較する必要があります。

Squishの目標は、エンドユーザーの行動をエミュレートすることです。Squishは、エンドユーザーが行うのとまったく同じ方法で、自動的にアプリケーションを操作します(クリック、ドラッグ、ドロップ、タッチ)。また、Squishはスクリーンショットを撮って、アプリケーションの現在の状態や、画像が設計・開発チームが意図したとおりにレンダリングされているかどうかをチェックすることができます。

Squishには、複数の検証ポイントを用いて見た目が期待通りかどうかを確認する画像ベースの検証方法があり、誤検証のリスクを軽減することができます。また、OCR(光学式文字認識)エンジンもサポートしており、テキストや数字が意図したとおりに画面に表示されているかどうかを検証することも可能です。

お問い合わせ

SquishをはじめとするQtのQA(品質保証)ツールにご興味がおありの方は、Qt JapanのEメールアドレス:japan@qt.ioまでお気軽にご連絡ください。概要のご説明から詳細な技術的相談、また無料のツールトライアルのご案内もいたしております。

 


Blog Topics:

Comments