7th長崎QDG 事例・技術セッション 「キラキラな開発を目指して徹底的にテストを自動化しようとした話」

>100 Views

September 15, 23

スライド概要

事例・技術セッション「キラキラな開発を目指して徹底的にテストを自動化しようとした話」
佐藤 陽春 氏(日立Astemo株式会社)

2023年9月15日(金)に出島メッセ長崎にて「7th長崎QDG」を開催しました。
ご講演者より許可を頂いた資料につきましてNaITEにて公開いたします。(公開版資料は当日版資料と内容が異なっていることがあります)

★7th長崎QDG
 https://nagasaki-it-engineers.connpass.com/event/263690/

★NaITE(長崎IT技術者会)
 https://naite.swquality.jp/

profile-image

NaITE(長崎IT技術者会)です。 イベントや勉強会の資料を公開していきます! ★NaITE(長崎IT技術者会)  https://naite.swquality.jp/

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

キラキラな開発を目指して徹底的にテストを自動化しようとした話 Akiharu SATOH Senior Manager Software Platform Design Dept. Hitachi Astemo 2023.9.15 CONFIDENTIAL

2.

Company Introduction 2021年1月、日立Astemoは、モビリティソリューションの提供を通じ、 持続可能な社会に大きく貢献し、世界をリードする企業として、 日立オートモティブシステムズ、ケーヒン、ショーワ、日信工業の統合会社として誕生しました。 are integrated to be CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 2

3.

Company Introduction CASE分野における技術革新を通じて安全で快適なモビリティを実現します 自動運転 先進運転支援システム パワートレインシステム (電動・エンジン) シャシーシステム 二輪車用システム コネクテッド 車載ソフトウェア アフターマーケット 産業機器・汎用製品 CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 3

4.

Presenter Introduction 佐藤 陽春 • 日立Astemo ソフトウェアプラットフォーム設計部 シニアマネージャー • ソフトウェアエンジニアリングに関する活動など • NPO法人ASTER(ソフトウェアテスト技術振興協会) 正会員 • ASTER主催 ソフトウェアテスト設計コンテスト(日本の)実行委員 • SQuBOK第三版 策定部会メンバ • 日立グループ横断 テスト改善ワーキンググループ副主査 • 自職場(自動車関係)でのテストプロセス改善、テスト自動化推進 • テスト技術の社内教育(eラーニング作成) • 論文投稿、同人誌への寄稿など ↑読めますか? 海の近くに住んでいます 元吹奏楽部 たまに楽器を 吹いています 数理科学専攻でした CONFIDENTIAL ドライブが好きです © Hitachi Astemo, Ltd. All rights reserved. 4

5.

Contents CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 5

6.

Introduction 20xx年、ソフトウェアは人類の生活に欠かせない インフラストラクチャーの一部となった。 ソフトウェアを主に開発したのはソフトウェアエンジニアと呼ばれた人々であり、 彼女/彼らはソフトウェアエンジニアリング技術を駆使して、 高品質なソフトウェアの開発に従事した。 ソフトウェアの開発をいっそう高度にした技術のひとつに、 ソフトウェア開発の自動化と呼ばれる技術があった。 自動化により、ソフトウェアエンジニアが抱えていた次のような課題が解決された。 1. 多品種・短期納入の高速開発 2. 特定のベテランエンジニアへの依存の解消 3. 品質の安定化 しかし、自動化の技術は一部のソフトウェアドメインでは あまり活用されなかった。その理由は・・・ CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 6

7.

Issues ソフトウェア開発の自動化を適用するときの悩みの例 エンジニアリング視点 マネジメント視点 自動化を維持する体制・ルールがない 自動化しにくい処理や制約がある 自動化技術を持つ人材が育っていない 本発表では、これらの問題解決のヒントになるべく、 制御系組込みソフト(車載ソフトウェア)ドメイン向けに 開発やテストの自動化を推進した事例を紹介します。 CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 7

8.

Going for ideal software development 車両 データ解析システム IoT Hub Connected data Data Analysis ECU OTA Client 分析用データ ソフトウェア BtoB Te s t AS W de auto co Re OEM function Supplier Platform po Source Control Server event event event 1 2 3 ✔ ✔ ✔ ✔ ✔ ✔ ✔ 1click rt CI CT Te MILS SILS HILS ld Mo des d n i io Continuous Integration t Mo valida de t OTA Delivery Server OTA Mg(UCM Master) 分析用データ出力 el n g 1click 車両 Gateway Software Development Automation l OTA SoftwareOTA データ検証 Sensor Log Camera Image 我々が目指す 自動化を伴う 開発プロセス Data Acquisition s ECU 配信システム Bu i CD Object Control Server event event event 1 2 3 Object Software Report (Fail or Succeed) Developer CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 8

9.

Issue 自動化しにくい処理や制約がある What we did 自動化前の状況や問題 やったこと、対策 共用PCの予約競合 ツール提供のAPIでJenkins®ジョブ作成 A 夜間まで続くPC利用 実機・PC操作の自動化 手間のかかる実機操作 繰返し抜き差しでのコネクタ破壊 そもそも実機を使わない(仮想化) A ツール固有のテストレポート テスト管理ツールへの自動連携 巨大なテスト実行ログ A CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 9

10.

Automation with API 自動化前の状況や問題 やったこと、対策 ツール提供のAPIでJenkinsジョブ作成 共用PCの予約競合 夜間まで続くPC利用 • • • リリース直前など繁忙期にPCの予約ができない ずっと先まで予約しているチームがあって予約できない 1時間単位の予約で、使われていない無駄時間あり 使いたい 時間帯を予約 Developer Developer 予約台帳に 基づいて利用 共用PC予約台帳 Developer Developer Developer High-spec PC CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 10

11.

Automation with API ツール提供のAPIでJenkinsジョブ作成 ツールの提供するAPIを用いてビルドやテスト実行など主要な開発プロセスをジョブ化 制約 背景 専用の商用ツールを使う必要がある 問題1 リモート利用可能な ライセンスの制限あり →ツールベンダにやりたい ことを説明し、適切な ライセンスを相談 Runner Process # ./jobscript.sh Developer 機能安全認証が必要 顧客指定 社内で使いなれている 問題2 提供されるAPIで 機能不足 →ツールベンダに機能の 拡張や改善を提案 High-spec PC 得られた教訓 今後のツール選定時の評価観点 • リモートで使えるか(とくに海外) • Dockerなどコンテナで使えるか OSSツールとの棲み分け計画を立てる • まずはOSSでクイックに実行 • 開発プロセス中一度は認証ツールで実行 CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 11

12.

Automation with API ツール提供のAPIでJenkinsジョブ作成 さらにVCSをクラウドに構築し開発拠点による制約を受けない環境を構築 VCS : Version Control System 直接アクセス不可 Developer ソースコード 結果DL 国内外から アクセス可能 なクラウド 社内ネットワーク 共用高速PC × n台 Runner Process # ./jobscript.sh VCS CI A runner ジョブ対象 整理など ロード バランシング ジョブ実行 共用PCの予約待ちの解消のみならず、世界中から同じ開発環境を利用可能になった CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 12

13.

Automation of hardware operation 自動化前の状況や問題 やったこと、対策 手間のかかる実機操作 実機・PC操作の自動化 繰返し抜き差しでのコネクタ破壊 そもそも実機を使わない(仮想化) 不完全な自動化 制約 START • • • • デバッグモードと通常モードの切り替え 実機上の物理スイッチのON/OFF 限られた数の実機とデバッガー等の機材 実機の故障を模擬しないと出来ないテスト Debug ger 制約 実機操作あり Power Supply PC操作あり テストしたいテストシナリオを 自動 選択 選択したテストシナリオを ツールでビルド 手動 ビルドしたテストシナリオを 実行 手動 テスト結果を取得&格納 • 自動 GUIでのPC物理操作が必須な ツールの利用 END CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 13

14.

Automation of hardware operation 実機操作の自動化 ターゲット基板にプログラムで制御可能なリレーを配線 例1) Python®スクリプトで リレー切替により 電源制御 例2) CAN信号で リレー切替により 電源制御 Power Supply USB-Relay COM PC + - GND NC A USB(Serial) CAN 通信ソフト CAN I/F PC A 12V NO Power Supply CAN-Relay CAN-H COM CAN-L NC NO + - GND 12V ライブラリ関数と マニュアルを作成して 開発用部品として共有 def powerCtrl(status): ... 評価基板上の トグルスイッチ →はんだ付けで対応 Toggle Relay USB(Serial) 応用) CAN断線時の 異常診断テスト CAN 通信ソフト PC A USB(Serial) CAN I/F CAN-Relay CAN-H COM CAN-H NC CAN-L ターゲットの実機が 箱入りでもOK CAN-L NO CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 14

15.

Automation of hardware operation 実機操作の自動化 GUI操作ツールによるGUI専用ソフト操作の自動化 自動化したいフローの例 (途中にGUI操作のため自動化できていない) START テストしたいテストシナリオを 自動 選択 選択したテストシナリオを ツールでビルド 手動 ビルドしたテストシナリオを 実行 自動 テスト結果を取得&格納 GUIでの操作が 必ず発生 GUI操作をするための スクリプトを作成して自動化 ツールの癖があるため、 使いこなすためのノウハウ集を作成 • 画像認識失敗時の処理 • 複数の候補画像から最適な候補を 選択 • 初期設定の工夫(解像度、 window配置、マウスの速度) • ... 自動 END 途中にGUI操作を含むフロー全体を自動化した CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 15

16.

Virtualization そもそも実機を使わない(仮想化) Integration Levelに応じた多様な仮想化の使い分けを検討・構築 Integration Level Vehicle Real Vehicle HILS連携 + Virtual ECU Cloud Virtual Space PT Chassis AD Sub-System Virtual space Desktop calibration/Gray box model 1-ECU (SYS 4,5) Real ECU+ HIL + Plant Model Real ECU+ HIL + Real devices Virtual ECU SIL +Plant Model Simulator MIL + Plant Model Integrated (SWE 5,6) OS Vendor/In-house Simulator Model Simulation (Component) B2B Test Component (SWE 4) Unit test/Static Test Tool Real Virtual CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 16

17.

Virtualization そもそも実機を使わない(仮想化) 実機相当の機能をPCでシミュレーションする環境を構築 SILSの例 実ターゲットによるテスト環境 HILS 仮想ターゲットによるテスト環境 実機向けソフト (クロスコンパイル) 仮想向けソフト (PC向けコンパイラでビルド) ASW ASW PCのみでテストの自動化を実装可能 BSW BSW 環境の増減が容易 MCAL シミュレータ PC PC以外のテスト機材を必要としない 仮想ターゲットのデメリット PC 実機 仮想ターゲットのメリット 実機向けソフトウェアを 変換し、PC上で動作 シミュレーション用にソフトウェアの変換が必要 実機を正確に模倣するほど動作が遅くなる ASW : Application SoftWare,BSW : Basic SoftWare,MCAL : MicroController Abstraction Layer CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 17

18.

Virtualization そもそも実機を使わない(仮想化) 仮想ターゲット作成からPC上でのシミュレーションまで自動で実施 SILS+CIの例 コード 変換 設計 実装 スタブ 生成 キャリブ レーション ビルド 結果 確認 テスト実行 DLL C シミュレーション結果 ASW I/F O S ASW ASW I/F I/F commit & push BSW Parts BSW Parts COM DEM COM DEM MEM FIM MEM FIM SYS CAN SYS CAN C D D O S BSW Parts C D D O S COM DEM MEM FIM SYS CAN C D D MCAL MCAL MCAL Target MCU MCU NotTarget Integrated MCU NotTarget Integrated ECU HW ECU HW ECU HW 車両モデルの要素(エンジンの簡易モデルなど) 仮想ターゲットによるテストのスコープ(仮想ターゲットに実装される範囲) CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 18

19.

Connecting to test management tool 自動化前の状況や問題 やったこと、対策 ツール固有のテストレポート テスト管理ツールへの自動連携 巨大なテスト実行ログ • • • テストレポートがテストツールによって異なるので表計算ソフトでサマリを作成し直す手間 主に通信テストで生じる大量のテストログ(通信内容ログ)の取得と格納の手間 上記を開発者/テスターひとりひとりが実施することによる作業内容の揺れ ... ... PC Developer create test summary store detail logs ... ... ファイルサーバー テスト結果 サマリ log テスト結果 (詳細ログ) create test summary store detail logs execute test Developer PC log execute test Developer Developer CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 19

20.

Connecting to test management tool テスト管理ツールへの自動連携 ツール独自の形式からDBレコードへ自動変換、大きなログはファイルサーバーへ自動格納 テスト管理DB VCS commit & push Developer テスト シナリオ (独自様式) Test Result Updater OK/NG テスト ケース return test results ファイルサーバー OK/NG ファイル PC DBレコード Pass/Fail/未実施数 日々の累積/傾向 ダッシュボードによるレポート テスト結果 テスト結果の 自動集計ツールを開発 transfer files Pass/Fail/未実施数 (テスト種類別) zip and store detail logs テスト結果 (詳細ログ) Failしたテスト項目一覧 コンポーネント別 テスト結果 大きなファイルは ファイルサーバーへ格納 log execute test CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 20

21.

Automated test example 自動化しているテストタイプの例(テストレベル SWE.4~SWE.6別) SWE.4(単体) • 単体テスト全般 • MCDCカバレッジ計測 • 静的コード解析全般 • 各種コードメトリクス取得 • B2Bテスト (モデルから生成したコードと、 その入力になっているモデル との一致性) SWE.5(ソフト統合) • 機能テスト • 通信診断 • セキュリティ機能 (MACなど) • ... SWE.6(ソフト要求) • ユースケーステスト • 走行シミュレーション • 非機能テスト • CPU負荷、通信負荷 • 故障注入 • リソース計測 • セキュリティ(Fuzzing、 Penetration) CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 21

22.

For continuing automation Issue 自動化を維持する体制・ルールがない 自動化技術を持つ人材が育っていない 自動化を活かし続けるために・・・ 自動化は環境を構築して終わりではない 自動化環境を運用・保守しないとすぐに使われない負の資産になってしまう オーパーツ化させない • 自動化ツールを作りっぱな しにしない。自動化の設 計は書き物に残す • プロジェクト横断活動で自 動化技術共有 開発PJに効果を感じて もらい賛同を得る 自動化の専門部隊を作る • 自動化と同時にKPIやメ トリクスも自動収集 • プロジェクト横断的に担当 し、良い方法を横展開 • 別プロジェクトの自動化資 産の流用(開発工数削 減) • 自動化技術を持った人材 の育成 CONFIDENTIAL 一緒に推進する 仲間を募集中 © Hitachi Astemo, Ltd. All rights reserved. 22

23.

For continuing automation 自動化を運用・維持するための取り組みの一例 プロジェクト横断活動で 自動化技術を共有 オンライン会議での情報共有 メトリクスの自動収集 ジョブ実行状況の自動分析 自動化技術を持った 人材の育成 CI(Continuous Integration)の社内演習 • 混雑する時間帯 • 失敗しやすいジョブ • ジョブの平均実行時間 など 情報交換のためのコミュニティ (SEPG Tech Forest) 輪読会 (例:実践ソフトウェアエンジニアリング第9版) CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 23

24.

Conclusions 日立Astemoではサステナブルな ソフトウェア開発の自動化環境を構築、 運用している オーパーツ化させない 自動化された開発環境の構築 自動化前の状況や問題 共用PCの予約競合 夜間まで続くPC利用 手間のかかる実機操作 繰返し抜き差しでのコネクタ破壊 開発PJに効果を 感じてもらい賛同を 得る 自動化の専門部隊 を作る 自動化環境の運用と維持 やったこと、対策 ツール提供のAPIでJenkinsジョブ作成 実機・PC操作の自動化 そもそも実機を使わない(仮想化) ツール固有のテストレポート 巨大なテスト実行ログ テスト管理ツールへの自動連携 CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 24

25.

Call for colleagues ソフトウェアの技術で一緒に安全・安心・快適なモビリティ社会を目指しませんか コネクティドサービス 共生安全制御 フィールドセンシング Service - City Value - QoL QoL計測・評価 人と機械が混在する フィールドの高効率と 安全性の両立 データ管理・流通 共生安全 実社会 自動運転 コネクティッド データの利活用によるQoLの向上 建設機械 鉄道 / 自動車 実フィールドでのPoCを推進 ゼロエミッション 自動運転モビリティ EVソリューション ライフサイクルでの CO2排出量を管理する ゼロエミッション管制 EaaS Energy MaaS Mobility 物流 情報化施工 電力 グリッド モビリティサービス基盤 最適配送計画 モビリティ・グリッド連携 ソフトウェア技術 再利用プロセス 機能安全 業界標準プロセス セキュリティ 共通プラットフォーム 設計プロセス 設計環境 共通プラットフォーム CONFIDENTIAL 自動化技術 検証技術 設計インフラ ソフトウェア更新 AUTOSAR © Hitachi Astemo, Ltd. All rights reserved. 25

26.

Use of trademarks • Jenkins®はLF Charities Inc.の登録商標です。 • AUTOSARは、AUTOSAR Gesellschaft des bürgerlichen Rechtsの商標です。 • Python は Python Software Foundation の登録商標です。 Pythonロゴ(いくつかのバリエーションを含む)もPSFの商標です。 • GITLAB は、米国およびその他の国および地域における GitLab Inc. の商標です。 • Box®は、米国およびその他の国における Box, Inc. またはその関連会社の登録商標です。 • MATLAB および Simulink は The MathWorks, Inc. の登録商標です。 • IBM および IBM は、米国、その他の国、またはその両方における International Business Machines Corporation の商標または登録商標です。 その他の会社名、製品名、サービス名は、各社の商標です。 CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 26

27.

Company Introduction 事故のない安全・安心・快適でクリーンなサステナブルモビリティ社会を実現 人 共生安全制御 フィールドセンシング コネクティドサービス QoL計測・評価 人と機械が混在する フィールドの高効率と 安全性の両立 機械(制御対象) データ管理・流通 共生安全 実社会 自動運転 コネクティッド レジリエンシ 事故のない社会 Service - City Value - QoL MaaS Mobility 安全・安心 データの利活用によるQoLの向上 建設機械 環境 脱炭素社会 鉄道 / 自動車 情報化施工 物流 自動運転モビリティ 実フィールドでのPoCを推進 ゼロエミッション EVソリューション CO2トレーサビリティ ライフサイクルでの CO2排出量を管理する ゼロエミッション管制 EaaS Energy RE100活用充電制御 電力 グリッ ド モビリティ向けブロックチェーン モビリティサービス基盤 CONFIDENTIAL 最適配送計画 モビリティ・グリッド連携 RE100:Renewable Energy 100% © Hitachi Astemo, Ltd. All rights reserved. 27

28.

日立グループの事業ドメイン (2022年度) デジタルシステム & サービス その他 15% 日立 Astemo 17% 21% Hitachi Consolidated Revenues 10,811.8 billion yen グリーンエナジー & モビリティ 21% 26% 売上(海外比率) 1.92 兆円 (74%) Adjusted EBITA* (ratio) 734億円(3.8%) コネクティブインダストリーズ *Adjusted EBITA=Adjusted operating income – acquisition-related amortization + equity in earnings (losses) of affiliates CONFIDENTIAL © Hitachi Astemo, Ltd. All rights reserved. 28

30.

4月に本を出しました! 日立グループ内でソフトウェアテストの改善 活動や研究をおこなっている研究者・実務 者(私)の4名で執筆。 さまざまな現場を見てきた経験も踏まえて、 なるべくとっつきやすい内容を意識して知識 をまとめました。 よろしければ一度ご覧ください。 https://www.ric.co.jp/book/development/detail/2395