Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
126616f26This file is pinned to the selected release. Download the original to open it in your design tool.
# リリース前実機テスト
このチェックリストは、安定版を`main`へマージする前に実機で確認する操作を定めます。
必須項目はM5StackChan CoreS3を対象とし、リリースで変更した機能の追加ケースだけを選んで実施します。
## 判定と記録
各項目は`PASS`、`FAIL`、`N/A`のいずれかで記録します。
必須項目に`N/A`は使用できません。
追加項目を`N/A`にする場合は、変更対象外または対応実機なしなどの理由を残します。
リリースPRへ次の表を貼り付けます。
| 項目 | 記録 |
| --- | --- |
| リリース | `vX.Y.Z` |
| 候補コミット | 40桁のコミットSHA |
| CI実行 | URL |
| Pagesプレビュー | URL |
| 実施日時 | 日時とタイムゾーン |
| 実施者 | GitHub ID |
| 本体 | 製品名、リビジョン、バッテリー有無 |
| 駆動部 | サーボ種別、電源、パンとチルトの構成 |
| 操作端末 | OS、ブラウザーとバージョン |
| 追加機器 | Android端末、カメラ、Dockの相手機器など |
| 結果 | `PASS`または未解決項目へのリンク |
写真、動画、シリアルログ、ブラウザーコンソールなどの証跡は、項目IDと候補コミットを対応付けて保存します。
## 事前準備
- [ ] `P-01` リリース対象の40桁コミットSHAを固定し、以後は同じSHAから作った成果物だけを使う。
- [ ] `P-02` リリースPRの必須CIが成功し、firmware bundleの成果物とPagesプレビューの生成元SHAが`P-01`と一致することを確認する。
- [ ] `P-03` 専用の検証機を使用し、消去して困る設定とMODが残っていないことを確認する。
- [ ] `P-04` サーボの可動範囲から物を外し、本体とサーボへ安定した電源を供給する。
- [ ] `P-05` データ通信対応USBケーブル、Wi-Fi、Web Bluetooth対応ブラウザーを用意する。
## CoreS3共通項目
### 書き込みと起動
- [ ] `G-01` Pagesプレビューのファームウェア書き込み画面で「M5StackChan CoreS3」を選び、警告を読んで候補ファームウェアを書き込む。
書き込みが成功表示で終わり、対象外のボードや空の成果物として拒否されないことを確認する。
- [ ] `G-02` USBを抜いて電源を入れ直し、起動画面からFaceへ到達する操作を3回繰り返す。
起動ループ、panic、brownout、画面停止が発生しないことを確認する。
- [ ] `G-03` 電源投入中に画面へ触れて起動設定を開き、戻る操作と通常起動の両方を試す。
タッチ位置がずれず、画面遷移後も入力できることを確認する。
### 起動設定と保存
- [ ] `G-04` 表示言語を日本語、英語、簡体字中国語へ順に切り替え、ラベルが欠けず、その場で表示が更新されることを確認する。
- [ ] `G-05` タイムゾーンを現在地とは異なる都市へ変更してから現在地へ戻し、AppBarの時刻が変わることを確認する。
- [ ] `G-06` 音量を低、中、高の順で変更し、指を離すたびに確認音の大きさが変わり、本体が再起動しないことを確認する。
- [ ] `G-07` Wi-Fiをスキャンし、SSIDとパスワードを入力して接続する。
接続中、時刻同期中、接続済みの状態が画面へ反映されることを確認する。
- [ ] `G-08` 通常起動後に電源を入れ直し、言語、タイムゾーン、音量、Wi-Fiが保存され、自動接続することを確認する。
- [ ] `G-09` 起動設定でオフライン起動を選び、確認画面で一度キャンセルしてから消去を確定する。
Wi-Fi情報が消去されてFaceへ到達し、次回の設定で再登録できることを確認する。
### Face、入力、表示
- [ ] `G-10` FaceをタップしてDrawerを開き、縦スクロール、項目選択、戻る、オーバーレイ外のタップによる終了を試す。
誤作動、描画残り、操作不能がないことを確認する。
- [ ] `G-11` Faceをシンプル、いぬ、画像へ切り替え、すべての表情と白黒の配色を順に選ぶ。
顔部品と吹き出しが欠けず、表情遷移が止まらないことを確認する。
- [ ] `G-12` 手を「無し」「グーチョキパー」「拍手」「考え中」へ切り替える。
Drawerが閉じ、選んだアニメーションがFace上で動くことを確認する。
- [ ] `G-13` Face上をなでる操作を行う。
うれしい表情と首振りが始まり、一定時間後に元の表情と姿勢へ戻ってトルクが解放されることを確認する。
- [ ] `G-14` 本体を安全に保持して傾きと軽い振動を与える。
IMUに対応する表情へ変わり、その後に元の表情へ戻ることを確認する。
- [ ] `G-15` バッテリーを接続した状態と外部給電の状態でAppBarを開く。
時刻が更新され、対応機種では0から100までの範囲でバッテリー残量が表示されることを確認する。
### モーション、LED、カメラ、音声
- [ ] `G-16` Drawerの「サーボ」を実行する。
パンとチルトが各方向へ動いて正面へ戻り、終了後に保持音や連続振動が残らないことを確認する。
- [ ] `G-17` 「見回す」を有効にして二回以上の姿勢更新を待ち、無効にする。
有効中だけ視線と首が動き、無効化後にトルクが解放されることを確認する。
- [ ] `G-18` LEDを有効にして虹色表示を確認し、無効にして完全に消灯することを確認する。
- [ ] `G-19` 「カメラ」を二回続けて実行し、各回でプレビューを表示して閉じる。
二回目も画像を取得し、終了後にFaceへ戻ってDrawerを再び操作できることを確認する。
- [ ] `G-20` 「音を再生」を実行し、確認音が途切れずに終了することを確認する。
- [ ] `G-21` 「録音と再生」を二回続けて実行する。
各回で録音した音声を再生し、二回目も無音、停止、操作不能にならないことを確認する。
- [ ] `G-22` 使用するTTSを設定して「Speak」を実行する。
音声、口の動き、吹き出しが終了し、成功時と通信失敗時のどちらでもFace操作へ戻れることを確認する。
### WebツールとMOD
- [ ] `G-23` CoreS3を起動設定へ移し、Pagesプレビューの設定画面からBLE接続して設定を読み書きする。
本体側の値が更新され、再接続後も同じ値を読み出せることを確認する。
- [ ] `G-24` PagesプレビューのMOD GalleryでCoreS3へ接続する。
ファームウェア識別子、XS版、host capabilityを読み出し、互換性のあるMODだけで書き込み操作が有効になることを確認する。
- [ ] `G-25` MOD Galleryから基本的なMODを一つ書き込み、再起動後にMODの動作を確認する。
その後ホストファームウェアを書き直し、事前警告どおり本体設定とMODが消去されることを確認して、後続テスト用の設定を再登録する。
- [ ] `G-26` ブロックエディターでサンプルを開き、シミュレーターで動かしてから実機へ書き込む。
生成、シミュレーター、実機の各段階でエラーがなく、実機で対応する動作を確認する。
### 継続動作
- [ ] `G-27` Wi-Fi接続とFaceのアニメーションを有効にしたまま30分以上動かし、途中でDrawerを10回以上開閉する。
再起動、操作不能、表示停止、サーボの意図しない連続保持がないことを確認する。
- [ ] `G-28` 継続動作後にカメラ、録音と再生、サーボを再実行する。
起動直後と同じ結果になり、リソース枯渇を示す失敗がないことを確認する。
## 変更機能に応じて選ぶ追加ケース
- [ ] `C-01` MediaPipe BLE MODをGalleryから書き込み、リリースPRのPagesプレビューにあるMediaPipe画面からBLE接続する。
顔向き、笑顔、左右のまばたき、口の開き、手の位置と指の本数が実機へ追従し、切断から1秒程度で表示が戻ってサーボのトルクが切れることを確認する。
- [ ] `C-02` MCP Server MODを導入し、Wi-Fiと`mcp.token`を設定してDrawerにendpointを表示する。
`/health`が応答し、tokenなしと不正tokenの`POST /mcp`が`401`、正しいBearer tokenの初期化とツール実行が成功することを確認する。
- [ ] `C-03` Codex Voice MODと対応するStackchan Dockの相手機器を接続し、切断、再接続、会話開始、会話停止を順に行う。
CoreS3のマイク入力とスピーカー出力、字幕、口の動き、会話状態、承認の許可と拒否が一致することを確認する。
バックグラウンドタスクの実行中だけFaceへ青色インジケーターが表示され、切断と再接続後に古い状態やインジケーターが残らないことも確認する。
- [ ] `C-04` Stack-chan JUMPをGalleryから導入し、同じアーカイブのMODとmini appのentrypointを起動する。
一方のentrypointを使っても他方が失われず、mini appを終了するとFaceへ戻ることを確認する。
- [ ] `C-05` 起動設定で音量を変更した起動処理中にUSB Dockを有効化し、相手機器から音声を再生する。
保存した音量がその場でUSB再生へ反映され、明示的に無音を指定する診断構成では音が出ないことを確認する。
- [ ] `C-06` WebRadioまたは音声ストリーミングを変更した場合、再生開始、停止、再接続、長時間再生を試す。
音切れから復帰し、停止後にほかの音声操作を利用できることを確認する。
- [ ] `C-07` 電源、サーボドライバー、ボタン、ディスプレイ、カメラなどのプラットフォーム固有実装を変更した場合、影響する全機種で対応操作を再実行する。
対象機種ごとの結果を別行で記録する。
- [ ] `C-08` stack-chan-aiのサーバー経由Realtime音声アダプターを`wss://`または信頼済みローカルネットワーク上の`ws://`へ接続する。
Bearer tokenがURLへ露出せず、接続、マイク入力、文字起こし、音声応答、tool callと結果返却が一往復することを確認する。
- [ ] `C-09` Codex Voiceなどで英大文字を含む認証コードとactivation linkを表示する。
文字が欠けず、QRコードが標準ホストとWASMホストの両方で描画され、読み取ったURLが表示内容と一致することを確認する。
## 追加機種の確認
配布ZIPに含む`com.m5stack`、`com.m5stack.core2`、`com.m5stack.cores3`は、対応実機がある場合に書き込み、起動、入力、画面、音声を確認します。
ソースビルド対象のStack-chan RTとタカオ版Core2 + SG90は、対応実機がある場合にサーボ方向、可動範囲、ボタン操作を確認します。
標準項目外の実機テストを実施できない場合は、CIのビルド結果と`N/A`の理由をリリースPRへ残します。
## 不合格時の扱い
`FAIL`が一つでも残る候補コミットは公開しません。
再現手順、実機構成、ログ、写真または動画をGitHub issueへ残し、修正後の新しい候補コミットで影響項目と共通項目を再実行します。
実機テスト後にリリース成果物へ変更を加えた場合も、候補コミットを更新して同じ手順をやり直します。