状態遷移テストツールAustinの開発と組み込み装置向けシナリオ作成工数削減アプローチ
守谷 歩
DXエンジニアリング研究部 シスX2ユニット
サービスシステムイノベーションセンタ
© Hitachi, Ltd. 2024. All rights reserved.

要旨
１. 医用分析装置を操作するソフトウェアは高品質化が求められる。
２．組み込み装置の高信頼化を行う方法として，状態遷移テストを採用し，その状態遷移テストを自動化する状態遷移テストツールを開発した。
３．状態遷移テストの自動化伴い，そのテストに使用するシナリオについても工数削減方式を策定した。
４．状態遷移テストの自動化と，テストシナリオ工数削減方式を３つの開発中の製品で適用し，開発期間に影響の出ない範囲で，仕様の状態遷移について100%のカバレッジを達成し，高信頼化に貢献した。
© Hitachi, Ltd. 2024. All rights reserved.

1

目次
1. 背景
2. 問題点
3. 検証
4. 結論© Hitachi, Ltd. 2024. All rights reserved.

2

目次
1. 背景
2. 問題点
3. 検証
4. 結論© Hitachi, Ltd. 2024. All rights reserved.

3

1-1 医用分析装置の高品質化
医用分析装置を操作するソフトウェアの不具合は，装置の停止を引き起こし，事業や社会に悪影響を与えるため，高品質化が求められる
医用分析装置を使用する病院の健康診断の流れ

社会的な悪影響（仮定）*患者数1900 [人/日]

医用分析装置の停止

健康診断
自動診断
患者結果の返却病院

医用分析装置関連する患者の検査開始の遅延や，再検査装置停止の影響
病院の健康診断の流れが止まり，検査開始の遅延や，再検査につながる。

* 国内病院の1日平均患者数”令和3年(2021)年 医療施設(動態)調査・病院報告の概況”, MHLW, 2022 より算出
URL: 11gaikyou03.pdf (mhlw.go.jp)© Hitachi, Ltd. 2024. All rights reserved.

4

1-2 ソフトウェア高品質化の必要性
ソフトウェア高品質化のためには，ハードウェアの振舞に不具合が生じている場合に，その不具合を検知しないといけない。
状態遷移

空排出予定

準備キャンセル観測

血液検査

ハードウェアの振舞

排出

社会的な悪影響反応中© Hitachi, Ltd. 2024. All rights reserved.

5

1-3 医用分析装置のハードウェア振舞
医用分析装置は，ユーザから検査命令を受け取ると，血液や薬品をプローブが反応セル上に吸引，吐出することで，薬品や血液に反応を起こし，反応したセルをセンサ―で血液検査などを可能にしている。
ハードウェアの振舞例
A.

プローブ
薬品充填

検査命令

反応セル(血液)

ユーザ

B.

C.

薬品吐出

空プローブの引き上げ

反応セル(反応中)

医用分析装置© Hitachi, Ltd. 2024. All rights reserved.

6

1-4 医用分析装置のハードウェアの振舞と状態遷移の関係性
反応セルの中で，「薬品が入っているか」や，「プローブの上下動作」などは，状態として，医用分析装置のソフトウェアで，ハードウェアプロセスと変数で管理しており，ハードウェアの振舞は状態遷移として確認できる。
状態遷移
ハードウェアの振舞例
B.

薬品充填

反応セル(血液)

準備

血液

C.

薬品吐出

空プローブの引き上げ

反応セル(反応中)
排出予定

キャンセル
観測

検査

プローブ

排出

A.

空

反応中

ハードウェアプロセス
検査© Hitachi, Ltd. 2024. All rights reserved.

7

1-5 状態遷移テスト
状態遷移テストとは，プログラムの変数に焦点を当て，その値の変化をチェックするテストである。
一般的な単体テストの様に入力に対する出力をチェックするテストとは異なり，入力（イベント）に対して，プログラムの内部の変数の値の変化が正しいかをテストする手法である

プログラム

入力 (イベント)

処理

出力変数

プログラム内部の変数の値変化を確認する。

••

プログラムやハードウェアの状態を表す変数を状態変数と定義する。
状態変数の値を状態と呼び，イベントと状態変化のペアを状態遷移と呼ぶ。
© Hitachi, Ltd. 2024. All rights reserved.

8

1-6 状態遷移テストの難しさ
状態遷移は医用分析装置中の様々なコンポーネントの動作の組み合わせによって発生する為，特定のコンポーネントの状態遷移を発生させるテストシナリオの設計には多くの工数がかかる。
例えば，医用分析装置の主要なハードウェアの1つである反応セルの状態遷移は，8つのコンポーネントの動作の組み合わせによって生成される→反応セルの状態遷移を狙って起こすためには様々なコンポーネントの仕様理解が必須で工数がかかる。
反応セルコンポーネントA

薬品プローブ血液プローブ
反応セル状態変数コンポーネントE

コンポーネントB
コンポーネントD

ソフトウェアコンポーネント

コンポーネントC状態© Hitachi, Ltd. 2024. All rights reserved.

9

目次
1. 背景
2. 問題点
3. 検証
4. 結論© Hitachi, Ltd. 2024. All rights reserved.

10

2-1 状態遷移テストの自動化アプローチ
全てのコンポーネント仕様検証を避けるため，ある状態遷移を起こすテストのシナリオから，別の状態遷移が起きるテストシナリオを作成（拡張）するSTS方式にて，テストで確認したい状態遷移を狙い，工数を削減する。
Splash Test Scenario (STS) 方式
ベーステストシナリオを拡張し，変更したテストシナリオ群を使用して，多数の状態遷移テストを実施することで，テストで確認したい状態遷移を網羅する。
状態遷移のパターン空間
シナリオ拡張確認したい状態遷移がすべて確認できるまでテストベースシナリオによる状態遷移

シナリオ改良により発生するようになった状態遷移

テストで確認したい状態遷移© Hitachi, Ltd. 2024. All rights reserved.

11

2-2 テストシナリオの拡張
操作のタイミングや，ユーザ操作のパラメータ値などを変更し，修正したシナリオ群を生成する。
拡張されたテストシナリオ

ベーステストシナリオ
2つの検査が実施されるテストシナリオ
No.

同じ反応セルを再利用するテストシナリオ

operation

1

Reagent registration (reagent
ID=[1,2])2

Test request (reagents used = [1])3Test request (reagents used = [2])検査要求のタイミングをずらす

No.

operation

1

Reagent registration (reagent ID=[1,2])

2

Test request (reagents used = [1,2])

3

Wait (control cycle = 1000).

4Test request (reagents used = [1,2])

薬品が不足するテストシナリオ

検査に薬品を2回使う修正

No.

operation

1

Reagent registration (reagent ID=[1,2])

2

Test request (reagents used = [1])3Test request (reagents used = [1])© Hitachi, Ltd. 2024. All rights reserved.

122-3 Austinによる状態遷移テスト
STS方式の実現として，医用分析装置の操作と，状態監視を可能にするテストツールAustinを開発した。
Austinは仕様書とテスト時の状態遷移を比較し、テストで確認したい状態遷移が発生したかの有無を確認できる。

テスター

仕様書

テストシナリオ
自動操作Austin
テスト時の反応セルの状態遷移

排出予定

キャンセル
観測

血液空比較

反応中

準備

排出

準備

検査

排出

空排出予定

血液状態遷移の記録

医用分析装置検査

仕様上の反応セルの状態遷移

観測

反応中

未テストの状態遷移を検知© Hitachi, Ltd. 2024. All rights reserved.

13

2-4 テスト時の問題点 (1/3)
未テストの状態遷移を発生させる為には，医用分析装置のハードウェアセンサーイベントをトリガーとして，特別な処理をユーザから与えてあげる必要がある。 例)キャンセル依頼を，準備後，観測前に発行する

ユーザ操作

ハードウェアセンサーイベント

準備依頼

ソフトウェアハードウェアプロセス
t
準備

準備後
検査後

検査
観測

* Austinはユーザの代わりにユーザ操作を行う。

ハードウェアハードウェアセンサーイベント

空排出予定

準備

キャンセル
観測

血液検査

ユーザ*

ハードウェア
プロセス

排出

ユーザ操作

反応中

© Hitachi, Ltd. 2024. All rights reserved.

14

2-4 テスト時の問題点 (1/4)
未テストの状態遷移を発生させる為には，医用分析装置のハードウェアセンサーイベントをトリガーとして，特別な処理をユーザから与えてあげる必要がある。 例)キャンセル依頼を，準備後，観測前に発行する

ユーザ操作

ハードウェアセンサーイベント

準備依頼

ソフトウェアハードウェアプロセス
t
準備

準備後
キャンセル依頼
検査後目次：
要求タイミング* Austinはユーザの代わりにユーザ操作を行う。

検査

ハードウェアハードウェアセンサーイベント

空キャンセル
排出予定

準備キャンセル
観測

血液検査

ユーザ*

ハードウェアプロセス

排出

ユーザ操作

反応中

© Hitachi, Ltd. 2024. All rights reserved.

15

2-4 テスト時の問題点 (2/4)
医用分析装置のハードウェアセンサーのイベントは，ハードウェアプロセス終了時に装置から自動的に発行される。
テストシナリオを拡張する為に，個々のプロセス終了タイミングを仕様書から探りながら進めると，工数がかかる。
ユーザ操作
準備依頼

ハードウェアハードウェアプロセス
センサーイベントt
準備

仕様書のチェック

専門家への確認

準備後
知見が必要
テスター

検査後

検査

実ソースコードの確認

観測* テストシナリオの設計、動作分析、テストシナリオの作成時間の合計© Hitachi, Ltd. 2024. All rights reserved.

16

2-4 テスト時の問題点 (3/4)
この問題は，絶えず自動的に変化するハードウェアプロセスでキャンセル依頼送信タイミングをどう網羅的に検証するかという問題に集約される。この時，タイミングは時間であり連続値の為，検証すべき数は無限大になる。
ユーザ操作
準備依頼

適切なタイミングを探る為の探索範囲の幅，分割幅は不明で送信タイミングは時間であり，連続値の為，検証すべき数が無限大

ハードウェアハードウェアプロセス
センサーイベント
t
準備
準備後
検査
検査後
観測

© Hitachi, Ltd. 2024. All rights reserved.

17

2-5 テスト時の問題点 (4/4)
探索範囲の幅をテストシナリオの実行時間すべて，分割幅をランダムに決定して，テストシナリオを作る方針だと，適切なタイミングでキャンセル依頼を出せない可能性や，作るべきテストシナリオの数が多くなる問題がある。
ユーザ操作
準備依頼

ハードウェアハードウェアプロセス
センサーイベントt

キャンセル依頼

分割幅が広い場合，キャンセル依頼を適切なタイミングで送信するテストシナリオが作れない
キャンセル依頼

準備
準備後
検査
検査後
観測

© Hitachi, Ltd. 2024. All rights reserved.

18

2-5 テスト時の問題点 (4/4)
探索範囲の幅をテストシナリオの実行時間すべて，分割幅をランダムに決定して，テストシナリオを作る方針だと，適切なタイミングでキャンセル依頼を出せない可能性や，作るべきテストシナリオの数が多くなる問題がある。
ユーザ操作

分割幅が狭い場合，テストシナリオが大量にできてしまう
1シナリオ
約15分の検証がかかる為，膨大な工数が想定されるキャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼
キャンセル依頼

準備依頼

ハードウェアハードウェアプロセス
センサーイベント
t
準備
準備後
検査
検査後
観測

© Hitachi, Ltd. 2024. All rights reserved.

19

2-5 解決手段 (1/4)
探索範囲の幅は，べースシナリオの状態遷移テストの結果から状態遷移が発生するタイミングを確認し，幅の上限を，別パターンの状態遷移が発生する前までとする方針とした。
ユーザ操作
準備依頼

排出予定

準備

キャンセル
観測

血液
検査

排出

空

ハードウェアハードウェアプロセス
センサーイベント
t
準備
準備後
検査
検査後

反応中

観測

観測後にキャンセル依頼を投入しても，キャンセルに移るタイミングが無い© Hitachi, Ltd. 2024. All rights reserved.

20

2-5 解決手段 (2/4)
また，分割幅は医用分析装置のハードウェアプロセスが，サブプロセスに分割されて処理されていることに着目し，周期実行される装置に対応する為，テスターが検証する周期を設定し，テストシナリオを自動生成できるようにした。
ユーザ操作
準備依頼

ハードウェアハードウェアプロセス
センサーイベント
t
準備
準備後
検査
検査後
観測

© Hitachi, Ltd. 2024. All rights reserved.

21

2-5 解決手段 (2/4)
また，分割幅は医用分析装置のハードウェアプロセスが，サブプロセスに分割されて処理されていることに着目し，周期実行される装置に対応する為，テスターが検証する周期を設定し，テストシナリオを自動生成できるようにした。
ユーザ操作
準備依頼

ハードウェアハードウェアプロセス
センサーイベントt
準備(1/3)
準備(2/3)

適切なタイミングは，サブプロセスの最初に起こりうる離散化アプローチ

適切なタイミングは，1つまたは複数のサブプロセスによって構成されている

準備後
検査後準備(3/3)
検査(1/2)検査(2/2)
観測(1/2)観測(2/2)© Hitachi, Ltd. 2024. All rights reserved.

22

2-5 解決手段 (3/4)
従来，連続値で，無限大のテストパターンを検証すべきだった探索範囲は，これらの解決手段により，離散化され，自動的に検証可能な数になった。
ユーザ操作
準備依頼

適切なタイミングを探る為の適切なタイミングは，離散化探索点の1つで，探索範囲の幅，分割幅は不明で検証すべき数が有限になり，送信タイミングは時間であり，探索幅は，過去の状態遷移結果から連続値の為，検証すべき数が無限大上限が推定される。
離散化探索点

ハードウェアハードウェアプロセス
センサーイベントt
準備(1/3)
準備(2/3)
準備後
検査後準備(3/3)
検査(1/2)検査(2/2)
観測(1/2)観測(2/2)© Hitachi, Ltd. 2024. All rights reserved.

23

2-5 解決手段 離散化アプローチ (4/4)
本提案手法で離散化，空間削減した範囲でSTS方式によりテストシナリオを作り，未テストの状態遷移が起こるまで，タイミング変更のシナリオ生成を続けることで，医用分析装置の仕様上全ての状態遷移を発生可能になった。
ユーザ操作
テストシナリオ 1

キャンセル依頼

テストシナリオ 2

キャンセル依頼

テストシナリオ 3

キャンセル依頼…

…

装置周期ごと準備依頼

ハードウェアハードウェアプロセス
センサーイベントt
準備(1/3)
準備(2/3)
準備後
検査後

離散化探索点準備(3/3)検査(1/2)検査(2/2)
観測(1/2)観測(2/2)© Hitachi, Ltd. 2024. All rights reserved.

24

目次
1. 背景
2. 問題点
3. 検証
4. 結論© Hitachi, Ltd. 2024. All rights reserved.

25

3-1 検証
提案手法を用いて，開発中の３つの医用分析装置を対象に仕様上の状態遷移について100%のカバレッジを実現する状態遷移テストを行い，テストシナリオが有限であることを検証。

検証要求•[品質要求] 仕様上の状態遷移について100%のカバレッジを実現する。

•[コスト要求] 上記実現の際のテストシナリオ作成において，テスターがハードウェアのタイミングに関する詳細調査なく，テストを完遂する。

検証対象•[適用対象]：反応セルの状態遷移•[状態遷移特徴]
• 製品A
• 製品B
• 製品C

42状態遷移, 14状態, 9イベント
10状態遷移，８状態，5イベント
13状態遷移，５状態，６イベント© Hitachi, Ltd. 2024. All rights reserved.

26

3-2 検証結果
品質:53件のテストシナリオで100%のカバレッジを達成。1件の実装バグと，2件の仕様上の欠陥を検知
仕様上の状態遷移について100%のカバレッジを達成。さらに，1件の実装バグと，2件の仕様上の欠陥を検知
実際の製品の品質向上に貢献• 実装バグ:ある状態が実装ミスにより，異なる状態へ遷移することで，状態トリガーで動くハードウェアが予期せぬ振舞を引き起こすバグ
実装ミス排出予定血液血液

空反応中空• 仕様上の欠陥:
仕様上に存在するが適切に実装できておらず，状態遷移が誤る欠陥が1件、仕様上に存在しないが，実装しないと状態遷移が正しく発生しないような仕様書上の欠陥が1件検知された。

待機
誤った状態遷移正しい状態遷移

待機を挟まなくともハードの動きは正しそうに見える

血液反応中

排出予定

本来は待機し続けるのが正しい発生した状態遷移
仕様上の状態遷移© Hitachi, Ltd. 2024. All rights reserved.

27

目次
1. 背景
2. 問題点
3. 検証
4. 結論© Hitachi, Ltd. 2024. All rights reserved.

28

4. Conclusion
背景，問題点• ハードウェアの振舞に問題があると，テストでの状態遷移に不具合が確認できる。
• テストの品質を上げるため，仕様上全ての状態遷移を起こそうとするとテストシナリオ作成工数がかかる。

提案手法• 特定依頼を送信するタイミングをSTS方式で探索可能にする。
• タイミングは連続値の為，探索時に，サブプロセスと同じ周期で離散化を行い，有限な数のシナリオで検証可能にする。

検証• 3つの医用分析装置のテストにて，仕様上の状態遷移について100%のカバレッジを達成し，５３件の有限数でのシナリオで検証することが出来た。
• テストシナリオ工数のうち，STS方式によりテスターが仕様書検証する工数を削減した。

展望• 離散幅や探索幅の自動的な特定を実現すると，医用分析装置とは異なる周期で制御される、様々な製品に応用可能な見込みがある。
© Hitachi, Ltd. 2024. All rights reserved.

29

END
状態遷移テストツールAustinの開発と組み込み装置向け、シナリオ作成工数削減アプローチ

守谷 歩
DXエンジニアリング研究部 シスX2ユニット
サービスシステムイノベーションセンタ

© Hitachi, Ltd. 2024. All rights reserved.

30